Reviewers: Michael Starzinger,

Message:
Broadened check, PTAL...


https://codereview.chromium.org/11092075/diff/1/src/hydrogen-instructions.h
File src/hydrogen-instructions.h (right):

https://codereview.chromium.org/11092075/diff/1/src/hydrogen-instructions.h#newcode1296
src/hydrogen-instructions.h:1296: return !from().IsTagged() ||
(!to().IsDouble() && value()->type().IsSmi());
On 2012/10/11 13:48:43, Michael Starzinger wrote:
Why do we check that Smi->Double is not deleted? Shouldn't that be
possible
without side-effects?

Yep, it seems that the !to().IsDouble() part can be removed...

Description:
HChange is only deletable under certain circumstances.

[email protected]


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

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

Affected files:
  M src/hydrogen-instructions.h


Index: src/hydrogen-instructions.h
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
index ae769fea0aefbbf8b0621a0967222e126dbf5c9a..f8ec100f2f0a3a7898e6c736b87672c9b1fa226f 100644
--- a/src/hydrogen-instructions.h
+++ b/src/hydrogen-instructions.h
@@ -1194,7 +1194,7 @@ class HUnaryOperation: public HTemplateInstruction<1> {
     return reinterpret_cast<HUnaryOperation*>(value);
   }

-  HValue* value() { return OperandAt(0); }
+  HValue* value() const { return OperandAt(0); }
   virtual void PrintDataTo(StringStream* stream);
 };

@@ -1270,8 +1270,8 @@ class HChange: public HUnaryOperation {
   virtual HType CalculateInferredType();
   virtual HValue* Canonicalize();

-  Representation from() { return value()->representation(); }
-  Representation to() { return representation(); }
+  Representation from() const { return value()->representation(); }
+  Representation to() const { return representation(); }
   bool deoptimize_on_undefined() const {
     return CheckFlag(kDeoptimizeOnUndefined);
   }
@@ -1292,7 +1292,9 @@ class HChange: public HUnaryOperation {
   virtual bool DataEquals(HValue* other) { return true; }

  private:
-  virtual bool IsDeletable() const { return true; }
+  virtual bool IsDeletable() const {
+    return !from().IsTagged() || value()->type().IsSmi();
+  }
 };




--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to