|
LLVM 24.0.0git
|
#include "llvm/SandboxIR/Constant.h"
Public Member Functions | |
| const APFloat & | getValueAPF () const |
| const APFloat & | getValue () const |
| bool | isZero () const |
| Return true if the value is positive or negative zero. | |
| bool | isNegative () const |
| Return true if the sign bit is set. | |
| bool | isInfinity () const |
| Return true if the value is infinity. | |
| bool | isNaN () const |
| Return true if the value is a NaN. | |
| bool | isExactlyValue (const APFloat &V) const |
| We don't rely on operator== working on double values, as it returns true for things that are clearly not equal, like -0.0 and 0.0. | |
| bool | isExactlyValue (double V) const |
| unsigned | getUseOperandNo (const Use &Use) const final |
\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::Constant | |
| sandboxir::Context & | getParent () const |
| 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 (Type *Ty, double V) |
| This returns a ConstantFP, or a vector containing a splat of a ConstantFP, for the specified value in the specified type. | |
| static LLVM_ABI Constant * | get (Type *Ty, const APFloat &V) |
| If Ty is a vector type, return a Constant with a splat of the given value. | |
| static LLVM_ABI Constant * | get (Type *Ty, StringRef Str) |
| static LLVM_ABI ConstantFP * | get (const APFloat &V, Context &Ctx) |
| static LLVM_ABI Constant * | getNaN (Type *Ty, bool Negative=false, uint64_t Payload=0) |
| static LLVM_ABI Constant * | getQNaN (Type *Ty, bool Negative=false, APInt *Payload=nullptr) |
| static LLVM_ABI Constant * | getSNaN (Type *Ty, bool Negative=false, APInt *Payload=nullptr) |
| static LLVM_ABI Constant * | getZero (Type *Ty, bool Negative=false) |
| static LLVM_ABI Constant * | getNegativeZero (Type *Ty) |
| static LLVM_ABI Constant * | getInfinity (Type *Ty, bool Negative=false) |
| static LLVM_ABI bool | isValueValidForType (Type *Ty, const APFloat &V) |
| Return true if Ty is big enough to represent V. | |
| 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::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 259 of file Constant.h.
|
inlinestatic |
For isa/dyn_cast.
Definition at line 327 of file Constant.h.
References llvm::sandboxir::Value::getSubclassID().
|
inlineoverridevirtual |
Reimplemented from llvm::sandboxir::Constant.
Definition at line 339 of file Constant.h.
References llvm::sandboxir::Value::dumpCommonPrefix(), and llvm::sandboxir::Value::dumpCommonSuffix().
|
static |
Definition at line 105 of file Constant.cpp.
References llvm::cast(), Context, and llvm::sandboxir::Value::Ctx.
If Ty is a vector type, return a Constant with a splat of the given value.
Otherwise return a ConstantFP for the given value.
Definition at line 95 of file Constant.cpp.
References llvm::sandboxir::Constant::Constant().
This returns a ConstantFP, or a vector containing a splat of a ConstantFP, for the specified value in the specified type.
This should only be used for simple constant values like 2.0/1.0 etc, that are known-valid both as host double and as the target format.
Definition at line 90 of file Constant.cpp.
References llvm::sandboxir::Constant::Constant().
Referenced by llvm::sandboxir::LoadStoreVec::runOnRegion().
Definition at line 100 of file Constant.cpp.
References llvm::sandboxir::Constant::Constant().
Definition at line 130 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::Constant(), and llvm::ConstantFP::getInfinity().
|
static |
Definition at line 110 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::Constant(), and llvm::ConstantFP::getNaN().
Definition at line 126 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::Constant(), and llvm::ConstantFP::getNegativeZero().
|
static |
Definition at line 114 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::Constant(), and llvm::ConstantFP::getQNaN().
|
static |
Definition at line 118 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::Constant(), and llvm::ConstantFP::getSNaN().
\Returns the operand index of Use.
Reimplemented from llvm::sandboxir::Constant.
Definition at line 332 of file Constant.h.
References llvm_unreachable.
Definition at line 296 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
Definition at line 293 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
Definition at line 122 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::Constant(), and llvm::ConstantFP::getZero().
We don't rely on operator== working on double values, as it returns true for things that are clearly not equal, like -0.0 and 0.0.
As such, this method can be used to do an exact bit-for-bit comparison of two floating point values. The version with a double operand is retained because it's so convenient to write isExactlyValue(2.0), but please use it only for simple constants.
Definition at line 318 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inline |
Definition at line 322 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inline |
Return true if the value is infinity.
Definition at line 307 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inline |
Return true if the value is a NaN.
Definition at line 310 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inline |
Return true if the sign bit is set.
Definition at line 304 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
Return true if Ty is big enough to represent V.
Definition at line 134 of file Constant.cpp.
References llvm::ConstantFP::isValueValidForType().
|
inline |
Return true if the value is positive or negative zero.
Definition at line 301 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inlineoverridevirtual |
Should crash if there is something wrong with the instruction.
Reimplemented from llvm::sandboxir::Constant.
Definition at line 336 of file Constant.h.
References assert(), llvm::isa(), and llvm::sandboxir::Value::Val.
|
friend |
Definition at line 262 of file Constant.h.
References llvm::sandboxir::Constant::Constant(), Context, llvm::sandboxir::Value::Ctx, and LLVM_ABI.