private static void HIROptimizations(Vector p) {
private static void HIROptimizations(ArrayList p) {
  private static void HIROptimizations(Vector p) {    // Various large-scale CFG transformations.    // Do these very early in the pipe so that all HIR opts can benefit.    composeComponents(p, "CFG Transformations", new Object[] {      // tail recursion elimination      new  OPT_TailRecursionElimination(),      // Estimate block frequencies if doing any of      // static splitting, cfg transformations, or loop unrolling.      // Assumption: none of these are active at O0.      new OPT_OptimizationPlanCompositeElement        ("Basic Block Frequency Estimation", new Object[] {          new OPT_BuildLST(),          new OPT_EstimateBlockFrequencies()        }) {        public boolean shouldPerform(OPT_Options options) {          return options.getOptLevel() >= 1;        }},      // CFG spliting      new OPT_StaticSplitting(),      // restructure loops      new OPT_CFGTransformations(),      // Loop unrolling      new OPT_LoopUnrolling(),      new OPT_BranchOptimizations(1, true, true),    });    // Use the LST to insert yieldpoints and estimate     // basic block frequency from branch probabilities    composeComponents(p, "CFG Structural Analysis", new Object[] {                      new OPT_BuildLST(),                      new OPT_YieldPoints(),                      new OPT_EstimateBlockFrequencies()    });    // Simple flow-insensitive optimizations    addComponent(p, new OPT_Simple(1, true, true));    // Simple escape analysis and related transformations    addComponent(p, new OPT_EscapeTransformations());    // Perform peephole branch optimizations to clean-up before SSA stuff    addComponent(p, new OPT_BranchOptimizations(1, true, true));    // SSA meta-phase    SSAinHIR(p);    // Perform local copy propagation for a factored basic block.    addComponent(p, new OPT_LocalCopyProp());    // Perform local constant propagation for a factored basic block.    addComponent(p, new OPT_LocalConstantProp());    // Perform local common-subexpression elimination for a     // factored basic block.    addComponent(p, new OPT_LocalCSE(true));    // Flow-insensitive field analysis    addComponent(p, new OPT_FieldAnalysis());    //-#if RVM_WITH_ADAPTIVE_SYSTEM    // Insert counter on each method prologue    // Insert yieldpoint counters    addComponent(p,new OPT_InsertYieldpointCounters());    // Insert counter on each HIR instruction    addComponent(p,new OPT_InsertInstructionCounters());    // Insert method invocation counters    addComponent(p,new OPT_InsertMethodInvocationCounter());    //-#endif  }