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

Issue 1053143005: Collect type feedback on result of Math.[round|ceil|floor] (Closed)

Created:
5 years, 8 months ago by danno
Modified:
5 years, 7 months ago
CC:
v8-dev
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Collect type feedback on result of Math.[round|ceil|floor] By recording invocations of these builtins that can return -0, we now learn to not emit Crankshaft code that only handles integer results, avoiding deopt loops. Committed: https://crrev.com/f36ecaf3a4d61568ca50a20718acce7dd5da9a5f Cr-Commit-Position: refs/heads/master@{#28215}

Patch Set 1 #

Patch Set 2 : Add tests and missed cases #

Patch Set 3 : Tweaks #

Patch Set 4 : Fix things #

Patch Set 5 : Checkpoint #

Patch Set 6 : Tweaks #

Total comments: 8

Patch Set 7 : Review feedback, better tests #

Patch Set 8 : x64 port #

Patch Set 9 : Add ARM #

Patch Set 10 : Platform ports #

Patch Set 11 : Allow instrinsics to be optimized in more cases #

Total comments: 10

Patch Set 12 : Review feedback #

Patch Set 13 : MIPS port #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1570 lines, -120 lines) Patch
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 6 7 8 9 3 chunks +187 lines, -0 lines 0 comments Download
M src/arm/macro-assembler-arm.h View 1 2 3 4 5 6 7 8 1 chunk +3 lines, -0 lines 0 comments Download
M src/arm/macro-assembler-arm.cc View 1 2 3 4 5 6 7 8 1 chunk +9 lines, -0 lines 0 comments Download
M src/arm64/code-stubs-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +183 lines, -0 lines 0 comments Download
M src/arm64/macro-assembler-arm64.h View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -0 lines 0 comments Download
M src/arm64/macro-assembler-arm64.cc View 1 2 3 4 5 6 7 8 9 1 chunk +9 lines, -0 lines 0 comments Download
M src/assembler.h View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M src/assembler.cc View 1 2 3 4 3 chunks +8 lines, -0 lines 0 comments Download
M src/ast.h View 1 2 3 4 5 6 7 8 9 10 3 chunks +10 lines, -1 line 0 comments Download
M src/code-stubs.h View 1 2 3 4 5 6 7 8 9 10 5 chunks +80 lines, -0 lines 0 comments Download
M src/code-stubs.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +15 lines, -0 lines 0 comments Download
M src/hydrogen.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -1 line 0 comments Download
M src/hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 5 chunks +56 lines, -11 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +179 lines, -0 lines 0 comments Download
M src/ia32/macro-assembler-ia32.h View 1 2 3 4 5 6 1 chunk +3 lines, -0 lines 0 comments Download
M src/ia32/macro-assembler-ia32.cc View 1 2 3 4 5 6 1 chunk +9 lines, -0 lines 0 comments Download
M src/ic/ic.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +43 lines, -1 line 0 comments Download
M src/math.js View 1 2 3 4 5 6 7 8 9 10 3 chunks +4 lines, -4 lines 0 comments Download
M src/mips/code-stubs-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +175 lines, -0 lines 0 comments Download
M src/mips/macro-assembler-mips.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -0 lines 0 comments Download
M src/mips/macro-assembler-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +9 lines, -0 lines 0 comments Download
M src/mips64/code-stubs-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +175 lines, -0 lines 0 comments Download
M src/mips64/macro-assembler-mips64.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -0 lines 0 comments Download
M src/mips64/macro-assembler-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +8 lines, -0 lines 0 comments Download
M src/snapshot/serialize.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -0 lines 0 comments Download
M src/type-feedback-vector.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/type-feedback-vector.cc View 1 2 3 4 5 6 7 8 3 chunks +12 lines, -1 line 0 comments Download
M src/type-info.h View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M src/type-info.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +16 lines, -0 lines 0 comments Download
M src/typing.cc View 1 2 3 4 5 6 1 chunk +9 lines, -5 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 3 4 5 6 7 8 9 3 chunks +181 lines, -0 lines 0 comments Download
M src/x64/macro-assembler-x64.h View 1 2 3 4 5 6 7 1 chunk +2 lines, -0 lines 0 comments Download
M src/x64/macro-assembler-x64.cc View 1 2 3 4 5 6 7 1 chunk +9 lines, -0 lines 0 comments Download
A + test/mjsunit/math-ceil-minus-zero.js View 1 2 3 4 1 chunk +43 lines, -48 lines 0 comments Download
A + test/mjsunit/math-floor-minus-zero.js View 1 2 3 4 5 6 7 8 9 1 chunk +43 lines, -48 lines 0 comments Download
A test/mjsunit/math-round-minus-zero.js View 1 2 3 4 5 6 1 chunk +76 lines, -0 lines 0 comments Download

