6 #ifndef JLM_LLVM_OPT_ALIAS_ANALYSES_DIFFERENCEPROPAGATION_HPP
7 #define JLM_LLVM_OPT_ALIAS_ANALYSES_DIFFERENCEPROPAGATION_HPP
bool AddToPointsToSet(PointerObjectIndex pointer, PointerObjectIndex pointee)
bool IsInitialized() const noexcept
bool PointeesEscapeIsNew(PointerObjectIndex index)
void OnPointerObjectsUnified(PointerObjectIndex root, PointerObjectIndex nonRoot)
bool PointsToExternalIsNew(PointerObjectIndex index)
std::vector< bool > NewPointeesTracked_
std::vector< bool > PointsToExternalFlagSeen_
void MarkPointsToExternalAsHandled(PointerObjectIndex index)
const util::HashSet< PointerObjectIndex > & GetNewPointees(PointerObjectIndex index) const
std::vector< bool > PointeesEscapeFlagSeen_
DifferencePropagation(PointerObjectSet &set)
bool MakePointsToSetSuperset(PointerObjectIndex superset, PointerObjectIndex subset)
void MarkPointeesEscapeAsHandled(PointerObjectIndex index)
void OnRemoveAllPointees(PointerObjectIndex index)
void ClearNewPointees(PointerObjectIndex index)
std::vector< util::HashSet< PointerObjectIndex > > NewPointees_
const util::HashSet< PointerObjectIndex > & GetPointsToSet(PointerObjectIndex index) const
bool HasPointeesEscaping(PointerObjectIndex index) const noexcept
bool AddToPointsToSet(PointerObjectIndex pointer, PointerObjectIndex pointee)
bool IsPointingToExternal(PointerObjectIndex index) const noexcept
bool IsUnificationRoot(PointerObjectIndex index) const noexcept
size_t NumPointerObjects() const noexcept
bool MakePointsToSetSuperset(PointerObjectIndex superset, PointerObjectIndex subset)
uint32_t PointerObjectIndex