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

Issue 2799373002: Pass a second type argument vector to all type instantiation calls in the VM. (Closed)

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

Description

Pass a second type argument vector to all type instantiation calls in the VM. With generic methods, uninstantiated types will require 2 instantiators, one reflecting the class type arguments (as of today) and one reflecting the function type arguments (new). This is work in progress and the second instantiator is always null for now. R=asiva@google.com Committed: https://github.com/dart-lang/sdk/commit/d0a7bad1210b79a32d96c2d5954430da24bdd741

Patch Set 1 #

Total comments: 74

Patch Set 2 : addressed comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1467 lines, -886 lines) Patch
M runtime/lib/mirrors.cc View 1 3 chunks +13 lines, -4 lines 0 comments Download
M runtime/lib/object.cc View 1 4 chunks +17 lines, -11 lines 0 comments Download
M runtime/lib/object_patch.dart View 2 chunks +3 lines, -2 lines 0 comments Download
M runtime/vm/aot_optimizer.cc View 4 chunks +14 lines, -10 lines 0 comments Download
M runtime/vm/assembler_arm64.h View 1 1 chunk +6 lines, -6 lines 0 comments Download
M runtime/vm/assembler_arm64.cc View 1 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/bootstrap_natives.h View 1 chunk +2 lines, -2 lines 0 comments Download
M runtime/vm/class_finalizer.cc View 1 7 chunks +34 lines, -19 lines 0 comments Download
M runtime/vm/code_generator.cc View 15 chunks +97 lines, -44 lines 0 comments Download
M runtime/vm/constant_propagator.cc View 1 3 chunks +31 lines, -14 lines 0 comments Download
M runtime/vm/constants_dbc.h View 1 chunk +11 lines, -7 lines 0 comments Download
M runtime/vm/dart_api_impl.cc View 2 chunks +5 lines, -1 line 0 comments Download
M runtime/vm/debugger.cc View 1 chunk +2 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_builder.cc View 1 6 chunks +13 lines, -14 lines 0 comments Download
M runtime/vm/flow_graph_compiler.h View 1 chunk +9 lines, -7 lines 0 comments Download
M runtime/vm/flow_graph_compiler_arm.cc View 1 16 chunks +89 lines, -55 lines 0 comments Download
M runtime/vm/flow_graph_compiler_arm64.cc View 1 15 chunks +75 lines, -53 lines 0 comments Download
M runtime/vm/flow_graph_compiler_dbc.cc View 1 chunk +3 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph_compiler_ia32.cc View 1 15 chunks +66 lines, -33 lines 0 comments Download
M runtime/vm/flow_graph_compiler_mips.cc View 1 16 chunks +89 lines, -65 lines 0 comments Download
M runtime/vm/flow_graph_compiler_x64.cc View 1 16 chunks +68 lines, -35 lines 0 comments Download
M runtime/vm/flow_graph_inliner.cc View 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/intermediate_language.h View 10 chunks +12 lines, -8 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 2 chunks +24 lines, -15 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 1 6 chunks +58 lines, -36 lines 0 comments Download
M runtime/vm/intermediate_language_arm64.cc View 1 6 chunks +56 lines, -36 lines 0 comments Download
M runtime/vm/intermediate_language_dbc.cc View 1 5 chunks +10 lines, -7 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 1 6 chunks +52 lines, -33 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 1 6 chunks +64 lines, -44 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 1 6 chunks +51 lines, -34 lines 0 comments Download
M runtime/vm/jit_optimizer.cc View 1 4 chunks +14 lines, -10 lines 0 comments Download
M runtime/vm/kernel_to_il.h View 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/kernel_to_il.cc View 1 10 chunks +75 lines, -22 lines 0 comments Download
M runtime/vm/locations.h View 1 chunk +5 lines, -1 line 0 comments Download
M runtime/vm/object.h View 1 12 chunks +28 lines, -11 lines 0 comments Download
M runtime/vm/object.cc View 1 35 chunks +118 lines, -61 lines 0 comments Download
M runtime/vm/object_service.cc View 1 chunk +5 lines, -6 lines 0 comments Download
M runtime/vm/object_test.cc View 1 chunk +5 lines, -2 lines 0 comments Download
M runtime/vm/parser.cc View 5 chunks +16 lines, -9 lines 0 comments Download
M runtime/vm/simulator_dbc.cc View 1 7 chunks +58 lines, -37 lines 0 comments Download
M runtime/vm/stub_code.h View 2 chunks +2 lines, -1 line 0 comments Download
M runtime/vm/stub_code_arm.cc View 5 chunks +40 lines, -32 lines 0 comments Download
M runtime/vm/stub_code_arm64.cc View 5 chunks +46 lines, -38 lines 0 comments Download
M runtime/vm/stub_code_ia32.cc View 5 chunks +27 lines, -19 lines 0 comments Download
M runtime/vm/stub_code_mips.cc View 7 chunks +23 lines, -18 lines 0 comments Download
M runtime/vm/stub_code_x64.cc View 5 chunks +27 lines, -18 lines 0 comments Download

Messages

Total messages: 11 (3 generated)
regis
Apologies for the large size, but passing one more argument is touching a lot of ...
3 years, 8 months ago (2017-04-07 00:34:24 UTC) #2
zra
Do we really have to pass an extra argument for the case where we know ...
3 years, 8 months ago (2017-04-07 17:36:31 UTC) #3
regis
On 2017/04/07 17:36:31, zra wrote: > Do we really have to pass an extra argument ...
3 years, 8 months ago (2017-04-07 22:33:42 UTC) #4
siva
LGTM with some comments. https://codereview.chromium.org/2799373002/diff/1/runtime/lib/mirrors.cc File runtime/lib/mirrors.cc (right): https://codereview.chromium.org/2799373002/diff/1/runtime/lib/mirrors.cc#newcode776 runtime/lib/mirrors.cc:776: type.InstantiateFrom(instantiator_type_args, function_type_args, why not use ...
3 years, 8 months ago (2017-04-10 22:04:55 UTC) #5
regis
Thanks! https://codereview.chromium.org/2799373002/diff/1/runtime/lib/mirrors.cc File runtime/lib/mirrors.cc (right): https://codereview.chromium.org/2799373002/diff/1/runtime/lib/mirrors.cc#newcode776 runtime/lib/mirrors.cc:776: type.InstantiateFrom(instantiator_type_args, function_type_args, On 2017/04/10 22:04:55, siva wrote: > ...
3 years, 8 months ago (2017-04-11 04:23:09 UTC) #6
regis
Committed patchset #2 (id:20001) manually as d0a7bad1210b79a32d96c2d5954430da24bdd741 (presubmit successful).
3 years, 8 months ago (2017-04-11 04:25:41 UTC) #8
erikcorry
Was this expected to regress checked mode performance by 5-10%?
3 years, 7 months ago (2017-05-10 11:28:41 UTC) #10
regis
3 years, 7 months ago (2017-05-10 11:39:54 UTC) #11
Message was sent while issue was closed.
On 2017/05/10 11:28:41, erikcorry wrote:
> Was this expected to regress checked mode performance by 5-10%?

Nothing comes for free. The performance hit is actually not as bad as I
expected, since mostly artificial benchmarks like megamorphic and deltablue are
impacted in the range you mention.

We can always revisit and see if new optimizations are possible once generic
functions are fully functional, but we are not there yet.

Powered by Google App Engine
This is Rietveld 408576698