Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Issue 2060233002: [turbofan] Prevent storing signalling NaNs into holey double arrays. (Closed)

Created:
4 years, 6 months ago by Jarin
Modified:
4 years, 6 months ago
Reviewers:
Benedikt Meurer
CC:
v8-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[turbofan] Prevent storing signalling NaNs into holey double arrays. This introduces SilenceNaN operator, which makes sure that we only store quiet NaNs into holey arrays. We omit the NaN silencing code at instruction selection time if the input is an operation that cannot possibly produce signalling NaNs. BUG= Committed: https://crrev.com/6470ddadf93594657acee02b5ce5459752928490 Cr-Commit-Position: refs/heads/master@{#36950}

Patch Set 1 #

Patch Set 2 : Other platforms (arm not working yet) #

Patch Set 3 : Fix arm #

Patch Set 4 : Test #

Total comments: 1

Patch Set 5 : Fix spelling, rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+182 lines, -10 lines) Patch
M src/compiler/arm/code-generator-arm.cc View 1 2 3 4 1 chunk +6 lines, -0 lines 0 comments Download
M src/compiler/arm/instruction-codes-arm.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/arm/instruction-scheduler-arm.cc View 1 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/arm/instruction-selector-arm.cc View 1 2 3 4 1 chunk +4 lines, -0 lines 0 comments Download
M src/compiler/arm64/code-generator-arm64.cc View 1 2 3 4 1 chunk +3 lines, -0 lines 0 comments Download
M src/compiler/arm64/instruction-codes-arm64.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/arm64/instruction-scheduler-arm64.cc View 1 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/arm64/instruction-selector-arm64.cc View 1 2 3 4 1 chunk +4 lines, -0 lines 0 comments Download
M src/compiler/ia32/code-generator-ia32.cc View 1 2 3 4 1 chunk +4 lines, -0 lines 0 comments Download
M src/compiler/ia32/instruction-codes-ia32.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/ia32/instruction-scheduler-ia32.cc View 1 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/ia32/instruction-selector-ia32.cc View 1 2 3 4 1 chunk +6 lines, -0 lines 0 comments Download
M src/compiler/instruction-selector.h View 1 2 3 4 1 chunk +3 lines, -0 lines 0 comments Download
M src/compiler/instruction-selector.cc View 1 2 3 4 5 chunks +25 lines, -9 lines 0 comments Download
M src/compiler/js-native-context-specialization.cc View 1 1 chunk +5 lines, -0 lines 0 comments Download
M src/compiler/machine-operator.h View 1 2 3 4 1 chunk +4 lines, -0 lines 0 comments Download
M src/compiler/machine-operator.cc View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/mips/code-generator-mips.cc View 1 2 3 4 1 chunk +14 lines, -0 lines 0 comments Download
M src/compiler/mips/instruction-codes-mips.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/mips/instruction-selector-mips.cc View 1 2 3 4 1 chunk +8 lines, -0 lines 0 comments Download
M src/compiler/mips64/code-generator-mips64.cc View 1 2 3 4 1 chunk +3 lines, -0 lines 0 comments Download
M src/compiler/mips64/instruction-codes-mips64.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/mips64/instruction-selector-mips64.cc View 1 2 3 4 1 chunk +3 lines, -0 lines 0 comments Download
M src/compiler/opcodes.h View 1 2 3 4 2 chunks +2 lines, -0 lines 0 comments Download
M src/compiler/representation-change.cc View 1 2 3 4 1 chunk +2 lines, -0 lines 0 comments Download
M src/compiler/simplified-lowering.cc View 1 2 3 4 2 chunks +8 lines, -0 lines 0 comments Download
M src/compiler/simplified-operator.h View 1 2 3 4 1 chunk +2 lines, -0 lines 0 comments Download
M src/compiler/simplified-operator.cc View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/typer.cc View 1 2 3 4 3 chunks +6 lines, -1 line 0 comments Download
M src/compiler/verifier.cc View 1 2 3 4 2 chunks +5 lines, -0 lines 0 comments Download
M src/compiler/x64/code-generator-x64.cc View 1 2 3 4 1 chunk +4 lines, -0 lines 0 comments Download
M src/compiler/x64/instruction-codes-x64.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/x64/instruction-scheduler-x64.cc View 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/x64/instruction-selector-x64.cc View 1 2 3 4 1 chunk +6 lines, -0 lines 0 comments Download
A test/mjsunit/compiler/regress-store-holey-double-array.js View 1 2 3 1 chunk +43 lines, -0 lines 0 comments Download

Messages

Total messages: 10 (4 generated)
Jarin
Could you take a look, please? (I copied the mips implementation blindly from lithium, I ...
4 years, 6 months ago (2016-06-13 15:26:22 UTC) #2
Benedikt Meurer
lgtm with nit https://codereview.chromium.org/2060233002/diff/60001/src/compiler/instruction-selector.h File src/compiler/instruction-selector.h (right): https://codereview.chromium.org/2060233002/diff/60001/src/compiler/instruction-selector.h#newcode276 src/compiler/instruction-selector.h:276: bool CanProduceSignallingNaN(Node* node); Nit: signaling
4 years, 6 months ago (2016-06-13 17:26:30 UTC) #3
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2060233002/80001
4 years, 6 months ago (2016-06-14 07:51:01 UTC) #6
commit-bot: I haz the power
Committed patchset #5 (id:80001)
4 years, 6 months ago (2016-06-14 08:23:22 UTC) #7
commit-bot: I haz the power
CQ bit was unchecked
4 years, 6 months ago (2016-06-14 08:23:23 UTC) #8
commit-bot: I haz the power
4 years, 6 months ago (2016-06-14 08:24:53 UTC) #10
Message was sent while issue was closed.
Patchset 5 (id:??) landed as
https://crrev.com/6470ddadf93594657acee02b5ce5459752928490
Cr-Commit-Position: refs/heads/master@{#36950}

Powered by Google App Engine
This is Rietveld 408576698