Reviewers: Benedikt Meurer,

Message:
Could you take a look, please?

Description:
[turbofan] Take type into account when determining Word32 phi representation.

BUG=
[email protected]

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

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+6, -6 lines):
  M src/compiler/simplified-lowering.cc
  M test/mjsunit/mjsunit.status


Index: src/compiler/simplified-lowering.cc
diff --git a/src/compiler/simplified-lowering.cc b/src/compiler/simplified-lowering.cc index b3050719883c0467bf97f8d0610e494a3142c014..5a3488c78df7b77a2b2ea8d117f8d4418f907a1a 100644
--- a/src/compiler/simplified-lowering.cc
+++ b/src/compiler/simplified-lowering.cc
@@ -324,7 +324,8 @@ class RepresentationSelector {
} else if (upper->Is(Type::Signed32()) || upper->Is(Type::Unsigned32())) { // multiple uses, but we are within 32 bits range => pick kRepWord32.
         return kRepWord32;
-      } else if ((use & kRepMask) == kRepWord32 ||
+      } else if (((use & kRepMask) == kRepWord32 &&
+                  !CanObserveNonWord32(use)) ||
                  (use & kTypeMask) == kTypeInt32 ||
                  (use & kTypeMask) == kTypeUint32) {
         // We only use 32 bits or we use the result consistently.
@@ -451,6 +452,10 @@ class RepresentationSelector {
            !CanObserveNonUint32(use);
   }

+  bool CanObserveNonWord32(MachineTypeUnion use) {
+    return (use & (kTypeNumber | kTypeAny)) != 0;
+  }
+
   bool CanObserveNonInt32(MachineTypeUnion use) {
     return (use & (kTypeUint32 | kTypeNumber | kTypeAny)) != 0;
   }
Index: test/mjsunit/mjsunit.status
diff --git a/test/mjsunit/mjsunit.status b/test/mjsunit/mjsunit.status
index 357c94e2cf58b520b3ad3ff9e1637014272da87f..a2d85821dbbeeeced25a1832806a5df0f769bcd0 100644
--- a/test/mjsunit/mjsunit.status
+++ b/test/mjsunit/mjsunit.status
@@ -108,11 +108,6 @@
   'es6/debug-stepin-microtasks': [PASS, NO_VARIANTS],
   'es6/debug-stepnext-for': [PASS, NO_VARIANTS],
   'harmony/debug-evaluate-blockscopes': [PASS, NO_VARIANTS],
-
-  # TODO(jarin): Some tests don't like --turbo-deoptimzation very much.
-  'asm/embenchen/lua_binarytrees': [SKIP],
-  'es6/symbols': [PASS, NO_VARIANTS],
-  'regress/regress-354433': [PASS, NO_VARIANTS],  # only on ARM simulator.
   'regress/regress-crbug-259300': [PASS, NO_VARIANTS],

##############################################################################


--
--
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/d/optout.

Reply via email to