LLVM 22.0.0git
|
#include "llvm/SandboxIR/Constant.h"
Public Member Functions | |
LLVM_ABI Constant * | getPointer () const |
The pointer that is signed in this ptrauth signed pointer. | |
LLVM_ABI ConstantInt * | getKey () const |
The Key ID, an i32 constant. | |
LLVM_ABI ConstantInt * | getDiscriminator () const |
The integer discriminator, an i64 constant, or 0. | |
LLVM_ABI Constant * | getAddrDiscriminator () const |
The address discriminator if any, or the null constant. | |
bool | hasAddressDiscriminator () const |
Whether there is any non-null address discriminator. | |
bool | hasSpecialAddressDiscriminator (uint64_t Value) const |
Whether the address uses a special address discriminator. | |
bool | isKnownCompatibleWith (const Value *Key, const Value *Discriminator, const DataLayout &DL) const |
Check whether an authentication operation with key Key and (possibly blended) discriminator Discriminator is known to be compatible with this ptrauth signed pointer. | |
LLVM_ABI ConstantPtrAuth * | getWithSameSchema (Constant *Pointer) const |
Produce a new ptrauth expression signing the given value using the same schema as is stored in one. | |
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 ConstantPtrAuth * | get (Constant *Ptr, ConstantInt *Key, ConstantInt *Disc, Constant *AddrDisc) |
Return a pointer signed with the specified parameters. | |
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 1358 of file Constant.h.
|
inlinestatic |
For isa/dyn_cast.
Definition at line 1409 of file Constant.h.
References llvm::sandboxir::Value::getSubclassID().
|
static |
Return a pointer signed with the specified parameters.
Definition at line 414 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::Constant(), llvm::sandboxir::Constant::ConstantInt, llvm::ConstantPtrAuth::get(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, Ptr, and llvm::sandboxir::Value::Val.
Constant * llvm::sandboxir::ConstantPtrAuth::getAddrDiscriminator | ( | ) | const |
The address discriminator if any, or the null constant.
If present, this must be a value equivalent to the storage location of the only global-initializer user of the ptrauth signed pointer.
Definition at line 437 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::Constant(), llvm::sandboxir::Value::Ctx, getAddrDiscriminator(), and llvm::sandboxir::Value::Val.
Referenced by getAddrDiscriminator().
ConstantInt * llvm::sandboxir::ConstantPtrAuth::getDiscriminator | ( | ) | const |
The integer discriminator, an i64 constant, or 0.
Definition at line 432 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::ConstantInt, llvm::sandboxir::Value::Ctx, and llvm::sandboxir::Value::Val.
ConstantInt * llvm::sandboxir::ConstantPtrAuth::getKey | ( | ) | const |
The Key ID, an i32 constant.
Definition at line 427 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::ConstantInt, llvm::sandboxir::Value::Ctx, and llvm::sandboxir::Value::Val.
Constant * llvm::sandboxir::ConstantPtrAuth::getPointer | ( | ) | const |
The pointer that is signed in this ptrauth signed pointer.
Definition at line 422 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::Constant(), llvm::sandboxir::Value::Ctx, getPointer(), and llvm::sandboxir::Value::Val.
Referenced by getPointer().
ConstantPtrAuth * llvm::sandboxir::ConstantPtrAuth::getWithSameSchema | ( | Constant * | Pointer | ) | const |
Produce a new ptrauth expression signing the given value using the same schema as is stored in one.
Definition at line 442 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::Constant(), llvm::sandboxir::Value::Ctx, getWithSameSchema(), and llvm::sandboxir::Value::Val.
Referenced by getWithSameSchema().
|
inline |
Whether there is any non-null address discriminator.
Definition at line 1382 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inline |
Whether the address uses a special address discriminator.
These discriminators can't be used in real pointer-auth values; they can only be used in "prototype" values that indicate how some real schema is supposed to be produced.
Definition at line 1390 of file Constant.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
|
inline |
Check whether an authentication operation with key Key
and (possibly blended) discriminator Discriminator
is known to be compatible with this ptrauth signed pointer.
Definition at line 1398 of file Constant.h.
References llvm::cast(), DL, llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, and llvm::sandboxir::Value::Val.
|
friend |
Definition at line 1361 of file Constant.h.
References llvm::sandboxir::Constant::Constant(), llvm::sandboxir::Constant::ConstantInt, Context, llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, LLVM_ABI, and Ptr.
Referenced by Context.