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.

Reply via email to