LLVM 20.0.0git
|
A sandboxir::User with operands, opcode and linked with previous/next instructions in an instruction list. More...
#include "llvm/SandboxIR/SandboxIR.h"
Public Types | |
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_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 | |
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. | |
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 . | |
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. | |
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 |
Static Public Member Functions | |
static const char * | getOpcodeName (Opcode Opc) |
static bool | classof (const sandboxir::Value *From) |
For isa/dyn_cast. | |
Static Public Member Functions inherited from llvm::sandboxir::User | |
static bool | classof (const Value *From) |
For isa/dyn_cast. | |
Protected Member Functions | |
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 |
Protected Attributes | |
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. | |
Friends | |
class | SelectInst |
class | ExtractElementInst |
class | InsertElementInst |
class | BranchInst |
class | LoadInst |
class | StoreInst |
class | ReturnInst |
class | CallInst |
class | InvokeInst |
class | CallBrInst |
class | GetElementPtrInst |
class | CatchSwitchInst |
class | SwitchInst |
class | UnaryOperator |
class | BinaryOperator |
class | AtomicRMWInst |
class | AtomicCmpXchgInst |
class | AllocaInst |
class | CastInst |
class | PHINode |
class | UnreachableInst |
class | EraseFromParent |
Additional Inherited Members | |
Static Protected Member Functions inherited from llvm::sandboxir::Value | |
static const char * | getSubclassIDStr (ClassID ID) |
A sandboxir::User with operands, opcode and linked with previous/next instructions in an instruction list.
Definition at line 650 of file SandboxIR.h.
|
strong |
Enumerator | |
---|---|
OP | |
OPCODES | |
DEF_INSTR |
Definition at line 652 of file SandboxIR.h.
|
inlineprotected |
Definition at line 660 of file SandboxIR.h.
|
static |
void Instruction::copyFastMathFlags | ( | FastMathFlags | FMF | ) |
Convenience function for transferring all fast-math flag values to this instruction, which must be an operator which supports these flags.
See LangRef.html for the meaning of these flags.
Definition at line 558 of file SandboxIR.cpp.
References copyFastMathFlags(), llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), getFastMathFlags(), llvm::sandboxir::Context::getTracker(), and llvm::sandboxir::Value::Val.
Referenced by copyFastMathFlags(), and setFastMathFlags().
|
overridevirtual |
Reimplemented from llvm::sandboxir::User.
Reimplemented in llvm::sandboxir::SingleLLVMInstructionImpl< LLVMT >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::AtomicCmpXchgInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::AtomicRMWInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::BinaryOperator >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::BranchInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::CallBase >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::CatchSwitchInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::ExtractElementInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::GetElementPtrInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::InsertElementInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::Instruction >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::PHINode >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::ReturnInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::SelectInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::StoreInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::SwitchInst >, and llvm::sandboxir::SingleLLVMInstructionImpl< llvm::UnaryInstruction >.
Definition at line 573 of file SandboxIR.cpp.
References OS.
void Instruction::eraseFromParent | ( | ) |
Detach this Value from its parent and delete it.
Definition at line 367 of file SandboxIR.cpp.
References assert(), llvm::sandboxir::Value::Ctx, llvm::sandboxir::Context::detach(), getLLVMInstrs(), llvm::sandboxir::Context::getTracker(), I, llvm::sandboxir::Tracker::isTracking(), llvm::reverse(), llvm::sandboxir::Tracker::track(), and llvm::sandboxir::Value::users().
Referenced by llvm::sandboxir::CreateAndInsertInst::revert().
|
inline |
Convenience function for getting all the fast-math flags, which must be an operator which supports these flags.
See LangRef.html for the meaning of these flags.
Definition at line 817 of file SandboxIR.h.
References llvm::sandboxir::Value::Val.
Referenced by copyFastMathFlags(), and setFastMathFlags().
BBIterator Instruction::getIterator | ( | ) | const |
\Returns a BasicBlock::iterator for this Instruction.
Definition at line 331 of file SandboxIR.cpp.
References llvm::sandboxir::Value::Ctx, I, and llvm::sandboxir::Value::Val.
Referenced by llvm::sandboxir::AtomicRMWInst::create(), llvm::sandboxir::CallInst::create(), llvm::sandboxir::CallBrInst::create(), llvm::sandboxir::InvokeInst::create(), llvm::sandboxir::BinaryOperator::create(), llvm::sandboxir::UnaryOperator::create(), llvm::sandboxir::CastInst::create(), llvm::sandboxir::AllocaInst::create(), llvm::sandboxir::GetElementPtrInst::create(), llvm::sandboxir::AtomicCmpXchgInst::create(), llvm::sandboxir::CastInstImpl< Op >::create(), llvm::sandboxir::BinaryOperator::createWithCopiedFlags(), llvm::sandboxir::UnaryOperator::createWithCopiedFlags(), getNextNode(), getPrevNode(), insertAfter(), and moveBefore().
|
protectedpure virtual |
\Returns the LLVM IR Instructions that this SandboxIR maps to in program order.
Referenced by eraseFromParent(), insertBefore(), insertInto(), moveBefore(), and removeFromParent().
Instruction * Instruction::getNextNode | ( | ) | const |
\Returns the next sandboxir::Instruction in the block, or nullptr if at the end of the block.
Definition at line 336 of file SandboxIR.cpp.
References assert(), llvm::sandboxir::Value::Ctx, getIterator(), getParent(), llvm::sandboxir::Context::getValue(), and llvm::sandboxir::Value::Val.
Referenced by llvm::sandboxir::MoveInstr::MoveInstr(), and llvm::sandboxir::RemoveFromParent::RemoveFromParent().
|
pure virtual |
This is used by BasicBlock::iterator.
Implemented in llvm::sandboxir::SingleLLVMInstructionImpl< LLVMT >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::AtomicCmpXchgInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::AtomicRMWInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::BinaryOperator >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::BranchInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::CallBase >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::CatchSwitchInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::ExtractElementInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::GetElementPtrInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::InsertElementInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::Instruction >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::PHINode >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::ReturnInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::SelectInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::StoreInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::SwitchInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::UnaryInstruction >, and llvm::sandboxir::UnreachableInst.
Referenced by llvm::sandboxir::BBIterator::operator++(), and llvm::sandboxir::BBIterator::operator--().
|
inline |
\Returns this Instruction's opcode.
Note that SandboxIR has its own opcode state to allow for new SandboxIR-specific instructions.
Definition at line 710 of file SandboxIR.h.
References Opc.
Definition at line 307 of file SandboxIR.cpp.
References llvm_unreachable, and Opc.
BasicBlock * Instruction::getParent | ( | ) | const |
\Returns the BasicBlock containing this Instruction, or null if it is detached.
Definition at line 455 of file SandboxIR.cpp.
References llvm::sandboxir::Value::Ctx, llvm::sandboxir::BasicBlock::getParent(), llvm::sandboxir::Context::getValue(), and llvm::sandboxir::Value::Val.
Referenced by llvm::sandboxir::AtomicRMWInst::create(), llvm::sandboxir::CallInst::create(), llvm::sandboxir::CallBrInst::create(), llvm::sandboxir::InvokeInst::create(), llvm::sandboxir::BinaryOperator::create(), llvm::sandboxir::UnaryOperator::create(), llvm::sandboxir::CastInst::create(), llvm::sandboxir::AllocaInst::create(), llvm::sandboxir::GetElementPtrInst::create(), llvm::sandboxir::AtomicCmpXchgInst::create(), llvm::sandboxir::CastInstImpl< Op >::create(), llvm::sandboxir::BinaryOperator::createWithCopiedFlags(), llvm::sandboxir::UnaryOperator::createWithCopiedFlags(), getNextNode(), getPrevNode(), getTopmostLLVMInstruction(), insertAfter(), llvm::sandboxir::MoveInstr::MoveInstr(), and llvm::sandboxir::RemoveFromParent::RemoveFromParent().
Instruction * Instruction::getPrevNode | ( | ) | const |
\Returns the previous sandboxir::Instruction in the block, or nullptr if at the beginning of the block.
Definition at line 351 of file SandboxIR.cpp.
References assert(), getIterator(), and getParent().
Referenced by getTopmostLLVMInstruction().
|
protected |
A SandboxIR Instruction may map to multiple LLVM IR Instruction.
This returns its topmost LLVM IR instruction.
Definition at line 319 of file SandboxIR.cpp.
References llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), getParent(), getPrevNode(), and llvm::sandboxir::Value::Val.
Referenced by llvm::sandboxir::BranchInst::create(), llvm::sandboxir::UnreachableInst::create(), llvm::sandboxir::PHINode::create(), llvm::sandboxir::LoadInst::create(), llvm::sandboxir::SelectInst::create(), llvm::sandboxir::ReturnInst::create(), llvm::sandboxir::StoreInst::create(), llvm::sandboxir::ExtractElementInst::create(), llvm::sandboxir::InsertElementInst::create(), insertBefore(), insertInto(), and moveBefore().
|
inline |
Determine whether the allow-contract flag is set.
Definition at line 799 of file SandboxIR.h.
References llvm::sandboxir::Value::Val.
Referenced by setHasAllowContract().
|
inline |
Determine whether the allow-reassociation flag is set.
Definition at line 758 of file SandboxIR.h.
References llvm::sandboxir::Value::Val.
Referenced by setHasAllowReassoc().
|
inline |
Determine whether the allow-reciprocal flag is set.
Definition at line 791 of file SandboxIR.h.
References llvm::sandboxir::Value::Val.
Referenced by setHasAllowReciprocal().
|
inline |
Determine whether the approximate-math-functions flag is set.
Definition at line 807 of file SandboxIR.h.
References llvm::sandboxir::Value::Val.
Referenced by setHasApproxFunc().
|
inline |
Determine whether the no-infs flag is set.
Definition at line 777 of file SandboxIR.h.
References llvm::sandboxir::Value::Val.
|
inline |
Determine whether the no-NaNs flag is set.
Definition at line 771 of file SandboxIR.h.
References llvm::sandboxir::Value::Val.
|
inline |
Determine whether the no signed wrap flag is set.
Definition at line 745 of file SandboxIR.h.
References llvm::sandboxir::Value::Val.
Referenced by setHasNoSignedWrap().
|
inline |
Determine whether the no-signed-zeros flag is set.
Definition at line 783 of file SandboxIR.h.
References llvm::sandboxir::Value::Val.
Referenced by setHasNoSignedZeros().
|
inline |
Determine whether the no signed wrap flag is set.
Definition at line 738 of file SandboxIR.h.
References llvm::sandboxir::Value::Val.
Referenced by setHasNoUnsignedWrap().
void Instruction::insertAfter | ( | Instruction * | AfterI | ) |
Insert this detached instruction after AfterI
.
Definition at line 429 of file SandboxIR.cpp.
References getIterator(), getParent(), and insertInto().
void Instruction::insertBefore | ( | Instruction * | BeforeI | ) |
Insert this detached instruction before BeforeI
.
Definition at line 415 of file SandboxIR.cpp.
References assert(), llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), getLLVMInstrs(), getTopmostLLVMInstruction(), llvm::sandboxir::Context::getTracker(), I, and llvm::is_sorted().
Referenced by llvm::sandboxir::RemoveFromParent::revert().
void Instruction::insertInto | ( | BasicBlock * | BB, |
const BBIterator & | WhereIt | ||
) |
Insert this detached instruction into BB
at WhereIt
.
Definition at line 433 of file SandboxIR.cpp.
References llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), llvm::BasicBlock::end(), llvm::sandboxir::BasicBlock::end(), llvm::ilist_node_impl< OptionsT >::getIterator(), getLLVMInstrs(), getTopmostLLVMInstruction(), llvm::sandboxir::Context::getTracker(), I, and llvm::sandboxir::Value::Val.
Referenced by insertAfter(), and llvm::sandboxir::RemoveFromParent::revert().
|
inline |
Determine whether the exact flag is set.
Definition at line 766 of file SandboxIR.h.
References llvm::sandboxir::Value::Val.
|
inline |
Determine whether all fast-math-flags are set.
Definition at line 752 of file SandboxIR.h.
References llvm::sandboxir::Value::Val.
|
inline |
Move this instruction after After
.
Definition at line 728 of file SandboxIR.h.
References After, and moveBefore().
void Instruction::moveBefore | ( | BasicBlock & | BB, |
const BBIterator & | WhereIt | ||
) |
Move this instruction to WhereIt
.
Definition at line 391 of file SandboxIR.cpp.
References assert(), llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), llvm::sandboxir::BasicBlock::end(), llvm::ilist_node_impl< OptionsT >::getIterator(), getIterator(), getLLVMInstrs(), getTopmostLLVMInstruction(), llvm::sandboxir::Context::getTracker(), I, llvm::is_sorted(), and llvm::sandboxir::Value::Val.
Referenced by moveAfter(), moveBefore(), and llvm::sandboxir::MoveInstr::revert().
|
inline |
Move this instruction before Before
.
Definition at line 724 of file SandboxIR.h.
References Before, and moveBefore().
void Instruction::removeFromParent | ( | ) |
Detach this from its parent BasicBlock without deleting it.
Definition at line 359 of file SandboxIR.cpp.
References llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), getLLVMInstrs(), llvm::sandboxir::Context::getTracker(), and I.
Referenced by llvm::sandboxir::InsertIntoBB::revert().
void Instruction::setFast | ( | bool | B | ) |
Set or clear all fast-math-flags on this instruction, which must be an operator which supports this flag.
See LangRef.html for the meaning of this flag.
Definition at line 490 of file SandboxIR.cpp.
References B, llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), llvm::sandboxir::Context::getTracker(), and llvm::sandboxir::Value::Val.
void Instruction::setFastMathFlags | ( | FastMathFlags | FMF | ) |
Convenience function for setting multiple fast-math flags on this instruction, which must be an operator which supports these flags.
See LangRef.html for the meaning of these flags.
Definition at line 551 of file SandboxIR.cpp.
References copyFastMathFlags(), llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), getFastMathFlags(), llvm::sandboxir::Context::getTracker(), and llvm::sandboxir::Value::Val.
void Instruction::setHasAllowContract | ( | bool | B | ) |
Set or clear the allow-contract flag on this instruction, which must be an operator which supports this flag.
See LangRef.html for the meaning of this flag.
Definition at line 543 of file SandboxIR.cpp.
References B, llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), llvm::sandboxir::Context::getTracker(), hasAllowContract(), setHasAllowContract(), and llvm::sandboxir::Value::Val.
Referenced by setHasAllowContract().
void Instruction::setHasAllowReassoc | ( | bool | B | ) |
Set or clear the reassociation flag on this instruction, which must be an operator which supports this flag.
See LangRef.html for the meaning of this flag.
Definition at line 504 of file SandboxIR.cpp.
References B, llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), llvm::sandboxir::Context::getTracker(), hasAllowReassoc(), setHasAllowReassoc(), and llvm::sandboxir::Value::Val.
Referenced by setHasAllowReassoc().
void Instruction::setHasAllowReciprocal | ( | bool | B | ) |
Set or clear the allow-reciprocal flag on this instruction, which must be an operator which supports this flag.
See LangRef.html for the meaning of this flag.
Definition at line 535 of file SandboxIR.cpp.
References B, llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), llvm::sandboxir::Context::getTracker(), hasAllowReciprocal(), setHasAllowReciprocal(), and llvm::sandboxir::Value::Val.
Referenced by setHasAllowReciprocal().
void Instruction::setHasApproxFunc | ( | bool | B | ) |
Set or clear the approximate-math-functions flag on this instruction, which must be an operator which supports this flag.
See LangRef.html for the meaning of this flag.
Definition at line 565 of file SandboxIR.cpp.
References B, llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), llvm::sandboxir::Context::getTracker(), hasApproxFunc(), setHasApproxFunc(), and llvm::sandboxir::Value::Val.
Referenced by setHasApproxFunc().
void Instruction::setHasNoInfs | ( | bool | B | ) |
Set or clear the no-infs flag on this instruction, which must be an operator which supports this flag.
See LangRef.html for the meaning of this flag.
Definition at line 519 of file SandboxIR.cpp.
References B, llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), llvm::sandboxir::Context::getTracker(), and llvm::sandboxir::Value::Val.
void Instruction::setHasNoNaNs | ( | bool | B | ) |
Set or clear the no-nans flag on this instruction, which must be an operator which supports this flag.
See LangRef.html for the meaning of this flag.
Definition at line 511 of file SandboxIR.cpp.
References B, llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), llvm::sandboxir::Context::getTracker(), and llvm::sandboxir::Value::Val.
Set or clear the nsw flag on this instruction, which must be an operator which supports this flag.
See LangRef.html for the meaning of this flag.
Definition at line 483 of file SandboxIR.cpp.
References B, llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), llvm::sandboxir::Context::getTracker(), hasNoSignedWrap(), setHasNoSignedWrap(), and llvm::sandboxir::Value::Val.
Referenced by setHasNoSignedWrap().
void Instruction::setHasNoSignedZeros | ( | bool | B | ) |
Set or clear the no-signed-zeros flag on this instruction, which must be an operator which supports this flag.
See LangRef.html for the meaning of this flag.
Definition at line 527 of file SandboxIR.cpp.
References B, llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), llvm::sandboxir::Context::getTracker(), hasNoSignedZeros(), setHasNoSignedZeros(), and llvm::sandboxir::Value::Val.
Referenced by setHasNoSignedZeros().
Set or clear the nuw flag on this instruction, which must be an operator which supports this flag.
See LangRef.html for the meaning of this flag.
Definition at line 475 of file SandboxIR.cpp.
References B, llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), llvm::sandboxir::Context::getTracker(), hasNoUnsignedWrap(), setHasNoUnsignedWrap(), and llvm::sandboxir::Value::Val.
Referenced by setHasNoUnsignedWrap().
Set or clear the exact flag on this instruction, which must be an operator which supports this flag.
See LangRef.html for the meaning of this flag.
Definition at line 497 of file SandboxIR.cpp.
References B, llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), llvm::sandboxir::Context::getTracker(), and llvm::sandboxir::Value::Val.
|
friend |
Definition at line 686 of file SandboxIR.h.
|
friend |
Definition at line 685 of file SandboxIR.h.
|
friend |
Definition at line 684 of file SandboxIR.h.
|
friend |
Definition at line 683 of file SandboxIR.h.
|
friend |
Definition at line 672 of file SandboxIR.h.
|
friend |
Definition at line 678 of file SandboxIR.h.
|
friend |
Definition at line 676 of file SandboxIR.h.
|
friend |
Definition at line 687 of file SandboxIR.h.
|
friend |
Definition at line 680 of file SandboxIR.h.
|
friend |
Definition at line 694 of file SandboxIR.h.
|
friend |
Definition at line 670 of file SandboxIR.h.
|
friend |
Definition at line 679 of file SandboxIR.h.
|
friend |
Definition at line 671 of file SandboxIR.h.
|
friend |
Definition at line 677 of file SandboxIR.h.
|
friend |
Definition at line 673 of file SandboxIR.h.
|
friend |
Definition at line 688 of file SandboxIR.h.
|
friend |
Definition at line 675 of file SandboxIR.h.
|
friend |
Definition at line 669 of file SandboxIR.h.
|
friend |
Definition at line 674 of file SandboxIR.h.
|
friend |
Definition at line 681 of file SandboxIR.h.
|
friend |
Definition at line 682 of file SandboxIR.h.
|
friend |
Definition at line 689 of file SandboxIR.h.
|
protected |
Definition at line 664 of file SandboxIR.h.
Referenced by llvm::sandboxir::CallBase::classof(), getOpcode(), and getOpcodeName().