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

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

More work towards n-ary And/Or/Xor? functions.

File size: 550 bytes
Line 
1#ifndef FLATTENASSOCIATIVEDFG_H
2#define FLATTENASSOCIATIVEDFG_H
3
4
5namespace pablo {
6
7class PabloFunction;
8class PabloBlock;
9class Variadic;
10
11class FlattenAssociativeDFG {
12public:
13    static void process(PabloFunction & function);
14protected:
15    static void traverse(PabloBlock * const block);
16    static bool flatten(PabloBlock * const block);
17    static bool factorize(PabloBlock * const block);
18    static bool flatten(Variadic * const var, PabloBlock * const block);
19    FlattenAssociativeDFG() = default;
20};
21
22}
23
24#endif // FLATTENASSOCIATIVEDFG_H
Note: See TracBrowser for help on using the repository browser.