Index: src/compiler/pipeline.cc |
diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc |
index 63ba407792875454eca991ccb772c4429f5f3417..66f3bf0fc4a1584d326bd5b4ea8d8ba34bee58f6 100644 |
--- a/src/compiler/pipeline.cc |
+++ b/src/compiler/pipeline.cc |
@@ -1041,6 +1041,12 @@ 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); |
@@ -1077,11 +1083,6 @@ 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"); |
@@ -1101,12 +1102,6 @@ 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. |