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

Issue 223403003: Use closure tracer to identify closures that are not passed to Function.apply (Closed)

Created:
6 years, 8 months ago by herhut
Modified:
6 years, 7 months ago
CC:
reviews_dartlang.org, floitsch, ngeoffray, Johnni Winther
Visibility:
Public.

Description

Extend closure tracer to also trace dynamic tear offs and use the result to identify closures that might be passed to Function.apply BUG= R=floitsch@google.com Committed: https://code.google.com/p/dart/source/detail?r=35057 Reverted: https://code.google.com/p/dart/source/detail?r=35062 Committed: https://code.google.com/p/dart/source/detail?r=35518

Patch Set 1 #

Total comments: 4

Patch Set 2 : Moved migthBePassedToFunctionApply to world #

Patch Set 3 : Fix regression in emitted meta data #

Total comments: 22

Patch Set 4 : addressed comments #

Patch Set 5 : fix handling of constants #

Total comments: 1

Patch Set 6 : added test #

Patch Set 7 : better test #

Patch Set 8 : rebase #

Patch Set 9 : fixed issue with failing test #

Unified diffs Side-by-side diffs Delta from patch set Stats (+243 lines, -82 lines) Patch
M sdk/lib/_internal/compiler/implementation/closure.dart View 5 6 7 3 chunks +6 lines, -5 lines 0 comments Download
M sdk/lib/_internal/compiler/implementation/dart2jslib.dart View 1 2 3 4 5 6 7 1 chunk +2 lines, -1 line 0 comments Download
M sdk/lib/_internal/compiler/implementation/elements/modelx.dart View 1 2 3 4 5 6 7 2 chunks +13 lines, -8 lines 0 comments Download
M sdk/lib/_internal/compiler/implementation/inferrer/closure_tracer.dart View 1 2 3 4 5 6 7 3 chunks +50 lines, -26 lines 0 comments Download
M sdk/lib/_internal/compiler/implementation/inferrer/list_tracer.dart View 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M sdk/lib/_internal/compiler/implementation/inferrer/map_tracer.dart View 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M sdk/lib/_internal/compiler/implementation/inferrer/node_tracer.dart View 1 2 3 4 5 6 7 3 chunks +8 lines, -3 lines 0 comments Download
M sdk/lib/_internal/compiler/implementation/inferrer/type_graph_inferrer.dart View 1 2 3 4 5 6 7 8 8 chunks +59 lines, -16 lines 0 comments Download
M sdk/lib/_internal/compiler/implementation/inferrer/type_graph_nodes.dart View 1 2 3 4 5 6 7 11 chunks +33 lines, -16 lines 0 comments Download
M sdk/lib/_internal/compiler/implementation/js_emitter/container_builder.dart View 1 2 3 4 5 6 7 2 chunks +6 lines, -5 lines 0 comments Download
M sdk/lib/_internal/compiler/implementation/world.dart View 1 2 3 4 5 6 7 2 chunks +20 lines, -0 lines 0 comments Download
A tests/compiler/dart2js/map_tracer_const_test.dart View 1 2 3 4 5 6 1 chunk +43 lines, -0 lines 0 comments Download
M tests/compiler/dart2js/mock_compiler.dart View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 13 (0 generated)
herhut
This unfortunately turned into a larger Cl than originally intended. Johnni, as we discussed this, ...
6 years, 8 months ago (2014-04-03 08:31:04 UTC) #1
karlklose
https://codereview.chromium.org/223403003/diff/1/sdk/lib/_internal/compiler/implementation/elements/elements.dart File sdk/lib/_internal/compiler/implementation/elements/elements.dart (right): https://codereview.chromium.org/223403003/diff/1/sdk/lib/_internal/compiler/implementation/elements/elements.dart#newcode833 sdk/lib/_internal/compiler/implementation/elements/elements.dart:833: void set mightBePassedToFunctionApply(bool value); Please add these to the ...
6 years, 8 months ago (2014-04-03 08:37:28 UTC) #2
ngeoffray
https://codereview.chromium.org/223403003/diff/1/sdk/lib/_internal/compiler/implementation/elements/elements.dart File sdk/lib/_internal/compiler/implementation/elements/elements.dart (right): https://codereview.chromium.org/223403003/diff/1/sdk/lib/_internal/compiler/implementation/elements/elements.dart#newcode833 sdk/lib/_internal/compiler/implementation/elements/elements.dart:833: void set mightBePassedToFunctionApply(bool value); On 2014/04/03 08:37:28, karlklose wrote: ...
6 years, 8 months ago (2014-04-03 08:49:36 UTC) #3
herhut
On 2014/04/03 08:49:36, ngeoffray wrote: > https://codereview.chromium.org/223403003/diff/1/sdk/lib/_internal/compiler/implementation/elements/elements.dart > File sdk/lib/_internal/compiler/implementation/elements/elements.dart (right): > > https://codereview.chromium.org/223403003/diff/1/sdk/lib/_internal/compiler/implementation/elements/elements.dart#newcode833 > ...
6 years, 8 months ago (2014-04-03 09:16:01 UTC) #4
herhut
https://codereview.chromium.org/223403003/diff/1/sdk/lib/_internal/compiler/implementation/elements/elements.dart File sdk/lib/_internal/compiler/implementation/elements/elements.dart (right): https://codereview.chromium.org/223403003/diff/1/sdk/lib/_internal/compiler/implementation/elements/elements.dart#newcode833 sdk/lib/_internal/compiler/implementation/elements/elements.dart:833: void set mightBePassedToFunctionApply(bool value); On 2014/04/03 08:37:28, karlklose wrote: ...
6 years, 8 months ago (2014-04-14 08:21:46 UTC) #5
floitsch
LGTM with comments. https://codereview.chromium.org/223403003/diff/50001/sdk/lib/_internal/compiler/implementation/inferrer/closure_tracer.dart File sdk/lib/_internal/compiler/implementation/inferrer/closure_tracer.dart (right): https://codereview.chromium.org/223403003/diff/50001/sdk/lib/_internal/compiler/implementation/inferrer/closure_tracer.dart#newcode14 sdk/lib/_internal/compiler/implementation/inferrer/closure_tracer.dart:14: tracedElements.forEach((FunctionElement e) { minor nit: I ...
6 years, 8 months ago (2014-04-14 15:39:37 UTC) #6
herhut
https://codereview.chromium.org/223403003/diff/50001/sdk/lib/_internal/compiler/implementation/inferrer/closure_tracer.dart File sdk/lib/_internal/compiler/implementation/inferrer/closure_tracer.dart (right): https://codereview.chromium.org/223403003/diff/50001/sdk/lib/_internal/compiler/implementation/inferrer/closure_tracer.dart#newcode14 sdk/lib/_internal/compiler/implementation/inferrer/closure_tracer.dart:14: tracedElements.forEach((FunctionElement e) { On 2014/04/14 15:39:37, floitsch wrote: > ...
6 years, 8 months ago (2014-04-15 10:50:39 UTC) #7
herhut
Committed patchset #4 manually as r35057 (presubmit successful).
6 years, 8 months ago (2014-04-15 11:00:47 UTC) #8
herhut
Note that the changes to the MapTypeInformation is noise due to a rebase and not ...
6 years, 8 months ago (2014-04-22 11:06:17 UTC) #9
floitsch
LGTM. add minimal tests. https://codereview.chromium.org/223403003/diff/170001/sdk/lib/_internal/compiler/implementation/inferrer/type_graph_inferrer.dart File sdk/lib/_internal/compiler/implementation/inferrer/type_graph_inferrer.dart (right): https://codereview.chromium.org/223403003/diff/170001/sdk/lib/_internal/compiler/implementation/inferrer/type_graph_inferrer.dart#newcode687 sdk/lib/_internal/compiler/implementation/inferrer/type_graph_inferrer.dart:687: type = new NarrowTypeInformation(type, add ...
6 years, 8 months ago (2014-04-22 12:32:20 UTC) #10
herhut
PTAL. Only changes are in patchset 9.
6 years, 8 months ago (2014-04-23 09:32:46 UTC) #11
floitsch
LGTM. add test for other change.
6 years, 8 months ago (2014-04-23 17:34:56 UTC) #12
herhut
6 years, 7 months ago (2014-04-29 09:46:27 UTC) #13
Message was sent while issue was closed.
Committed patchset #9 manually as r35518 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698