|
LLVM 24.0.0git
|
#include "llvm/SandboxIR/Constant.h"
Public Member Functions | |
| FixedVectorType * | getType () const |
| Specialize the getType() method to always return a FixedVectorType, which reduces the amount of casting needed in parts of the compiler. | |
| LLVM_ABI Constant * | getSplatValue (bool AllowPoison=false) const |
| If all elements of the vector constant have the same value, return that value. | |
| 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 |
| LLVM_ABI 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 |
| LLVM_ABI 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 |
| LLVM_ABI 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. | |
| LLVM_ABI Type * | getType () const |
| Context & | getContext () const |
| LLVM_ABI void | replaceUsesWithIf (Value *OtherV, llvm::function_ref< bool(const Use &)> ShouldReplace) |
| LLVM_ABI void | replaceAllUsesWith (Value *Other) |
| StringRef | getName () const |
| \Returns the LLVM IR name of the bottom-most LLVM value. | |
| std::string | getUid () const |
| Returns the unique id in the form 'SB<number>.' like 'SB1.'. | |
| void | dumpCommonFooter (raw_ostream &OS) const |
| void | dumpCommonPrefix (raw_ostream &OS) const |
| void | dumpCommonSuffix (raw_ostream &OS) const |
| void | printAsOperandCommon (raw_ostream &OS) const |
| LLVM_DUMP_METHOD void | dump () const |
Static Public Member Functions | |
| static LLVM_ABI Constant * | get (ArrayRef< Constant * > V) |
| static LLVM_ABI Constant * | getSplat (ElementCount EC, Constant *Elt) |
| Return a ConstantVector with the specified constant in each element. | |
| 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 |
| 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. | |
| 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. | |
| void | swapOperandsInternal (unsigned OpIdxA, unsigned OpIdxB) |
| void | verifyUserOfLLVMUse (const llvm::Use &Use) const |
| Protected Member Functions inherited from llvm::sandboxir::Value | |
| void | clearValue () |
| LLVM_ABI | 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 423 of file Constant.h.
For isa/dyn_cast.
Definition at line 444 of file Constant.h.
References llvm::sandboxir::Value::getSubclassID().
Definition at line 176 of file Constant.cpp.
References assert(), llvm::cast(), llvm::sandboxir::Value::Ctx, llvm::ConstantVector::get(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorImpl< T >::reserve().
Referenced by llvm::sandboxir::LoadStoreVec::runOnRegion().
|
static |
Return a ConstantVector with the specified constant in each element.
Note that this might not return an instance of ConstantVector
Definition at line 186 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Value::Ctx, llvm::sandboxir::Value::getContext(), llvm::ConstantVector::getSplat(), and llvm::sandboxir::Value::Val.
If all elements of the vector constant have the same value, return that value.
Otherwise, return nullptr. Ignore poison elements by setting AllowPoison to true.
Definition at line 192 of file Constant.cpp.
References llvm::cast(), llvm::cast_or_null(), llvm::sandboxir::Value::Ctx, getSplatValue(), and llvm::sandboxir::Value::Val.
Referenced by getSplatValue().
|
inline |
Specialize the getType() method to always return a FixedVectorType, which reduces the amount of casting needed in parts of the compiler.
Definition at line 435 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::getType().
|
friend |