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 ![]() ![]() ![]() ![]() |