|
LLVM 24.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. | |
| LLVM_ABI Constant * | getDeactivationSymbol () const |
| 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, Constant *DeactivationSymbol) |
| 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 |
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 1359 of file Constant.h.
|
inlinestatic |
For isa/dyn_cast.
Definition at line 1413 of file Constant.h.
References llvm::sandboxir::Value::getSubclassID().
|
static |
Return a pointer signed with the specified parameters.
Definition at line 418 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::Constant(), llvm::sandboxir::Constant::ConstantInt, llvm::ConstantPtrAuth::get(), llvm::sandboxir::Value::getContext(), llvm::sandboxir::Context::getOrCreateConstant(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, 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 443 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::Constant(), llvm::sandboxir::Value::Ctx, getAddrDiscriminator(), and llvm::sandboxir::Value::Val.
Referenced by getAddrDiscriminator().
| Constant * llvm::sandboxir::ConstantPtrAuth::getDeactivationSymbol | ( | ) | const |
Definition at line 448 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::Constant(), llvm::sandboxir::Value::Ctx, getDeactivationSymbol(), and llvm::sandboxir::Value::Val.
| ConstantInt * llvm::sandboxir::ConstantPtrAuth::getDiscriminator | ( | ) | const |
The integer discriminator, an i64 constant, or 0.
Definition at line 438 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 433 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 428 of file Constant.cpp.
References llvm::cast(), llvm::sandboxir::Constant::Constant(), llvm::sandboxir::Value::Ctx, getPointer(), and llvm::sandboxir::Value::Val.
| 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 453 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 1386 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 1394 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 1402 of file Constant.h.
References llvm::cast(), DL, llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, and llvm::sandboxir::Value::Val.
|
friend |
Definition at line 1362 of file Constant.h.
References llvm::sandboxir::Constant::Constant(), llvm::sandboxir::Constant::ConstantInt, Context, llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, and LLVM_ABI.
Referenced by Context.