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

Issue 735543003: Range feedback for binary integer operations. (Closed)

Created:
6 years, 1 month ago by Vyacheslav Egorov (Google)
Modified:
6 years ago
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Range feedback for arithmetic operations. In addition to tracking input and output ranges in the IC-stubs with a Smi fastpath (SmiAdd and SmiSub, currently) this CL also introduces two IC stubs that have no fast-path by still track ranges and update the range feedback. We are able to distinguish between the following ranges (encoding of the lattice is shown in the parens): - u-smi (0000) - smi (0001) - uint31 (0010) - int32 (0011) - uint32 (0100) - int64 (1xxx) and (x1x1) BUG= R=fschneider@google.com, srdjan@google.com, zra@google.com Committed: https://code.google.com/p/dart/source/detail?r=42370

Patch Set 1 #

Patch Set 2 : ready for review #

Total comments: 20

Patch Set 3 : #

Total comments: 12

Patch Set 4 : Address comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1312 lines, -99 lines) Patch
M runtime/vm/assembler_arm.h View 1 1 chunk +12 lines, -0 lines 0 comments Download
M runtime/vm/assembler_arm.cc View 1 2 3 1 chunk +41 lines, -0 lines 0 comments Download
M runtime/vm/assembler_arm64.h View 1 2 chunks +15 lines, -0 lines 0 comments Download
M runtime/vm/assembler_arm64.cc View 1 2 3 1 chunk +45 lines, -0 lines 0 comments Download
M runtime/vm/assembler_arm64_test.cc View 1 2 3 1 chunk +61 lines, -0 lines 0 comments Download
M runtime/vm/assembler_arm_test.cc View 1 2 3 1 chunk +53 lines, -0 lines 0 comments Download
M runtime/vm/assembler_ia32.h View 1 2 chunks +15 lines, -0 lines 0 comments Download
M runtime/vm/assembler_ia32.cc View 1 2 3 2 chunks +50 lines, -0 lines 0 comments Download
M runtime/vm/assembler_ia32_test.cc View 1 2 3 2 chunks +59 lines, -2 lines 0 comments Download
M runtime/vm/assembler_mips.h View 1 2 chunks +15 lines, -0 lines 0 comments Download
M runtime/vm/assembler_mips.cc View 1 2 3 1 chunk +45 lines, -0 lines 0 comments Download
M runtime/vm/assembler_mips_test.cc View 1 2 3 1 chunk +52 lines, -0 lines 0 comments Download
M runtime/vm/assembler_x64.h View 1 2 2 chunks +8 lines, -0 lines 0 comments Download
M runtime/vm/assembler_x64.cc View 1 2 3 2 chunks +52 lines, -0 lines 0 comments Download
M runtime/vm/assembler_x64_test.cc View 1 2 3 3 chunks +59 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 1 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/il_printer.cc View 1 1 chunk +12 lines, -1 line 0 comments Download
M runtime/vm/intermediate_language.h View 1 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/intermediate_language.cc View 1 2 3 2 chunks +16 lines, -0 lines 0 comments Download
M runtime/vm/object.h View 1 2 3 4 chunks +76 lines, -0 lines 0 comments Download
M runtime/vm/object.cc View 1 2 3 3 chunks +94 lines, -0 lines 0 comments Download
M runtime/vm/raw_object.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/stub_code.h View 1 3 chunks +9 lines, -1 line 0 comments Download
M runtime/vm/stub_code_arm.cc View 1 8 chunks +90 lines, -19 lines 0 comments Download
M runtime/vm/stub_code_arm64.cc View 1 10 chunks +91 lines, -17 lines 0 comments Download
M runtime/vm/stub_code_ia32.cc View 1 2 9 chunks +96 lines, -16 lines 0 comments Download
M runtime/vm/stub_code_mips.cc View 1 8 chunks +82 lines, -15 lines 0 comments Download
M runtime/vm/stub_code_x64.cc View 1 10 chunks +110 lines, -18 lines 0 comments Download
M runtime/vm/symbols.h View 1 2 chunks +15 lines, -0 lines 0 comments Download
M runtime/vm/token.h View 1 1 chunk +4 lines, -1 line 0 comments Download
M runtime/vm/token.cc View 1 3 chunks +19 lines, -4 lines 0 comments Download
M runtime/vm/unit_test.h View 1 3 chunks +12 lines, -0 lines 0 comments Download

