Revision: 14960
Author:   [email protected]
Date:     Wed Jun  5 10:24:14 2013
Log:      Don't force representations in the loop builder.
Additionally, infer None-typed CompareIDAndBranch to Smi+actual input.

[email protected]

Review URL: https://chromiumcodereview.appspot.com/16365004
http://code.google.com/p/v8/source/detail?r=14960

Modified:
 /branches/bleeding_edge/src/hydrogen-instructions.cc
 /branches/bleeding_edge/src/hydrogen.cc
 /branches/bleeding_edge/src/hydrogen.h

=======================================
--- /branches/bleeding_edge/src/hydrogen-instructions.cc Tue Jun 4 10:15:32 2013 +++ /branches/bleeding_edge/src/hydrogen-instructions.cc Wed Jun 5 10:24:14 2013
@@ -2498,8 +2498,10 @@
   Representation observed_left = observed_input_representation(0);
   Representation observed_right = observed_input_representation(1);

-  Representation rep = Representation::Smi();
-  if (observed_left.IsInteger32() && observed_right.IsInteger32()) {
+  Representation rep = Representation::None();
+  rep = rep.generalize(observed_left);
+  rep = rep.generalize(observed_right);
+  if (rep.IsNone() || rep.IsSmiOrInteger32()) {
     if (!left_rep.IsTagged()) rep = rep.generalize(left_rep);
     if (!right_rep.IsTagged()) rep = rep.generalize(right_rep);
   } else {
=======================================
--- /branches/bleeding_edge/src/hydrogen.cc     Wed Jun  5 04:05:45 2013
+++ /branches/bleeding_edge/src/hydrogen.cc     Wed Jun  5 10:24:14 2013
@@ -898,13 +898,11 @@
 HValue* HGraphBuilder::LoopBuilder::BeginBody(
     HValue* initial,
     HValue* terminating,
-    Token::Value token,
-    Representation input_representation) {
+    Token::Value token) {
   HEnvironment* env = builder_->environment();
   phi_ = new(zone()) HPhi(env->values()->length(), zone());
   header_block_->AddPhi(phi_);
   phi_->AddInput(initial);
-  phi_->AssumeRepresentation(Representation::Integer32());
   env->Push(initial);
   builder_->current_block()->GotoNoSimulate(header_block_);

@@ -918,9 +916,6 @@
   builder_->set_current_block(header_block_);
   HCompareIDAndBranch* compare =
       new(zone()) HCompareIDAndBranch(phi_, terminating, token);
-  compare->set_observed_input_representation(input_representation,
-                                             input_representation);
-  compare->AssumeRepresentation(input_representation);
   compare->SetSuccessorAt(0, body_block_);
   compare->SetSuccessorAt(1, exit_block_);
   builder_->current_block()->Finish(compare);
@@ -934,7 +929,6 @@
       increment_ = HSub::New(zone(), context_, phi_, one);
     }
     increment_->ClearFlag(HValue::kCanOverflow);
-    increment_->AssumeRepresentation(Representation::Integer32());
     builder_->AddInstruction(increment_);
     return increment_;
   } else {
@@ -954,7 +948,6 @@
       increment_ = HSub::New(zone(), context_, phi_, one);
     }
     increment_->ClearFlag(HValue::kCanOverflow);
-    increment_->AssumeRepresentation(Representation::Integer32());
     builder_->AddInstruction(increment_);
   }

=======================================
--- /branches/bleeding_edge/src/hydrogen.h      Wed Jun  5 03:43:18 2013
+++ /branches/bleeding_edge/src/hydrogen.h      Wed Jun  5 10:24:14 2013
@@ -1217,8 +1217,7 @@
     HValue* BeginBody(
         HValue* initial,
         HValue* terminating,
-        Token::Value token,
-        Representation input_representation = Representation::Integer32());
+        Token::Value token);
     void EndBody();

    private:

--
--
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