001    /*
002     *  This file is part of the Jikes RVM project (http://jikesrvm.org).
003     *
004     *  This file is licensed to You under the Eclipse Public License (EPL);
005     *  You may not use this file except in compliance with the License. You
006     *  may obtain a copy of the License at
007     *
008     *      http://www.opensource.org/licenses/eclipse-1.0.php
009     *
010     *  See the COPYRIGHT.txt file distributed with this work for information
011     *  regarding copyright ownership.
012     */
013    package org.jikesrvm.compilers.opt.ir;
014    
015    import org.jikesrvm.compilers.opt.controlflow.DominatorTree;
016    import org.jikesrvm.compilers.opt.controlflow.LSTGraph;
017    import org.jikesrvm.compilers.opt.dfsolver.DF_Solution;
018    import org.jikesrvm.compilers.opt.ssa.GlobalValueNumberState;
019    import org.jikesrvm.compilers.opt.ssa.SSADictionary;
020    
021    /**
022     * Wrapper class around IR info that is valid on the HIR/LIR/MIR
023     */
024    public final class HIRInfo {
025    
026      public HIRInfo(IR ir) { }
027    
028      /** Place to hang dominator tree. */
029      public DominatorTree dominatorTree;
030    
031      /** Were dominators computed successfully ? */
032      public boolean dominatorsAreComputed;
033    
034      /** Place to hang post-dominator tree. */
035      public DominatorTree postDominatorTree;
036    
037      /** Were post-dominators computed successfully ? */
038      public boolean postDominatorsAreComputed;
039    
040      /** Place to hang Heap SSA information. */
041      public SSADictionary dictionary;
042    
043      /** Place to hang global value number information. */
044      public GlobalValueNumberState valueNumbers;
045    
046      /** Place to hang uniformly generated global value number information. */
047      public GlobalValueNumberState uniformlyGeneratedValueNumbers;
048    
049      /** Place to hang Loop Structure Tree (LST) */
050      public LSTGraph loopStructureTree;
051    
052      /** Place to hang results of index propagation analysis */
053      public DF_Solution indexPropagationSolution;
054    
055      /** Did load elimination do anything last time? */
056      public boolean loadEliminationDidSomething = true;
057    }