Messages

Total messages: 14 (1 generated)
Vyacheslav Egorov (Google)
PTAL This is ready for the review. Feedback is just gathered, it is not used ...
6 years ago (2014-12-11 03:35:14 UTC) #2
zra
I'll take a closer look tomorrow, as well. https://codereview.chromium.org/735543003/diff/20001/runtime/vm/assembler_arm.cc File runtime/vm/assembler_arm.cc (right): https://codereview.chromium.org/735543003/diff/20001/runtime/vm/assembler_arm.cc#newcode1972 runtime/vm/assembler_arm.cc:1972: Operand(scratch1, ...
6 years ago (2014-12-11 04:29:33 UTC) #3
Vyacheslav Egorov (Google)
https://codereview.chromium.org/735543003/diff/20001/runtime/vm/assembler_arm.cc File runtime/vm/assembler_arm.cc (right): https://codereview.chromium.org/735543003/diff/20001/runtime/vm/assembler_arm.cc#newcode1972 runtime/vm/assembler_arm.cc:1972: Operand(scratch1, LSL, ICData::kBitsPerRangeFeedback * idx)); On 2014/12/11 04:29:33, zra ...
6 years ago (2014-12-11 13:06:25 UTC) #4
Florian Schneider
The resulting range feedback is different on ia32 vs x64: On x64 smi-ness won't be ...
6 years ago (2014-12-12 12:12:40 UTC) #5
Vyacheslav Egorov (Google)
Comments addressed. I have changed the tracking on 64-bit platforms to track smis correctly and ...
6 years ago (2014-12-12 14:49:14 UTC) #6
Vyacheslav Egorov (Google)
friendly ping
6 years ago (2014-12-15 13:00:51 UTC) #7
zra
https://codereview.chromium.org/735543003/diff/40001/runtime/vm/assembler_arm64_test.cc File runtime/vm/assembler_arm64_test.cc (right): https://codereview.chromium.org/735543003/diff/40001/runtime/vm/assembler_arm64_test.cc#newcode3531 runtime/vm/assembler_arm64_test.cc:3531: __ Push(LR); If there's no call, I don't think ...
6 years ago (2014-12-15 16:01:41 UTC) #8
srdjan
https://codereview.chromium.org/735543003/diff/20001/runtime/vm/object.cc File runtime/vm/object.cc (right): https://codereview.chromium.org/735543003/diff/20001/runtime/vm/object.cc#newcode11952 runtime/vm/object.cc:11952: static Token::Kind RecognizeArithmeticOp(const String& name) { ASSERT(name.IsSymbol()). https://codereview.chromium.org/735543003/diff/20001/runtime/vm/object.cc#newcode12002 runtime/vm/object.cc:12002: ...
6 years ago (2014-12-15 16:39:01 UTC) #9
Vyacheslav Egorov (Google)
Thanks for the comments. Address addressable ones. Biggest concern now is that we increase on ...
6 years ago (2014-12-15 17:20:05 UTC) #10
srdjan
LGTM
6 years ago (2014-12-15 17:26:33 UTC) #11
zra
lgtm On 2014/12/15 17:20:05, Vyacheslav Egorov (Google) wrote: > I am not sure if we ...
6 years ago (2014-12-15 17:32:16 UTC) #12
Florian Schneider
lgtm
6 years ago (2014-12-15 17:48:46 UTC) #13
Vyacheslav Egorov (Google)
6 years ago (2014-12-15 18:48:43 UTC) #14
Message was sent while issue was closed.
Committed patchset #4 (id:60001) manually as 42370 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698