| /freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | TypeMetadataUtils.cpp | 127 if (auto EVI = dyn_cast<ExtractValueInst>(CIU)) { in findDevirtualizableCallsForTypeCheckedLoad() local 128 if (EVI->getNumIndices() == 1 && EVI->getIndices()[0] == 0) { in findDevirtualizableCallsForTypeCheckedLoad() 129 LoadedPtrs.push_back(EVI); in findDevirtualizableCallsForTypeCheckedLoad() 132 if (EVI->getNumIndices() == 1 && EVI->getIndices()[0] == 1) { in findDevirtualizableCallsForTypeCheckedLoad() 133 Preds.push_back(EVI); in findDevirtualizableCallsForTypeCheckedLoad()
|
| H A D | LazyValueInfo.cpp | 379 solveBlockValueExtractValue(ExtractValueInst *EVI, BasicBlock *BB); 613 if (auto *EVI = dyn_cast<ExtractValueInst>(BBI)) in solveBlockValueImpl() local 614 return solveBlockValueExtractValue(EVI, BB); in solveBlockValueImpl() 1079 LazyValueInfoImpl::solveBlockValueExtractValue(ExtractValueInst *EVI, in solveBlockValueExtractValue() argument 1081 if (auto *WO = dyn_cast<WithOverflowInst>(EVI->getAggregateOperand())) in solveBlockValueExtractValue() 1082 if (EVI->getNumIndices() == 1 && *EVI->idx_begin() == 0) in solveBlockValueExtractValue() 1088 EVI->getAggregateOperand(), EVI->getIndices(), in solveBlockValueExtractValue() 1089 EVI->getDataLayout())) in solveBlockValueExtractValue() 1090 return getBlockValue(V, BB, EVI); in solveBlockValueExtractValue() 1351 if (auto *EVI = dyn_cast<ExtractValueInst>(Cond)) in getValueFromCondition() local [all …]
|
| H A D | ValueTracking.cpp | 2125 const ExtractValueInst *EVI = cast<ExtractValueInst>(I); in computeKnownBitsFromOperator() local 2126 if (EVI->getNumIndices() != 1) break; in computeKnownBitsFromOperator() 2127 if (EVI->getIndices()[0] == 0) { in computeKnownBitsFromOperator() 7275 if (const auto *EVI = dyn_cast<ExtractValueInst>(U)) { in isOverflowIntrinsicNoWrap() local 7276 assert(EVI->getNumIndices() == 1 && "Obvious from CI's type"); in isOverflowIntrinsicNoWrap() 7278 if (EVI->getIndices()[0] == 0) in isOverflowIntrinsicNoWrap() 7279 Results.push_back(EVI); in isOverflowIntrinsicNoWrap() 7281 assert(EVI->getIndices()[0] == 1 && "Obvious from CI's type"); in isOverflowIntrinsicNoWrap() 7283 for (const auto *U : EVI->users()) in isOverflowIntrinsicNoWrap()
|
| /freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | SjLjEHPrepare.cpp | 163 auto *EVI = dyn_cast<ExtractValueInst>(Val); in substituteLPadValues() local 164 if (!EVI) in substituteLPadValues() 166 if (EVI->getNumIndices() != 1) in substituteLPadValues() 168 if (*EVI->idx_begin() == 0) in substituteLPadValues() 169 EVI->replaceAllUsesWith(ExnVal); in substituteLPadValues() 170 else if (*EVI->idx_begin() == 1) in substituteLPadValues() 171 EVI->replaceAllUsesWith(SelVal); in substituteLPadValues() 172 if (EVI->use_empty()) in substituteLPadValues() 173 EVI->eraseFromParent(); in substituteLPadValues()
|
| H A D | Analysis.cpp | 357 } else if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(V)) { in getNoopInput() local 361 ArrayRef<unsigned> ExtractLoc = EVI->getIndices(); in getNoopInput()
|
| H A D | CodeGenPrepare.cpp | 2928 ExtractValueInst *EVI = nullptr; in dupRetToEnableTailCallOpts() local 2936 EVI = dyn_cast<ExtractValueInst>(V); in dupRetToEnableTailCallOpts() 2937 if (EVI) { in dupRetToEnableTailCallOpts() 2938 V = EVI->getOperand(0); in dupRetToEnableTailCallOpts() 2939 if (!llvm::all_of(EVI->indices(), [](unsigned idx) { return idx == 0; })) in dupRetToEnableTailCallOpts() 2984 while (&*BI == BCI || &*BI == EVI || isa<PseudoProbeInst>(BI) || in dupRetToEnableTailCallOpts()
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | SCCPSolver.cpp | 675 void handleExtractOfWithOverflow(ExtractValueInst &EVI, 697 void visitExtractValueInst(ExtractValueInst &EVI); 1408 void SCCPInstVisitor::handleExtractOfWithOverflow(ExtractValueInst &EVI, in handleExtractOfWithOverflow() argument 1414 addAdditionalUser(LHS, &EVI); in handleExtractOfWithOverflow() 1415 addAdditionalUser(RHS, &EVI); in handleExtractOfWithOverflow() 1424 mergeInValue(&EVI, ValueLatticeElement::getRange(Res)); in handleExtractOfWithOverflow() 1430 return (void)markConstant(&EVI, ConstantInt::getFalse(EVI.getType())); in handleExtractOfWithOverflow() 1431 markOverdefined(&EVI); in handleExtractOfWithOverflow() 1435 void SCCPInstVisitor::visitExtractValueInst(ExtractValueInst &EVI) { in visitExtractValueInst() argument 1438 if (EVI.getType()->isStructTy()) in visitExtractValueInst() [all …]
|
| H A D | SimplifyIndVar.cpp | 437 if (auto *EVI = dyn_cast<ExtractValueInst>(U)) { in eliminateOverflowIntrinsic() local 438 if (EVI->getIndices()[0] == 1) in eliminateOverflowIntrinsic() 439 EVI->replaceAllUsesWith(ConstantInt::getFalse(WO->getContext())); in eliminateOverflowIntrinsic() 441 assert(EVI->getIndices()[0] == 0 && "Only two possibilities!"); in eliminateOverflowIntrinsic() 442 EVI->replaceAllUsesWith(NewResult); in eliminateOverflowIntrinsic() 443 NewResult->setDebugLoc(EVI->getDebugLoc()); in eliminateOverflowIntrinsic() 445 ToDelete.push_back(EVI); in eliminateOverflowIntrinsic() 449 for (auto *EVI : ToDelete) in eliminateOverflowIntrinsic() local 450 EVI->eraseFromParent(); in eliminateOverflowIntrinsic()
|
| H A D | BasicBlockUtils.cpp | 1433 if (ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(V)) { in FoldReturnIntoUncondBranch() local 1434 V = EVI->getOperand(0); in FoldReturnIntoUncondBranch() 1435 NewEV = EVI->clone(); in FoldReturnIntoUncondBranch()
|
| H A D | FunctionComparator.cpp | 738 if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(L)) { in cmpOperations() local 739 ArrayRef<unsigned> LIndices = EVI->getIndices(); in cmpOperations()
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/NVPTX/ |
| H A D | NVPTXImageOptimizer.cpp | 168 if (ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(V)) { in cleanupValue() local 169 return cleanupValue(EVI->getAggregateOperand()); in cleanupValue()
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/DirectX/ |
| H A D | DXILOpLowering.cpp | 95 if (auto *EVI = dyn_cast<ExtractValueInst>(U.getUser())) in replaceNamedStructUses() local 96 EVI->setOperand(0, DXILOp); in replaceNamedStructUses() 340 if (auto *EVI = dyn_cast<ExtractValueInst>(U.getUser())) { in replaceResRetUses() local 341 ArrayRef<unsigned> Indices = EVI->getIndices(); in replaceResRetUses() 357 EVI->replaceAllUsesWith(CheckOp); in replaceResRetUses() 358 EVI->eraseFromParent(); in replaceResRetUses() 377 Value *EVI = IRB.CreateExtractValue(Op, 0); in replaceResRetUses() local 378 OldResult->replaceAllUsesWith(EVI); in replaceResRetUses()
|
| H A D | DXILIntrinsicExpansion.cpp | 641 auto *EVI = dyn_cast<ExtractValueInst>(U); in expandBufferLoadIntrinsic() local 642 if (!EVI) in expandBufferLoadIntrinsic() 645 ArrayRef<unsigned> Indices = EVI->getIndices(); in expandBufferLoadIntrinsic() 650 EVI->replaceAllUsesWith(Result); in expandBufferLoadIntrinsic() 662 EVI->replaceAllUsesWith(CheckBit); in expandBufferLoadIntrinsic() 664 EVI->eraseFromParent(); in expandBufferLoadIntrinsic()
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
| H A D | Scalarizer.cpp | 295 bool visitExtractValueInst(ExtractValueInst &EVI); 1064 bool ScalarizerVisitor::visitExtractValueInst(ExtractValueInst &EVI) { in visitExtractValueInst() argument 1065 Value *Op = EVI.getOperand(0); in visitExtractValueInst() 1097 IRBuilder<> Builder(&EVI); in visitExtractValueInst() 1098 Scatterer Op0 = scatter(&EVI, Op, *VS); in visitExtractValueInst() 1099 assert(!EVI.getIndices().empty() && "Make sure an index exists"); in visitExtractValueInst() 1101 unsigned Index = EVI.getIndices()[0]; in visitExtractValueInst() 1104 Op0[OpIdx], Index, EVI.getName() + ".elem" + Twine(Index)); in visitExtractValueInst() 1108 gather(&EVI, Res, *VS); in visitExtractValueInst()
|
| H A D | EarlyCSE.cpp | 301 if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(Inst)) in getHashValueImpl() local 302 return hash_combine(EVI->getOpcode(), EVI->getOperand(0), in getHashValueImpl() 303 hash_combine_range(EVI->indices())); in getHashValueImpl()
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Coroutines/ |
| H A D | CoroSplit.cpp | 499 auto *EVI = dyn_cast<ExtractValueInst>(U.getUser()); in replaceRetconOrAsyncSuspendUses() local 500 if (!EVI || EVI->getNumIndices() != 1) in replaceRetconOrAsyncSuspendUses() 503 EVI->replaceAllUsesWith(Args[EVI->getIndices().front()]); in replaceRetconOrAsyncSuspendUses() 504 EVI->eraseFromParent(); in replaceRetconOrAsyncSuspendUses()
|
| /freebsd/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/ |
| H A D | FastISel.cpp | 1708 const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(U); in selectExtractValue() local 1709 if (!EVI) in selectExtractValue() 1714 EVT RealVT = TLI.getValueType(DL, EVI->getType(), /*AllowUnknown=*/true); in selectExtractValue() 1721 const Value *Op0 = EVI->getOperand(0); in selectExtractValue() 1735 unsigned VTIndex = ComputeLinearIndex(AggTy, EVI->getIndices()); in selectExtractValue() 1744 updateValueMap(EVI, ResultReg); in selectExtractValue()
|
| /freebsd/contrib/llvm-project/llvm/lib/SandboxIR/ |
| H A D | Context.cpp | 498 ExtractValueInst *Context::createExtractValueInst(llvm::ExtractValueInst *EVI) { in createExtractValueInst() argument 500 std::unique_ptr<ExtractValueInst>(new ExtractValueInst(EVI, *this)); in createExtractValueInst()
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombineVectorOps.cpp | 998 auto *EVI = dyn_cast_or_null<ExtractValueInst>(Elt); in foldAggregateConstructionIntoAggregateReuse() local 999 if (!EVI) in foldAggregateConstructionIntoAggregateReuse() 1002 Value *SourceAggregate = EVI->getAggregateOperand(); in foldAggregateConstructionIntoAggregateReuse() 1008 if (EVI->getNumIndices() != 1 || EltIdx != EVI->getIndices().front()) in foldAggregateConstructionIntoAggregateReuse()
|
| /freebsd/contrib/llvm-project/llvm/lib/IR/ |
| H A D | Instruction.cpp | 898 if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(I1)) in hasSameSpecialState() local 899 return EVI->getIndices() == cast<ExtractValueInst>(I2)->getIndices(); in hasSameSpecialState()
|
| H A D | Instructions.cpp | 2550 ExtractValueInst::ExtractValueInst(const ExtractValueInst &EVI) in ExtractValueInst() argument 2551 : UnaryInstruction(EVI.getType(), ExtractValue, EVI.getOperand(0), in ExtractValueInst() 2553 Indices(EVI.Indices) { in ExtractValueInst() 2554 SubclassOptionalData = EVI.SubclassOptionalData; in ExtractValueInst()
|
| H A D | Verifier.cpp | 606 void visitExtractValueInst(ExtractValueInst &EVI); 4519 void Verifier::visitExtractValueInst(ExtractValueInst &EVI) { in visitExtractValueInst() argument 4520 Check(ExtractValueInst::getIndexedType(EVI.getAggregateOperand()->getType(), in visitExtractValueInst() 4521 EVI.getIndices()) == EVI.getType(), in visitExtractValueInst() 4522 "Invalid ExtractValueInst operands!", &EVI); in visitExtractValueInst() 4524 visitInstruction(EVI); in visitExtractValueInst()
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/DirectX/DXILWriter/ |
| H A D | DXILBitcodeWriter.cpp | 2273 const ExtractValueInst *EVI = cast<ExtractValueInst>(&I); in writeInstruction() local 2274 Vals.append(EVI->idx_begin(), EVI->idx_end()); in writeInstruction()
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
| H A D | LoopVectorize.cpp | 3298 if (auto *EVI = dyn_cast<ExtractValueInst>(&I)) { in collectLoopUniforms() local 3299 if (IsOutOfScope(EVI->getAggregateOperand())) { in collectLoopUniforms() 3300 AddToWorklistIfAllowed(EVI); in collectLoopUniforms() 3305 assert(isa<CallInst>(EVI->getAggregateOperand()) && in collectLoopUniforms() 7947 auto *EVI = cast<ExtractValueInst>(I); in tryToWiden() local 7948 assert(EVI->getNumIndices() == 1 && "Expected one extractvalue index"); in tryToWiden() 7949 unsigned Idx = EVI->getIndices()[0]; in tryToWiden()
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/SandboxIR/ |
| H A D | Instruction.h | 1109 ExtractValueInst(llvm::ExtractValueInst *EVI, Context &Ctx) in ExtractValueInst() argument 1110 : UnaryInstruction(ClassID::ExtractValue, Opcode::ExtractValue, EVI, in ExtractValueInst()
|