Ignore:
Timestamp:
Nov 22, 2015, 3:17:10 PM (4 years ago)
Author:
nmedfort
Message:

More work on n-ary operations.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/pablo/passes/flattenassociativedfg.h

    r4876 r4878  
    11#ifndef FLATTENASSOCIATIVEDFG_H
    22#define FLATTENASSOCIATIVEDFG_H
    3 
    43
    54namespace pablo {
     
    87class PabloBlock;
    98class Variadic;
     9class Not;
     10class Assign;
     11
    1012
    1113class FlattenAssociativeDFG {
    1214public:
    13     static void process(PabloFunction & function);
     15    static void transform(PabloFunction & function);
    1416protected:
    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);
     17
     18    static void flatten(PabloBlock * const block);
     19    static void flatten(Variadic * const var);
     20    static void applyNegationInwards(Not * const var, PabloBlock * const block);
     21
     22    static void extract(PabloBlock * const block);
     23    static void extractNegationsOutwards(Variadic * const var, PabloBlock * const block);
     24    static void removeCommonCalculation(Assign * const def);
     25
    1926    FlattenAssociativeDFG() = default;
    2027};
Note: See TracChangeset for help on using the changeset viewer.