In optimizing compilation, simple internal loops are modeled by cyclic data dependence graphs. This library implements a C++ class called LOOP. The LOOP model we implement here is described in Loop Model.
Definition in file loop.h.
Go to the source code of this file.
Namespaces | |
| namespace | DDG |
Data Structures | |
| class | LOOP |
| This class represent cyclic data dependence graphs of simple loops (without branches). More... | |
Defines | |
| #define | Min(X, Y) X<Y ? X:Y |
Functions | |
| void | unroll (const LOOP &L, DAG &unrolled, int unroll_degree) |
| Returns the body of the unrolled loop. | |
| void | unroll (const LOOP &L, LOOP &unrolled, int unroll_degree) |
| Returns an unrolled loop. | |
| void | loop_merge (const LOOP &L1, const LOOP &L2, LOOP &L3) |
| Merges two independent loop DDGs in order to produce a new DDG. | |
| bool | retime_ddg (LOOP &G, LEDA::node_array< int > &r) |
| Computes and applies a valid loop retiming (called also loop shifing). | |
| bool | retime_ddg (LOOP &G) |
| Computes and applies a valid loop retiming (called also loop shifing). | |
| bool | apply_retiming (LOOP &G, const LEDA::node_array< int > r) |
| Applies the loop retiming given as input. | |
| bool | is_lexicographic_positive (LOOP &G, leda::list< edge > &le) |
Checks if all circuits of are lexicographic positive. That is, a circuit in , . | |