| /llvm-project-15.0.7/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombineInternal.h | 154 Instruction *visitAllocSite(Instruction &FI); 165 Instruction * 180 Instruction *visitInstruction(Instruction &I) { return nullptr; } in visitInstruction() 252 Instruction *transformSExtICmp(ICmpInst *ICI, Instruction &CI); 384 Instruction *InsertNewInstBefore(Instruction *New, Instruction &Old) { in InsertNewInstBefore() 394 Instruction *InsertNewInstWith(Instruction *New, Instruction &Old) { in InsertNewInstWith() 405 Instruction *replaceInstUsesWith(Instruction &I, Value *V) { in replaceInstUsesWith() 453 Instruction *eraseInstFromFunction(Instruction &I) override { in eraseInstFromFunction() 593 Instruction *Shr, const APInt &ShrOp1, Instruction *Shl, 612 Instruction *foldOpIntoPhi(Instruction &I, PHINode *PN); [all …]
|
| /llvm-project-15.0.7/llvm/lib/IR/ |
| H A D | Instruction.cpp | 44 Instruction::~Instruction() { in ~Instruction() 77 iplist<Instruction>::iterator Instruction::eraseFromParent() { in eraseFromParent() 83 void Instruction::insertBefore(Instruction *InsertPos) { in insertBefore() 89 void Instruction::insertAfter(Instruction *InsertPos) { in insertAfter() 96 void Instruction::moveBefore(Instruction *MovePos) { in moveBefore() 100 void Instruction::moveAfter(Instruction *MovePos) { in moveAfter() 110 bool Instruction::comesBefore(const Instruction *Other) const { in comesBefore() 294 void Instruction::copyFastMathFlags(const Instruction *I) { in copyFastMathFlags() 534 bool Instruction::isSameOperationAs(const Instruction *I, in isSameOperationAs() 820 Instruction *Instruction::cloneImpl() const { in cloneImpl() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Scalar/ |
| H A D | SpeculativeExecution.cpp | 217 case Instruction::Add: in ComputeSpeculationCost() 218 case Instruction::Mul: in ComputeSpeculationCost() 219 case Instruction::And: in ComputeSpeculationCost() 220 case Instruction::Or: in ComputeSpeculationCost() 222 case Instruction::Shl: in ComputeSpeculationCost() 223 case Instruction::Sub: in ComputeSpeculationCost() 224 case Instruction::LShr: in ComputeSpeculationCost() 225 case Instruction::AShr: in ComputeSpeculationCost() 226 case Instruction::Xor: in ComputeSpeculationCost() 227 case Instruction::ZExt: in ComputeSpeculationCost() [all …]
|
| H A D | Float2Int.cpp | 113 case Instruction::FAdd: return Instruction::Add; in mapBinOpcode() 114 case Instruction::FSub: return Instruction::Sub; in mapBinOpcode() 115 case Instruction::FMul: return Instruction::Mul; in mapBinOpcode() 224 if (Instruction *OI = dyn_cast<Instruction>(O)) { in walkBackwards() 242 if (Instruction *OI = dyn_cast<Instruction>(O)) { in calcRange() 299 case Instruction::FAdd: in calcRange() 300 case Instruction::FSub: in calcRange() 320 case Instruction::FCmp: in calcRange() 373 Instruction *UI = dyn_cast<Instruction>(U); in validateAndTransform() 440 } else if (Instruction *VI = dyn_cast<Instruction>(V)) { in convert() [all …]
|
| H A D | LoopRerollPass.cpp | 303 bool isPairInSame(Instruction *J1, Instruction *J2) { in isPairInSame() 317 void recordPair(Instruction *J1, Instruction *J2, unsigned i) { in recordPair() 447 Instruction *IV; 701 Instruction *User = cast<Instruction>(U.getUser()); in collectInLoopUserSet() 715 if (Instruction *Op = dyn_cast<Instruction>(U)) in collectInLoopUserSet() 748 if (Instruction *I = dyn_cast<Instruction>(IVU)) { in isSimpleArithmeticOp() 805 if (Instruction *II = dyn_cast<Instruction>(I)) { in collectPossibleRoots() 871 Instruction *I = cast<Instruction>(V); in findRootsRecursive() 1189 Instruction *IVUser = dyn_cast<Instruction>(U); in validate() 1193 Instruction *UUser = dyn_cast<Instruction>(UU); in validate() [all …]
|
| H A D | Reassociate.cpp | 120 Instruction *I = dyn_cast<Instruction>(V); in XorOpnd() 199 Instruction *I = dyn_cast<Instruction>(V); in getRank() 883 Instruction *TheNeg = cast<Instruction>(U); in NegateValue() 1000 for (auto Op : {Instruction::Add, Instruction::Sub, Instruction::Mul, in shouldConvertOrWithNoCommonBitsToAdd() 1127 if (Instruction *I2 = dyn_cast<Instruction>(X)) in FindInOperandList() 1136 if (Instruction *I2 = dyn_cast<Instruction>(X)) in FindInOperandList() 1749 if (Instruction *VI = dyn_cast<Instruction>(V)) in OptimizeAdd() 1885 if (Instruction *MI = dyn_cast<Instruction>(M)) in buildMinimalMultiplyDAG() 2031 if (Instruction *OpInst = dyn_cast<Instruction>(Op)) in RecursivelyEraseDeadInsts() 2369 if (Instruction *VI = dyn_cast<Instruction>(V)) in ReassociateExpression() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Transforms/AggressiveInstCombine/ |
| H A D | TruncInstCombine.cpp | 52 case Instruction::ZExt: in getRelevantOperands() 53 case Instruction::SExt: in getRelevantOperands() 57 case Instruction::Add: in getRelevantOperands() 58 case Instruction::Sub: in getRelevantOperands() 59 case Instruction::Mul: in getRelevantOperands() 60 case Instruction::And: in getRelevantOperands() 61 case Instruction::Or: in getRelevantOperands() 62 case Instruction::Xor: in getRelevantOperands() 63 case Instruction::Shl: in getRelevantOperands() 64 case Instruction::LShr: in getRelevantOperands() [all …]
|
| /llvm-project-15.0.7/llvm/lib/FuzzMutate/ |
| H A D | Operations.cpp | 97 case Instruction::Add: in binOpDescriptor() 98 case Instruction::Sub: in binOpDescriptor() 99 case Instruction::Mul: in binOpDescriptor() 100 case Instruction::SDiv: in binOpDescriptor() 101 case Instruction::UDiv: in binOpDescriptor() 102 case Instruction::SRem: in binOpDescriptor() 103 case Instruction::URem: in binOpDescriptor() 104 case Instruction::Shl: in binOpDescriptor() 107 case Instruction::And: in binOpDescriptor() 108 case Instruction::Or: in binOpDescriptor() [all …]
|
| /llvm-project-15.0.7/llvm/include/llvm/IR/ |
| H A D | Operator.h | 43 if (const Instruction *I = dyn_cast<Instruction>(this)) in getOpcode() 51 if (const Instruction *I = dyn_cast<Instruction>(V)) in getOpcode() 81 friend class Instruction; 119 return (isa<Instruction>(V) && classof(cast<Instruction>(V))) || in classof() 133 friend class Instruction; 160 return (isa<Instruction>(V) && classof(cast<Instruction>(V))) || in classof() 169 friend class Instruction; 304 case Instruction::FNeg: in classof() 305 case Instruction::FAdd: in classof() 317 case Instruction::PHI: in classof() [all …]
|
| H A D | Instruction.h | 42 class Instruction : public User, 83 Instruction(const Instruction &) = delete; 84 Instruction &operator=(const Instruction &) = delete; 88 Instruction *user_back() { return cast<Instruction>(*user_begin());} 89 const Instruction *user_back() const { return cast<Instruction>(*user_begin());} 233 case Instruction::Invoke: 234 case Instruction::Resume: 615 case Instruction::Call: 673 const Instruction * 684 const Instruction * [all …]
|
| H A D | Instructions.h | 156 return isa<Instruction>(V) && classof(cast<Instruction>(V)); in classof() 276 return isa<Instruction>(V) && classof(cast<Instruction>(V)); in classof() 405 return isa<Instruction>(V) && classof(cast<Instruction>(V)); in classof() 483 return isa<Instruction>(V) && classof(cast<Instruction>(V)); 683 return isa<Instruction>(V) && classof(cast<Instruction>(V)); 887 return isa<Instruction>(V) && classof(cast<Instruction>(V)); 1139 return isa<Instruction>(V) && classof(cast<Instruction>(V)); 1348 return isa<Instruction>(V) && classof(cast<Instruction>(V)); 1464 return isa<Instruction>(V) && classof(cast<Instruction>(V)); 1740 : Instruction(S1->getType(), Instruction::Select, [all …]
|
| H A D | NoFolder.h | 48 Value *FoldBinOp(Instruction::BinaryOps Opc, Value *LHS, in FoldBinOp() 63 Value *FoldBinOpFMF(Instruction::BinaryOps Opc, Value *LHS, Value *RHS, in FoldBinOpFMF() 68 Value *FoldUnOpFMF(Instruction::UnaryOps Opc, Value *V, in FoldUnOpFMF() 114 Instruction *CreateCast(Instruction::CastOps Op, Constant *C, in CreateCast() 123 Instruction *CreatePointerBitCastOrAddrSpaceCast( in CreatePointerBitCastOrAddrSpaceCast() 128 Instruction *CreateIntCast(Constant *C, Type *DestTy, in CreateIntCast() 133 Instruction *CreateFPCast(Constant *C, Type *DestTy) const override { in CreateFPCast() 138 return CreateCast(Instruction::BitCast, C, DestTy); in CreateBitCast() 142 return CreateCast(Instruction::IntToPtr, C, DestTy); in CreateIntToPtr() 146 return CreateCast(Instruction::PtrToInt, C, DestTy); in CreatePtrToInt() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Target/SystemZ/ |
| H A D | SystemZTargetTransformInfo.cpp | 36 if (const Instruction *User = dyn_cast<Instruction>(U)) { in isUsedAsMemCpySource() 450 Opcode == Instruction::SDiv || Opcode == Instruction::SRem; in getArithmeticInstrCost() 452 Opcode == Instruction::UDiv || Opcode == Instruction::URem; in getArithmeticInstrCost() 475 if (Opcode == Instruction::FAdd || Opcode == Instruction::FSub || in getArithmeticInstrCost() 476 Opcode == Instruction::FMul || Opcode == Instruction::FDiv) in getArithmeticInstrCost() 487 if (const Instruction *I = dyn_cast<Instruction>(A)) in getArithmeticInstrCost() 497 if (const Instruction *I = dyn_cast<Instruction>(A)) in getArithmeticInstrCost() 528 if (Opcode == Instruction::Shl || Opcode == Instruction::LShr || in getArithmeticInstrCost() 752 if (Opcode == Instruction::ZExt || Opcode == Instruction::UIToFP) in getBoolVecToIntConversionCost() 1025 const Instruction *UserI = cast<Instruction>(*Ld->user_begin()); in isFoldableLoad() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Target/ARM/ |
| H A D | MVELaneInterleavingPass.cpp | 146 cast<Instruction>(*E->user_begin())->getOpcode() != Instruction::Mul) { in isProfitableToInterleave() 186 case Instruction::SExt: in tryInterleave() 187 case Instruction::ZExt: in tryInterleave() 227 case Instruction::Add: in tryInterleave() 228 case Instruction::Sub: in tryInterleave() 229 case Instruction::Mul: in tryInterleave() 230 case Instruction::AShr: in tryInterleave() 231 case Instruction::LShr: in tryInterleave() 232 case Instruction::Shl: in tryInterleave() 233 case Instruction::ICmp: in tryInterleave() [all …]
|
| /llvm-project-15.0.7/llvm/include/llvm/Analysis/ |
| H A D | IVDescriptors.h | 27 class Instruction; variable 88 InstDesc(bool IsRecur, Instruction *I, Instruction *ExactFP = nullptr) 92 InstDesc(Instruction *I, RecurKind K, Instruction *ExactFP = nullptr) 111 Instruction *PatternLastInst; 115 Instruction *ExactFPMathInst; 134 static bool areAllUsesIn(Instruction *I, SmallPtrSetImpl<Instruction *> &Set); 192 MapVector<Instruction *, Instruction *> &SinkAfter, 280 Instruction *LoopExitInstr = nullptr; 287 Instruction *ExactFPMathInst = nullptr; 297 SmallPtrSet<Instruction *, 8> CastInsts; [all …]
|
| H A D | MustExecute.h | 40 class Instruction; variable 275 typedef const Instruction *value_type; 277 typedef const Instruction **pointer; 278 typedef const Instruction *&reference; 345 void reset(const Instruction *I); 354 const Instruction *advance(); 366 const Instruction *CurInst; 371 const Instruction *Head, *Tail; 470 bool findInContextOf(const Instruction *I, const Instruction *PP) { in findInContextOf() 494 const Instruction * [all …]
|
| H A D | InstructionPrecedenceTracking.h | 28 class Instruction; variable 34 DenseMap<const BasicBlock *, const Instruction *> FirstSpecialInsts; 54 const Instruction *getFirstSpecialInstruction(const BasicBlock *BB); 62 bool isPreceededBySpecialInstruction(const Instruction *Insn); 81 void removeInstruction(const Instruction *Inst); 86 void removeUsersOf(const Instruction *Inst); 103 const Instruction *getFirstICFI(const BasicBlock *BB) { in getFirstICFI() 114 bool isDominatedByICFIFromSameBlock(const Instruction *Insn) { in isDominatedByICFIFromSameBlock() 118 bool isSpecialInstruction(const Instruction *Insn) const override; 125 const Instruction *getFirstMemoryWrite(const BasicBlock *BB) { in getFirstMemoryWrite() [all …]
|
| /llvm-project-15.0.7/llvm/test/Analysis/IRSimilarityIdentifier/ |
| H A D | basic.ll | 9 ; CHECK-NEXT: Start Instruction: store i32 5, i32* %5, align 4 10 ; CHECK-NEXT: End Instruction: store i32 6, i32* %6, align 4 12 ; CHECK-NEXT: Start Instruction: store i32 4, i32* %4, align 4 13 ; CHECK-NEXT: End Instruction: store i32 5, i32* %5, align 4 15 ; CHECK-NEXT: Start Instruction: store i32 4, i32* %4, align 4 16 ; CHECK-NEXT: End Instruction: store i32 5, i32* %5, align 4 18 ; CHECK-NEXT: Start Instruction: store i32 4, i32* %4, align 4 19 ; CHECK-NEXT: End Instruction: store i32 5, i32* %5, align 4 22 ; CHECK-NEXT: Start Instruction: store i32 4, i32* %4, align 4 23 ; CHECK-NEXT: End Instruction: store i32 6, i32* %6, align 4 [all …]
|
| /llvm-project-15.0.7/llvm/include/llvm/Transforms/InstCombine/ |
| H A D | InstCombiner.h | 128 if (isa<Instruction>(V)) { in getComplexity() 286 case Instruction::Select: in canFreelyInvertAllUsersOf() 292 case Instruction::Br: in canFreelyInvertAllUsersOf() 325 case Instruction::SRem: // X % 1 = 0 in getSafeVectorConstantForBinop() 341 case Instruction::SDiv: // 0 / X = 0 in getSafeVectorConstantForBinop() 343 case Instruction::SRem: // 0 % X = 0 in getSafeVectorConstantForBinop() 396 Instruction *InsertNewInstBefore(Instruction *New, Instruction &Old) { in InsertNewInstBefore() 406 Instruction *InsertNewInstWith(Instruction *New, Instruction &Old) { in InsertNewInstWith() 417 Instruction *replaceInstUsesWith(Instruction &I, Value *V) { in replaceInstUsesWith() 438 Instruction *replaceOperand(Instruction &I, unsigned OpNum, Value *V) { in replaceOperand() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Analysis/ |
| H A D | IVDescriptors.cpp | 77 Instruction *I, *J = cast<Instruction>(Phi->use_begin()->getUser()); in lookThroughAnd() 439 Instruction *UI = cast<Instruction>(U); in AddReductionVar() 742 Instruction *I1 = in isConditionalRdxPattern() 777 case Instruction::Or: in isRecurrenceInstr() 812 Instruction *I, SmallPtrSetImpl<Instruction *> &Insts, in hasMultipleUsesOf() 926 MapVector<Instruction *, Instruction *> &SinkAfter, DominatorTree *DT) { in isFirstOrderRecurrence() argument 1155 if (RedOp == Instruction::ICmp || RedOp == Instruction::FCmp) in getReductionOpChain() 1158 auto getNextInstruction = [&](Instruction *Cur) -> Instruction * { in getReductionOpChain() 1160 Instruction *UI = cast<Instruction>(User); in getReductionOpChain() 1163 if (RedOp == Instruction::ICmp || RedOp == Instruction::FCmp) { in getReductionOpChain() [all …]
|
| /llvm-project-15.0.7/llvm/include/llvm/Transforms/Utils/ |
| H A D | InstructionWorklist.h | 26 SmallVector<Instruction *, 256> Worklist; 31 SmallSetVector<Instruction *, 16> Deferred; 44 void add(Instruction *I) { in add() 52 if (Instruction *I = dyn_cast<Instruction>(V)) in addValue() 58 void push(Instruction *I) { in push() 69 if (Instruction *I = dyn_cast<Instruction>(V)) in pushValue() 73 Instruction *popDeferred() { in popDeferred() 85 void remove(Instruction *I) { in remove() 96 Instruction *removeOne() { in removeOne() 106 void pushUsersToWorkList(Instruction &I) { in pushUsersToWorkList() [all …]
|
| /llvm-project-15.0.7/llvm/unittests/Transforms/Utils/ |
| H A D | IntegerDivisionTest.cpp | 41 EXPECT_TRUE(BB->front().getOpcode() == Instruction::SDiv); in TEST() 46 EXPECT_TRUE(BB->front().getOpcode() == Instruction::AShr); in TEST() 48 Instruction* Quotient = dyn_cast<Instruction>(cast<User>(Ret)->getOperand(0)); in TEST() 71 EXPECT_TRUE(BB->front().getOpcode() == Instruction::UDiv); in TEST() 78 Instruction* Quotient = dyn_cast<Instruction>(cast<User>(Ret)->getOperand(0)); in TEST() 108 Instruction* Remainder = dyn_cast<Instruction>(cast<User>(Ret)->getOperand(0)); in TEST() 138 Instruction* Remainder = dyn_cast<Instruction>(cast<User>(Ret)->getOperand(0)); in TEST() 169 Instruction* Quotient = dyn_cast<Instruction>(cast<User>(Ret)->getOperand(0)); in TEST() 199 Instruction* Quotient = dyn_cast<Instruction>(cast<User>(Ret)->getOperand(0)); in TEST() 229 Instruction* Remainder = dyn_cast<Instruction>(cast<User>(Ret)->getOperand(0)); in TEST() [all …]
|
| /llvm-project-15.0.7/llvm/lib/CodeGen/ |
| H A D | TypePromotion.cpp | 191 return Opc == Instruction::AShr || Opc == Instruction::SDiv || in GenerateSignBits() 192 Opc == Instruction::SRem || Opc == Instruction::SExt; in GenerateSignBits() 326 if (Opc != Instruction::Add && Opc != Instruction::Sub) in isSafeWrap() 402 Instruction *InstTo = dyn_cast<Instruction>(To); in ReplaceAllUsersOfWith() 703 case Instruction::Store: in isSupportedValue() 704 case Instruction::Br: in isSupportedValue() 707 case Instruction::PHI: in isSupportedValue() 709 case Instruction::Ret: in isSupportedValue() 710 case Instruction::Load: in isSupportedValue() 714 case Instruction::ZExt: in isSupportedValue() [all …]
|
| /llvm-project-15.0.7/llvm/include/llvm/Transforms/Scalar/ |
| H A D | Reassociate.h | 38 class Instruction; variable 74 SetVector<AssertingVH<Instruction>, std::deque<AssertingVH<Instruction>>>; 84 Instruction::BinaryOpsEnd - Instruction::BinaryOpsBegin; 102 void canonicalizeOperands(Instruction *I); 108 Value *OptimizeAdd(Instruction *I, 110 Value *OptimizeXor(Instruction *I, 112 bool CombineXorOpnd(Instruction *I, reassociate::XorOpnd *Opnd1, 122 void EraseInst(Instruction *I); 124 void OptimizeInst(Instruction *I); 125 Instruction *canonicalizeNegFPConstantsForOp(Instruction *I, Instruction *Op, [all …]
|
| /llvm-project-15.0.7/llvm/lib/Target/Hexagon/ |
| H A D | HexagonVectorLoopCarriedReuse.cpp | 112 Instruction *back() const { in back() 205 DepChain *getDepChainBtwn(Instruction *I1, Instruction *I2, int Iters); 206 bool isEquivalentOperation(Instruction *I1, Instruction *I2); 390 Instruction *User = cast<Instruction>(U.getUser()); in findValueToReuse() 418 Instruction *BEUser = cast<Instruction>(U.getUser()); in findValueToReuse() 442 Instruction *OpInst = dyn_cast<Instruction>(Op); in findValueToReuse() 446 Instruction *BEOpInst = dyn_cast<Instruction>(BEOp); in findValueToReuse() 476 Instruction *OpInst = dyn_cast<Instruction>(Op); in findValueToReuse() 486 Instruction *BEOpInst = dyn_cast<Instruction>(BEOp); in findValueToReuse() 536 Instruction *I = dyn_cast<Instruction>(Inst2Replace->getOperand(j)); in reuseValue() [all …]
|