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.