Reviewers: titzer,
Message:
PTAL
Description:
Reenable polymorphic getter inlining.
Please review this at https://chromiumcodereview.appspot.com/24134003/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+5, -1 lines):
M src/hydrogen.cc
Index: src/hydrogen.cc
diff --git a/src/hydrogen.cc b/src/hydrogen.cc
index
4e00ba6907fd60f59e25f0570c812b6727ad30ec..2d51b9b463941f072c2fc7f92b331eee66e80080
100644
--- a/src/hydrogen.cc
+++ b/src/hydrogen.cc
@@ -4711,7 +4711,7 @@ void
HOptimizedGraphBuilder::HandlePolymorphicLoadNamedField(
set_current_block(if_true);
HInstruction* load = BuildLoadMonomorphic(
- &info, object, compare, ast_id, return_id, false);
+ &info, object, compare, ast_id, return_id,
FLAG_polymorphic_inlining);
if (load == NULL) {
if (HasStackOverflow()) return;
} else {
@@ -4731,6 +4731,10 @@ void
HOptimizedGraphBuilder::HandlePolymorphicLoadNamedField(
// know about and do not want to handle ones we've never seen. Otherwise
// use a generic IC.
if (count == types->length() && FLAG_deoptimize_uncommon_cases) {
+ // 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("Unknown map in polymorphic load",
join);
} else {
HValue* context = environment()->context();
--
--
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.