Loop analysis of the IL

* Implemented in two passes
* First pass discovers the loops headers (they dominate one of their predecessors)
* Second pass traverses the blocks of each loop
* Discovers the loop tree structure
* Offers a new LoopAnalysis data structure queried from outside the module
This commit is contained in:
Denis Merigoux
2017-06-02 15:00:29 -07:00
committed by Jakob Stoklund Olesen
parent cb35869803
commit 7d6113e479
6 changed files with 360 additions and 5 deletions

View File

@@ -94,7 +94,7 @@ impl<T: EntityRef> PartialEq for EntityList<T> {
impl<T: EntityRef> Eq for EntityList<T> {}
/// A memory pool for storing lists of `T`.
#[derive(Clone)]
#[derive(Clone, Debug)]
pub struct ListPool<T: EntityRef> {
// The main array containing the lists.
data: Vec<T>,