|
CGRAOmp
0.1
|
Module Pass to create data flow graph for all kernels while aplying DFG Optimization Passes. More...
#include <DFGPass.hpp>
Public Types | |
| using | GraphList = SmallVector< CGRADFG * > |
| using | graph_iterator = GraphList::iterator |
Public Member Functions | |
| DFGPassHandler () | |
| Default constructor. More... | |
| ~DFGPassHandler () | |
| DFGPassHandler (DFGPassHandler &&P) | |
| Move constractor. More... | |
| PreservedAnalyses | run (Module &M, ModuleAnalysisManager &AM) |
| void | addGraph (CGRADFG *G) |
| graph_iterator | removeGraph (CGRADFG *G) |
| graph_iterator | graph_begin () |
| graph_iterator | graph_end () |
| iterator_range< graph_iterator > | graphs () |
Private Member Functions | |
| template<typename VerifyPassT > | |
| void | createDataFlowGraphsForAllKernels (Function &F, FunctionAnalysisManager &AM) |
| Create a Data Flow Graphs For All Kernels object. More... | |
| template<typename VerifyPassT > | |
| void | createDataFlowGraph (Function &F, Loop &L, FunctionAnalysisManager &FAM, LoopAnalysisManager &LAM, LoopStandardAnalysisResults &AR) |
| Create a Data Flow Graph object. More... | |
| bool | isMemAccess (Instruction &I) |
| check if the instruction is memory access or not More... | |
| DFGNode * | make_mem_node (Instruction &I) |
| create memory access node More... | |
| DFGNode * | make_comp_node (Instruction *inst, std::string opcode) |
| create computational node More... | |
| DFGNode * | make_const_node (Value *V) |
| create constant node More... | |
| DFGNode * | make_const_node (Value *V, SmallVector< Value * > *seq) |
| create constant node with different data source More... | |
| DFGNode * | make_global_node (Value *V) |
| create global data node More... | |
| DFGNode * | make_global_node (Value *V, SmallVector< Value * > *seq) |
| create global data node with different data source More... | |
| template<> | |
| void | createDataFlowGraph (Function &F, Loop &L, FunctionAnalysisManager &FAM, LoopAnalysisManager &LAM, LoopStandardAnalysisResults &AR) |
Private Attributes | |
| DFGPassBuilder * | DPB |
| DFGPassManager * | DPM |
| SmallVector< CGRADFG * > | graph_list |
Module Pass to create data flow graph for all kernels while aplying DFG Optimization Passes.
| using CGRAOmp::DFGPassHandler::graph_iterator = GraphList::iterator |
| using CGRAOmp::DFGPassHandler::GraphList = SmallVector<CGRADFG*> |
| DFGPassHandler::DFGPassHandler | ( | ) |
Default constructor.
|
inline |
|
inline |
Move constractor.
|
inline |
|
private |
Create a Data Flow Graph object.
| F | Function including offloading kernels |
| L | Kernel looop |
| FAM | AnalysisManager for the function |
| LAM | AnalysisManager for the loop |
| AR | AnalysisResults for the loop |
|
private |
|
private |
Create a Data Flow Graphs For All Kernels object.
| VerifyPassT | VerifyPass type for the target CGRA category |
| F | Function including offloading kernels |
| AM | AnalysisManager for the function |
|
inline |
|
inline |
|
inline |
|
inlineprivate |
check if the instruction is memory access or not
| I | Instruction to be checked |
|
inlineprivate |
create computational node
| I | Instruction for the computational |
|
inlineprivate |
create constant node
| V | Value corresponding the constant |
|
inlineprivate |
create constant node with different data source
| V | Value corresponding the constant |
| seq | A sequence of skipped node |
|
inlineprivate |
create global data node
| V | Value corresponding the global value |
|
inlineprivate |
create global data node with different data source
| V | Value corresponding the global value |
| seq | A sequence of skipped node |
|
inlineprivate |
create memory access node
| I | Instruction for the memory access |
|
inline |
| PreservedAnalyses DFGPassHandler::run | ( | Module & | M, |
| ModuleAnalysisManager & | AM | ||
| ) |
|
private |
|
private |
|
private |
1.8.17