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.