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

Issue 395943003: Support allocation sinking for compound objects. (Closed)

Created:
6 years, 5 months ago by Vyacheslav Egorov (Google)
Modified:
6 years, 5 months ago
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Support allocation sinking for compound objects. - Improve escape/alias analysis: -- Storing an object into a field of another object does not mean that this object escapes (or has aliases) as long as that object does not have any loads from the same place; -- Places like X.f and Y.f don't alias if X and Y are two different allocation instructions even if X and Y themselves potentially have aliases; -- Improve precision of alias analysis for indexed properties; - Support dematerialization and rematerialization of objects that are referenced by other dematerialized objects. -- Use fix-point algorithm to collect candidates for allocation sinking; -- Support aborting unsuccessful allocation sinking. R=fschneider@google.com, johnmccutchan@google.com Committed: https://code.google.com/p/dart/source/detail?r=38404

Patch Set 1 #

Patch Set 2 : #

Total comments: 14

Patch Set 3 : address comments #

Total comments: 5

Patch Set 4 : #

Patch Set 5 : improve tests #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1413 lines, -687 lines) Patch
M runtime/vm/compiler.cc View 1 chunk +4 lines, -0 lines 0 comments Download
M runtime/vm/deferred_objects.h View 1 2 3 2 chunks +8 lines, -4 lines 0 comments Download
M runtime/vm/deferred_objects.cc View 3 chunks +17 lines, -5 lines 0 comments Download
M runtime/vm/deopt_instructions.h View 2 chunks +13 lines, -14 lines 0 comments Download
M runtime/vm/deopt_instructions.cc View 3 chunks +15 lines, -10 lines 0 comments Download
M runtime/vm/flow_graph.cc View 1 chunk +3 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_allocator.cc View 5 chunks +27 lines, -8 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.h View 1 2 2 chunks +46 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 1 2 33 chunks +888 lines, -581 lines 0 comments Download
M runtime/vm/il_printer.cc View 1 chunk +4 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 2 3 9 chunks +71 lines, -14 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 2 chunks +9 lines, -5 lines 0 comments Download
M tests/language/vm/allocation_sinking_vm_test.dart View 1 2 2 chunks +109 lines, -0 lines 0 comments Download
M tests/language/vm/load_to_load_forwarding_vm_test.dart View 1 2 3 4 3 chunks +199 lines, -45 lines 0 comments Download

Messages

Total messages: 8 (0 generated)
Vyacheslav Egorov (Google)
PTAL
6 years, 5 months ago (2014-07-16 12:24:02 UTC) #1
Florian Schneider
LGTM with test coverage added with objects pointing to each other (A->B->C, A->B->A, A->B->C->A) https://codereview.chromium.org/395943003/diff/20001/runtime/vm/flow_graph_optimizer.cc ...
6 years, 5 months ago (2014-07-16 15:02:03 UTC) #2
Vyacheslav Egorov (Google)
PTAL I addressed comments and added more tests. John & Srdjan, could you take a ...
6 years, 5 months ago (2014-07-17 17:03:48 UTC) #3
srdjan
https://codereview.chromium.org/395943003/diff/20001/runtime/vm/compiler.cc File runtime/vm/compiler.cc (right): https://codereview.chromium.org/395943003/diff/20001/runtime/vm/compiler.cc#newcode483 runtime/vm/compiler.cc:483: optimizer.Canonicalize(); Why another canonicalization? https://codereview.chromium.org/395943003/diff/40001/runtime/vm/deferred_objects.h File runtime/vm/deferred_objects.h (right): https://codereview.chromium.org/395943003/diff/40001/runtime/vm/deferred_objects.h#newcode175 ...
6 years, 5 months ago (2014-07-17 23:08:15 UTC) #4
Vyacheslav Egorov (Google)
Addressed Srdjan's comments. https://codereview.chromium.org/395943003/diff/20001/runtime/vm/compiler.cc File runtime/vm/compiler.cc (right): https://codereview.chromium.org/395943003/diff/20001/runtime/vm/compiler.cc#newcode483 runtime/vm/compiler.cc:483: optimizer.Canonicalize(); On 2014/07/17 23:08:14, srdjan wrote: ...
6 years, 5 months ago (2014-07-18 11:25:08 UTC) #5
Vyacheslav Egorov (Google)
I also improved tests/language/vm/load_to_load_forwarding_vm_test.dart by generating test cases automatically to have it cover interesting combinations.
6 years, 5 months ago (2014-07-18 13:21:47 UTC) #6
Cutch
lgtm
6 years, 5 months ago (2014-07-18 18:10:33 UTC) #7
Vyacheslav Egorov (Google)
6 years, 5 months ago (2014-07-18 18:35:24 UTC) #8
Message was sent while issue was closed.
Committed patchset #5 manually as r38404 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698