LLVM: llvm::MemoryEffectsBase< LocationEnum > Class Template Reference (original) (raw)
#include "[llvm/Support/ModRef.h](ModRef%5F8h%5Fsource.html)"
| Public Types | |
|---|---|
| using | Location = LocationEnum |
| Public Member Functions | |
|---|---|
| MemoryEffectsBase (Location Loc, ModRefInfo MR) | |
| Create MemoryEffectsBase that can access only the given location with the given ModRefInfo. | |
| MemoryEffectsBase (ModRefInfo MR) | |
| Create MemoryEffectsBase that can access any location with the given ModRefInfo. | |
| uint32_t | toIntValue () const |
| Convert MemoryEffectsBase into an encoded integer value (used by memory attribute). | |
| ModRefInfo | getModRef (Location Loc) const |
| Get ModRefInfo for the given Location. | |
| MemoryEffectsBase | getWithModRef (Location Loc, ModRefInfo MR) const |
| Get new MemoryEffectsBase with modified ModRefInfo for Loc. | |
| MemoryEffectsBase | getWithoutLoc (Location Loc) const |
| Get new MemoryEffectsBase with NoModRef on the given Loc. | |
| ModRefInfo | getModRef () const |
| Get ModRefInfo for any location. | |
| bool | doesNotAccessMemory () const |
| Whether this function accesses no memory. | |
| bool | onlyReadsMemory () const |
| Whether this function only (at most) reads memory. | |
| bool | onlyWritesMemory () const |
| Whether this function only (at most) writes memory. | |
| bool | onlyAccessesArgPointees () const |
| Whether this function only (at most) accesses argument memory. | |
| bool | doesAccessArgPointees () const |
| Whether this function may access argument memory. | |
| bool | onlyAccessesInaccessibleMem () const |
| Whether this function only (at most) accesses inaccessible memory. | |
| bool | onlyAccessesErrnoMem () const |
| Whether this function only (at most) accesses errno memory. | |
| bool | onlyAccessesInaccessibleOrArgMem () const |
| Whether this function only (at most) accesses argument and inaccessible memory. | |
| MemoryEffectsBase | operator& (MemoryEffectsBase Other) const |
| Intersect with other MemoryEffectsBase. | |
| MemoryEffectsBase & | operator&= (MemoryEffectsBase Other) |
| Intersect (in-place) with other MemoryEffectsBase. | |
| MemoryEffectsBase | operator| (MemoryEffectsBase Other) const |
| Union with other MemoryEffectsBase. | |
| MemoryEffectsBase & | operator|= (MemoryEffectsBase Other) |
| Union (in-place) with other MemoryEffectsBase. | |
| MemoryEffectsBase | operator- (MemoryEffectsBase Other) const |
| Subtract other MemoryEffectsBase. | |
| MemoryEffectsBase & | operator-= (MemoryEffectsBase Other) |
| Subtract (in-place) with other MemoryEffectsBase. | |
| bool | operator== (MemoryEffectsBase Other) const |
| Check whether this is the same as other MemoryEffectsBase. | |
| bool | operator!= (MemoryEffectsBase Other) const |
| Check whether this is different from other MemoryEffectsBase. |
| Static Public Member Functions | |
|---|---|
| static auto | locations () |
| Returns iterator over all supported location kinds. | |
| static MemoryEffectsBase | unknown () |
| Create MemoryEffectsBase that can read and write any memory. | |
| static MemoryEffectsBase | none () |
| Create MemoryEffectsBase that cannot read or write any memory. | |
| static MemoryEffectsBase | readOnly () |
| Create MemoryEffectsBase that can read any memory. | |
| static MemoryEffectsBase | writeOnly () |
| Create MemoryEffectsBase that can write any memory. | |
| static MemoryEffectsBase | argMemOnly (ModRefInfo MR=ModRefInfo::ModRef) |
| Create MemoryEffectsBase that can only access argument memory. | |
| static MemoryEffectsBase | inaccessibleMemOnly (ModRefInfo MR=ModRefInfo::ModRef) |
| Create MemoryEffectsBase that can only access inaccessible memory. | |
| static MemoryEffectsBase | errnoMemOnly (ModRefInfo MR=ModRefInfo::ModRef) |
| Create MemoryEffectsBase that can only access errno memory. | |
| static MemoryEffectsBase | otherMemOnly (ModRefInfo MR=ModRefInfo::ModRef) |
| Create MemoryEffectsBase that can only access other memory. | |
| static MemoryEffectsBase | inaccessibleOrArgMemOnly (ModRefInfo MR=ModRefInfo::ModRef) |
| Create MemoryEffectsBase that can only access inaccessible or argument memory. | |
| static MemoryEffectsBase | argumentOrErrnoMemOnly (ModRefInfo ArgMR=ModRefInfo::ModRef, ModRefInfo ErrnoMR=ModRefInfo::ModRef) |
| Create MemoryEffectsBase that can only access argument or errno memory. | |
| static MemoryEffectsBase | createFromIntValue (uint32_t Data) |
| Create MemoryEffectsBase from an encoded integer value (used by memory attribute). |
template
class llvm::MemoryEffectsBase< LocationEnum >
Definition at line 80 of file ModRef.h.
◆ Location
template
template
◆ MemoryEffectsBase() [2/2]
template
◆ argMemOnly()
template
◆ argumentOrErrnoMemOnly()
template
◆ createFromIntValue()
template
◆ doesAccessArgPointees()
template
Whether this function may access argument memory.
Definition at line 234 of file ModRef.h.
◆ doesNotAccessMemory()
template
Whether this function accesses no memory.
Definition at line 220 of file ModRef.h.
Referenced by llvm::canSinkOrHoistInst(), checkFunctionMemoryAccess(), llvm::AAResults::doesNotAccessMemory(), llvm::AAResults::doesNotAccessMemory(), llvm::CallBase::doesNotAccessMemory(), getFunctionControl(), llvm::SITargetLowering::getTgtMemIntrinsic(), llvm::MemoryEffectsBase< IRMemLocation >::onlyAccessesArgPointees(), llvm::MemoryEffectsBase< IRMemLocation >::onlyAccessesErrnoMem(), llvm::MemoryEffectsBase< IRMemLocation >::onlyAccessesInaccessibleMem(), and llvm::MemoryEffectsBase< IRMemLocation >::onlyAccessesInaccessibleOrArgMem().
◆ errnoMemOnly()
template
◆ getModRef() [1/2]
template
◆ getModRef() [2/2]
template
◆ getWithModRef()
template
◆ getWithoutLoc()
template
◆ inaccessibleMemOnly()
template
◆ inaccessibleOrArgMemOnly()
template
◆ locations()
template
◆ none()
template
◆ onlyAccessesArgPointees()
template
◆ onlyAccessesErrnoMem()
template
Whether this function only (at most) accesses errno memory.
Definition at line 244 of file ModRef.h.
◆ onlyAccessesInaccessibleMem()
template
◆ onlyAccessesInaccessibleOrArgMem()
template
◆ onlyReadsMemory()
template
◆ onlyWritesMemory()
template
◆ operator!=()
template
◆ operator&()
template
◆ operator&=()
template
◆ operator-()
template
◆ operator-=()
template
◆ operator==()
template
◆ operator|()
template
◆ operator|=()
template
◆ otherMemOnly()
template
◆ readOnly()
template
◆ toIntValue()
template
◆ unknown()
template
◆ writeOnly()
template
The documentation for this class was generated from the following file:
- include/llvm/Support/ModRef.h