Commit 201e53fb authored by bmeurer's avatar bmeurer Committed by Commit bot

[turbofan] Run load elimination prior to escape analysis.

Once the escape analysis ran, it'll be harder to eliminate a bunch of
checks (for example map checks, which would currently block escape
analysis, but that's about to be fixed). Also the escape analysis will
have a lot less stress after the load elimination, which takes care of
redundant loads and checks already.

R=mstarzinger@chromium.org
BUG=v8:5448

Review-Url: https://codereview.chromium.org/2427533002
Cr-Commit-Position: refs/heads/master@{#40351}
parent 6755b55a
...@@ -1569,14 +1569,16 @@ bool PipelineImpl::CreateGraph() { ...@@ -1569,14 +1569,16 @@ bool PipelineImpl::CreateGraph() {
RunPrintAndVerify("Loop peeled"); RunPrintAndVerify("Loop peeled");
} }
if (FLAG_turbo_escape) { if (!info()->shared_info()->asm_function()) {
Run<EscapeAnalysisPhase>(); if (FLAG_turbo_load_elimination) {
RunPrintAndVerify("Escape Analysed"); Run<LoadEliminationPhase>();
} RunPrintAndVerify("Load eliminated");
}
if (!info()->shared_info()->asm_function() && FLAG_turbo_load_elimination) { if (FLAG_turbo_escape) {
Run<LoadEliminationPhase>(); Run<EscapeAnalysisPhase>();
RunPrintAndVerify("Load eliminated"); RunPrintAndVerify("Escape Analysed");
}
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment