LLVM 20.0.0git
|
#include "llvm/SandboxIR/Constant.h"
Public Member Functions | |
StructType * | getType () const |
Specialization - reduce amount of casting. | |
Public Member Functions inherited from llvm::sandboxir::Constant | |
sandboxir::Context & | getParent () const |
unsigned | getUseOperandNo (const Use &Use) const override |
\Returns the operand index of Use . | |
void | verify () const override |
Should crash if there is something wrong with the instruction. | |
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 Constant * | get (StructType *T, ArrayRef< Constant * > V) |
template<typename... Csts> | |
static std::enable_if_t< are_base_of< Constant, Csts... >::value, Constant * > | get (StructType *T, Csts *...Vs) |
static Constant * | getAnon (ArrayRef< Constant * > V, bool Packed=false) |
Return an anonymous struct that has the specified elements. | |
static Constant * | getAnon (Context &Ctx, ArrayRef< Constant * > V, bool Packed=false) |
static StructType * | getTypeForElements (Context &Ctx, ArrayRef< Constant * > V, bool Packed=false) |
This version of the method allows an empty list. | |
static StructType * | getTypeForElements (ArrayRef< Constant * > V, bool Packed=false) |
Return an anonymous struct type to use for a constant with the specified set of elements. | |
static bool | classof (const Value *From) |
For isa/dyn_cast. | |
Static Public Member Functions inherited from llvm::sandboxir::ConstantAggregate | |
static bool | classof (const sandboxir::Value *From) |
For isa/dyn_cast. | |
Static Public Member Functions inherited from llvm::sandboxir::Constant | |
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. | |
Friends | |
class | Context |
Additional Inherited Members | |
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 |
Protected Member Functions inherited from llvm::sandboxir::ConstantAggregate | |
ConstantAggregate (ClassID ID, llvm::Constant *C, Context &Ctx) | |
Protected Member Functions inherited from llvm::sandboxir::Constant | |
Constant (llvm::Constant *C, sandboxir::Context &SBCtx) | |
Constant (ClassID ID, llvm::Constant *C, sandboxir::Context &SBCtx) | |
Use | getOperandUseInternal (unsigned OpIdx, bool Verify) const override |
\Returns the Use for the OpIdx'th operand. | |
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::Value | |
static const char * | getSubclassIDStr (ClassID ID) |
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. | |
Definition at line 376 of file Constant.h.
|
static |
Definition at line 155 of file Constant.cpp.
References llvm::sandboxir::Value::Ctx, llvm::ConstantStruct::get(), llvm::sandboxir::Context::getOrCreateConstant(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorImpl< T >::reserve().
|
inlinestatic |
Definition at line 386 of file Constant.h.
References get().
|
inlinestatic |
Return an anonymous struct that has the specified elements.
If the struct is possibly empty, then you must specify a context.
Definition at line 391 of file Constant.h.
References get(), and getTypeForElements().
|
inlinestatic |
Definition at line 394 of file Constant.h.
References llvm::sandboxir::Value::Ctx, get(), and getTypeForElements().
|
inline |
Specialization - reduce amount of casting.
Definition at line 411 of file Constant.h.
References llvm::sandboxir::Value::getType().
|
inlinestatic |
Return an anonymous struct type to use for a constant with the specified set of elements.
The list must not be empty.
Definition at line 403 of file Constant.h.
References assert(), llvm::sandboxir::Value::getContext(), and getTypeForElements().
|
static |
This version of the method allows an empty list.
Definition at line 166 of file Constant.cpp.
References llvm::sandboxir::Value::Ctx, llvm::sandboxir::StructType::get(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorImpl< T >::reserve().
Referenced by getAnon(), and getTypeForElements().
|
friend |
Definition at line 379 of file Constant.h.