source: icGREP/icgrep-devel/icgrep/pablo/passes/flattenassociativedfg.h @ 4886

Last change on this file since 4886 was 4886, checked in by nmedfort, 4 years ago

Bug fixes

File size: 724 bytes
Line 
1#ifndef FLATTENASSOCIATIVEDFG_H
2#define FLATTENASSOCIATIVEDFG_H
3
4namespace pablo {
5
6class PabloFunction;
7class PabloBlock;
8class Statement;
9class Variadic;
10class Not;
11class Assign;
12
13class FlattenAssociativeDFG {
14    friend class DistributivePass;
15public:
16    static void transform(PabloFunction & function);
17protected:
18    static void coalesce(PabloBlock * const block);
19    static void coalesce(Variadic * const var);
20    static void deMorgansExpansion(Not * const var, PabloBlock * const block);
21    static void deMorgansReduction(PabloBlock * const block);
22    static void deMorgansReduction(Variadic * const var, PabloBlock * const block);
23    FlattenAssociativeDFG() = default;
24};
25
26}
27
28#endif // FLATTENASSOCIATIVEDFG_H
Note: See TracBrowser for help on using the repository browser.