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

Issue 2809583002: Use off-heap data for type feedback in PolymorphicInstanceCallInstr (Closed)

Created:
3 years, 8 months ago by erikcorry
Modified:
3 years, 8 months ago
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Use off-heap data for type feedback in PolymorphicInstanceCallInstr We have been using IC data for receiver type info in the PolymorphicInstanceCallInstr. This is a data structure optimized for access from hand-coded assembly stubs, and placed on the GC-ed heap, which means it has to be accessed through handles. With this change we move it to the zone memory, which means it can be freed without an old-gen GC. As a side-effect the zone arrays use exponential growth for amortized constant space allocation instead of growing by 1 for quadratic allocation when we add classes, further reducing memory pressure. R=vegorov@google.com BUG=29302 Committed: https://github.com/dart-lang/sdk/commit/d315a53e21ee4f3c80e9854354b69eba2161da43

Patch Set 1 #

Total comments: 61

Patch Set 2 : Feedback from Slava #

Total comments: 20

Patch Set 3 : More feedback from Slava #

Unified diffs Side-by-side diffs Delta from patch set Stats (+840 lines, -892 lines) Patch
M runtime/vm/aot_optimizer.cc View 1 5 chunks +13 lines, -10 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/flow_graph_compiler.h View 1 2 6 chunks +38 lines, -31 lines 0 comments Download
M runtime/vm/flow_graph_compiler.cc View 1 2 4 chunks +188 lines, -72 lines 0 comments Download
M runtime/vm/flow_graph_compiler_arm.cc View 1 2 2 chunks +28 lines, -107 lines 0 comments Download
M runtime/vm/flow_graph_compiler_arm64.cc View 1 2 2 chunks +28 lines, -107 lines 0 comments Download
M runtime/vm/flow_graph_compiler_ia32.cc View 1 2 3 chunks +38 lines, -105 lines 0 comments Download
M runtime/vm/flow_graph_compiler_mips.cc View 1 2 2 chunks +40 lines, -108 lines 0 comments Download
M runtime/vm/flow_graph_compiler_x64.cc View 1 2 2 chunks +28 lines, -108 lines 0 comments Download
M runtime/vm/flow_graph_inliner.cc View 1 2 18 chunks +34 lines, -57 lines 0 comments Download
M runtime/vm/flow_graph_type_propagator.cc View 1 2 chunks +3 lines, -3 lines 0 comments Download
M runtime/vm/il_printer.h View 1 1 chunk +5 lines, -0 lines 0 comments Download
M runtime/vm/il_printer.cc View 1 3 chunks +47 lines, -5 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 2 4 chunks +74 lines, -9 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 1 2 7 chunks +201 lines, -24 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 1 2 chunks +10 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language_arm64.cc View 1 2 chunks +10 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language_dbc.cc View 1 2 3 chunks +13 lines, -28 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 1 2 chunks +10 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 1 2 chunks +10 lines, -2 lines 0 comments Download
M runtime/vm/jit_optimizer.h View 1 2 1 chunk +0 lines, -6 lines 0 comments Download
M runtime/vm/jit_optimizer.cc View 1 7 chunks +17 lines, -90 lines 0 comments Download
M runtime/vm/object.h View 1 chunk +0 lines, -1 line 0 comments Download
M runtime/vm/object.cc View 1 1 chunk +0 lines, -13 lines 0 comments Download

Messages

Total messages: 11 (3 generated)
erikcorry
3 years, 8 months ago (2017-04-10 08:44:55 UTC) #1
Vyacheslav Egorov (Google)
Some initial comments. https://codereview.chromium.org/2809583002/diff/1/runtime/vm/flow_graph_compiler.cc File runtime/vm/flow_graph_compiler.cc (right): https://codereview.chromium.org/2809583002/diff/1/runtime/vm/flow_graph_compiler.cc#newcode1654 runtime/vm/flow_graph_compiler.cc:1654: ZoneGrowableArray<CidRangeTarget>* sorted_arg, why did this suddenly ...
3 years, 8 months ago (2017-04-10 10:59:28 UTC) #2
erikcorry
https://codereview.chromium.org/2809583002/diff/1/runtime/vm/flow_graph_compiler.cc File runtime/vm/flow_graph_compiler.cc (right): https://codereview.chromium.org/2809583002/diff/1/runtime/vm/flow_graph_compiler.cc#newcode1654 runtime/vm/flow_graph_compiler.cc:1654: ZoneGrowableArray<CidRangeTarget>* sorted_arg, On 2017/04/10 10:59:27, Vyacheslav Egorov (Google) wrote: ...
3 years, 8 months ago (2017-04-19 15:06:41 UTC) #3
Cutch
What is the intention of this CL? Why is the CL description a single sentence ...
3 years, 8 months ago (2017-04-19 15:47:07 UTC) #4
erikcorry
Description updated.
3 years, 8 months ago (2017-04-20 08:02:28 UTC) #7
Vyacheslav Egorov (Google)
lgtm https://codereview.chromium.org/2809583002/diff/20001/runtime/vm/flow_graph_compiler.cc File runtime/vm/flow_graph_compiler.cc (right): https://codereview.chromium.org/2809583002/diff/20001/runtime/vm/flow_graph_compiler.cc#newcode1979 runtime/vm/flow_graph_compiler.cc:1979: EmitTestAndCallSmiBranch(failed, true); please add a comment what true/false ...
3 years, 8 months ago (2017-04-20 16:45:33 UTC) #8
erikcorry
https://codereview.chromium.org/2809583002/diff/20001/runtime/vm/flow_graph_compiler.cc File runtime/vm/flow_graph_compiler.cc (right): https://codereview.chromium.org/2809583002/diff/20001/runtime/vm/flow_graph_compiler.cc#newcode1979 runtime/vm/flow_graph_compiler.cc:1979: EmitTestAndCallSmiBranch(failed, true); On 2017/04/20 16:45:33, Vyacheslav Egorov (Google) wrote: ...
3 years, 8 months ago (2017-04-21 13:04:44 UTC) #9
erikcorry
3 years, 8 months ago (2017-04-24 09:15:36 UTC) #11
Message was sent while issue was closed.
Committed patchset #3 (id:40001) manually as
d315a53e21ee4f3c80e9854354b69eba2161da43.

Powered by Google App Engine
This is Rietveld 408576698