Messages

Total messages: 13 (4 generated)
mvstanton
Looks good, I just have a few consolidation/refactoring comments. https://codereview.chromium.org/1053143005/diff/90001/src/ia32/code-stubs-ia32.cc File src/ia32/code-stubs-ia32.cc (right): https://codereview.chromium.org/1053143005/diff/90001/src/ia32/code-stubs-ia32.cc#newcode2377 src/ia32/code-stubs-ia32.cc:2377: ...
5 years, 7 months ago (2015-04-28 14:21:20 UTC) #2
danno
First round of comments addresses, PTAL https://codereview.chromium.org/1053143005/diff/90001/src/ia32/code-stubs-ia32.cc File src/ia32/code-stubs-ia32.cc (right): https://codereview.chromium.org/1053143005/diff/90001/src/ia32/code-stubs-ia32.cc#newcode2377 src/ia32/code-stubs-ia32.cc:2377: __ mov(eax, FieldOperand(edi, ...
5 years, 7 months ago (2015-04-30 13:34:32 UTC) #4
mvstanton
A few nits, but beyond that LGTM. https://codereview.chromium.org/1053143005/diff/190001/src/arm64/code-stubs-arm64.cc File src/arm64/code-stubs-arm64.cc (right): https://codereview.chromium.org/1053143005/diff/190001/src/arm64/code-stubs-arm64.cc#newcode3388 src/arm64/code-stubs-arm64.cc:3388: #if 0 ...
5 years, 7 months ago (2015-05-04 09:41:22 UTC) #5
danno
Feedback addressed. Please take another look. https://codereview.chromium.org/1053143005/diff/190001/src/arm64/code-stubs-arm64.cc File src/arm64/code-stubs-arm64.cc (right): https://codereview.chromium.org/1053143005/diff/190001/src/arm64/code-stubs-arm64.cc#newcode3388 src/arm64/code-stubs-arm64.cc:3388: #if 0 On ...
5 years, 7 months ago (2015-05-04 14:31:56 UTC) #6
balazs.kilvady
Please find the MIPS port at https://codereview.chromium.org/1127573004/
5 years, 7 months ago (2015-05-04 18:51:34 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1053143005/230001
5 years, 7 months ago (2015-05-05 07:17:03 UTC) #10
commit-bot: I haz the power
Committed patchset #13 (id:230001)
5 years, 7 months ago (2015-05-05 07:55:59 UTC) #11
commit-bot: I haz the power
Patchset 13 (id:??) landed as https://crrev.com/f36ecaf3a4d61568ca50a20718acce7dd5da9a5f Cr-Commit-Position: refs/heads/master@{#28215}
5 years, 7 months ago (2015-05-05 07:56:17 UTC) #12
danno
5 years, 7 months ago (2015-05-05 16:41:10 UTC) #13
Message was sent while issue was closed.
A revert of this CL (patchset #13 id:230001) has been created in
https://codereview.chromium.org/1115973005/ by danno@chromium.org.

The reason for reverting is: All sorts of performance regressions.

Powered by Google App Engine
This is Rietveld 408576698