| 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. | 
|  |