new OPT_OptimizationPlanAtomicElement(new OPT_CompilerPhase() { public String getName() { return "Ensure SSA"; } public boolean shouldPerform() { return true; } public void perform(OPT_IR ir) { ir.desiredSSAOptions = new OPT_SSAOptions(); new OPT_EnterSSA().perform(ir); } }),
new OPT_OptimizationPlanAtomicElement(new EnsureSSA()),
  OPT_RedundantBranchElimination () {    super("RedundantBranchElimination", new OPT_OptimizationPlanElement[] {      // Stage 1: Require SSA form      new OPT_OptimizationPlanAtomicElement(new OPT_CompilerPhase() {          public String getName() { return "Ensure SSA"; }          public boolean shouldPerform() { return true; }          public void perform(OPT_IR ir) {            ir.desiredSSAOptions = new OPT_SSAOptions();            new OPT_EnterSSA().perform(ir);          }        }),            // Stage2: Require GVNs      new OPT_OptimizationPlanAtomicElement(new OPT_GlobalValueNumber()),      // Stage3: Do the optimization      new OPT_OptimizationPlanAtomicElement(new RBE()),    });  }