| /openbsd/src/gnu/llvm/llvm/lib/Transforms/InstCombine/ |
| D | InstCombineInternal.h | 63 public InstVisitor<InstCombinerImpl, Instruction *> { 88 Instruction *visitFNeg(UnaryOperator &I); 89 Instruction *visitAdd(BinaryOperator &I); 90 Instruction *visitFAdd(BinaryOperator &I); 93 Instruction *visitSub(BinaryOperator &I); 94 Instruction *visitFSub(BinaryOperator &I); 95 Instruction *visitMul(BinaryOperator &I); 96 Instruction *visitFMul(BinaryOperator &I); 97 Instruction *visitURem(BinaryOperator &I); 98 Instruction *visitSRem(BinaryOperator &I); [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/IR/ |
| D | Instruction.cpp | 24 Instruction::Instruction(Type *ty, unsigned it, Use *Ops, unsigned NumOps, in Instruction() function in Instruction 25 Instruction *InsertBefore) in Instruction() 36 Instruction::Instruction(Type *ty, unsigned it, Use *Ops, unsigned NumOps, in Instruction() function in Instruction 45 Instruction::~Instruction() { in ~Instruction() 66 void Instruction::setParent(BasicBlock *P) { in setParent() 70 const Module *Instruction::getModule() const { in getModule() 74 const Function *Instruction::getFunction() const { in getFunction() 78 void Instruction::removeFromParent() { in removeFromParent() 82 iplist<Instruction>::iterator Instruction::eraseFromParent() { in eraseFromParent() 88 void Instruction::insertBefore(Instruction *InsertPos) { in insertBefore() [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/Transforms/Scalar/ |
| D | SpeculativeExecution.cpp | 213 static InstructionCost ComputeSpeculationCost(const Instruction *I, in ComputeSpeculationCost() 216 case Instruction::GetElementPtr: in ComputeSpeculationCost() 217 case Instruction::Add: in ComputeSpeculationCost() 218 case Instruction::Mul: in ComputeSpeculationCost() 219 case Instruction::And: in ComputeSpeculationCost() 220 case Instruction::Or: in ComputeSpeculationCost() 221 case Instruction::Select: in ComputeSpeculationCost() 222 case Instruction::Shl: in ComputeSpeculationCost() 223 case Instruction::Sub: in ComputeSpeculationCost() 224 case Instruction::LShr: in ComputeSpeculationCost() [all …]
|
| D | Float2Int.cpp | 110 static Instruction::BinaryOps mapBinOpcode(unsigned Opcode) { in mapBinOpcode() 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() 128 for (Instruction &I : BB) { in findRoots() 133 case Instruction::FPToUI: in findRoots() 134 case Instruction::FPToSI: in findRoots() 137 case Instruction::FCmp: in findRoots() 148 void Float2IntPass::seen(Instruction *I, ConstantRange R) { in seen() 185 std::deque<Instruction*> Worklist(Roots.begin(), Roots.end()); in walkBackwards() [all …]
|
| D | Reassociate.cpp | 75 static void PrintOps(Instruction *I, const SmallVectorImpl<ValueEntry> &Ops) { in PrintOps() 77 dbgs() << Instruction::getOpcodeName(I->getOpcode()) << " " in PrintOps() 120 Instruction *I = dyn_cast<Instruction>(V); in XorOpnd() 123 if (I && (I->getOpcode() == Instruction::Or || in XorOpnd() 124 I->getOpcode() == Instruction::And)) { in XorOpnd() 134 isOr = (I->getOpcode() == Instruction::Or); in XorOpnd() 149 static bool hasFPAssociativeFlags(Instruction *I) { in hasFPAssociativeFlags() 192 for (Instruction &I : *BB) in BuildRankMap() 199 Instruction *I = dyn_cast<Instruction>(V); in getRank() 229 void ReassociatePass::canonicalizeOperands(Instruction *I) { in canonicalizeOperands() [all …]
|
| D | LoopRerollPass.cpp | 192 using SmallInstructionVector = SmallVector<Instruction *, 16>; 193 using SmallInstructionSet = SmallPtrSet<Instruction *, 16>; 194 using TinyInstructionVector = SmallVector<Instruction *, 1>; 197 DenseMap<Instruction *, int64_t> IVToIncMap; 207 SimpleLoopReduction(Instruction *P, Loop *L) : Instructions(1, P) { in SimpleLoopReduction() 216 Instruction *getPHI() const { in getPHI() 221 Instruction *getReducedValue() const { in getReducedValue() 226 Instruction *get(size_t i) const { in get() 231 Instruction *operator [] (size_t i) const { return get(i); } in operator []() 293 for (Instruction *J : PossibleReds[i]) { in restrictToScale() [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/CodeGen/ |
| D | ComplexDeinterleavingPass.cpp | 127 Instruction *R, Instruction *I) in ComplexDeinterleavingCompositeNode() 137 Instruction *Real; 138 Instruction *Imag; 143 SmallVector<Instruction *> InternalInstructions; 148 void addInstruction(Instruction *I) { InternalInstructions.push_back(I); } in addInstruction() 151 bool hasAllInternalUses(SmallPtrSet<Instruction *, 16> &AllInstructions); 201 Instruction *RootValue; 204 SmallPtrSet<Instruction *, 16> AllInstructions; 207 Instruction *R, Instruction *I) { in prepareCompositeNode() 240 NodePtr identifyPartialMul(Instruction *Real, Instruction *Imag); [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/Transforms/AggressiveInstCombine/ |
| D | TruncInstCombine.cpp | 48 static void getRelevantOperands(Instruction *I, SmallVectorImpl<Value *> &Ops) { in getRelevantOperands() 51 case Instruction::Trunc: in getRelevantOperands() 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() [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/FuzzMutate/ |
| D | Operations.cpp | 19 Ops.push_back(binOpDescriptor(1, Instruction::Add)); in describeFuzzerIntOps() 20 Ops.push_back(binOpDescriptor(1, Instruction::Sub)); in describeFuzzerIntOps() 21 Ops.push_back(binOpDescriptor(1, Instruction::Mul)); in describeFuzzerIntOps() 22 Ops.push_back(binOpDescriptor(1, Instruction::SDiv)); in describeFuzzerIntOps() 23 Ops.push_back(binOpDescriptor(1, Instruction::UDiv)); in describeFuzzerIntOps() 24 Ops.push_back(binOpDescriptor(1, Instruction::SRem)); in describeFuzzerIntOps() 25 Ops.push_back(binOpDescriptor(1, Instruction::URem)); in describeFuzzerIntOps() 26 Ops.push_back(binOpDescriptor(1, Instruction::Shl)); in describeFuzzerIntOps() 27 Ops.push_back(binOpDescriptor(1, Instruction::LShr)); in describeFuzzerIntOps() 28 Ops.push_back(binOpDescriptor(1, Instruction::AShr)); in describeFuzzerIntOps() [all …]
|
| D | IRMutator.cpp | 117 SmallVector<Instruction *, 32> Insts; in mutate() 167 auto RS = makeSampler<Instruction *>(IB.Rand); in mutate() 168 for (Instruction &Inst : instructions(F)) { in mutate() 185 void InstDeleterIRStrategy::mutate(Instruction &Inst, RandomIRBuilder &IB) { in mutate() 199 SmallVector<Instruction *, 32> InstsBefore; in mutate() 214 void InstModificationIRStrategy::mutate(Instruction &Inst, in mutate() 223 case Instruction::Add: in mutate() 224 case Instruction::Mul: in mutate() 225 case Instruction::Sub: in mutate() 226 case Instruction::Shl: in mutate() [all …]
|
| /openbsd/src/gnu/llvm/llvm/include/llvm/IR/ |
| D | Instruction.h | 37 template <> struct ilist_alloc_traits<Instruction> { 38 static inline void deleteNode(Instruction *V); 41 class Instruction : public User, 42 public ilist_node_with_parent<Instruction, BasicBlock> { 79 ~Instruction(); // Use deleteValue() to delete a generic Instruction. 82 Instruction(const Instruction &) = delete; 83 Instruction &operator=(const Instruction &) = delete; 87 Instruction *user_back() { return cast<Instruction>(*user_begin());} 88 const Instruction *user_back() const { return cast<Instruction>(*user_begin());} 101 static_cast<const Instruction *>(this)->getModule()); [all …]
|
| D | Operator.h | 42 if (const Instruction *I = dyn_cast<Instruction>(this)) in getOpcode() 50 if (const Instruction *I = dyn_cast<Instruction>(V)) in getOpcode() 54 return Instruction::UserOp1; in getOpcode() 57 static bool classof(const Instruction *) { return true; } in classof() argument 60 return isa<Instruction>(V) || isa<ConstantExpr>(V); in classof() 84 friend class Instruction; 109 static bool classof(const Instruction *I) { in classof() 110 return I->getOpcode() == Instruction::Add || in classof() 111 I->getOpcode() == Instruction::Sub || in classof() 112 I->getOpcode() == Instruction::Mul || in classof() [all …]
|
| D | Instructions.h | 70 friend class Instruction; 76 const Twine &Name, Instruction *InsertBefore); 81 Instruction *InsertBefore); 86 const Twine &Name = "", Instruction *InsertBefore = nullptr); 101 return cast<PointerType>(Instruction::getType()); in getType() 155 static bool classof(const Instruction *I) { in classof() 156 return (I->getOpcode() == Instruction::Alloca); in classof() 159 return isa<Instruction>(V) && classof(cast<Instruction>(V)); in classof() 167 Instruction::setSubclassData<Bitfield>(Value); in setSubclassData() 189 friend class Instruction; [all …]
|
| D | NoFolder.h | 48 Value *FoldBinOp(Instruction::BinaryOps Opc, Value *LHS, in FoldBinOp() 53 Value *FoldExactBinOp(Instruction::BinaryOps Opc, Value *LHS, Value *RHS, in FoldExactBinOp() 58 Value *FoldNoWrapBinOp(Instruction::BinaryOps Opc, Value *LHS, Value *RHS, in FoldNoWrapBinOp() 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() 119 Instruction *CreatePointerCast(Constant *C, Type *DestTy) const override { in CreatePointerCast() 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() [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/Target/SystemZ/ |
| D | SystemZTargetTransformInfo.cpp | 36 if (const Instruction *User = dyn_cast<Instruction>(U)) { in isUsedAsMemCpySource() 105 Instruction *Inst) { in getIntImmCostInst() 120 case Instruction::GetElementPtr: in getIntImmCostInst() 127 case Instruction::Store: in getIntImmCostInst() 137 case Instruction::ICmp: in getIntImmCostInst() 147 case Instruction::Add: in getIntImmCostInst() 148 case Instruction::Sub: in getIntImmCostInst() 158 case Instruction::Mul: in getIntImmCostInst() 165 case Instruction::Or: in getIntImmCostInst() 166 case Instruction::Xor: in getIntImmCostInst() [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/Target/ARM/ |
| D | MVELaneInterleavingPass.cpp | 115 static bool isProfitableToInterleave(SmallSetVector<Instruction *, 4> &Exts, in isProfitableToInterleave() argument 116 SmallSetVector<Instruction *, 4> &Truncs) { in isProfitableToInterleave() 146 cast<Instruction>(*E->user_begin())->getOpcode() != Instruction::Mul) { in isProfitableToInterleave() 154 static bool tryInterleave(Instruction *Start, in tryInterleave() 155 SmallPtrSetImpl<Instruction *> &Visited) { in tryInterleave() 159 if (!isa<Instruction>(Start->getOperand(0))) in tryInterleave() 163 std::vector<Instruction *> Worklist; in tryInterleave() 165 Worklist.push_back(cast<Instruction>(Start->getOperand(0))); in tryInterleave() 167 SmallSetVector<Instruction *, 4> Truncs; in tryInterleave() 168 SmallSetVector<Instruction *, 4> Exts; in tryInterleave() [all …]
|
| /openbsd/src/gnu/llvm/llvm/include/llvm/Analysis/ |
| D | IVDescriptors.h | 27 class Instruction; variable 73 RecurrenceDescriptor(Value *Start, Instruction *Exit, StoreInst *Store, in RecurrenceDescriptor() 74 RecurKind K, FastMathFlags FMF, Instruction *ExactFP, in RecurrenceDescriptor() 76 SmallPtrSetImpl<Instruction *> &CI, in RecurrenceDescriptor() 88 InstDesc(bool IsRecur, Instruction *I, Instruction *ExactFP = nullptr) 92 InstDesc(Instruction *I, RecurKind K, Instruction *ExactFP = nullptr) 100 Instruction *getExactFPMathInst() const { return ExactFPMathInst; } in getExactFPMathInst() 104 Instruction *getPatternInst() const { return PatternLastInst; } in getPatternInst() 111 Instruction *PatternLastInst; 115 Instruction *ExactFPMathInst; [all …]
|
| D | MustExecute.h | 40 class Instruction; variable 97 virtual bool isGuaranteedToExecute(const Instruction &Inst, 122 bool isGuaranteedToExecute(const Instruction &Inst, 147 bool isGuaranteedToExecute(const Instruction &Inst, 158 bool doesNotWriteMemoryBefore(const Instruction &I, const Loop *CurLoop) 164 void insertInstructionTo(const Instruction *Inst, const BasicBlock *BB); 169 void removeInstruction(const Instruction *Inst); 275 typedef const Instruction *value_type; 277 typedef const Instruction **pointer; 278 typedef const Instruction *&reference; [all …]
|
| 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); 69 virtual bool isSpecialInstruction(const Instruction *Insn) const = 0; 77 void insertInstructionTo(const Instruction *Inst, const BasicBlock *BB); 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() [all …]
|
| /openbsd/src/gnu/llvm/llvm/include/llvm/Transforms/InstCombine/ |
| D | InstCombiner.h | 128 if (isa<Instruction>(V)) { in getComplexity() 279 static bool canFreelyInvertAllUsersOf(Instruction *V, Value *IgnoredUser) { in canFreelyInvertAllUsersOf() 285 auto *I = cast<Instruction>(U.getUser()); in canFreelyInvertAllUsersOf() 287 case Instruction::Select: in canFreelyInvertAllUsersOf() 293 case Instruction::Br: in canFreelyInvertAllUsersOf() 296 case Instruction::Xor: // Can invert 'xor' if it's a 'not', by ignoring in canFreelyInvertAllUsersOf() 326 case Instruction::SRem: // X % 1 = 0 in getSafeVectorConstantForBinop() 327 case Instruction::URem: // X %u 1 = 0 in getSafeVectorConstantForBinop() 330 case Instruction::FRem: // X % 1.0 (doesn't simplify, but it is safe) in getSafeVectorConstantForBinop() 339 case Instruction::Shl: // 0 << X = 0 in getSafeVectorConstantForBinop() [all …]
|
| /openbsd/src/gnu/llvm/llvm/include/llvm/Transforms/Utils/ |
| D | InstructionWorklist.h | 26 SmallVector<Instruction *, 256> Worklist; 27 DenseMap<Instruction *, unsigned> WorklistMap; 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() 86 DenseMap<Instruction *, unsigned>::iterator It = WorklistMap.find(I); in remove() [all …]
|
| D | Local.h | 41 class Instruction; variable 73 bool isInstructionTriviallyDead(Instruction *I, 79 bool wouldInstructionBeTriviallyDead(Instruction *I, 88 Instruction *I, const TargetLibraryInfo *TLI = nullptr); 144 bool replaceDbgUsesWithUndef(Instruction *I); 197 AllocaInst *DemoteRegToStack(Instruction &X, 199 Instruction *AllocaPoint = nullptr); 204 AllocaInst *DemotePHIToStack(PHINode *P, Instruction *AllocaPoint = nullptr); 217 const Instruction *CxtI = nullptr, 223 const Instruction *CxtI = nullptr, [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/Analysis/ |
| D | IVDescriptors.cpp | 34 bool RecurrenceDescriptor::areAllUsesIn(Instruction *I, in areAllUsesIn() 35 SmallPtrSetImpl<Instruction *> &Set) { in areAllUsesIn() 37 if (!Set.count(dyn_cast<Instruction>(Use))) in areAllUsesIn() 70 static Instruction *lookThroughAnd(PHINode *Phi, Type *&RT, in lookThroughAnd() 71 SmallPtrSetImpl<Instruction *> &Visited, in lookThroughAnd() 72 SmallPtrSetImpl<Instruction *> &CI) { in lookThroughAnd() 77 Instruction *I, *J = cast<Instruction>(Phi->use_begin()->getUser()); in lookThroughAnd() 95 static std::pair<Type *, bool> computeRecurrenceType(Instruction *Exit, in computeRecurrenceType() 142 static void collectCastInstrs(Loop *TheLoop, Instruction *Exit, in collectCastInstrs() 144 SmallPtrSetImpl<Instruction *> &Casts, in collectCastInstrs() [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/Target/Hexagon/ |
| D | HexagonVectorLoopCarriedReuse.cpp | 71 using ChainOfDependences = SmallVector<Instruction *, 4>; 100 void push_back(Instruction *I) { in push_back() 108 Instruction *front() const { in front() 112 Instruction *back() const { in back() 116 Instruction *&operator[](const int index) { in operator []() 136 Instruction *Inst2Replace = nullptr; 141 Instruction *BackedgeInst = nullptr; 142 std::map<Instruction *, DepChain *> DepChains; 195 std::set<Instruction *> ReplacedInsts; 202 void findDepChainFromPHI(Instruction *I, DepChain &D); [all …]
|
| /openbsd/src/gnu/llvm/llvm/include/llvm/Transforms/Scalar/ |
| 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, 114 bool CombineXorOpnd(Instruction *I, reassociate::XorOpnd *Opnd1, 122 void EraseInst(Instruction *I); 123 void RecursivelyEraseDeadInsts(Instruction *I, OrderedSet &Insts); [all …]
|