LLVM 22.0.0git
|
ConstantDataSequential - A vector or array constant whose element type is a simple 1/2/4/8-byte integer or half/bfloat/float/double, and whose elements are just simple data values (i.e. More...
#include "llvm/SandboxIR/Constant.h"
Public Member Functions | |
uint64_t | getElementAsInteger (unsigned ElmIdx) const |
If this is a sequential container of integers (of any size), return the specified element in the low bits of a uint64_t. | |
APInt | getElementAsAPInt (unsigned ElmIdx) const |
If this is a sequential container of integers (of any size), return the specified element as an APInt. | |
APFloat | getElementAsAPFloat (unsigned ElmIdx) const |
If this is a sequential container of floating point type, return the specified element as an APFloat. | |
float | getElementAsFloat (unsigned ElmIdx) const |
If this is an sequential container of floats, return the specified element as a float. | |
double | getElementAsDouble (unsigned ElmIdx) const |
If this is an sequential container of doubles, return the specified element as a double. | |
Constant * | getElementAsConstant (unsigned ElmIdx) const |
Return a Constant for a specified index's element. | |
Type * | getElementType () const |
Return the element type of the array/vector. | |
unsigned | getNumElements () const |
Return the number of elements in the array or vector. | |
uint64_t | getElementByteSize () const |
Return the size (in bytes) of each element in the array/vector. | |
bool | isString (unsigned CharSize=8) const |
This method returns true if this is an array of CharSize integers. | |
bool | isCString () const |
This method returns true if the array "isString", ends with a null byte, and does not contains any other null bytes. | |
StringRef | getAsString () const |
If this array is isString(), then this method returns the array as a StringRef. | |
StringRef | getAsCString () const |
If this array is isCString(), then this method returns the array (without the trailing null byte) as a StringRef. | |
StringRef | getRawDataValues () const |
Return the raw, underlying, bytes of this data. | |
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 bool | isElementTypeCompatible (Type *Ty) |
Return true if a ConstantDataSequential can be formed with a vector or array of the specified element type. | |
static bool | classof (const Value *From) |
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. |
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 |
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. |
ConstantDataSequential - A vector or array constant whose element type is a simple 1/2/4/8-byte integer or half/bfloat/float/double, and whose elements are just simple data values (i.e.
ConstantInt/ConstantFP). This Constant node has no operands because it stores all of the elements of the constant as densely packed data, instead of as Value*'s.
This is the common base class of ConstantDataArray and ConstantDataVector.
Definition at line 498 of file Constant.h.
|
inlineprotected |
Definition at line 500 of file Constant.h.
References llvm::CallingConv::C, llvm::sandboxir::Constant::Constant(), llvm::sandboxir::Constant::Context, and llvm::sandboxir::Value::Ctx.
Definition at line 584 of file Constant.h.
References llvm::sandboxir::Value::getSubclassID().
|
inline |
If this array is isCString(), then this method returns the array (without the trailing null byte) as a StringRef.
Otherwise, it asserts out.
Definition at line 574 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inline |
If this array is isString(), then this method returns the array as a StringRef.
Otherwise, it asserts out.
Definition at line 569 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inline |
If this is a sequential container of floating point type, return the specified element as an APFloat.
Definition at line 524 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
If this is a sequential container of integers (of any size), return the specified element as an APInt.
Definition at line 519 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inline |
Return a Constant for a specified index's element.
Note that this has to compute a new constant to return, so it isn't as efficient as getElementAsInteger/Float/Double.
Definition at line 540 of file Constant.h.
References llvm::cast(), llvm::sandboxir::Constant::Constant(), llvm::sandboxir::Value::Ctx, getElementAsConstant(), and llvm::sandboxir::Value::Val.
Referenced by getElementAsConstant().
|
inline |
If this is an sequential container of doubles, return the specified element as a double.
Definition at line 534 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inline |
If this is an sequential container of floats, return the specified element as a float.
Definition at line 529 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inline |
If this is a sequential container of integers (of any size), return the specified element in the low bits of a uint64_t.
Definition at line 514 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inline |
Return the size (in bytes) of each element in the array/vector.
The size of the elements is known to be a multiple of one byte.
Definition at line 555 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inline |
Return the element type of the array/vector.
Definition at line 545 of file Constant.h.
References llvm::cast(), llvm::sandboxir::Value::Ctx, getElementType(), and llvm::sandboxir::Value::Val.
Referenced by getElementType().
|
inline |
Return the number of elements in the array or vector.
Definition at line 550 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inline |
Return the raw, underlying, bytes of this data.
Note that this is an extremely tricky thing to work with, as it exposes the host endianness of the data elements.
Definition at line 580 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inline |
This method returns true if the array "isString", ends with a null byte, and does not contains any other null bytes.
Definition at line 564 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
Return true if a ConstantDataSequential can be formed with a vector or array of the specified element type.
ConstantDataArray only works with normal float and int types that are stored densely in memory, not with things like i42 or x86_f80.
Definition at line 509 of file Constant.h.
References llvm::ConstantDataSequential::isElementTypeCompatible().
This method returns true if this is an array of CharSize
integers.
Definition at line 559 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.