| /freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombineInternal.h | 62 public InstVisitor<InstCombinerImpl, Instruction *> { 84 // Visitation implementation - Implement instruction combining for different 85 // instruction types. The semantics are as follows: 89 // otherwise - Change was made, replace I with returned instruction 91 Instruction *visitFNeg(UnaryOperator &I); 92 Instruction *visitAdd(BinaryOperator &I); 93 Instruction *visitFAdd(BinaryOperator &I); 96 Instruction *visitSub(BinaryOperator &I); 97 Instruction *visitFSub(BinaryOperator &I); 98 Instruction *visitMul(BinaryOperator &I); [all …]
|
| /freebsd/lib/libpmc/pmu-events/arch/powerpc/power8/ |
| H A D | frontend.json | 5 …"BriefDescription": "Branch instruction completed with a target address less than current instruct… 11 "BriefDescription": "Branch Instruction Finished", 23 "BriefDescription": "Branch Instruction completed", 71 …ption": "Initial and Final Pump Scope was chip pump (prediction=correct) for an instruction fetch", 72 …ope and data sourced across this scope was chip pump (prediction=correct) for an instruction fetch" 89 …Instruction cache was reloaded with Modified (M) data from another chip's L2 or L3 on a different … 90 …Instruction cache was reloaded with Modified (M) data from another chip's L2 or L3 on a different … 95 …Instruction cache was reloaded with Shared (S) data from another chip's L2 or L3 on a different No… 96 …Instruction cache was reloaded with Shared (S) data from another chip's L2 or L3 on a different No… 101 …: "The processor's Instruction cache was reloaded from another chip's L4 on a different Node or Gr… [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/SandboxVectorizer/ |
| H A D | Legality.cpp | 10 #include "llvm/SandboxIR/Instruction.h" 35 auto *I0 = cast<Instruction>(Bndl[0]); in notVectorizableBasedOnOpcodesAndTypes() 39 return cast<Instruction>(V)->getOpcode() != Opcode; in notVectorizableBasedOnOpcodesAndTypes() 55 FastMathFlags FMF0 = cast<Instruction>(Bndl[0])->getFastMathFlags(); in notVectorizableBasedOnOpcodesAndTypes() 57 return cast<Instruction>(V)->getFastMathFlags() != FMF0; in notVectorizableBasedOnOpcodesAndTypes() 70 return cast<Instruction>(V)->hasNoUnsignedWrap() != NUW0 || in notVectorizableBasedOnOpcodesAndTypes() 71 cast<Instruction>(V)->hasNoSignedWrap() != NSW0; in notVectorizableBasedOnOpcodesAndTypes() 79 case Instruction::Opcode::ZExt: in notVectorizableBasedOnOpcodesAndTypes() 80 case Instruction::Opcode::SExt: in notVectorizableBasedOnOpcodesAndTypes() 81 case Instruction::Opcode::FPToUI: in notVectorizableBasedOnOpcodesAndTypes() [all …]
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/IR/ |
| H A D | Instruction.h | 1 //===-- llvm/Instruction.h - Instruction class definition -------*- C++ -*-===// 9 // This file contains the declaration of the Instruction class, which is the 42 template <> struct ilist_alloc_traits<Instruction> { 43 static inline void deleteNode(Instruction *V); 50 using InstListType = SymbolTableList<Instruction, ilist_iterator_bits<true>, 58 InsertPosition(Instruction *InsertBefore); 66 class Instruction : public User, 67 public ilist_node_with_parent<Instruction, BasicBlock, 71 using InstListType = SymbolTableList<Instruction, ilist_iterator_bits<true>, 77 /// Relative order of this instruction in its parent basic block. Used for [all …]
|
| H A D | InstVisitor.h | 1 //===- InstVisitor.h - Instruction visitor templates ------------*- C++ -*-===// 21 // We operate on opaque instruction classes, so forward declare all instruction 25 #include "llvm/IR/Instruction.def" 32 /// Base class for instruction visitors 34 /// Instruction visitors are used when you want to perform different actions 61 /// The defined has 'visit' methods for Instruction, and also for BasicBlock, 64 /// Note that if you don't implement visitXXX for some instruction type, 65 /// the visitXXX method for instruction superclass will be invoked. So 69 /// The optional second template argument specifies the type that instruction 75 /// as efficient as having your own switch statement over the instruction [all …]
|
| H A D | Operator.h | 21 #include "llvm/IR/Instruction.h" 42 /// Return the opcode for this Instruction or ConstantExpr. 44 if (const Instruction *I = dyn_cast<Instruction>(this)) in getOpcode() 49 /// If V is an Instruction or ConstantExpr, return its opcode. 52 if (const Instruction *I = dyn_cast<Instruction>(V)) in getOpcode() 56 return Instruction::UserOp1; in getOpcode() 59 static bool classof(const Instruction *) { return true; } in classof() argument 62 return isa<Instruction>(V) || isa<ConstantExpr>(V); in classof() 87 friend class Instruction; 127 /// Return true if the instruction is commutative [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/IR/ |
| H A D | Instruction.cpp | 1 //===-- Instruction.cpp - Implement the Instruction class -----------------===// 9 // This file implements the Instruction class for the IR library. 13 #include "llvm/IR/Instruction.h" 32 InsertPosition::InsertPosition(Instruction *InsertBefore) in InsertPosition() 38 Instruction::Instruction(Type *ty, unsigned it, AllocInfo AllocInfo, in Instruction() function in Instruction 44 assert(BB && "Instruction to insert before is not in a basic block!"); in Instruction() 49 Instruction::~Instruction() { in ~Instruction() 50 assert(!getParent() && "Instruction still linked in the program!"); in ~Instruction() 52 // Replace any extant metadata uses of this instruction with poison to in ~Instruction() 54 // - Treat Instruction like any other Value, and point its extant metadata in ~Instruction() [all …]
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/ |
| H A D | GIMatchTableExecutor.h | 69 /// - Instruction & Operand IDs are ULEB128 94 /// Switch over the opcode on the specified instruction 95 /// - InsnID(ULEB128) - Instruction ID 102 /// Switch over the LLT on the specified instruction operand 103 /// - InsnID(ULEB128) - Instruction ID 111 /// Record the specified instruction. 113 /// - NewInsnID(ULEB128) - Instruction ID to define 114 /// - InsnID(ULEB128) - Instruction ID 123 /// Check the opcode on the specified instruction 124 /// - InsnID(ULEB128) - Instruction ID [all …]
|
| /freebsd/lib/libpmc/pmu-events/arch/arm64/fujitsu/a64fx/ |
| H A D | other.json | 15 …"PublicDescription": "This event counts every cycle that no instruction was committed because the … 18 …"BriefDescription": "This event counts every cycle that no instruction was committed because the o… 21 …"PublicDescription": "This event counts every cycle that no instruction was committed because the … 24 …"BriefDescription": "This event counts every cycle that no instruction was committed because the o… 27 …"PublicDescription": "This event counts every cycle that no instruction was committed because the … 30 …"BriefDescription": "This event counts every cycle that no instruction was committed because the o… 33 …"PublicDescription": "This event counts every cycle that no instruction was committed because the … 36 …"BriefDescription": "This event counts every cycle that no instruction was committed because the o… 39 …"PublicDescription": "This event counts every cycle that no instruction was committed because the … 42 …"BriefDescription": "This event counts every cycle that no instruction was committed because the o… [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/AggressiveInstCombine/ |
| H A D | TruncInstCombine.cpp | 22 // fit more values in one vectorized instruction. In addition, this optimization 34 #include "llvm/IR/Instruction.h" 46 /// Given an instruction and a container, it fills all the relevant operands of 47 /// that instruction, with respect to the Trunc expression graph optimizaton. 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() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | IRNormalizer.cpp | 46 DenseSet<const Instruction *> NamedInstructions; 48 SmallVector<Instruction *, 16> Outputs; 54 void nameInstruction(Instruction *I); 55 void nameAsInitialInstruction(Instruction *I) const; 56 void nameAsRegularInstruction(Instruction *I); 57 void foldInstructionName(Instruction *I) const; 63 void reorderDefinition(Instruction *Definition, 64 std::stack<Instruction *> &TopologicalSort, 65 SmallPtrSet<const Instruction *, 32> &Visited) const; 66 void reorderInstructionOperandsByNames(Instruction *I) const; [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/SandboxIR/ |
| H A D | Instruction.cpp | 1 //===- Instruction.cpp - The Instructions of Sandbox IR -------------------===// 9 #include "llvm/SandboxIR/Instruction.h" 14 const char *Instruction::getOpcodeName(Opcode Opc) { in getOpcodeName() 26 llvm::Instruction *Instruction::getTopmostLLVMInstruction() const { in getTopmostLLVMInstruction() 27 Instruction *Prev = getPrevNode(); in getTopmostLLVMInstruction() 29 // If at top of the BB, return the first BB instruction. in getTopmostLLVMInstruction() 32 // Else get the Previous sandbox IR instruction's bottom IR instruction and in getTopmostLLVMInstruction() 34 llvm::Instruction *PrevBotI = cast<llvm::Instruction>(Prev->Val); in getTopmostLLVMInstruction() 38 BBIterator Instruction::getIterator() const { in getIterator() 39 auto *I = cast<llvm::Instruction>(Val); in getIterator() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/FuzzMutate/ |
| H A 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 …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
| H A D | Float2Int.cpp | 39 // If a non-mappable instruction is seen, this entire def-use graph is marked 40 // as non-transformable. If we see an instruction that converts from the 78 static Instruction::BinaryOps mapBinOpcode(unsigned Opcode) { in mapBinOpcode() 81 case Instruction::FAdd: return Instruction::Add; in mapBinOpcode() 82 case Instruction::FSub: return Instruction::Sub; in mapBinOpcode() 83 case Instruction::FMul: return Instruction::Mul; in mapBinOpcode() 92 // handle. For example, an instruction may have itself as an operand. in findRoots() 96 for (Instruction &I : BB) { in findRoots() 101 case Instruction::FPToUI: in findRoots() 102 case Instruction::FPToSI: in findRoots() [all …]
|
| H A D | SpeculativeExecution.cpp | 45 // it will speculate at most one instruction. It also will not speculate if 202 // If a block has only one instruction, then that is a terminator in runOnBasicBlock() 203 // instruction so that the block does nothing. This does happen. in runOnBasicBlock() 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() [all …]
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Support/ |
| H A D | TargetOpcodes.def | 9 // This file defines the target independent instruction opcodes. 27 /// Every instruction defined here must also appear in Target.td. 37 /// KILL - This instruction is a noop that is used only to adjust the 42 /// EXTRACT_SUBREG - This instruction takes two operands: a register 48 /// INSERT_SUBREG - This instruction takes three operands: a register that 65 /// The result of this instruction is the value of the second operand inserted 68 /// first operand. This instruction just communicates information; No code 70 /// This is typically used after an instruction where the write to a subregister 74 /// COPY_TO_REGCLASS - This instruction is a placeholder for a plain 76 /// used between instruction selection and MachineInstr creation, before [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/ |
| H A D | BottomUpVec.cpp | 12 #include "llvm/SandboxIR/Instruction.h" 47 auto *BndlI = cast<Instruction>(BndlV); in getOperand() 53 /// \Returns the BB iterator after the lowest instruction in \p Vals, or the top 54 /// of BB if no instruction found in \p Vals. 71 assert(all_of(Bndl, [](auto *V) { return isa<Instruction>(V); }) && in createVectorInstr() 79 Bndl, cast<Instruction>(Bndl[0])->getParent()); in createVectorInstr() 81 auto Opcode = cast<Instruction>(Bndl[0])->getOpcode(); in createVectorInstr() 83 case Instruction::Opcode::ZExt: in createVectorInstr() 84 case Instruction::Opcode::SExt: in createVectorInstr() 85 case Instruction::Opcode::FPToUI: in createVectorInstr() [all …]
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | InstructionPrecedenceTracking.h | 13 // 3. Check if the given instruction is preceeded by the first special 14 // instruction in the same block. 29 class Instruction; variable 32 // Maps a block to the topmost special instruction in it. If the value is 35 DenseMap<const BasicBlock *, const Instruction *> FirstSpecialInsts; 50 /// Returns the topmost special instruction from the block \p BB. Returns 52 LLVM_ABI const Instruction *getFirstSpecialInstruction(const BasicBlock *BB); 54 /// Returns true iff at least one instruction from the basic block \p BB is 58 /// Returns true iff the first special instruction of \p Insn's block exists 60 LLVM_ABI bool isPreceededBySpecialInstruction(const Instruction *Insn); [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/SystemZ/ |
| H A D | SystemZTargetTransformInfo.cpp | 41 if (const Instruction *User = dyn_cast<Instruction>(U)) { in isUsedAsMemCpySource() 62 if (const Instruction *User = dyn_cast<Instruction>(U)) { in countNumMemAccesses() 189 Instruction *Inst) const { in getIntImmCostInst() 204 case Instruction::GetElementPtr: in getIntImmCostInst() 211 case Instruction::Store: in getIntImmCostInst() 221 case Instruction::ICmp: in getIntImmCostInst() 231 case Instruction::Add: in getIntImmCostInst() 232 case Instruction::Sub: in getIntImmCostInst() 242 case Instruction::Mul: in getIntImmCostInst() 249 case Instruction::Or: in getIntImmCostInst() [all …]
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
| H A D | MachineInstr.h | 44 class Instruction; variable 64 /// Representation of each machine instruction. 88 FrameSetup = 1 << 0, // Instruction is used as a part of 90 FrameDestroy = 1 << 1, // Instruction is used as a part of 92 BundledPred = 1 << 2, // Instruction has bundled predecessors. 93 BundledSucc = 1 << 3, // Instruction has bundled successors. 94 FmNoNans = 1 << 4, // Instruction does not support Fast 96 FmNoInfs = 1 << 5, // Instruction does not support Fast 98 FmNsz = 1 << 6, // Instruction is not required to retain 100 FmArcp = 1 << 7, // Instruction supports Fast math [all …]
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/MC/ |
| H A D | MCInstrDesc.h | 1 //===-- llvm/MC/MCInstrDesc.h - Instruction Descriptors -*- C++ -*-===// 84 /// This holds information about one operand of a machine instruction, 110 /// operand that controls an isPredicable() instruction. 141 // Machine Instruction Flags and Description 194 /// Describe properties that are true of each instruction in the target 197 /// target instruction class, and the MachineInstr class points to this struct 236 /// that the machine instruction may include implicit register def/uses as 251 /// Return flags of this instruction. 254 /// \returns true if this instruction is emitted before instruction selection 258 /// Return true if this instruction can have a variable number of [all …]
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
| H A D | InstructionWorklist.h | 16 #include "llvm/IR/Instruction.h" 26 SmallVector<Instruction *, 256> Worklist; 27 DenseMap<Instruction *, unsigned> WorklistMap; 31 SmallSetVector<Instruction *, 16> Deferred; 41 /// Add instruction to the worklist. 44 void add(Instruction *I) { in add() 49 /// Add value to the worklist if it is an instruction. 52 if (Instruction *I = dyn_cast<Instruction>(V)) in addValue() 56 /// Push the instruction onto the worklist stack. 58 void push(Instruction *I) { in push() [all …]
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/InstCombine/ |
| H A D | InstCombiner.h | 44 /// The core instruction combiner logic. 244 bool canFreelyInvertAllUsersOf(Instruction *V, Value *IgnoredUser) { in canFreelyInvertAllUsersOf() 250 auto *I = cast<Instruction>(U.getUser()); in canFreelyInvertAllUsersOf() 252 case Instruction::Select: in canFreelyInvertAllUsersOf() 258 case Instruction::Br: in canFreelyInvertAllUsersOf() 261 case Instruction::Xor: // Can invert 'xor' if it's a 'not', by ignoring in canFreelyInvertAllUsersOf() 291 case Instruction::SRem: // X % 1 = 0 in getSafeVectorConstantForBinop() 292 case Instruction::URem: // X %u 1 = 0 in getSafeVectorConstantForBinop() 295 case Instruction::FRem: // X % 1.0 (doesn't simplify, but it is safe) in getSafeVectorConstantForBinop() 304 case Instruction::Shl: // 0 << X = 0 in getSafeVectorConstantForBinop() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/ARM/ |
| H A D | MVELaneInterleavingPass.cpp | 10 // a single sext/zext or trunc instruction that takes the bottom half of a 16 // instruction, we often have to turn sext/zext/trunc into a series of lane 58 #include "llvm/IR/Instruction.h" 109 static bool isProfitableToInterleave(SmallSetVector<Instruction *, 4> &Exts, in isProfitableToInterleave() argument 110 SmallSetVector<Instruction *, 4> &Truncs) { in isProfitableToInterleave() 140 cast<Instruction>(*E->user_begin())->getOpcode() != Instruction::Mul) { in isProfitableToInterleave() 148 static bool tryInterleave(Instruction *Start, in tryInterleave() 149 SmallPtrSetImpl<Instruction *> &Visited) { in tryInterleave() 152 if (!isa<Instruction>(Start->getOperand(0))) in tryInterleave() 156 std::vector<Instruction *> Worklist; in tryInterleave() [all …]
|
| /freebsd/lib/libpmc/pmu-events/arch/powerpc/power9/ |
| H A D | translation.json | 20 "BriefDescription": "Double-Precion or Quad-Precision instruction completed" 35 …chip's L2 or L3 on the same Node or Group (Remote), as this chip due to a instruction side request" 45 …"BriefDescription": "Finish stall due to a vector fixed point instruction in the execution pipelin… 50 "BriefDescription": "LSU Finished a PPC instruction (up to 4 per cycle)" 55 …: "Cycles during which the marked instruction is next to complete (completion is held up because t… 65 …"BriefDescription": "Completion stall due to a long latency vector fixed point instruction (divisi… 75 …ared or modified data from another core's L2/L3 on the same chip due to a instruction side request" 80 …": "The processor's Instruction cache was reloaded with Shared (S) data from another core's L2 on … 100 …e TLB from another chip's L4 on the same Node or Group ( Remote) due to a instruction side request" 115 …"BriefDescription": "Finish stall because the NTF instruction was a vector instruction issued to t… [all …]
|