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.