/** * Processes a method. * * @param ssaMethod {@code non-null;} method to process */ public static void process(SsaMethod ssaMethod) { ConstCollector cc = new ConstCollector(ssaMethod); cc.run(); }
= getConstsSortedByCountUse(); updateConstUses(newRegs, regSz);
private static void runSsaFormSteps(SsaMethod ssaMeth, EnumSet<OptionalStep> steps) { boolean needsDeadCodeRemover = true; if (steps.contains(OptionalStep.MOVE_PARAM_COMBINER)) { MoveParamCombiner.process(ssaMeth); } if (steps.contains(OptionalStep.SCCP)) { SCCP.process(ssaMeth); } if (steps.contains(OptionalStep.LITERAL_UPGRADE)) { LiteralOpUpgrader.process(ssaMeth); DeadCodeRemover.process(ssaMeth); needsDeadCodeRemover = false; } if (steps.contains(OptionalStep.CONST_COLLECTOR)) { ConstCollector.process(ssaMeth); DeadCodeRemover.process(ssaMeth); needsDeadCodeRemover = false; } // dead code remover must be run before phi type resolver if (needsDeadCodeRemover) { DeadCodeRemover.process(ssaMeth); } PhiTypeResolver.process(ssaMeth); }
} else { usedByLocal.add(cst); fixLocalAssignment(origReg, newRegs.get(cst));
= getConstsSortedByCountUse(); updateConstUses(newRegs, regSz);
ConstCollector.process(ssaMeth); DeadCodeRemover.process(ssaMeth); needsDeadCodeRemover = false;
} else { usedByLocal.add(cst); fixLocalAssignment(origReg, newRegs.get(cst));
/** * Processes a method. * * @param ssaMethod {@code non-null;} method to process */ public static void process(SsaMethod ssaMethod) { ConstCollector cc = new ConstCollector(ssaMethod); cc.run(); }
= getConstsSortedByCountUse(); updateConstUses(newRegs, regSz);
ConstCollector.process(ssaMeth); DeadCodeRemover.process(ssaMeth); needsDeadCodeRemover = false;
} else { usedByLocal.add(cst); fixLocalAssignment(origReg, newRegs.get(cst));
/** * Processes a method. * * @param ssaMethod {@code non-null;} method to process */ public static void process(SsaMethod ssaMethod) { ConstCollector cc = new ConstCollector(ssaMethod); cc.run(); }
= getConstsSortedByCountUse(); updateConstUses(newRegs, regSz);
ConstCollector.process(ssaMeth); DeadCodeRemover.process(ssaMeth); needsDeadCodeRemover = false;
} else { usedByLocal.add(cst); fixLocalAssignment(origReg, newRegs.get(cst));
/** * Processes a method. * * @param ssaMethod {@code non-null;} method to process */ public static void process(SsaMethod ssaMethod) { ConstCollector cc = new ConstCollector(ssaMethod); cc.run(); }
= getConstsSortedByCountUse(); updateConstUses(newRegs, regSz);
ConstCollector.process(ssaMeth); DeadCodeRemover.process(ssaMeth); needsDeadCodeRemover = false;
} else { usedByLocal.add(cst); fixLocalAssignment(origReg, newRegs.get(cst));
/** * Processes a method. * * @param ssaMethod {@code non-null;} method to process */ public static void process(SsaMethod ssaMethod) { ConstCollector cc = new ConstCollector(ssaMethod); cc.run(); }