|
Enzyme main
|
#include "MLIR/Analysis/DataFlowAliasAnalysis.h"


Public Member Functions | |
| void | print (raw_ostream &os) const override |
| ChangeResult | setPointingToClasses (const AliasClassSet &destClasses, const AliasClassSet &values) |
Mark the pointer stored in dest as possibly pointing to any of values, instead of the values it may be currently pointing to. | |
| ChangeResult | insert (const AliasClassSet &destClasses, const AliasClassSet &values) |
Mark the pointer stored in dest as possibly pointing to any of values, in addition to the values it may already point to. | |
| ChangeResult | addSetsFrom (const AliasClassSet &destClasses, const AliasClassSet &srcClasses) |
For every alias class in dest, record that it may additionally be pointing to the same as the classes in src. | |
| ChangeResult | setPointingToEmpty (const AliasClassSet &destClasses) |
| ChangeResult | markPointToUnknown (const AliasClassSet &destClasses) |
Mark dest as pointing to "unknown" alias set, that is, any possible other pointer. | |
| ChangeResult | markAllPointToUnknown () |
| Mark the entire data structure as "unknown", that is, any pointer may be containing any other pointer. | |
| ChangeResult | markAllExceptPointToUnknown (const AliasClassSet &destClasses) |
| Mark all alias classes except the given ones to point to the "unknown" alias set. | |
| const AliasClassSet & | getPointsTo (DistinctAttr id) const |
Public Member Functions inherited from mlir::enzyme::MapOfSetsLattice< DistinctAttr, DistinctAttr > | |
| Attribute | serialize (MLIRContext *ctx) const |
| ChangeResult | join (const AbstractDenseLattice &other) |
| ChangeResult | insert (const SetLattice< DistinctAttr > &keysToUpdate, const SetLattice< DistinctAttr > &values) |
| Map all keys to all values. | |
| ChangeResult | markAllUnknown () |
| const SetLattice< DistinctAttr > & | lookup (DistinctAttr key) const |
Additional Inherited Members | |
Protected Member Functions inherited from mlir::enzyme::MapOfSetsLattice< DistinctAttr, DistinctAttr > | |
| ChangeResult | joinPotentiallyMissing (DistinctAttr key, const SetLattice< DistinctAttr > &value) |
Protected Attributes inherited from mlir::enzyme::MapOfSetsLattice< DistinctAttr, DistinctAttr > | |
| DenseMap< DistinctAttr, SetLattice< DistinctAttr > > | map |
| Maps a key to a set of values. | |
Definition at line 106 of file DataFlowAliasAnalysis.h.
| ChangeResult enzyme::PointsToSets::addSetsFrom | ( | const AliasClassSet & | destClasses, |
| const AliasClassSet & | srcClasses ) |
For every alias class in dest, record that it may additionally be pointing to the same as the classes in src.
Definition at line 157 of file DataFlowAliasAnalysis.cpp.
References mlir::enzyme::SetLattice< ValueT >::foreachElement(), mlir::enzyme::SetLattice< DistinctAttr >::getUndefined(), mlir::enzyme::SetLattice< DistinctAttr >::getUnknown(), mlir::enzyme::SetLattice< ValueT >::isUndefined(), and mlir::enzyme::SetLattice< ValueT >::isUnknown().
Referenced by mlir::enzyme::PointsToPointerAnalysis::visitCallControlFlowTransfer().
|
inline |
Definition at line 145 of file DataFlowAliasAnalysis.h.
References mlir::enzyme::MapOfSetsLattice< DistinctAttr, DistinctAttr >::lookup().
Referenced by traversePointsToSets().
|
inline |
Mark the pointer stored in dest as possibly pointing to any of values, in addition to the values it may already point to.
Definition at line 121 of file DataFlowAliasAnalysis.h.
Referenced by mlir::enzyme::PointsToPointerAnalysis::processCallToSummarizedFunc(), mlir::enzyme::PointsToPointerAnalysis::processCapturingStore(), and mlir::enzyme::PointsToPointerAnalysis::visitCallControlFlowTransfer().
| ChangeResult enzyme::PointsToSets::markAllExceptPointToUnknown | ( | const AliasClassSet & | destClasses | ) |
Mark all alias classes except the given ones to point to the "unknown" alias set.
Definition at line 195 of file DataFlowAliasAnalysis.cpp.
References mlir::enzyme::SetLattice< ValueT >::foreachElement(), mlir::enzyme::SetLattice< ValueT >::getElements(), mlir::enzyme::SetLattice< ValueT >::isUndefined(), and mlir::enzyme::SetLattice< ValueT >::isUnknown().
Referenced by mlir::enzyme::PointsToPointerAnalysis::visitCallControlFlowTransfer().
|
inline |
Mark the entire data structure as "unknown", that is, any pointer may be containing any other pointer.
This is the full pessimistic fixpoint.
Definition at line 139 of file DataFlowAliasAnalysis.h.
References mlir::enzyme::MapOfSetsLattice< DistinctAttr, DistinctAttr >::markAllUnknown().
Referenced by mlir::enzyme::PointsToPointerAnalysis::processCapturingStore(), mlir::enzyme::PointsToPointerAnalysis::visitCallControlFlowTransfer(), and mlir::enzyme::PointsToPointerAnalysis::visitOperation().
| ChangeResult enzyme::PointsToSets::markPointToUnknown | ( | const AliasClassSet & | destClasses | ) |
Mark dest as pointing to "unknown" alias set, that is, any possible other pointer.
This is partial pessimistic fixpoint.
Definition at line 183 of file DataFlowAliasAnalysis.cpp.
References mlir::enzyme::SetLattice< ValueT >::foreachElement(), mlir::enzyme::SetLattice< DistinctAttr >::getUnknown(), mlir::enzyme::SetLattice< ValueT >::isUndefined(), and mlir::enzyme::SetLattice< ValueT >::isUnknown().
Referenced by mlir::enzyme::PointsToPointerAnalysis::processCapturingStore(), and mlir::enzyme::PointsToPointerAnalysis::visitCallControlFlowTransfer().
|
override |
Definition at line 92 of file DataFlowAliasAnalysis.cpp.
References mlir::enzyme::MapOfSetsLattice< DistinctAttr, DistinctAttr >::map, mlir::enzyme::undefinedSetString, and mlir::enzyme::unknownSetString.
|
inline |
Mark the pointer stored in dest as possibly pointing to any of values, instead of the values it may be currently pointing to.
Definition at line 114 of file DataFlowAliasAnalysis.h.
Referenced by mlir::enzyme::PointsToPointerAnalysis::processCapturingStore(), and mlir::enzyme::PointsToPointerAnalysis::visitCallControlFlowTransfer().
| ChangeResult enzyme::PointsToSets::setPointingToEmpty | ( | const AliasClassSet & | destClasses | ) |
Definition at line 152 of file DataFlowAliasAnalysis.cpp.
References mlir::enzyme::SetLattice< DistinctAttr >::getEmpty().
Referenced by mlir::enzyme::PointsToPointerAnalysis::visitOperation().