loop.h File Reference


Detailed Description

This file specifies the API of the LOOP class that describes cyclic data dependence graphs.

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 $ G $ are lexicographic positive. That is, $ \forall C $ a circuit in $ G $, $ \lambda(C)=\sum_{e\in C} \lambda(e) > 0 $.


January 2009, by Sid Touati (Copyright INRIA and University of Versailles)