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

Issue 2941643002: Check for a passed-in type argument vector in the prolog of generic functions. (Closed)

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

Description

Check for a passed-in type argument vector in the prolog of generic functions. Do this in unoptimized code only, when --reify-generic-functions is specified. This is still work in progress, and support in optimizer, in inliner, in DBC, in kernel to ir, and other areas, will follow. Many small fixes and added todos. R=rmacnak@google.com, vegorov@google.com Committed: https://github.com/dart-lang/sdk/commit/a62107cfaf8442a54ca7a87b096244cff992965f

Patch Set 1 #

Total comments: 17

Patch Set 2 : address review comments #

Patch Set 3 : Fix lookup in dart:_internal #

Total comments: 18

Patch Set 4 : address review comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+490 lines, -75 lines) Patch
M runtime/lib/function_patch.dart View 1 1 chunk +1 line, -0 lines 0 comments Download
M runtime/lib/internal_patch.dart View 1 1 chunk +6 lines, -0 lines 0 comments Download
M runtime/lib/object.cc View 1 2 3 1 chunk +31 lines, -0 lines 0 comments Download
M runtime/lib/object_patch.dart View 1 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/ast.h View 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/bootstrap_natives.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/compiler.cc View 1 2 3 1 chunk +4 lines, -2 lines 0 comments Download
M runtime/vm/dart_entry.h View 1 chunk +2 lines, -1 line 0 comments Download
M runtime/vm/dart_entry.cc View 1 2 3 5 chunks +18 lines, -9 lines 0 comments Download
M runtime/vm/flow_graph_builder.cc View 1 2 3 5 chunks +75 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph_compiler.cc View 3 chunks +6 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_compiler_arm.cc View 2 chunks +35 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_compiler_arm64.cc View 2 chunks +35 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_compiler_dbc.cc View 1 chunk +6 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_compiler_ia32.cc View 2 chunks +37 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_compiler_mips.cc View 2 chunks +35 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_compiler_x64.cc View 2 chunks +33 lines, -9 lines 0 comments Download
M runtime/vm/il_printer.cc View 7 chunks +24 lines, -9 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M runtime/vm/intrinsifier.cc View 1 2 3 1 chunk +2 lines, -0 lines 0 comments Download
M runtime/vm/kernel_to_il.h View 1 2 1 chunk +3 lines, -1 line 0 comments Download
M runtime/vm/kernel_to_il.cc View 1 2 3 chunks +17 lines, -5 lines 0 comments Download
M runtime/vm/native_arguments.h View 2 chunks +2 lines, -0 lines 0 comments Download
M runtime/vm/native_entry.h View 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/object.h View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
M runtime/vm/object.cc View 1 2 3 6 chunks +30 lines, -3 lines 0 comments Download
M runtime/vm/object_test.cc View 1 2 3 6 chunks +24 lines, -6 lines 0 comments Download
M runtime/vm/parser.cc View 1 2 3 5 chunks +32 lines, -9 lines 0 comments Download
M runtime/vm/runtime_entry.cc View 3 chunks +4 lines, -7 lines 0 comments Download
M runtime/vm/scopes.cc View 1 2 3 1 chunk +13 lines, -3 lines 0 comments Download
M runtime/vm/stub_code_arm.cc View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/stub_code_arm64.cc View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/stub_code_ia32.cc View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/stub_code_mips.cc View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/stub_code_x64.cc View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/symbols.h View 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 17 (2 generated)
regis
3 years, 6 months ago (2017-06-13 23:23:38 UTC) #2
rmacnak
Some superficial comments https://codereview.chromium.org/2941643002/diff/1/runtime/lib/function_patch.dart File runtime/lib/function_patch.dart (right): https://codereview.chromium.org/2941643002/diff/1/runtime/lib/function_patch.dart#newcode11 runtime/lib/function_patch.dart:11: static apply(Function function, List positionalArguments, Really ...
3 years, 6 months ago (2017-06-14 00:14:20 UTC) #3
regis
Thanks for the initial comments. I'll try to use a runtime call instead of a ...
3 years, 6 months ago (2017-06-14 21:02:05 UTC) #4
rmacnak
https://codereview.chromium.org/2941643002/diff/1/runtime/vm/native_entry.h File runtime/vm/native_entry.h (right): https://codereview.chromium.org/2941643002/diff/1/runtime/vm/native_entry.h#newcode56 runtime/vm/native_entry.h:56: ASSERT(retval->IsDartInstance() || retval->IsTypeArguments()); \ On 2017/06/14 21:02:04, regis wrote: ...
3 years, 6 months ago (2017-06-15 00:03:27 UTC) #5
Vyacheslav Egorov (Google)
https://codereview.chromium.org/2941643002/diff/1/runtime/lib/object_patch.dart File runtime/lib/object_patch.dart (right): https://codereview.chromium.org/2941643002/diff/1/runtime/lib/object_patch.dart#newcode63 runtime/lib/object_patch.dart:63: static _prependTypeArguments(functionTypeArguments, parentTypeArguments, len) Is it possible to put ...
3 years, 6 months ago (2017-06-15 14:05:44 UTC) #6
regis
Thanks for the comments so far. No updated version yet to look at. Stay tuned. ...
3 years, 6 months ago (2017-06-15 21:38:27 UTC) #7
regis
PTAL I think I addressed all your comments. Thanks, Regis
3 years, 6 months ago (2017-06-15 23:41:56 UTC) #8
regis
On 2017/06/15 23:41:56, regis wrote: > PTAL > > I think I addressed all your ...
3 years, 6 months ago (2017-06-16 00:43:11 UTC) #9
Vyacheslav Egorov (Google)
Hi Regis, I think internal_patch.dart should be the place to put it. I am not ...
3 years, 6 months ago (2017-06-16 11:16:54 UTC) #10
regis
On 2017/06/16 11:16:54, Vyacheslav Egorov (Google) wrote: > Hi Regis, > > I think internal_patch.dart ...
3 years, 6 months ago (2017-06-16 17:59:14 UTC) #11
regis
Friendly ping.
3 years, 6 months ago (2017-06-19 20:12:24 UTC) #12
Vyacheslav Egorov (Google)
lgtm maybe wait for one other reviewer - as this code is non trivial. https://codereview.chromium.org/2941643002/diff/40001/runtime/vm/compiler.cc ...
3 years, 6 months ago (2017-06-20 15:21:41 UTC) #13
rmacnak
lgtm https://codereview.chromium.org/2941643002/diff/40001/runtime/lib/object.cc File runtime/lib/object.cc (right): https://codereview.chromium.org/2941643002/diff/40001/runtime/lib/object.cc#newcode375 runtime/lib/object.cc:375: TypeArguments::Handle(zone, TypeArguments::New(len, Heap::kOld)); Maybe kNew? With repeated calls ...
3 years, 6 months ago (2017-06-20 17:20:46 UTC) #14
regis
Thank you both! I'll commit tomorrow. https://codereview.chromium.org/2941643002/diff/40001/runtime/lib/object.cc File runtime/lib/object.cc (right): https://codereview.chromium.org/2941643002/diff/40001/runtime/lib/object.cc#newcode375 runtime/lib/object.cc:375: TypeArguments::Handle(zone, TypeArguments::New(len, Heap::kOld)); ...
3 years, 6 months ago (2017-06-21 04:39:04 UTC) #15
regis
3 years, 6 months ago (2017-06-21 16:02:22 UTC) #17
Message was sent while issue was closed.
Committed patchset #4 (id:60001) manually as
a62107cfaf8442a54ca7a87b096244cff992965f (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698