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

Issue 2362173003: [turbofan] Improve representation selection for Smi checking. (Closed)

Created:
4 years, 3 months ago by Benedikt Meurer
Modified:
4 years, 3 months ago
Reviewers:
Jarin
CC:
v8-reviews_googlegroups.com
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[turbofan] Improve representation selection for Smi checking. Rename the high-level operators CheckTaggedSigned to CheckSmi and CheckTaggedPointer to CheckHeapObject, to better match the naming convention (i.e. ObjectIsSmi and CheckSmi, ObjectIsString and CheckString, etc.). For lowering CheckSmi, always report TaggedSigned representation and let the RepresentationChanger come up with a reasonable conversion from whatever input representation to TaggedSigned. This way we no longer insert the useless ChangeSomethingToTagged and then Smi check the result sequences, i.e. mostly reduces the amount of useless code being generated. But we also observe a few performance improvements on some crypto benchmarks. This would enable us to avoid the Smi canonicalization when going from Float64 to Tagged completely and thus match the representation selection of Crankshaft in many areas (which might reduce the amount of polymorphism until we fix our object model). A follow-up CL will do the same for CheckHeapObject. BUG=v8:5267 R=jarin@chromium.org Committed: https://crrev.com/dfbb3db5ef3401248177829eff4f36b9e0cc2324 Cr-Commit-Position: refs/heads/master@{#39654}

Patch Set 1 #

Total comments: 8

Patch Set 2 : Improve deoptimizer translation asserts. #

Patch Set 3 : Address comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+294 lines, -167 lines) Patch
M src/compiler/code-generator.cc View 1 1 chunk +12 lines, -4 lines 0 comments Download
M src/compiler/effect-control-linearizer.h View 3 chunks +14 lines, -4 lines 0 comments Download
M src/compiler/effect-control-linearizer.cc View 8 chunks +68 lines, -20 lines 0 comments Download
M src/compiler/js-builtin-reducer.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M src/compiler/js-global-object-specialization.cc View 2 chunks +3 lines, -3 lines 0 comments Download
M src/compiler/js-native-context-specialization.h View 1 chunk +1 line, -1 line 0 comments Download
M src/compiler/js-native-context-specialization.cc View 7 chunks +13 lines, -13 lines 0 comments Download
M src/compiler/opcodes.h View 2 chunks +6 lines, -3 lines 0 comments Download
M src/compiler/redundancy-elimination.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M src/compiler/representation-change.h View 3 chunks +7 lines, -1 line 0 comments Download
M src/compiler/representation-change.cc View 1 2 4 chunks +70 lines, -27 lines 0 comments Download
M src/compiler/simplified-lowering.cc View 2 chunks +18 lines, -17 lines 0 comments Download
M src/compiler/simplified-operator.h View 2 chunks +6 lines, -2 lines 0 comments Download
M src/compiler/simplified-operator.cc View 1 chunk +19 lines, -16 lines 0 comments Download
M src/compiler/simplified-operator-reducer.cc View 1 chunk +4 lines, -4 lines 0 comments Download
M src/compiler/typer.cc View 2 chunks +14 lines, -14 lines 0 comments Download
M src/compiler/verifier.cc View 3 chunks +13 lines, -10 lines 0 comments Download
M test/unittests/compiler/simplified-operator-reducer-unittest.cc View 2 chunks +22 lines, -24 lines 0 comments Download

Messages

Total messages: 21 (14 generated)
Benedikt Meurer
4 years, 3 months ago (2016-09-23 07:36:56 UTC) #1
Benedikt Meurer
Hey Jaro, Here's the first step to reduce friction in the area of field representations ...
4 years, 3 months ago (2016-09-23 07:38:26 UTC) #4
Jarin
Quasi lgtm. https://codereview.chromium.org/2362173003/diff/1/src/compiler/effect-control-linearizer.cc File src/compiler/effect-control-linearizer.cc (right): https://codereview.chromium.org/2362173003/diff/1/src/compiler/effect-control-linearizer.cc#newcode1715 src/compiler/effect-control-linearizer.cc:1715: common()->DeoptimizeUnless(DeoptimizeReason::kLostPrecision), check, So why is the deopt ...
4 years, 3 months ago (2016-09-23 08:31:54 UTC) #9
Benedikt Meurer
https://codereview.chromium.org/2362173003/diff/1/src/compiler/effect-control-linearizer.cc File src/compiler/effect-control-linearizer.cc (right): https://codereview.chromium.org/2362173003/diff/1/src/compiler/effect-control-linearizer.cc#newcode1715 src/compiler/effect-control-linearizer.cc:1715: common()->DeoptimizeUnless(DeoptimizeReason::kLostPrecision), check, Copied your logic from above. https://codereview.chromium.org/2362173003/diff/1/src/compiler/representation-change.cc File ...
4 years, 3 months ago (2016-09-23 08:39:38 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2362173003/40001
4 years, 3 months ago (2016-09-23 08:41:00 UTC) #16
commit-bot: I haz the power
Patchset 3 (id:??) landed as https://crrev.com/dfbb3db5ef3401248177829eff4f36b9e0cc2324 Cr-Commit-Position: refs/heads/master@{#39654}
4 years, 3 months ago (2016-09-23 10:32:45 UTC) #20
Benedikt Meurer
4 years, 3 months ago (2016-09-23 10:32:45 UTC) #21
Message was sent while issue was closed.
Committed patchset #3 (id:40001) manually as
dfbb3db5ef3401248177829eff4f36b9e0cc2324 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698