|
Public Types inherited from llvm::sandboxir::Instruction |
enum class | Opcode { OP
, OPCODES
, DEF_INSTR
} |
|
Public Types inherited from llvm::sandboxir::User |
using | op_iterator = OperandUseIterator |
|
using | const_op_iterator = OperandUseIterator |
|
using | op_range = iterator_range< op_iterator > |
|
using | const_op_range = iterator_range< const_op_iterator > |
|
Public Types inherited from llvm::sandboxir::Value |
enum class | ClassID : unsigned { DEF_VALUE
, DEF_USER
, DEF_CONST
, DEF_INSTR
} |
|
using | use_iterator = UserUseIterator |
|
using | const_use_iterator = UserUseIterator |
|
using | user_iterator = mapped_iterator< sandboxir::UserUseIterator, UseToUser > |
|
using | const_user_iterator = user_iterator |
|
Public Member Functions inherited from llvm::sandboxir::CastInst |
Type * | getSrcTy () const |
|
Type * | getDestTy () const |
|
Public Member Functions inherited from llvm::sandboxir::SingleLLVMInstructionImpl< llvm::UnaryInstruction > |
unsigned | getUseOperandNo (const Use &Use) const final |
| \Returns the operand index of Use .
|
|
unsigned | getNumOfIRInstrs () const final |
| This is used by BasicBlock::iterator.
|
|
void | verify () const final |
| Should crash if there is something wrong with the instruction.
|
|
void | dumpOS (raw_ostream &OS) const override |
|
Public Member Functions inherited from llvm::sandboxir::Instruction |
virtual unsigned | getNumOfIRInstrs () const =0 |
| This is used by BasicBlock::iterator.
|
|
BBIterator | getIterator () const |
| \Returns a BasicBlock::iterator for this Instruction.
|
|
Instruction * | getNextNode () const |
| \Returns the next sandboxir::Instruction in the block, or nullptr if at the end of the block.
|
|
Instruction * | getPrevNode () const |
| \Returns the previous sandboxir::Instruction in the block, or nullptr if at the beginning of the block.
|
|
Opcode | getOpcode () const |
| \Returns this Instruction's opcode.
|
|
const char * | getOpcodeName () const |
|
const DataLayout & | getDataLayout () const |
|
bool | isTerminator () const |
|
bool | isUnaryOp () const |
|
bool | isBinaryOp () const |
|
bool | isIntDivRem () const |
|
bool | isShift () const |
|
bool | isCast () const |
|
bool | isFuncletPad () const |
|
bool | isSpecialTerminator () const |
|
bool | isOnlyUserOfAnyOperand () const |
|
bool | isLogicalShift () const |
|
bool | hasMetadata () const |
| Return true if the instruction has any metadata attached to it.
|
|
bool | hasMetadataOtherThanDebugLoc () const |
| Return true if this instruction has metadata attached to it other than a debug location.
|
|
bool | hasMetadata (unsigned KindID) const |
| Return true if this instruction has the given type of metadata attached.
|
|
void | removeFromParent () |
| Detach this from its parent BasicBlock without deleting it.
|
|
void | eraseFromParent () |
| Detach this Value from its parent and delete it.
|
|
void | insertBefore (Instruction *BeforeI) |
| Insert this detached instruction before BeforeI .
|
|
void | insertAfter (Instruction *AfterI) |
| Insert this detached instruction after AfterI .
|
|
void | insertInto (BasicBlock *BB, const BBIterator &WhereIt) |
| Insert this detached instruction into BB at WhereIt .
|
|
void | moveBefore (BasicBlock &BB, const BBIterator &WhereIt) |
| Move this instruction to WhereIt .
|
|
void | moveBefore (Instruction *Before) |
| Move this instruction before Before .
|
|
void | moveAfter (Instruction *After) |
| Move this instruction after After .
|
|
bool | comesBefore (const Instruction *Other) const |
| Given an instruction Other in the same basic block as this instruction, return true if this instruction comes before Other.
|
|
BasicBlock * | getParent () const |
| \Returns the BasicBlock containing this Instruction, or null if it is detached.
|
|
bool | hasNoUnsignedWrap () const |
| Determine whether the no signed wrap flag is set.
|
|
void | setHasNoUnsignedWrap (bool B=true) |
| Set or clear the nuw flag on this instruction, which must be an operator which supports this flag.
|
|
bool | hasNoSignedWrap () const |
| Determine whether the no signed wrap flag is set.
|
|
void | setHasNoSignedWrap (bool B=true) |
| Set or clear the nsw flag on this instruction, which must be an operator which supports this flag.
|
|
bool | isFast () const |
| Determine whether all fast-math-flags are set.
|
|
void | setFast (bool B) |
| Set or clear all fast-math-flags on this instruction, which must be an operator which supports this flag.
|
|
bool | hasAllowReassoc () const |
| Determine whether the allow-reassociation flag is set.
|
|
void | setHasAllowReassoc (bool B) |
| Set or clear the reassociation flag on this instruction, which must be an operator which supports this flag.
|
|
bool | isExact () const |
| Determine whether the exact flag is set.
|
|
void | setIsExact (bool B=true) |
| Set or clear the exact flag on this instruction, which must be an operator which supports this flag.
|
|
bool | hasNoNaNs () const |
| Determine whether the no-NaNs flag is set.
|
|
void | setHasNoNaNs (bool B) |
| Set or clear the no-nans flag on this instruction, which must be an operator which supports this flag.
|
|
bool | hasNoInfs () const |
| Determine whether the no-infs flag is set.
|
|
void | setHasNoInfs (bool B) |
| Set or clear the no-infs flag on this instruction, which must be an operator which supports this flag.
|
|
bool | hasNoSignedZeros () const |
| Determine whether the no-signed-zeros flag is set.
|
|
void | setHasNoSignedZeros (bool B) |
| Set or clear the no-signed-zeros flag on this instruction, which must be an operator which supports this flag.
|
|
bool | hasAllowReciprocal () const |
| Determine whether the allow-reciprocal flag is set.
|
|
void | setHasAllowReciprocal (bool B) |
| Set or clear the allow-reciprocal flag on this instruction, which must be an operator which supports this flag.
|
|
bool | hasAllowContract () const |
| Determine whether the allow-contract flag is set.
|
|
void | setHasAllowContract (bool B) |
| Set or clear the allow-contract flag on this instruction, which must be an operator which supports this flag.
|
|
bool | hasApproxFunc () const |
| Determine whether the approximate-math-functions flag is set.
|
|
void | setHasApproxFunc (bool B) |
| Set or clear the approximate-math-functions flag on this instruction, which must be an operator which supports this flag.
|
|
FastMathFlags | getFastMathFlags () const |
| Convenience function for getting all the fast-math flags, which must be an operator which supports these flags.
|
|
void | setFastMathFlags (FastMathFlags FMF) |
| Convenience function for setting multiple fast-math flags on this instruction, which must be an operator which supports these flags.
|
|
void | copyFastMathFlags (FastMathFlags FMF) |
| Convenience function for transferring all fast-math flag values to this instruction, which must be an operator which supports these flags.
|
|
bool | isAssociative () const |
|
bool | isCommutative () const |
|
bool | isIdempotent () const |
|
bool | isNilpotent () const |
|
bool | mayWriteToMemory () const |
|
bool | mayReadFromMemory () const |
|
bool | mayReadOrWriteMemory () const |
|
bool | isAtomic () const |
|
bool | hasAtomicLoad () const |
|
bool | hasAtomicStore () const |
|
bool | isVolatile () const |
|
Type * | getAccessType () const |
|
bool | mayThrow (bool IncludePhaseOneUnwind=false) const |
|
bool | isFenceLike () const |
|
bool | mayHaveSideEffects () const |
|
void | dumpOS (raw_ostream &OS) const override |
|
Public Member Functions inherited from llvm::sandboxir::User |
virtual op_iterator | op_begin () |
|
virtual op_iterator | op_end () |
|
virtual const_op_iterator | op_begin () const |
|
virtual const_op_iterator | op_end () const |
|
op_range | operands () |
|
const_op_range | operands () const |
|
Value * | getOperand (unsigned OpIdx) const |
|
Use | getOperandUse (unsigned OpIdx) const |
| \Returns the operand edge for OpIdx .
|
|
virtual unsigned | getNumOperands () const |
|
virtual void | setOperand (unsigned OperandIdx, Value *Operand) |
|
bool | replaceUsesOfWith (Value *FromV, Value *ToV) |
| Replaces any operands that match FromV with ToV .
|
|
void | verify () const override |
| Should crash if there is something wrong with the instruction.
|
|
void | dumpCommonHeader (raw_ostream &OS) const final |
|
void | dumpOS (raw_ostream &OS) const override |
|
Public Member Functions inherited from llvm::sandboxir::Value |
virtual | ~Value ()=default |
|
ClassID | getSubclassID () const |
|
use_iterator | use_begin () |
|
const_use_iterator | use_begin () const |
|
use_iterator | use_end () |
|
const_use_iterator | use_end () const |
|
iterator_range< use_iterator > | uses () |
|
iterator_range< const_use_iterator > | uses () const |
|
user_iterator | user_begin () |
|
user_iterator | user_end () |
|
const_user_iterator | user_begin () const |
|
const_user_iterator | user_end () const |
|
iterator_range< user_iterator > | users () |
|
iterator_range< const_user_iterator > | users () const |
|
unsigned | getNumUses () const |
| \Returns the number of user edges (not necessarily to unique users).
|
|
bool | hasNUsesOrMore (unsigned Num) const |
| Return true if this value has N uses or more.
|
|
bool | hasNUses (unsigned Num) const |
| Return true if this Value has exactly N uses.
|
|
Type * | getType () const |
|
Context & | getContext () const |
|
void | replaceUsesWithIf (Value *OtherV, llvm::function_ref< bool(const Use &)> ShouldReplace) |
|
void | replaceAllUsesWith (Value *Other) |
|
StringRef | getName () const |
| \Returns the LLVM IR name of the bottom-most LLVM value.
|
|
virtual void | verify () const =0 |
| Should crash if there is something wrong with the instruction.
|
|
std::string | getUid () const |
| Returns the unique id in the form 'SB<number>.' like 'SB1.'.
|
|
virtual void | dumpCommonHeader (raw_ostream &OS) const |
|
void | dumpCommonFooter (raw_ostream &OS) const |
|
void | dumpCommonPrefix (raw_ostream &OS) const |
|
void | dumpCommonSuffix (raw_ostream &OS) const |
|
void | printAsOperandCommon (raw_ostream &OS) const |
|
virtual void | dumpOS (raw_ostream &OS) const =0 |
|
LLVM_DUMP_METHOD void | dump () const |
|
Protected Member Functions inherited from llvm::sandboxir::UnaryInstruction |
| UnaryInstruction (ClassID ID, Opcode Opc, llvm::Instruction *LLVMI, Context &Ctx) |
|
Protected Member Functions inherited from llvm::sandboxir::Instruction |
| Instruction (ClassID ID, Opcode Opc, llvm::Instruction *I, sandboxir::Context &SBCtx) |
|
llvm::Instruction * | getTopmostLLVMInstruction () const |
| A SandboxIR Instruction may map to multiple LLVM IR Instruction.
|
|
virtual SmallVector< llvm::Instruction *, 1 > | getLLVMInstrs () const =0 |
| \Returns the LLVM IR Instructions that this SandboxIR maps to in program order.
|
|
Protected Member Functions inherited from llvm::sandboxir::User |
| User (ClassID ID, llvm::Value *V, Context &Ctx) |
|
Use | getOperandUseDefault (unsigned OpIdx, bool Verify) const |
| \Returns the Use edge that corresponds to OpIdx .
|
|
virtual Use | getOperandUseInternal (unsigned OpIdx, bool Verify) const =0 |
| \Returns the Use for the OpIdx'th operand.
|
|
unsigned | getUseOperandNoDefault (const Use &Use) const |
| The default implementation works only for single-LLVMIR-instruction Users and only if they match exactly the LLVM instruction.
|
|
virtual unsigned | getUseOperandNo (const Use &Use) const =0 |
| \Returns the operand index of Use .
|
|
void | swapOperandsInternal (unsigned OpIdxA, unsigned OpIdxB) |
|
void | verifyUserOfLLVMUse (const llvm::Use &Use) const |
|
Protected Member Functions inherited from llvm::sandboxir::Value |
void | clearValue () |
|
| Value (ClassID SubclassID, llvm::Value *Val, Context &Ctx) |
|
| Value (const Value &)=delete |
| Disable copies.
|
|
Value & | operator= (const Value &)=delete |
|
Static Protected Member Functions inherited from llvm::sandboxir::Instruction |
static IRBuilder & | setInsertPos (InsertPosition Pos) |
| Helper function for create().
|
|
Static Protected Member Functions inherited from llvm::sandboxir::Value |
static const char * | getSubclassIDStr (ClassID ID) |
|
Protected Attributes inherited from llvm::sandboxir::Instruction |
Opcode | Opc |
|
Protected Attributes inherited from llvm::sandboxir::Value |
ClassID | SubclassID |
| For isa/dyn_cast.
|
|
unsigned | UID |
| A unique ID used for forming the name (used for debugging).
|
|
llvm::Value * | Val = nullptr |
| The LLVM Value that corresponds to this SandboxIR Value.
|
|
Context & | Ctx |
| All values point to the context.
|
|