Revision: 24415
Author: [email protected]
Date: Mon Oct 6 13:15:23 2014 UTC
Log: Remove FLAG_opt_safe_uint32_operations.
It has been turned on by default for a long time, and hydrogenized
BinaryOpStubs actually depend on it being turned on.
BUG=v8:3487
LOG=n
[email protected]
Review URL: https://codereview.chromium.org/630023002
https://code.google.com/p/v8/source/detail?r=24415
Modified:
/branches/bleeding_edge/src/arm/lithium-arm.cc
/branches/bleeding_edge/src/arm64/lithium-arm64.cc
/branches/bleeding_edge/src/flag-definitions.h
/branches/bleeding_edge/src/hydrogen.cc
/branches/bleeding_edge/src/ia32/lithium-ia32.cc
/branches/bleeding_edge/src/mips/lithium-mips.cc
/branches/bleeding_edge/src/mips64/lithium-mips64.cc
/branches/bleeding_edge/src/x64/lithium-x64.cc
/branches/bleeding_edge/src/x87/lithium-x87.cc
/branches/bleeding_edge/test/mjsunit/compiler/shift-shr.js
/branches/bleeding_edge/test/mjsunit/mjsunit.status
=======================================
--- /branches/bleeding_edge/src/arm/lithium-arm.cc Tue Sep 30 10:29:32 2014
UTC
+++ /branches/bleeding_edge/src/arm/lithium-arm.cc Mon Oct 6 13:15:23 2014
UTC
@@ -699,11 +699,7 @@
// Shift operations can only deoptimize if we do a logical shift
// by 0 and the result cannot be truncated to int32.
if (op == Token::SHR && constant_value == 0) {
- if (FLAG_opt_safe_uint32_operations) {
- does_deopt = !instr->CheckFlag(HInstruction::kUint32);
- } else {
- does_deopt = !instr->CheckUsesForFlag(HValue::kTruncatingToInt32);
- }
+ does_deopt = !instr->CheckFlag(HInstruction::kUint32);
}
LInstruction* result =
=======================================
--- /branches/bleeding_edge/src/arm64/lithium-arm64.cc Tue Sep 30 10:29:32
2014 UTC
+++ /branches/bleeding_edge/src/arm64/lithium-arm64.cc Mon Oct 6 13:15:23
2014 UTC
@@ -2236,11 +2236,7 @@
(JSShiftAmountFromHConstant(instr->right()) ==
0);
bool can_deopt = false;
if ((op == Token::SHR) && right_can_be_zero) {
- if (FLAG_opt_safe_uint32_operations) {
- can_deopt = !instr->CheckFlag(HInstruction::kUint32);
- } else {
- can_deopt = !instr->CheckUsesForFlag(HValue::kTruncatingToInt32);
- }
+ can_deopt = !instr->CheckFlag(HInstruction::kUint32);
}
LInstruction* result;
=======================================
--- /branches/bleeding_edge/src/flag-definitions.h Thu Oct 2 08:24:48 2014
UTC
+++ /branches/bleeding_edge/src/flag-definitions.h Mon Oct 6 13:15:23 2014
UTC
@@ -307,9 +307,6 @@
"maximum number of escape analysis fix-point iterations")
DEFINE_BOOL(optimize_for_in, true, "optimize functions containing for-in
loops")
-DEFINE_BOOL(opt_safe_uint32_operations, true,
- "allow uint32 values on optimize frames if they are used only
in "
- "safe operations")
DEFINE_BOOL(concurrent_recompilation, true,
"optimizing hot functions asynchronously on a separate thread")
=======================================
--- /branches/bleeding_edge/src/hydrogen.cc Thu Oct 2 10:52:12 2014 UTC
+++ /branches/bleeding_edge/src/hydrogen.cc Mon Oct 6 13:15:23 2014 UTC
@@ -2686,9 +2686,8 @@
DCHECK(val == NULL);
HLoadKeyed* load = Add<HLoadKeyed>(
elements, checked_key, dependency, elements_kind, load_mode);
- if (FLAG_opt_safe_uint32_operations &&
- (elements_kind == EXTERNAL_UINT32_ELEMENTS ||
- elements_kind == UINT32_ELEMENTS)) {
+ if (elements_kind == EXTERNAL_UINT32_ELEMENTS ||
+ elements_kind == UINT32_ELEMENTS) {
graph()->RecordUint32Instruction(load);
}
return load;
@@ -4400,7 +4399,7 @@
// Must be performed before canonicalization to ensure that Canonicalize
// will not remove semantically meaningful ToInt32 operations e.g.
BIT_OR with
// zero.
- if (FLAG_opt_safe_uint32_operations) Run<HUint32AnalysisPhase>();
+ Run<HUint32AnalysisPhase>();
if (FLAG_use_canonicalizing) Run<HCanonicalizePhase>();
@@ -10456,8 +10455,7 @@
break;
case Token::SHR:
instr = AddUncasted<HShr>(left, right);
- if (FLAG_opt_safe_uint32_operations && instr->IsShr() &&
- CanBeZero(right)) {
+ if (instr->IsShr() && CanBeZero(right)) {
graph()->RecordUint32Instruction(instr);
}
break;
=======================================
--- /branches/bleeding_edge/src/ia32/lithium-ia32.cc Tue Sep 30 10:29:32
2014 UTC
+++ /branches/bleeding_edge/src/ia32/lithium-ia32.cc Mon Oct 6 13:15:23
2014 UTC
@@ -739,11 +739,7 @@
// Shift operations can only deoptimize if we do a logical shift by 0
and
// the result cannot be truncated to int32.
if (op == Token::SHR && constant_value == 0) {
- if (FLAG_opt_safe_uint32_operations) {
- does_deopt = !instr->CheckFlag(HInstruction::kUint32);
- } else {
- does_deopt = !instr->CheckUsesForFlag(HValue::kTruncatingToInt32);
- }
+ does_deopt = !instr->CheckFlag(HInstruction::kUint32);
}
LInstruction* result =
=======================================
--- /branches/bleeding_edge/src/mips/lithium-mips.cc Tue Sep 30 14:37:59
2014 UTC
+++ /branches/bleeding_edge/src/mips/lithium-mips.cc Mon Oct 6 13:15:23
2014 UTC
@@ -706,11 +706,7 @@
// Shift operations can only deoptimize if we do a logical shift
// by 0 and the result cannot be truncated to int32.
if (op == Token::SHR && constant_value == 0) {
- if (FLAG_opt_safe_uint32_operations) {
- does_deopt = !instr->CheckFlag(HInstruction::kUint32);
- } else {
- does_deopt = !instr->CheckUsesForFlag(HValue::kTruncatingToInt32);
- }
+ does_deopt = !instr->CheckFlag(HInstruction::kUint32);
}
LInstruction* result =
=======================================
--- /branches/bleeding_edge/src/mips64/lithium-mips64.cc Tue Sep 30
14:37:59 2014 UTC
+++ /branches/bleeding_edge/src/mips64/lithium-mips64.cc Mon Oct 6
13:15:23 2014 UTC
@@ -706,11 +706,7 @@
// Shift operations can only deoptimize if we do a logical shift
// by 0 and the result cannot be truncated to int32.
if (op == Token::SHR && constant_value == 0) {
- if (FLAG_opt_safe_uint32_operations) {
- does_deopt = !instr->CheckFlag(HInstruction::kUint32);
- } else {
- does_deopt = !instr->CheckUsesForFlag(HValue::kTruncatingToInt32);
- }
+ does_deopt = !instr->CheckFlag(HInstruction::kUint32);
}
LInstruction* result =
=======================================
--- /branches/bleeding_edge/src/x64/lithium-x64.cc Tue Sep 30 10:29:32 2014
UTC
+++ /branches/bleeding_edge/src/x64/lithium-x64.cc Mon Oct 6 13:15:23 2014
UTC
@@ -722,11 +722,7 @@
// Shift operations can only deoptimize if we do a logical shift by 0
and
// the result cannot be truncated to int32.
if (op == Token::SHR && constant_value == 0) {
- if (FLAG_opt_safe_uint32_operations) {
- does_deopt = !instr->CheckFlag(HInstruction::kUint32);
- } else {
- does_deopt = !instr->CheckUsesForFlag(HValue::kTruncatingToInt32);
- }
+ does_deopt = !instr->CheckFlag(HInstruction::kUint32);
}
LInstruction* result =
=======================================
--- /branches/bleeding_edge/src/x87/lithium-x87.cc Tue Sep 30 10:29:32 2014
UTC
+++ /branches/bleeding_edge/src/x87/lithium-x87.cc Mon Oct 6 13:15:23 2014
UTC
@@ -736,11 +736,7 @@
// Shift operations can only deoptimize if we do a logical shift by 0
and
// the result cannot be truncated to int32.
if (op == Token::SHR && constant_value == 0) {
- if (FLAG_opt_safe_uint32_operations) {
- does_deopt = !instr->CheckFlag(HInstruction::kUint32);
- } else {
- does_deopt = !instr->CheckUsesForFlag(HValue::kTruncatingToInt32);
- }
+ does_deopt = !instr->CheckFlag(HInstruction::kUint32);
}
LInstruction* result =
=======================================
--- /branches/bleeding_edge/test/mjsunit/compiler/shift-shr.js Wed Aug 20
14:58:18 2014 UTC
+++ /branches/bleeding_edge/test/mjsunit/compiler/shift-shr.js Mon Oct 6
13:15:23 2014 UTC
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// Flags: --allow-natives-syntax --noopt-safe-uint32-operations
+// Flags: --allow-natives-syntax
// Check the results of `left >>> right`. The result is always unsigned
(and
// therefore positive).
=======================================
--- /branches/bleeding_edge/test/mjsunit/mjsunit.status Thu Oct 2 08:37:51
2014 UTC
+++ /branches/bleeding_edge/test/mjsunit/mjsunit.status Mon Oct 6 13:15:23
2014 UTC
@@ -51,10 +51,6 @@
# Issue 3389: deopt_every_n_garbage_collections is unsafe
'regress/regress-2653': [SKIP],
- # This test relies on --noopt-safe-uint32-operations, which is broken.
See
- # issue 3487 for details.
- 'compiler/shift-shr': [SKIP],
-
##############################################################################
# TurboFan compiler failures.
--
--
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.