reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

include/llvm/Analysis/MemoryBuiltins.h
   38 class ExtractValueInst;
include/llvm/IR/Instruction.def
  217 HANDLE_OTHER_INST(64, ExtractValue, ExtractValueInst)// extract from aggregate
include/llvm/Transforms/Scalar/GVN.h
   43 class ExtractValueInst;

References

include/llvm/Analysis/MemoryBuiltins.h
  265   SizeOffsetType visitExtractValueInst(ExtractValueInst &I);
  334   SizeOffsetEvalType visitExtractValueInst(ExtractValueInst &I);
include/llvm/Analysis/TargetTransformInfoImpl.h
  849     if (isa<ExtractValueInst>(U))
include/llvm/IR/IRBuilder.h
  845   InstTy *Insert(InstTy *I, const Twine &Name = "") const {
  845   InstTy *Insert(InstTy *I, const Twine &Name = "") const {
 2378     return Insert(ExtractValueInst::Create(Agg, Idxs), Name);
include/llvm/IR/InstVisitor.h
  196   RetTy visitExtractValueInst(ExtractValueInst &I){ DELEGATE(UnaryInstruction);}
include/llvm/IR/Instructions.h
 2295   ExtractValueInst(const ExtractValueInst &EVI);
 2315   ExtractValueInst *cloneImpl() const;
 2318   static ExtractValueInst *Create(Value *Agg,
 2323       ExtractValueInst(Agg, Idxs, NameStr, InsertBefore);
 2326   static ExtractValueInst *Create(Value *Agg,
 2330     return new ExtractValueInst(Agg, Idxs, NameStr, InsertAtEnd);
include/llvm/IR/NoFolder.h
  334     return ExtractValueInst::Create(Agg, IdxList);
include/llvm/Support/Casting.h
   58     return To::classof(&Val);
   77     return isa_impl<To, From>::doit(Val);
   92     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  142   return isa_impl_wrap<X, const Y,
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  218   static typename cast_retty<To, From>::ret_type doit(From &Val) {
  219     return cast_convert_val<To, SimpleFrom,
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  248                                typename cast_retty<X, const Y>::ret_type>::type
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  258   return cast_convert_val<X, Y,
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  331                             typename cast_retty<X, const Y>::ret_type>::type
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  338   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  338   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
include/llvm/Transforms/Scalar/GVN.h
  119     Expression createExtractvalueExpr(ExtractValueInst *EI);
lib/Analysis/CFLGraph.h
  497     void visitExtractValueInst(ExtractValueInst &Inst) {
lib/Analysis/ConstantFolding.cpp
 1059         Ops[0], cast<ExtractValueInst>(InstOrCE)->getIndices());
 1180   if (auto *EVI = dyn_cast<ExtractValueInst>(I)) {
 1180   if (auto *EVI = dyn_cast<ExtractValueInst>(I)) {
lib/Analysis/InlineCost.cpp
  279   bool visitExtractValue(ExtractValueInst &I);
 1173 bool CallAnalyzer::visitExtractValue(ExtractValueInst &I) {
lib/Analysis/InstructionSimplify.cpp
 1835   auto *Extract = dyn_cast<ExtractValueInst>(Op1);
 1835   auto *Extract = dyn_cast<ExtractValueInst>(Op1);
 4119   if (ExtractValueInst *EV = dyn_cast<ExtractValueInst>(Val))
 4119   if (ExtractValueInst *EV = dyn_cast<ExtractValueInst>(Val))
 5353     auto *EVI = cast<ExtractValueInst>(I);
 5353     auto *EVI = cast<ExtractValueInst>(I);
lib/Analysis/LazyValueInfo.cpp
  440                                    ExtractValueInst *EVI, BasicBlock *BB);
  654     if (auto *EVI = dyn_cast<ExtractValueInst>(BBI))
  654     if (auto *EVI = dyn_cast<ExtractValueInst>(BBI))
 1164     ValueLatticeElement &BBLV, ExtractValueInst *EVI, BasicBlock *BB) {
 1285   if (auto *EVI = dyn_cast<ExtractValueInst>(Cond))
 1285   if (auto *EVI = dyn_cast<ExtractValueInst>(Cond))
lib/Analysis/Lint.cpp
  696   } else if (ExtractValueInst *Ex = dyn_cast<ExtractValueInst>(V)) {
  696   } else if (ExtractValueInst *Ex = dyn_cast<ExtractValueInst>(V)) {
lib/Analysis/MemoryBuiltins.cpp
  742 ObjectSizeOffsetVisitor::visitExtractValueInst(ExtractValueInst&) {
  965 ObjectSizeOffsetEvaluator::visitExtractValueInst(ExtractValueInst&) {
lib/Analysis/ScalarEvolution.cpp
 4546     auto *EVI = cast<ExtractValueInst>(Op);
 4546     auto *EVI = cast<ExtractValueInst>(Op);
 7714       isa<LoadInst>(I) || isa<ExtractValueInst>(I))
lib/Analysis/TypeMetadataUtils.cpp
  113     if (auto EVI = dyn_cast<ExtractValueInst>(CIU)) {
lib/Analysis/ValueTracking.cpp
 1583       const ExtractValueInst *EVI = cast<ExtractValueInst>(I);
 1583       const ExtractValueInst *EVI = cast<ExtractValueInst>(I);
 3354   Type *IndexedType = ExtractValueInst::getIndexedType(From->getType(),
 3427   if (ExtractValueInst *I = dyn_cast<ExtractValueInst>(V)) {
 3427   if (ExtractValueInst *I = dyn_cast<ExtractValueInst>(V)) {
 4178   SmallVector<const ExtractValueInst *, 2> Results;
 4181     if (const auto *EVI = dyn_cast<ExtractValueInst>(U)) {
 4181     if (const auto *EVI = dyn_cast<ExtractValueInst>(U)) {
 4208     for (const auto *Result : Results) {
lib/AsmParser/LLParser.cpp
 3350     if (!ExtractValueInst::getIndexedType(Val->getType(), Indices))
 3370         ExtractValueInst::getIndexedType(Val0->getType(), Indices);
 7255   if (!ExtractValueInst::getIndexedType(Val->getType(), Indices))
 7257   Inst = ExtractValueInst::Create(Val, Indices);
 7276   Type *IndexedType = ExtractValueInst::getIndexedType(Val0->getType(), Indices);
lib/Bitcode/Reader/BitcodeReader.cpp
 4029       I = ExtractValueInst::Create(Agg, EXTRACTVALIdx);
 4941         I = ExtractValueInst::Create(I, 0);
lib/Bitcode/Writer/BitcodeWriter.cpp
 2655     const ExtractValueInst *EVI = cast<ExtractValueInst>(&I);
 2655     const ExtractValueInst *EVI = cast<ExtractValueInst>(&I);
lib/CodeGen/Analysis.cpp
  334     } else if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(V)) {
  334     } else if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(V)) {
lib/CodeGen/AtomicExpandPass.cpp
 1281   SmallVector<ExtractValueInst *, 2> PrunedInsts;
 1283     ExtractValueInst *EV = dyn_cast<ExtractValueInst>(User);
 1283     ExtractValueInst *EV = dyn_cast<ExtractValueInst>(User);
lib/CodeGen/DwarfEHPrepare.cpp
  123     ExnObj = ExtractValueInst::Create(RI->getOperand(0), 0, "exn.obj", RI);
lib/CodeGen/GlobalISel/IRTranslator.cpp
  951   if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(&U)) {
  951   if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(&U)) {
lib/CodeGen/SelectionDAG/FastISel.cpp
 1752   const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(U);
 1752   const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(U);
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
 3796   if (const ExtractValueInst *EV = dyn_cast<ExtractValueInst>(&I))
 3796   if (const ExtractValueInst *EV = dyn_cast<ExtractValueInst>(&I))
lib/CodeGen/SjLjEHPrepare.cpp
  140     auto *EVI = dyn_cast<ExtractValueInst>(Val);
  140     auto *EVI = dyn_cast<ExtractValueInst>(Val);
lib/ExecutionEngine/Interpreter/Execution.cpp
 1932 void Interpreter::visitExtractValueInst(ExtractValueInst &I) {
 1938   ExtractValueInst::idx_iterator IdxBegin = I.idx_begin();
 1947   Type *IndexedType = ExtractValueInst::getIndexedType(Agg->getType(), I.getIndices());
 1983   ExtractValueInst::idx_iterator IdxBegin = I.idx_begin();
 1993   Type *IndexedType = ExtractValueInst::getIndexedType(Agg->getType(), I.getIndices());
lib/ExecutionEngine/Interpreter/Interpreter.h
  167   void visitExtractValueInst(ExtractValueInst &I);
lib/FuzzMutate/Operations.cpp
  215     return ExtractValueInst::Create(Srcs[0], {Idx}, "E", Inst);
lib/IR/AsmWriter.cpp
 3766   } else if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(&I)) {
 3766   } else if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(&I)) {
lib/IR/Constants.cpp
 2212   Type *ReqTy = ExtractValueInst::getIndexedType(Agg->getType(), Idxs);
 3014     return ExtractValueInst::Create(Ops[0], getIndices());
lib/IR/Core.cpp
 2962   if (auto *EV = dyn_cast<ExtractValueInst>(I))
 2962   if (auto *EV = dyn_cast<ExtractValueInst>(I))
 2974   if (auto *EV = dyn_cast<ExtractValueInst>(I))
 2974   if (auto *EV = dyn_cast<ExtractValueInst>(I))
lib/IR/Instruction.cpp
  417   if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(I1))
  417   if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(I1))
  418     return EVI->getIndices() == cast<ExtractValueInst>(I2)->getIndices();
lib/IR/Instructions.cpp
 2150 ExtractValueInst::ExtractValueInst(const ExtractValueInst &EVI)
 4121 ExtractValueInst *ExtractValueInst::cloneImpl() const {
 4122   return new ExtractValueInst(*this);
lib/IR/Verifier.cpp
  484   void visitExtractValueInst(ExtractValueInst &EVI);
 3562 void Verifier::visitExtractValueInst(ExtractValueInst &EVI) {
lib/Target/AArch64/AArch64FastISel.cpp
 3384   if (!isa<ExtractValueInst>(Cond))
 3387   const auto *EV = cast<ExtractValueInst>(Cond);
 3387   const auto *EV = cast<ExtractValueInst>(Cond);
 3457     if (!isa<ExtractValueInst>(Itr))
 3461     const auto *EVI = cast<ExtractValueInst>(Itr);
 3461     const auto *EVI = cast<ExtractValueInst>(Itr);
lib/Target/AArch64/AArch64PromoteConstant.cpp
  265   if (isa<const ExtractValueInst>(Instr) && OpIdx > 0)
lib/Target/AMDGPU/SIAnnotateControlFlow.cpp
  214   Term->setCondition(ExtractValueInst::Create(Ret, 0, "", Term));
  215   push(Term->getSuccessor(1), ExtractValueInst::Create(Ret, 1, "", Term));
  224   Term->setCondition(ExtractValueInst::Create(Ret, 0, "", Term));
  225   push(Term->getSuccessor(1), ExtractValueInst::Create(Ret, 1, "", Term));
lib/Target/AMDGPU/SIISelLowering.cpp
10999   if (const ExtractValueInst *ExtValue = dyn_cast<ExtractValueInst>(V)) {
10999   if (const ExtractValueInst *ExtValue = dyn_cast<ExtractValueInst>(V)) {
lib/Target/NVPTX/NVPTXImageOptimizer.cpp
  170   if (ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(V)) {
  170   if (ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(V)) {
lib/Target/X86/X86FastISel.cpp
  239   if (!isa<ExtractValueInst>(Cond))
  242   const auto *EV = cast<ExtractValueInst>(Cond);
  242   const auto *EV = cast<ExtractValueInst>(Cond);
  278     if (!isa<ExtractValueInst>(Itr))
  282     const auto *EVI = cast<ExtractValueInst>(Itr);
  282     const auto *EVI = cast<ExtractValueInst>(Itr);
lib/Transforms/Coroutines/CoroSplit.cpp
  437     auto EVI = dyn_cast<ExtractValueInst>((UI++)->getUser());
lib/Transforms/IPO/DeadArgumentElimination.cpp
  584       if (ExtractValueInst *Ext = dyn_cast<ExtractValueInst>(U.getUser())) {
  584       if (ExtractValueInst *Ext = dyn_cast<ExtractValueInst>(U.getUser())) {
  987               V = ExtractValueInst::Create(New, NewRetIdxs[i], "newret",
 1051               ExtractValueInst *EV = ExtractValueInst::Create(OldRet, i,
 1051               ExtractValueInst *EV = ExtractValueInst::Create(OldRet, i,
lib/Transforms/IPO/IPConstantPropagation.cpp
  256       if (ExtractValueInst *EV = dyn_cast<ExtractValueInst>(Ins))
  256       if (ExtractValueInst *EV = dyn_cast<ExtractValueInst>(Ins))
lib/Transforms/InstCombine/InstCombineCompares.cpp
 1335   return ExtractValueInst::Create(Call, 1, "sadd.overflow");
 4751   return ExtractValueInst::Create(Call, 1);
 5575     if (auto *EVI = dyn_cast<ExtractValueInst>(Op0))
 5575     if (auto *EVI = dyn_cast<ExtractValueInst>(Op0))
 5579           return ExtractValueInst::Create(ACXI, 1);
lib/Transforms/InstCombine/InstCombineInternal.h
  445   Instruction *visitExtractValueInst(ExtractValueInst &EV);
lib/Transforms/InstCombine/InstCombineSelect.cpp
 1934     auto *Extract = dyn_cast<ExtractValueInst>(V);
 1934     auto *Extract = dyn_cast<ExtractValueInst>(V);
lib/Transforms/InstCombine/InstructionCombining.cpp
 2644 Instruction *InstCombiner::visitExtractValueInst(ExtractValueInst &EV) {
 2670         return ExtractValueInst::Create(IV->getAggregateOperand(),
 2702       return ExtractValueInst::Create(IV->getInsertedValueOperand(),
 2740       for (ExtractValueInst::idx_iterator I = EV.idx_begin(), E = EV.idx_end();
lib/Transforms/Instrumentation/ControlHeightReduction.cpp
  499       isa<ShuffleVectorInst>(I) || isa<ExtractValueInst>(I) ||
lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
  453   void visitExtractValueInst(ExtractValueInst &I);
 1430 void DFSanVisitor::visitExtractValueInst(ExtractValueInst &I) {
 1749       ExtractValueInst *ExVal =
 1750           ExtractValueInst::Create(NewCS.getInstruction(), 0, "", Next);
 1752       ExtractValueInst *ExShadow =
 1753           ExtractValueInst::Create(NewCS.getInstruction(), 1, "", Next);
lib/Transforms/Instrumentation/MemorySanitizer.cpp
 3578   void visitExtractValueInst(ExtractValueInst &I) {
lib/Transforms/Scalar/EarlyCSE.cpp
  115            isa<ShuffleVectorInst>(Inst) || isa<ExtractValueInst>(Inst) ||
  233   if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(Inst))
  233   if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(Inst))
lib/Transforms/Scalar/GVN.cpp
  328 GVN::Expression GVN::ValueTable::createExtractvalueExpr(ExtractValueInst *EI) {
  352   for (ExtractValueInst::idx_iterator II = EI->idx_begin(), IE = EI->idx_end();
  539       exp = createExtractvalueExpr(cast<ExtractValueInst>(I));
lib/Transforms/Scalar/LICM.cpp
 1040           isa<ShuffleVectorInst>(I) || isa<ExtractValueInst>(I) ||
lib/Transforms/Scalar/NewGVN.cpp
 1209   } else if (auto *EI = dyn_cast<ExtractValueInst>(I)) {
 1209   } else if (auto *EI = dyn_cast<ExtractValueInst>(I)) {
 1821   if (auto *EI = dyn_cast<ExtractValueInst>(I)) {
 1821   if (auto *EI = dyn_cast<ExtractValueInst>(I)) {
lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
  583   if (isa<ExtractValueInst>(I))
lib/Transforms/Scalar/SCCP.cpp
  621   void visitExtractValueInst(ExtractValueInst &EVI);
  887 void SCCPSolver::visitExtractValueInst(ExtractValueInst &EVI) {
 1455         if (isa<ExtractValueInst>(I) || isa<InsertValueInst>(I))
 1489       if (isa<ExtractValueInst>(I))
lib/Transforms/Utils/Evaluator.cpp
  422     } else if (auto *EVI = dyn_cast<ExtractValueInst>(CurInst)) {
  422     } else if (auto *EVI = dyn_cast<ExtractValueInst>(CurInst)) {
lib/Transforms/Utils/FunctionComparator.cpp
  598   if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(L)) {
  598   if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(L)) {
  600     ArrayRef<unsigned> RIndices = cast<ExtractValueInst>(R)->getIndices();
lib/Transforms/Utils/SimplifyIndVar.cpp
  458   SmallVector<ExtractValueInst *, 4> ToDelete;
  461     if (auto *EVI = dyn_cast<ExtractValueInst>(U)) {
  461     if (auto *EVI = dyn_cast<ExtractValueInst>(U)) {
  472   for (auto *EVI : ToDelete)
lib/Transforms/Vectorize/SLPVectorizer.cpp
  431   ExtractValueInst *EI = cast<ExtractValueInst>(E);
  431   ExtractValueInst *EI = cast<ExtractValueInst>(E);