|
void | operator delete (void *Ptr) |
|
| DECLARE_TRANSPARENT_OPERAND_ACCESSORS (MemoryAccess) |
| Provide fast operand accessors.
|
|
| MemoryPhi (LLVMContext &C, BasicBlock *BB, unsigned Ver, unsigned NumPreds=0) |
|
block_iterator | block_begin () |
|
const_block_iterator | block_begin () const |
|
block_iterator | block_end () |
|
const_block_iterator | block_end () const |
|
iterator_range< block_iterator > | blocks () |
|
iterator_range< const_block_iterator > | blocks () const |
|
op_range | incoming_values () |
|
const_op_range | incoming_values () const |
|
unsigned | getNumIncomingValues () const |
| Return the number of incoming edges.
|
|
MemoryAccess * | getIncomingValue (unsigned I) const |
| Return incoming value number x.
|
|
void | setIncomingValue (unsigned I, MemoryAccess *V) |
|
BasicBlock * | getIncomingBlock (unsigned I) const |
| Return incoming basic block number i .
|
|
BasicBlock * | getIncomingBlock (const Use &U) const |
| Return incoming basic block corresponding to an operand of the PHI.
|
|
BasicBlock * | getIncomingBlock (MemoryAccess::const_user_iterator I) const |
| Return incoming basic block corresponding to value use iterator.
|
|
void | setIncomingBlock (unsigned I, BasicBlock *BB) |
|
void | addIncoming (MemoryAccess *V, BasicBlock *BB) |
| Add an incoming value to the end of the PHI list.
|
|
int | getBasicBlockIndex (const BasicBlock *BB) const |
| Return the first index of the specified basic block in the value list for this PHI.
|
|
MemoryAccess * | getIncomingValueForBlock (const BasicBlock *BB) const |
|
void | unorderedDeleteIncoming (unsigned I) |
|
template<typename Fn > |
void | unorderedDeleteIncomingIf (Fn &&Pred) |
|
void | unorderedDeleteIncomingBlock (const BasicBlock *BB) |
|
void | unorderedDeleteIncomingValue (const MemoryAccess *MA) |
|
void | print (raw_ostream &OS) const |
|
unsigned | getID () const |
|
| MemoryAccess (const MemoryAccess &)=delete |
|
MemoryAccess & | operator= (const MemoryAccess &)=delete |
|
void * | operator new (size_t)=delete |
|
BasicBlock * | getBlock () const |
|
void | print (raw_ostream &OS) const |
|
void | dump () const |
|
memoryaccess_def_iterator | defs_begin () |
| This iterator walks over all of the defs in a given MemoryAccess.
|
|
const_memoryaccess_def_iterator | defs_begin () const |
|
memoryaccess_def_iterator | defs_end () |
|
const_memoryaccess_def_iterator | defs_end () const |
|
AllAccessType::self_iterator | getIterator () |
| Get the iterators for the all access list and the defs only list We default to the all access list.
|
|
AllAccessType::const_self_iterator | getIterator () const |
|
AllAccessType::reverse_self_iterator | getReverseIterator () |
|
AllAccessType::const_reverse_self_iterator | getReverseIterator () const |
|
DefsOnlyType::self_iterator | getDefsIterator () |
|
DefsOnlyType::const_self_iterator | getDefsIterator () const |
|
DefsOnlyType::reverse_self_iterator | getReverseDefsIterator () |
|
DefsOnlyType::const_reverse_self_iterator | getReverseDefsIterator () const |
|
| DerivedUser (Type *Ty, unsigned VK, AllocInfo AllocInfo, DeleteValueTy DeleteValue) |
|
| User (const User &)=delete |
|
void | operator delete (void *Usr) |
| Free memory allocated for User and Use objects.
|
|
void | operator delete (void *Usr, HungOffOperandsAllocMarker) |
| Placement delete - required by std, called if the ctor throws.
|
|
void | operator delete (void *Usr, IntrusiveOperandsAllocMarker) |
| Placement delete - required by std, called if the ctor throws.
|
|
void | operator delete (void *Usr, IntrusiveOperandsAndDescriptorAllocMarker) |
| Placement delete - required by std, called if the ctor throws.
|
|
const Use * | getOperandList () const |
|
Use * | getOperandList () |
|
Value * | getOperand (unsigned i) const |
|
void | setOperand (unsigned i, Value *Val) |
|
const Use & | getOperandUse (unsigned i) const |
|
Use & | getOperandUse (unsigned i) |
|
unsigned | getNumOperands () const |
|
ArrayRef< const uint8_t > | getDescriptor () const |
| Returns the descriptor co-allocated with this User instance.
|
|
MutableArrayRef< uint8_t > | getDescriptor () |
| Returns the descriptor co-allocated with this User instance.
|
|
void | setNumHungOffUseOperands (unsigned NumOps) |
| Subclasses with hung off uses need to manage the operand count themselves.
|
|
bool | isDroppable () const |
| A droppable user is a user for which uses can be dropped without affecting correctness and should be dropped rather than preventing a transformation from happening.
|
|
op_iterator | op_begin () |
|
const_op_iterator | op_begin () const |
|
op_iterator | op_end () |
|
const_op_iterator | op_end () const |
|
op_range | operands () |
|
const_op_range | operands () const |
|
value_op_iterator | value_op_begin () |
|
value_op_iterator | value_op_end () |
|
iterator_range< value_op_iterator > | operand_values () |
|
const_value_op_iterator | value_op_begin () const |
|
const_value_op_iterator | value_op_end () const |
|
iterator_range< const_value_op_iterator > | operand_values () const |
|
void | dropAllReferences () |
| Drop all references to operands.
|
|
bool | replaceUsesOfWith (Value *From, Value *To) |
| Replace uses of one Value with another.
|
|
| Value (const Value &)=delete |
|
Value & | operator= (const Value &)=delete |
|
void | deleteValue () |
| Delete a pointer to a generic Value.
|
|
void | dump () const |
| Support for debugging, callable in GDB: V->dump()
|
|
Type * | getType () const |
| All values are typed, get the type of this value.
|
|
LLVMContext & | getContext () const |
| All values hold a context through their type.
|
|
bool | hasName () const |
|
ValueName * | getValueName () const |
|
void | setValueName (ValueName *VN) |
|
StringRef | getName () const |
| Return a constant reference to the value's name.
|
|
void | setName (const Twine &Name) |
| Change the name of the value.
|
|
void | takeName (Value *V) |
| Transfer the name from V to this value.
|
|
std::string | getNameOrAsOperand () const |
|
void | replaceAllUsesWith (Value *V) |
| Change all uses of this to point to a new Value.
|
|
void | replaceNonMetadataUsesWith (Value *V) |
| Change non-metadata uses of this to point to a new Value.
|
|
void | replaceUsesWithIf (Value *New, llvm::function_ref< bool(Use &U)> ShouldReplace) |
| Go through the uses list for this definition and make each use point to "V" if the callback ShouldReplace returns true for the given Use.
|
|
void | replaceUsesOutsideBlock (Value *V, BasicBlock *BB) |
| replaceUsesOutsideBlock - Go through the uses list for this definition and make each use point to "V" instead of "this" when the use is outside the block.
|
|
void | assertModuleIsMaterializedImpl () const |
|
void | assertModuleIsMaterialized () const |
|
bool | use_empty () const |
|
bool | materialized_use_empty () const |
|
use_iterator | materialized_use_begin () |
|
const_use_iterator | materialized_use_begin () const |
|
use_iterator | use_begin () |
|
const_use_iterator | use_begin () const |
|
use_iterator | use_end () |
|
const_use_iterator | use_end () const |
|
iterator_range< use_iterator > | materialized_uses () |
|
iterator_range< const_use_iterator > | materialized_uses () const |
|
iterator_range< use_iterator > | uses () |
|
iterator_range< const_use_iterator > | uses () const |
|
bool | user_empty () const |
|
user_iterator | materialized_user_begin () |
|
const_user_iterator | materialized_user_begin () const |
|
user_iterator | user_begin () |
|
const_user_iterator | user_begin () const |
|
user_iterator | user_end () |
|
const_user_iterator | user_end () const |
|
User * | user_back () |
|
const User * | user_back () const |
|
iterator_range< user_iterator > | materialized_users () |
|
iterator_range< const_user_iterator > | materialized_users () const |
|
iterator_range< user_iterator > | users () |
|
iterator_range< const_user_iterator > | users () const |
|
bool | hasOneUse () const |
| Return true if there is exactly one use of this value.
|
|
bool | hasNUses (unsigned N) const |
| Return true if this Value has exactly N uses.
|
|
bool | hasNUsesOrMore (unsigned N) const |
| Return true if this value has N uses or more.
|
|
bool | hasOneUser () const |
| Return true if there is exactly one user of this value.
|
|
Use * | getSingleUndroppableUse () |
| Return true if there is exactly one use of this value that cannot be dropped.
|
|
const Use * | getSingleUndroppableUse () const |
|
User * | getUniqueUndroppableUser () |
| Return true if there is exactly one unique user of this value that cannot be dropped (that user can have multiple uses of this value).
|
|
const User * | getUniqueUndroppableUser () const |
|
bool | hasNUndroppableUses (unsigned N) const |
| Return true if there this value.
|
|
bool | hasNUndroppableUsesOrMore (unsigned N) const |
| Return true if this value has N uses or more.
|
|
void | dropDroppableUses (llvm::function_ref< bool(const Use *)> ShouldDrop=[](const Use *) { return true;}) |
| Remove every uses that can safely be removed.
|
|
void | dropDroppableUsesIn (User &Usr) |
| Remove every use of this value in User that can safely be removed.
|
|
bool | isUsedInBasicBlock (const BasicBlock *BB) const |
| Check if this value is used in the specified basic block.
|
|
unsigned | getNumUses () const |
| This method computes the number of uses of this Value.
|
|
void | addUse (Use &U) |
| This method should only be used by the Use class.
|
|
unsigned | getValueID () const |
| Return an ID for the concrete type of this object.
|
|
unsigned | getRawSubclassOptionalData () const |
| Return the raw optional flags value contained in this value.
|
|
void | clearSubclassOptionalData () |
| Clear the optional flags contained in this value.
|
|
bool | hasSameSubclassOptionalData (const Value *V) const |
| Check the optional flags for equality.
|
|
bool | hasValueHandle () const |
| Return true if there is a value handle associated with this value.
|
|
bool | isUsedByMetadata () const |
| Return true if there is metadata referencing this value.
|
|
bool | isSwiftError () const |
| Return true if this value is a swifterror value.
|
|
const Value * | stripPointerCasts () const |
| Strip off pointer casts, all-zero GEPs and address space casts.
|
|
Value * | stripPointerCasts () |
|
const Value * | stripPointerCastsAndAliases () const |
| Strip off pointer casts, all-zero GEPs, address space casts, and aliases.
|
|
Value * | stripPointerCastsAndAliases () |
|
const Value * | stripPointerCastsSameRepresentation () const |
| Strip off pointer casts, all-zero GEPs and address space casts but ensures the representation of the result stays the same.
|
|
Value * | stripPointerCastsSameRepresentation () |
|
const Value * | stripPointerCastsForAliasAnalysis () const |
| Strip off pointer casts, all-zero GEPs, single-argument phi nodes and invariant group info.
|
|
Value * | stripPointerCastsForAliasAnalysis () |
|
const Value * | stripInBoundsConstantOffsets () const |
| Strip off pointer casts and all-constant inbounds GEPs.
|
|
Value * | stripInBoundsConstantOffsets () |
|
const Value * | stripAndAccumulateConstantOffsets (const DataLayout &DL, APInt &Offset, bool AllowNonInbounds, bool AllowInvariantGroup=false, function_ref< bool(Value &Value, APInt &Offset)> ExternalAnalysis=nullptr) const |
| Accumulate the constant offset this value has compared to a base pointer.
|
|
Value * | stripAndAccumulateConstantOffsets (const DataLayout &DL, APInt &Offset, bool AllowNonInbounds, bool AllowInvariantGroup=false, function_ref< bool(Value &Value, APInt &Offset)> ExternalAnalysis=nullptr) |
|
const Value * | stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) const |
| This is a wrapper around stripAndAccumulateConstantOffsets with the in-bounds requirement set to false.
|
|
Value * | stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) |
|
const Value * | stripInBoundsOffsets (function_ref< void(const Value *)> Func=[](const Value *) {}) const |
| Strip off pointer casts and inbounds GEPs.
|
|
Value * | stripInBoundsOffsets (function_ref< void(const Value *)> Func=[](const Value *) {}) |
|
std::optional< int64_t > | getPointerOffsetFrom (const Value *Other, const DataLayout &DL) const |
| If this ptr is provably equal to Other plus a constant offset, return that offset in bytes.
|
|
bool | canBeFreed () const |
| Return true if the memory object referred to by V can by freed in the scope for which the SSA value defining the allocation is statically defined.
|
|
uint64_t | getPointerDereferenceableBytes (const DataLayout &DL, bool &CanBeNull, bool &CanBeFreed) const |
| Returns the number of bytes known to be dereferenceable for the pointer value.
|
|
Align | getPointerAlignment (const DataLayout &DL) const |
| Returns an alignment of the pointer value.
|
|
const Value * | DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) const |
| Translate PHI node to its predecessor from the given basic block.
|
|
Value * | DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) |
|
void | mutateType (Type *Ty) |
| Mutate the type of this Value to be of the specified type.
|
|
template<class Compare > |
void | sortUseList (Compare Cmp) |
| Sort the use-list.
|
|
void | reverseUseList () |
| Reverse the use-list.
|
|
void | print (raw_ostream &O, bool IsForDebug=false) const |
| Implement operator<< on Value.
|
|
void | print (raw_ostream &O, ModuleSlotTracker &MST, bool IsForDebug=false) const |
|
void | printAsOperand (raw_ostream &O, bool PrintType=true, const Module *M=nullptr) const |
| Print the name of this Value out to the specified raw_ostream.
|
|
void | printAsOperand (raw_ostream &O, bool PrintType, ModuleSlotTracker &MST) const |
|
self_iterator | getIterator () |
|
const_self_iterator | getIterator () const |
|
reverse_self_iterator | getReverseIterator () |
|
const_reverse_self_iterator | getReverseIterator () const |
|
bool | isSentinel () const |
| Check whether this is the sentinel node.
|
|
const OptionsT::parent_ty * | getParent () const |
|
OptionsT::parent_ty * | getParent () |
|
void | setParent (OptionsT::parent_ty *Parent) |
|