|
Jlm
|
Public Member Functions | |
| PointerObject (PointerObjectKind kind, bool canPoint) | |
| bool | CanTrackPointeesImplicitly () const noexcept |
| bool | CanPoint () const noexcept |
| bool | IsRegister () const noexcept |
Public Attributes | |
| PointerObjectKind | Kind: util::BitWidthOfEnum(PointerObjectKind::COUNT) |
| const uint8_t | CanPointFlag: 1 |
| uint8_t | HasEscaped: 1 |
| uint8_t | PointeesEscaping: 1 |
| uint8_t | PointsToExternal: 1 |
| uint8_t | StoredAsScalar: 1 |
| uint8_t | LoadedAsScalar: 1 |
Struct used internally to store information about each PointerObject. When PointerObjects are unified, some flags are shared. This is handled by the accessor methods defined on PointerObjectSet
Definition at line 58 of file PointerObjectSet.hpp.
|
inlineexplicit |
Definition at line 90 of file PointerObjectSet.hpp.
|
inlinenoexcept |
Some memory objects can only be pointed to, but never themselves contain pointers. When converting the analysis result to a PointsToGraph, these PointerObjects get no pointees.
Definition at line 134 of file PointerObjectSet.hpp.
|
inlinenoexcept |
If a PointerObject is marked with both PointsToExternal and PointeesEscaping, its final points-to set will be identical to the set of escaped memory objects. There is no need to track its pointees, since all pointees can be marked as HasEscaped, and instead be an implicit pointee.
Definition at line 123 of file PointerObjectSet.hpp.
|
inlinenoexcept |
Registers are the only PointerObjects that may not be pointed to, only point.
Definition at line 144 of file PointerObjectSet.hpp.
| const uint8_t jlm::llvm::aa::PointerObjectSet::PointerObject::CanPointFlag |
Definition at line 66 of file PointerObjectSet.hpp.
| uint8_t jlm::llvm::aa::PointerObjectSet::PointerObject::HasEscaped |
Definition at line 70 of file PointerObjectSet.hpp.
| PointerObjectKind jlm::llvm::aa::PointerObjectSet::PointerObject::Kind |
Definition at line 61 of file PointerObjectSet.hpp.
| uint8_t jlm::llvm::aa::PointerObjectSet::PointerObject::LoadedAsScalar |
Definition at line 88 of file PointerObjectSet.hpp.
| uint8_t jlm::llvm::aa::PointerObjectSet::PointerObject::PointeesEscaping |
Definition at line 75 of file PointerObjectSet.hpp.
| uint8_t jlm::llvm::aa::PointerObjectSet::PointerObject::PointsToExternal |
Definition at line 80 of file PointerObjectSet.hpp.
| uint8_t jlm::llvm::aa::PointerObjectSet::PointerObject::StoredAsScalar |
Definition at line 84 of file PointerObjectSet.hpp.