private List<MethodOptimization> getOptimizations() { List<MethodOptimization> optimizations = new ArrayList<>(); optimizations.add(new RedundantJumpElimination()); optimizations.add(new ArrayUnwrapMotion()); if (optimizationLevel.ordinal() >= TeaVMOptimizationLevel.ADVANCED.ordinal()) { optimizations.add(new ScalarReplacement()); //optimizations.add(new LoopInversion()); optimizations.add(new LoopInvariantMotion()); } optimizations.add(new GlobalValueNumbering(optimizationLevel == TeaVMOptimizationLevel.SIMPLE)); if (optimizationLevel.ordinal() >= TeaVMOptimizationLevel.ADVANCED.ordinal()) { optimizations.add(new RedundantNullCheckElimination()); optimizations.add(new ConstantConditionElimination()); optimizations.add(new RedundantJumpElimination()); optimizations.add(new UnusedVariableElimination()); } optimizations.add(new ClassInitElimination()); optimizations.add(new UnreachableBasicBlockElimination()); optimizations.add(new UnusedVariableElimination()); return optimizations; }
private List<MethodOptimization> getOptimizations() { List<MethodOptimization> optimizations = new ArrayList<>(); optimizations.add(new RedundantJumpElimination()); optimizations.add(new ArrayUnwrapMotion()); if (optimizationLevel.ordinal() >= TeaVMOptimizationLevel.ADVANCED.ordinal()) { optimizations.add(new ScalarReplacement()); //optimizations.add(new LoopInversion()); optimizations.add(new LoopInvariantMotion()); } optimizations.add(new GlobalValueNumbering(optimizationLevel == TeaVMOptimizationLevel.SIMPLE)); if (optimizationLevel.ordinal() >= TeaVMOptimizationLevel.ADVANCED.ordinal()) { optimizations.add(new ConstantConditionElimination()); optimizations.add(new RedundantJumpElimination()); optimizations.add(new UnusedVariableElimination()); } optimizations.add(new ClassInitElimination()); optimizations.add(new UnreachableBasicBlockElimination()); optimizations.add(new UnusedVariableElimination()); return optimizations; }