llir-opt
0.0.1
Low-Level Post-Link Optimiser for OCaml and C
|
#include <core/analysis/loop_nesting.h>
Classes | |
class | Loop |
Structure representing a loop. More... | |
Public Member Functions | |
LoopNesting (const Func *func) | |
Builds the loop nesting forest. | |
bool | IsLoopEdge (const Block *a, const Block *b) |
Checks if an edge is a loop edge. | |
const Block * | HighestAncestor (const Block *s, const Block *t) |
Returns the highest non-common ancestor of s and t. | |
std::set< Loop * >::iterator | begin () |
Iterator over the loop nesting forest. | |
std::set< Loop * >::iterator | end () |
void | dump (llvm::raw_ostream &os=llvm::errs()) |
Prints the loop nesting information. | |
Class to compute the loop nesting forest.
Implements a modified version of Havlak's algorithm, presented in: "Identifying loops in almost linear time", G. Ramalingam, 1999