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

Issue 2149023002: VM: Array bounds checks that don't deoptimize for precompiled code. (Closed)

Created:
4 years, 5 months ago by Florian Schneider
Modified:
4 years, 5 months ago
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Base URL:
git@github.com:dart-lang/sdk.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

VM: Array bounds checks that don't deoptimize for precompiled code. 1. Make CheckArrayBoundInstr also check the index for smi. This allows easy replacement of the deoptimizing checks with the slow-path checks in the precompiler. 2. Add GenericCheckBoundInstr which has a slow-path attached for handling check failures. BUG= R=rmacnak@google.com, vegorov@google.com Committed: https://github.com/dart-lang/sdk/commit/4a5f651c4b2202013ab7c3db887fd95e2597e173 Committed: https://github.com/dart-lang/sdk/commit/d3810213b0b185fc2fb9a6239f1f67fbb72e63b0

Patch Set 1 #

Patch Set 2 : fix dbc build #

Total comments: 6

Patch Set 3 : addressed comments, fixed ia32 #

Patch Set 4 : fix build #

Patch Set 5 : Fix debug assertions #

Patch Set 6 : merge #

Unified diffs Side-by-side diffs Delta from patch set Stats (+429 lines, -44 lines) Patch
M runtime/vm/aot_optimizer.h View 1 chunk +2 lines, -0 lines 0 comments Download
M runtime/vm/aot_optimizer.cc View 1 2 3 4 1 chunk +22 lines, -0 lines 0 comments Download
M runtime/vm/assembler_arm.h View 1 2 1 chunk +5 lines, -0 lines 0 comments Download
M runtime/vm/assembler_arm64.h View 1 2 1 chunk +5 lines, -0 lines 0 comments Download
M runtime/vm/assembler_ia32.h View 1 2 1 chunk +5 lines, -0 lines 0 comments Download
M runtime/vm/assembler_mips.h View 1 2 1 chunk +5 lines, -0 lines 0 comments Download
M runtime/vm/assembler_x64.h View 1 2 1 chunk +5 lines, -0 lines 0 comments Download
M runtime/vm/code_generator.cc View 1 2 3 4 1 chunk +29 lines, -0 lines 0 comments Download
M runtime/vm/constant_propagator.cc View 1 chunk +4 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_compiler.h View 1 2 3 4 1 chunk +0 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_inliner.cc View 3 chunks +0 lines, -27 lines 0 comments Download
M runtime/vm/flow_graph_type_propagator.h View 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/flow_graph_type_propagator.cc View 1 chunk +7 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language.h View 2 chunks +30 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 1 2 3 4 5 chunks +68 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language_arm64.cc View 1 2 3 4 4 chunks +69 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language_dbc.cc View 1 2 3 4 5 2 chunks +9 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 1 2 4 chunks +25 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 1 2 3 4 5 chunks +66 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 1 2 3 4 5 chunks +68 lines, -2 lines 0 comments Download
M runtime/vm/intrinsifier.cc View 1 chunk +0 lines, -6 lines 0 comments Download
M runtime/vm/precompiler.cc View 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/runtime_entry_list.h View 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 13 (5 generated)
Florian Schneider
4 years, 5 months ago (2016-07-13 23:53:20 UTC) #2
Vyacheslav Egorov (Google)
lgtm https://codereview.chromium.org/2149023002/diff/20001/runtime/vm/code_generator.cc File runtime/vm/code_generator.cc (right): https://codereview.chromium.org/2149023002/diff/20001/runtime/vm/code_generator.cc#newcode106 runtime/vm/code_generator.cc:106: // Throw: new ArgumentError.value(length, "length", "is not an ...
4 years, 5 months ago (2016-07-14 09:36:00 UTC) #3
Florian Schneider
Ptal. Also fixed ia32 where I forgot to change CheckArrayBoundInstr to include the smi-check. https://codereview.chromium.org/2149023002/diff/20001/runtime/vm/code_generator.cc ...
4 years, 5 months ago (2016-07-14 17:05:22 UTC) #4
Vyacheslav Egorov (Google)
lgtm
4 years, 5 months ago (2016-07-14 17:23:56 UTC) #5
Florian Schneider
Committed patchset #4 (id:60001) manually as 4a5f651c4b2202013ab7c3db887fd95e2597e173 (presubmit successful).
4 years, 5 months ago (2016-07-14 17:48:55 UTC) #7
Florian Schneider
Ptal. Fixed debug assertion about slow-path exit label and duplicate safe points.
4 years, 5 months ago (2016-07-15 01:50:38 UTC) #9
rmacnak
lgtm
4 years, 5 months ago (2016-07-15 02:01:03 UTC) #10
Florian Schneider
4 years, 5 months ago (2016-07-15 17:07:47 UTC) #13
Message was sent while issue was closed.
Committed patchset #6 (id:100001) manually as
d3810213b0b185fc2fb9a6239f1f67fbb72e63b0 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698