arcana-lab / noelle

NOELLE Offers Empowering LLVM Extensions
MIT License
75 stars 36 forks source link

Add loop nesting graph implementation #32

Closed vgene closed 2 years ago

vgene commented 2 years ago

Need testing

The abstraction is created similar to CallGraph. It has the concept of LoopNode and InstructionLoopNode and corresponding two different edges. Each edge can be Must or May. The current loop nesting tree edges are must edge and their subedges have null InstructionNode.

The current implementation for creating Loop Nesting Graph is in Noelle_loops.cpp, it can be moved to better place (and remove the createEdge public API current exposed to Noelle).