CIRCT  20.0.0git
Public Member Functions | Private Attributes | List of all members
circt::analysis::MemoryDependenceAnalysis Struct Reference

MemoryDependenceAnalysis traverses any AffineForOps in the FuncOp body and checks for affine memory access dependences. More...

#include <DependenceAnalysis.h>

Collaboration diagram for circt::analysis::MemoryDependenceAnalysis:
Collaboration graph
[legend]

Public Member Functions

 MemoryDependenceAnalysis (Operation *funcOp)
 MemoryDependenceAnalysis traverses any AffineForOps in the FuncOp body and checks for memory access dependences. More...
 
ArrayRef< MemoryDependencegetDependences (Operation *)
 Returns the dependences, if any, that the given Operation depends on. More...
 
void replaceOp (Operation *oldOp, Operation *newOp)
 Replaces the dependences, if any, from the oldOp to the newOp. More...
 

Private Attributes

MemoryDependenceResult results
 

Detailed Description

MemoryDependenceAnalysis traverses any AffineForOps in the FuncOp body and checks for affine memory access dependences.

Non-affine memory dependences are currently not supported. Results are captured in a MemoryDependenceResult, and an API is exposed to query dependences of a given Operation. TODO(mikeurbach): consider upstreaming this to MLIR's AffineAnalysis.

Definition at line 67 of file DependenceAnalysis.h.

Constructor & Destructor Documentation

◆ MemoryDependenceAnalysis()

circt::analysis::MemoryDependenceAnalysis::MemoryDependenceAnalysis ( Operation *  op)

MemoryDependenceAnalysis traverses any AffineForOps in the FuncOp body and checks for memory access dependences.

Results are captured in a MemoryDependenceResult, which can by queried by Operation.

Definition at line 133 of file DependenceAnalysis.cpp.

References checkMemrefDependence().

Member Function Documentation

◆ getDependences()

ArrayRef< MemoryDependence > circt::analysis::MemoryDependenceAnalysis::getDependences ( Operation *  op)

Returns the dependences, if any, that the given Operation depends on.

Definition at line 155 of file DependenceAnalysis.cpp.

Referenced by circt::analysis::CyclicSchedulingAnalysis::analyzeForOp().

◆ replaceOp()

void circt::analysis::MemoryDependenceAnalysis::replaceOp ( Operation *  oldOp,
Operation *  newOp 
)

Replaces the dependences, if any, from the oldOp to the newOp.

Definition at line 160 of file DependenceAnalysis.cpp.

Member Data Documentation

◆ results

MemoryDependenceResult circt::analysis::MemoryDependenceAnalysis::results
private

Definition at line 79 of file DependenceAnalysis.h.


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