|
Enzyme main
|
#include "DataFlowActivityAnalysis.h"#include "DataFlowAliasAnalysis.h"#include "Dialect/Ops.h"#include "Interfaces/AutoDiffOpInterface.h"#include "Interfaces/AutoDiffTypeInterface.h"#include "mlir/Analysis/DataFlow/ConstantPropagationAnalysis.h"#include "mlir/Analysis/DataFlow/DeadCodeAnalysis.h"#include "mlir/Dialect/Affine/IR/AffineOps.h"#include "mlir/Dialect/LLVMIR/LLVMDialect.h"#include "mlir/Dialect/Linalg/IR/Linalg.h"#include "mlir/Dialect/MemRef/IR/MemRef.h"#include "mlir/Analysis/AliasAnalysis/LocalAliasAnalysis.h"
Go to the source code of this file.
Functions | |
| raw_ostream & | operator<< (raw_ostream &os, const enzyme::ValueActivity &val) |
| raw_ostream & | operator<< (raw_ostream &os, const CallControlFlowAction &action) |
| std::optional< Value > | getStored (Operation *op) |
| std::optional< Value > | getCopySource (Operation *op) |
| void | forEachAliasedAlloc (const AliasClassLattice *ptrAliasClass, function_ref< void(DistinctAttr)> forEachFn) |
| The dense analyses operate using a pointer's "canonical allocation", the Value corresponding to its allocation. | |
| void | traverseCallGraph (FunctionOpInterface root, SymbolTableCollection *symbolTable, function_ref< void(FunctionOpInterface)> processFunc) |
| void | printActivityAnalysisResults (DataFlowSolver &solver, FunctionOpInterface callee, const SmallPtrSet< Operation *, 2 > &returnOps, SymbolTableCollection *symbolTable, bool verbose, bool annotate) |
| void forEachAliasedAlloc | ( | const AliasClassLattice * | ptrAliasClass, |
| function_ref< void(DistinctAttr)> | forEachFn ) |
The dense analyses operate using a pointer's "canonical allocation", the Value corresponding to its allocation.
The callback may receive null allocation when the class alias set is unknown. If the classes are undefined, the callback will not be called at all.
Definition at line 232 of file DataFlowActivityAnalysis.cpp.
Referenced by mlir::enzyme::DenseBackwardActivityAnalysis::visitOperation(), and mlir::enzyme::DenseForwardActivityAnalysis::visitOperation().
| std::optional< Value > getCopySource | ( | Operation * | op | ) |
Definition at line 220 of file DataFlowActivityAnalysis.cpp.
Referenced by mlir::enzyme::DenseActivityAnnotationAnalysis::visitOperation(), mlir::enzyme::DenseBackwardActivityAnalysis::visitOperation(), mlir::enzyme::DenseBackwardActivityAnnotationAnalysis::visitOperation(), mlir::enzyme::DenseForwardActivityAnalysis::visitOperation(), and mlir::enzyme::PointsToPointerAnalysis::visitOperation().
| std::optional< Value > getStored | ( | Operation * | op | ) |
Definition at line 204 of file DataFlowActivityAnalysis.cpp.
Referenced by mlir::enzyme::DataFlowActivityAnalyzer::isInactiveOperation(), mlir::enzyme::DenseActivityAnnotationAnalysis::visitOperation(), mlir::enzyme::DenseBackwardActivityAnalysis::visitOperation(), mlir::enzyme::DenseBackwardActivityAnnotationAnalysis::visitOperation(), mlir::enzyme::DenseForwardActivityAnalysis::visitOperation(), and mlir::enzyme::PointsToPointerAnalysis::visitOperation().
| raw_ostream & operator<< | ( | raw_ostream & | os, |
| const CallControlFlowAction & | action ) |
Definition at line 53 of file DataFlowActivityAnalysis.cpp.
| raw_ostream & operator<< | ( | raw_ostream & | os, |
| const enzyme::ValueActivity & | val ) |
Definition at line 48 of file DataFlowActivityAnalysis.cpp.
References mlir::enzyme::ValueActivity::print().
| void printActivityAnalysisResults | ( | DataFlowSolver & | solver, |
| FunctionOpInterface | callee, | ||
| const SmallPtrSet< Operation *, 2 > & | returnOps, | ||
| SymbolTableCollection * | symbolTable, | ||
| bool | verbose, | ||
| bool | annotate ) |
Definition at line 697 of file DataFlowActivityAnalysis.cpp.
References mlir::enzyme::BackwardValueActivity::getValue(), and mlir::enzyme::ValueActivity::isActiveVal().
Referenced by mlir::enzyme::runDataFlowActivityAnalysis().
| void traverseCallGraph | ( | FunctionOpInterface | root, |
| SymbolTableCollection * | symbolTable, | ||
| function_ref< void(FunctionOpInterface)> | processFunc ) |
Definition at line 242 of file DataFlowActivityAnalysis.cpp.