public SimpleLoop createNewLoop()
        {
            SimpleLoop loop = new SimpleLoop();

            loop.setCounter(loopCounter++);
            return(loop);
        }
 public LSG()
 {
     loopCounter = 0;
     loops = new List<SimpleLoop>();
     root = new SimpleLoop();
     root.setNestingLevel(0);
     root.setCounter(loopCounter++);
     addLoop(root);
 }
 public LSG()
 {
     loopCounter = 0;
     loops       = new List <SimpleLoop>();
     root        = new SimpleLoop();
     root.setNestingLevel(0);
     root.setCounter(loopCounter++);
     addLoop(root);
 }
 public SimpleLoop()
 {
     parent = null;
     isRootField = false;
     isReducible = true;
     nestingLevel = 0;
     depthLevel = 0;
     basicBlocks = new List<BasicBlock>();
     children = new List<SimpleLoop>();
 }
        private void dumpRec(SimpleLoop loop, int indent)
        {
            // Simplified for readability purposes.
            loop.dump(indent);

            foreach (SimpleLoop liter in loop.getChildren())
            {
                dumpRec(liter, indent + 1);
            }
        }
        public void calculateNestingLevelRec(SimpleLoop loop, int depth)
        {
            loop.setDepthLevel(depth);
            foreach (SimpleLoop liter in loop.getChildren())
            {
                calculateNestingLevelRec(liter, depth + 1);

                loop.setNestingLevel(Math.Max(loop.getNestingLevel(),
                                              1 + liter.getNestingLevel()));
            }
        }
 void setLoop(SimpleLoop loop)
 {
     this.loop = loop;
 }
 // Initialize this node.
 //
 public void initNode(BasicBlock bb, int dfsNumber)
 {
     this.parent = this;
     this.bb = bb;
     this.dfsNumber = dfsNumber;
     this.loop = null;
 }
        public void calculateNestingLevelRec(SimpleLoop loop, int depth)
        {
            loop.setDepthLevel(depth);
            foreach (SimpleLoop liter in loop.getChildren())
            {
                calculateNestingLevelRec(liter, depth + 1);

                loop.setNestingLevel(Math.Max(loop.getNestingLevel(),
                                              1 + liter.getNestingLevel()));
            }
        }
 public void addLoop(SimpleLoop loop)
 {
     loops.Add(loop);
 }
        private void dumpRec(SimpleLoop loop, int indent)
        {
            // Simplified for readability purposes.
            loop.dump(indent);

            foreach (SimpleLoop liter in loop.getChildren())
                dumpRec(liter, indent + 1);
        }
 public void addChildLoop(SimpleLoop loop)
 {
     children.Add(loop);
 }
 public void setParent(SimpleLoop parent)
 {
     this.parent = parent;
     this.parent.addChildLoop(this);
 }
 public void addLoop(SimpleLoop loop)
 {
     loops.Add(loop);
 }
 public void setParent(SimpleLoop parent)
 {
     this.parent = parent;
     this.parent.addChildLoop(this);
 }
 public void addChildLoop(SimpleLoop loop)
 {
     children.Add(loop);
 }
 public SimpleLoop createNewLoop()
 {
     SimpleLoop loop = new SimpleLoop();
     loop.setCounter(loopCounter++);
     return loop;
 }