Reviewers: Igor Sheludko,

Message:
PTAL

Description:
Return on the polymorphic hard deopt case to ensure we don't polute phis with
fake type information.

Please review this at https://codereview.chromium.org/163403003/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+2, -8 lines):
  M src/hydrogen.cc


Index: src/hydrogen.cc
diff --git a/src/hydrogen.cc b/src/hydrogen.cc
index d3d7b5837a0c5e3d9a09ba4a58ce9486773818e8..39f9fa5edcdc35afc313dc7fe16bf72d3a1c38cb 100644
--- a/src/hydrogen.cc
+++ b/src/hydrogen.cc
@@ -1255,11 +1255,8 @@ void HGraphBuilder::FinishExitWithHardDeoptimization(
     const char* reason, HBasicBlock* continuation) {
   PadEnvironmentForContinuation(current_block(), continuation);
   Add<HDeoptimize>(reason, Deoptimizer::EAGER);
-  if (graph()->IsInsideNoSideEffectsScope()) {
-    GotoNoSimulate(continuation);
-  } else {
-    Goto(continuation);
-  }
+  Add<HReturn>(graph()->GetConstantUndefined());
+  set_current_block(NULL);
 }


@@ -5705,7 +5702,6 @@ void HOptimizedGraphBuilder::HandlePolymorphicNamedFieldAccess( // Because the deopt may be the only path in the polymorphic load, make sure // that the environment stack matches the depth on deopt that it otherwise
     // would have had after a successful load.
-    if (!ast_context()->IsEffect()) Push(graph()->GetConstant0());
FinishExitWithHardDeoptimization("Uknown map in polymorphic access", join);
   } else {
HInstruction* instr = BuildNamedGeneric(access_type, object, name, value); @@ -6922,8 +6918,6 @@ void HOptimizedGraphBuilder::HandlePolymorphicCallNamed( // Because the deopt may be the only path in the polymorphic call, make sure // that the environment stack matches the depth on deopt that it otherwise
     // would have had after a successful call.
-    Drop(1);  // Drop receiver.
-    if (!ast_context()->IsEffect()) Push(graph()->GetConstant0());
FinishExitWithHardDeoptimization("Unknown map in polymorphic call", join);
   } else {
     Property* prop = expr->expression()->AsProperty();


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to