|
LLVM 22.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 |
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().
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.