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

Issue 636283009: [turbofan] Use range types to type and lower arithmetic ops. (Closed)

Created:
6 years, 2 months ago by Jarin
Modified:
6 years, 2 months ago
CC:
neis, rossberg, titzer
Project:
v8
Visibility:
Public.

Description

[turbofan] Use range types to type and lower arithmetic ops. This is based on Georg's work on typing arithmetic operations (https://codereview.chromium.org/658743002/). Instead of weakening to bitset types, we weaken to the closest 2^n limit if we see that we are re-typing a node with a range type (which means that the node can be part of a cycle, so we might need to speed up the fixpoint there). BUG= R=rossberg@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=24848

Patch Set 1 #

Patch Set 2 : Include bitset Integral32 in the safe integer range #

Patch Set 3 : Update simplified lowering tests #

Patch Set 4 : Attempt at truncation #

Patch Set 5 : Fix float32 constants #

Patch Set 6 : Remove unused method #

Total comments: 29

Patch Set 7 : Address review comments #

Patch Set 8 : Fixes and tweaks recommended by the reviewers #

Total comments: 2

Patch Set 9 : Inline Weaken #

Total comments: 1

Patch Set 10 : Rename MaybeWeaken and rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+415 lines, -55 lines) Patch
M src/compiler/representation-change.h View 1 2 3 4 2 chunks +36 lines, -0 lines 0 comments Download
M src/compiler/simplified-lowering.cc View 1 2 3 4 5 6 7 8 9 5 chunks +62 lines, -0 lines 0 comments Download
M src/compiler/typer.h View 2 chunks +4 lines, -0 lines 0 comments Download
M src/compiler/typer.cc View 1 2 3 4 5 6 7 8 9 21 chunks +254 lines, -38 lines 0 comments Download
M src/types.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M test/cctest/compiler/test-simplified-lowering.cc View 1 2 3 4 5 6 7 8 9 1 chunk +40 lines, -14 lines 0 comments Download
M test/cctest/compiler/test-typer.cc View 1 chunk +1 line, -1 line 0 comments Download
M test/cctest/test-types.cc View 3 chunks +12 lines, -2 lines 0 comments Download
M test/cctest/types-fuzz.h View 1 2 3 4 5 6 2 chunks +5 lines, -0 lines 0 comments Download

Messages

Total messages: 15 (4 generated)
Jarin
Could you take a look, please?
6 years, 2 months ago (2014-10-23 05:38:26 UTC) #2
Benedikt Meurer
https://codereview.chromium.org/636283009/diff/100001/src/compiler/representation-change.h File src/compiler/representation-change.h (right): https://codereview.chromium.org/636283009/diff/100001/src/compiler/representation-change.h#newcode237 src/compiler/representation-change.h:237: op = machine()->TruncateFloat64ToInt32(); The op is always the same ...
6 years, 2 months ago (2014-10-23 10:33:26 UTC) #3
Jarin
https://codereview.chromium.org/636283009/diff/100001/src/compiler/representation-change.h File src/compiler/representation-change.h (right): https://codereview.chromium.org/636283009/diff/100001/src/compiler/representation-change.h#newcode237 src/compiler/representation-change.h:237: op = machine()->TruncateFloat64ToInt32(); On 2014/10/23 10:33:26, Benedikt Meurer wrote: ...
6 years, 2 months ago (2014-10-23 11:14:52 UTC) #4
rossberg
https://codereview.chromium.org/636283009/diff/100001/src/compiler/typer.cc File src/compiler/typer.cc (right): https://codereview.chromium.org/636283009/diff/100001/src/compiler/typer.cc#newcode124 src/compiler/typer.cc:124: double limit = 1; Wouldn't it make sense to ...
6 years, 2 months ago (2014-10-23 11:50:33 UTC) #7
rossberg
https://codereview.chromium.org/636283009/diff/100001/src/compiler/typer.cc File src/compiler/typer.cc (right): https://codereview.chromium.org/636283009/diff/100001/src/compiler/typer.cc#newcode124 src/compiler/typer.cc:124: double limit = 1; Wouldn't it make sense to ...
6 years, 2 months ago (2014-10-23 11:50:34 UTC) #8
neis
https://codereview.chromium.org/636283009/diff/100001/src/compiler/typer.cc File src/compiler/typer.cc (right): https://codereview.chromium.org/636283009/diff/100001/src/compiler/typer.cc#newcode292 src/compiler/typer.cc:292: Type* MaybeWeaken(Type* current, Type* previous) { On 2014/10/23 11:50:33, ...
6 years, 2 months ago (2014-10-23 12:43:06 UTC) #10
Jarin
All should be done now. Thanks for detailed comments! https://codereview.chromium.org/636283009/diff/100001/src/compiler/typer.cc File src/compiler/typer.cc (right): https://codereview.chromium.org/636283009/diff/100001/src/compiler/typer.cc#newcode124 src/compiler/typer.cc:124: ...
6 years, 2 months ago (2014-10-23 13:32:37 UTC) #11
rossberg
https://codereview.chromium.org/636283009/diff/140001/src/compiler/typer.cc File src/compiler/typer.cc (right): https://codereview.chromium.org/636283009/diff/140001/src/compiler/typer.cc#newcode1066 src/compiler/typer.cc:1066: Type* Typer::Visitor::MaybeWeaken(Type* current, Type* previous) { Is there any ...
6 years, 2 months ago (2014-10-23 13:44:27 UTC) #12
Jarin
https://codereview.chromium.org/636283009/diff/140001/src/compiler/typer.cc File src/compiler/typer.cc (right): https://codereview.chromium.org/636283009/diff/140001/src/compiler/typer.cc#newcode1066 src/compiler/typer.cc:1066: Type* Typer::Visitor::MaybeWeaken(Type* current, Type* previous) { On 2014/10/23 13:44:27, ...
6 years, 2 months ago (2014-10-23 13:55:00 UTC) #13
rossberg
lgtm https://codereview.chromium.org/636283009/diff/160001/src/compiler/typer.cc File src/compiler/typer.cc (right): https://codereview.chromium.org/636283009/diff/160001/src/compiler/typer.cc#newcode203 src/compiler/typer.cc:203: Type* MaybeWeaken(Type* current_type, Type* previous_type); Nit: perhaps rename ...
6 years, 2 months ago (2014-10-23 14:17:15 UTC) #14
Jarin
6 years, 2 months ago (2014-10-23 14:40:57 UTC) #15
Message was sent while issue was closed.
Committed patchset #10 (id:180001) manually as 24848 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698