src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/LowTier.java
branchdatagramsocketimpl-branch
changeset 58678 9cf78a70fa4f
parent 54084 84f10bbf993f
child 58679 9c3209ff7550
equal deleted inserted replaced
58677:13588c901957 58678:9cf78a70fa4f
     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 }