src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/LowTier.java
equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
37 import org.graalvm.compiler.phases.common.CanonicalizerPhase; |
37 import org.graalvm.compiler.phases.common.CanonicalizerPhase; |
38 import org.graalvm.compiler.phases.common.DeadCodeEliminationPhase; |
38 import org.graalvm.compiler.phases.common.DeadCodeEliminationPhase; |
39 import org.graalvm.compiler.phases.common.ExpandLogicPhase; |
39 import org.graalvm.compiler.phases.common.ExpandLogicPhase; |
40 import org.graalvm.compiler.phases.common.FixReadsPhase; |
40 import org.graalvm.compiler.phases.common.FixReadsPhase; |
41 import org.graalvm.compiler.phases.common.LoweringPhase; |
41 import org.graalvm.compiler.phases.common.LoweringPhase; |
42 import org.graalvm.compiler.phases.common.OptimizeDivPhase; |
|
43 import org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase; |
42 import org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase; |
44 import org.graalvm.compiler.phases.common.PropagateDeoptimizeProbabilityPhase; |
43 import org.graalvm.compiler.phases.common.PropagateDeoptimizeProbabilityPhase; |
45 import org.graalvm.compiler.phases.common.UseTrappingNullChecksPhase; |
44 import org.graalvm.compiler.phases.common.UseTrappingNullChecksPhase; |
46 import org.graalvm.compiler.phases.schedule.SchedulePhase; |
45 import org.graalvm.compiler.phases.schedule.SchedulePhase; |
47 import org.graalvm.compiler.phases.schedule.SchedulePhase.SchedulingStrategy; |
46 import org.graalvm.compiler.phases.schedule.SchedulePhase.SchedulingStrategy; |
71 appendPhase(new ProfileCompiledMethodsPhase()); |
70 appendPhase(new ProfileCompiledMethodsPhase()); |
72 } |
71 } |
73 |
72 |
74 appendPhase(new LoweringPhase(canonicalizer, LoweringTool.StandardLoweringStage.LOW_TIER)); |
73 appendPhase(new LoweringPhase(canonicalizer, LoweringTool.StandardLoweringStage.LOW_TIER)); |
75 |
74 |
76 appendPhase(new OptimizeDivPhase()); |
|
77 |
|
78 appendPhase(new ExpandLogicPhase()); |
75 appendPhase(new ExpandLogicPhase()); |
79 |
76 |
80 appendPhase(new FixReadsPhase(true, new SchedulePhase(GraalOptions.StressTestEarlyReads.getValue(options) ? SchedulingStrategy.EARLIEST : SchedulingStrategy.LATEST_OUT_OF_LOOPS))); |
77 appendPhase(new FixReadsPhase(true, |
|
78 new SchedulePhase(GraalOptions.StressTestEarlyReads.getValue(options) ? SchedulingStrategy.EARLIEST : SchedulingStrategy.LATEST_OUT_OF_LOOPS_IMPLICIT_NULL_CHECKS))); |
81 |
79 |
82 appendPhase(canonicalizerWithoutGVN); |
80 appendPhase(canonicalizerWithoutGVN); |
83 |
81 |
84 appendPhase(new UseTrappingNullChecksPhase()); |
82 appendPhase(new UseTrappingNullChecksPhase()); |
85 |
83 |
86 appendPhase(new DeadCodeEliminationPhase(Required)); |
84 appendPhase(new DeadCodeEliminationPhase(Required)); |
87 |
85 |
88 appendPhase(new PropagateDeoptimizeProbabilityPhase()); |
86 appendPhase(new PropagateDeoptimizeProbabilityPhase()); |
89 |
87 |
90 appendPhase(new SchedulePhase(SchedulePhase.SchedulingStrategy.FINAL_SCHEDULE)); |
88 appendPhase(new SchedulePhase(SchedulePhase.SchedulingStrategy.LATEST_OUT_OF_LOOPS)); |
91 } |
89 } |
92 } |
90 } |