| Index: src/compiler/pipeline.cc
|
| diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc
|
| index 66f3bf0fc4a1584d326bd5b4ea8d8ba34bee58f6..7ced8e67b261d83606059dbc4192dbdb6d4ada4a 100644
|
| --- a/src/compiler/pipeline.cc
|
| +++ b/src/compiler/pipeline.cc
|
| @@ -26,7 +26,6 @@
|
| #include "src/compiler/instruction-selector.h"
|
| #include "src/compiler/js-builtin-reducer.h"
|
| #include "src/compiler/js-context-specialization.h"
|
| -#include "src/compiler/js-frame-specialization.h"
|
| #include "src/compiler/js-generic-lowering.h"
|
| #include "src/compiler/js-inlining.h"
|
| #include "src/compiler/js-intrinsic-lowering.h"
|
| @@ -497,17 +496,12 @@ struct InliningPhase {
|
| CommonOperatorReducer common_reducer(&graph_reducer, data->graph(),
|
| data->common(), data->machine());
|
| JSContextSpecializer context_specializer(&graph_reducer, data->jsgraph());
|
| - JSFrameSpecialization frame_specialization(data->info()->osr_frame(),
|
| - data->jsgraph());
|
| JSInliner inliner(&graph_reducer, data->info()->is_inlining_enabled()
|
| ? JSInliner::kGeneralInlining
|
| : JSInliner::kRestrictedInlining,
|
| temp_zone, data->info(), data->jsgraph());
|
| AddReducer(data, &graph_reducer, &dead_code_elimination);
|
| AddReducer(data, &graph_reducer, &common_reducer);
|
| - if (data->info()->is_frame_specializing()) {
|
| - AddReducer(data, &graph_reducer, &frame_specialization);
|
| - }
|
| if (data->info()->is_context_specializing()) {
|
| AddReducer(data, &graph_reducer, &context_specializer);
|
| }
|
| @@ -1041,12 +1035,6 @@ Handle<Code> Pipeline::GenerateCode() {
|
| if (data.compilation_failed()) return Handle<Code>::null();
|
| RunPrintAndVerify("Initial untyped", true);
|
|
|
| - // Perform OSR deconstruction.
|
| - if (info()->is_osr()) {
|
| - Run<OsrDeconstructionPhase>();
|
| - RunPrintAndVerify("OSR deconstruction", true);
|
| - }
|
| -
|
| // Perform context specialization and inlining (if enabled).
|
| Run<InliningPhase>();
|
| RunPrintAndVerify("Inlined", true);
|
| @@ -1083,6 +1071,11 @@ Handle<Code> Pipeline::GenerateCode() {
|
| RunPrintAndVerify("Loop peeled");
|
| }
|
|
|
| + if (info()->is_osr()) {
|
| + Run<OsrDeconstructionPhase>();
|
| + RunPrintAndVerify("OSR deconstruction");
|
| + }
|
| +
|
| if (info()->is_type_feedback_enabled()) {
|
| Run<JSTypeFeedbackPhase>();
|
| RunPrintAndVerify("JSType feedback");
|
| @@ -1102,6 +1095,12 @@ Handle<Code> Pipeline::GenerateCode() {
|
| Run<ChangeLoweringPhase>();
|
| // TODO(jarin, rossberg): Remove UNTYPED once machine typing works.
|
| RunPrintAndVerify("Lowered changes", true);
|
| + } else {
|
| + if (info()->is_osr()) {
|
| + Run<OsrDeconstructionPhase>();
|
| + if (info()->bailout_reason() != kNoReason) return Handle<Code>::null();
|
| + RunPrintAndVerify("OSR deconstruction", true);
|
| + }
|
| }
|
|
|
| // Lower any remaining generic JSOperators.
|
|
|