|
| | DerivedUser (Type *Ty, unsigned VK, Use *U, unsigned NumOps, DeleteValueTy DeleteValue) |
| |
| | User (const User &)=delete |
| |
| void | operator delete (void *Usr) |
| | Free memory allocated for User and Use objects. More...
|
| |
| void | operator delete (void *Usr, unsigned) |
| | Placement delete - required by std, called if the ctor throws. More...
|
| |
| void | operator delete (void *Usr, unsigned, bool) |
| | Placement delete - required by std, called if the ctor throws. More...
|
| |
| 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. More...
|
| |
| MutableArrayRef< uint8_t > | getDescriptor () |
| | Returns the descriptor co-allocated with this User instance. More...
|
| |
| void | setGlobalVariableNumOperands (unsigned NumOps) |
| | Set the number of operands on a GlobalVariable. More...
|
| |
| void | setNumHungOffUseOperands (unsigned NumOps) |
| | Subclasses with hung off uses need to manage the operand count themselves. More...
|
| |
| 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. More...
|
| |
| void | replaceUsesOfWith (Value *From, Value *To) |
| | Replace uses of one Value with another. More...
|
| |
| | Value (const Value &)=delete |
| |
| Value & | operator= (const Value &)=delete |
| |
| void | deleteValue () |
| | Delete a pointer to a generic Value. More...
|
| |
| void | dump () const |
| | Support for debugging, callable in GDB: V->dump() More...
|
| |
| Type * | getType () const |
| | All values are typed, get the type of this value. More...
|
| |
| LLVMContext & | getContext () const |
| | All values hold a context through their type. More...
|
| |
| bool | hasName () const |
| |
| ValueName * | getValueName () const |
| |
| void | setValueName (ValueName *VN) |
| |
| StringRef | getName () const |
| | Return a constant reference to the value's name. More...
|
| |
| void | setName (const Twine &Name) |
| | Change the name of the value. More...
|
| |
| void | takeName (Value *V) |
| | Transfer the name from V to this value. More...
|
| |
| void | replaceAllUsesWith (Value *V) |
| | Change all uses of this to point to a new Value. More...
|
| |
| void | replaceNonMetadataUsesWith (Value *V) |
| | Change non-metadata uses of this to point to a new Value. More...
|
| |
| 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. More...
|
| |
| 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 user of this value. More...
|
| |
| bool | hasNUses (unsigned N) const |
| | Return true if this Value has exactly N users. More...
|
| |
| bool | hasNUsesOrMore (unsigned N) const |
| | Return true if this value has N users or more. More...
|
| |
| bool | isUsedInBasicBlock (const BasicBlock *BB) const |
| | Check if this value is used in the specified basic block. More...
|
| |
| unsigned | getNumUses () const |
| | This method computes the number of uses of this Value. More...
|
| |
| void | addUse (Use &U) |
| | This method should only be used by the Use class. More...
|
| |
| unsigned | getValueID () const |
| | Return an ID for the concrete type of this object. More...
|
| |
| unsigned | getRawSubclassOptionalData () const |
| | Return the raw optional flags value contained in this value. More...
|
| |
| void | clearSubclassOptionalData () |
| | Clear the optional flags contained in this value. More...
|
| |
| bool | hasSameSubclassOptionalData (const Value *V) const |
| | Check the optional flags for equality. More...
|
| |
| bool | hasValueHandle () const |
| | Return true if there is a value handle associated with this value. More...
|
| |
| bool | isUsedByMetadata () const |
| | Return true if there is metadata referencing this value. More...
|
| |
| bool | isSwiftError () const |
| | Return true if this value is a swifterror value. More...
|
| |
| const Value * | stripPointerCasts () const |
| | Strip off pointer casts, all-zero GEPs, and aliases. More...
|
| |
| Value * | stripPointerCasts () |
| |
| const Value * | stripPointerCastsAndInvariantGroups () const |
| | Strip off pointer casts, all-zero GEPs, aliases and invariant group info. More...
|
| |
| Value * | stripPointerCastsAndInvariantGroups () |
| |
| const Value * | stripPointerCastsNoFollowAliases () const |
| | Strip off pointer casts and all-zero GEPs. More...
|
| |
| Value * | stripPointerCastsNoFollowAliases () |
| |
| const Value * | stripInBoundsConstantOffsets () const |
| | Strip off pointer casts and all-constant inbounds GEPs. More...
|
| |
| Value * | stripInBoundsConstantOffsets () |
| |
| const Value * | stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) const |
| | Accumulate offsets from stripInBoundsConstantOffsets(). More...
|
| |
| Value * | stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) |
| |
| const Value * | stripInBoundsOffsets () const |
| | Strip off pointer casts and inbounds GEPs. More...
|
| |
| Value * | stripInBoundsOffsets () |
| |
| uint64_t | getPointerDereferenceableBytes (const DataLayout &DL, bool &CanBeNull) const |
| | Returns the number of bytes known to be dereferenceable for the pointer value. More...
|
| |
| unsigned | getPointerAlignment (const DataLayout &DL) const |
| | Returns an alignment of the pointer value. More...
|
| |
| const Value * | DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) const |
| | Translate PHI node to its predecessor from the given basic block. More...
|
| |
| Value * | DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) |
| |
| void | mutateType (Type *Ty) |
| | Mutate the type of this Value to be of the specified type. More...
|
| |
| template<class Compare > |
| void | sortUseList (Compare Cmp) |
| | Sort the use-list. More...
|
| |
| void | reverseUseList () |
| | Reverse the use-list. More...
|
| |
| void | print (raw_ostream &O, bool IsForDebug=false) const |
| | Implement operator<< on Value. More...
|
| |
| 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. More...
|
| |
| void | printAsOperand (raw_ostream &O, bool PrintType, ModuleSlotTracker &MST) const |
| |
|
| using | op_iterator = Use * |
| |
| using | const_op_iterator = const Use * |
| |
| using | op_range = iterator_range< op_iterator > |
| |
| using | const_op_range = iterator_range< const_op_iterator > |
| |
| enum | ValueTy |
| | Concrete subclass of this. More...
|
| |
| using | use_iterator = use_iterator_impl< Use > |
| |
| using | const_use_iterator = use_iterator_impl< const Use > |
| |
| using | user_iterator = user_iterator_impl< User > |
| |
| using | const_user_iterator = user_iterator_impl< const User > |
| |
| static bool | classof (const Value *V) |
| |
| static const unsigned | MaxAlignmentExponent = 29 |
| | The maximum alignment for instructions. More...
|
| |
| static const unsigned | MaximumAlignment = 1u << MaxAlignmentExponent |
| |
| void * | operator new (size_t Size) |
| | Allocate a User with an operand pointer co-allocated. More...
|
| |
| void * | operator new (size_t Size, unsigned Us) |
| | Allocate a User with the operands co-allocated. More...
|
| |
| void * | operator new (size_t Size, unsigned Us, unsigned DescBytes) |
| | Allocate a User with the operands co-allocated. More...
|
| |
| | User (Type *ty, unsigned vty, Use *, unsigned NumOps) |
| |
| void | allocHungoffUses (unsigned N, bool IsPhi=false) |
| | Allocate the array of Uses, followed by a pointer (with bottom bit set) to the User. More...
|
| |
| void | growHungoffUses (unsigned N, bool IsPhi=false) |
| | Grow the number of hung off uses. More...
|
| |
| | ~User ()=default |
| |
| template<int Idx> |
| Use & | Op () |
| |
| template<int Idx> |
| const Use & | Op () const |
| |
| | Value (Type *Ty, unsigned scid) |
| |
| | ~Value () |
| | Value's destructor should be virtual by design, but that would require that Value and all of its subclasses have a vtable that effectively duplicates the information in the value ID. More...
|
| |
| unsigned short | getSubclassDataFromValue () const |
| |
| void | setValueSubclassData (unsigned short D) |
| |
| template<int Idx, typename U > |
| static Use & | OpFrom (const U *that) |
| |
| unsigned char | SubclassOptionalData: 7 |
| | Hold subclass data that can be dropped. More...
|
| |
| unsigned | NumUserOperands: NumUserOperandsBits |
| |
| unsigned | IsUsedByMD: 1 |
| |
| unsigned | HasName: 1 |
| |
| unsigned | HasHungOffUses: 1 |
| |
| unsigned | HasDescriptor: 1 |
| |
Extension point for the Value hierarchy.
All classes outside of lib/IR that wish to inherit from User should instead inherit from DerivedUser instead. Inheriting from this class is discouraged.
Generally speaking, Value is the base of a closed class hierarchy that can't be extended by code outside of lib/IR. This class creates a loophole that allows classes outside of lib/IR to extend User to leverage its use/def list machinery.
Definition at line 28 of file DerivedUser.h.