Enzyme main
Loading...
Searching...
No Matches
mlir::enzyme::PointsToSets Class Reference

#include "MLIR/Analysis/DataFlowAliasAnalysis.h"

Inheritance diagram for mlir::enzyme::PointsToSets:
Collaboration diagram for mlir::enzyme::PointsToSets:

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 AliasClassSetgetPointsTo (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.
 

Detailed Description

Definition at line 106 of file DataFlowAliasAnalysis.h.

Member Function Documentation

◆ addSetsFrom()

ChangeResult enzyme::PointsToSets::addSetsFrom ( const AliasClassSet & destClasses,
const AliasClassSet & srcClasses )

◆ getPointsTo()

const AliasClassSet & mlir::enzyme::PointsToSets::getPointsTo ( DistinctAttr id) const
inline

◆ insert()

ChangeResult mlir::enzyme::PointsToSets::insert ( const AliasClassSet & destClasses,
const AliasClassSet & values )
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().

◆ markAllExceptPointToUnknown()

ChangeResult enzyme::PointsToSets::markAllExceptPointToUnknown ( const AliasClassSet & destClasses)

◆ markAllPointToUnknown()

ChangeResult mlir::enzyme::PointsToSets::markAllPointToUnknown ( )
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().

◆ markPointToUnknown()

ChangeResult enzyme::PointsToSets::markPointToUnknown ( const AliasClassSet & destClasses)

◆ print()

void enzyme::PointsToSets::print ( raw_ostream & os) const
override

◆ setPointingToClasses()

ChangeResult mlir::enzyme::PointsToSets::setPointingToClasses ( const AliasClassSet & destClasses,
const AliasClassSet & values )
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().

◆ setPointingToEmpty()

ChangeResult enzyme::PointsToSets::setPointingToEmpty ( const AliasClassSet & destClasses)

The documentation for this class was generated from the following files: