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

Issue 10850023: When selecting an optimal position for SplitBetween(from, to) ensure: (Closed)

Created:
8 years, 4 months ago by Vyacheslav Egorov (Google)
Modified:
8 years, 4 months ago
Reviewers:
srdjan
CC:
reviews_dartlang.org
Visibility:
Public.

Description

When selecting an optimal position for SplitBetween(from, to) ensure: - that loop and block structure is taken into account; - that split sibling has proper interference with values incoming into instruction corresponding to the to position. R=srdjan@google.com BUG=4308 Committed: https://code.google.com/p/dart/source/detail?r=10208

Patch Set 1 #

Total comments: 7

Patch Set 2 : address Srdjan's comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+136 lines, -19 lines) Patch
M runtime/vm/flow_graph_allocator.h View 5 chunks +45 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_allocator.cc View 1 9 chunks +91 lines, -18 lines 0 comments Download

Messages

Total messages: 4 (0 generated)
Vyacheslav Egorov (Google)
8 years, 4 months ago (2012-08-02 17:58:54 UTC) #1
srdjan
LGTM https://chromiumcodereview.appspot.com/10850023/diff/1/runtime/vm/flow_graph_allocator.cc File runtime/vm/flow_graph_allocator.cc (right): https://chromiumcodereview.appspot.com/10850023/diff/1/runtime/vm/flow_graph_allocator.cc#newcode951 runtime/vm/flow_graph_allocator.cc:951: static bool IsNestedLoop(BlockInfo* outer, BlockInfo* inner) { Can ...
8 years, 4 months ago (2012-08-02 20:04:37 UTC) #2
Vyacheslav Egorov (Google)
Thanks for the review. Landing. https://chromiumcodereview.appspot.com/10850023/diff/1/runtime/vm/flow_graph_allocator.cc File runtime/vm/flow_graph_allocator.cc (right): https://chromiumcodereview.appspot.com/10850023/diff/1/runtime/vm/flow_graph_allocator.cc#newcode951 runtime/vm/flow_graph_allocator.cc:951: static bool IsNestedLoop(BlockInfo* outer, ...
8 years, 4 months ago (2012-08-03 06:29:00 UTC) #3
srdjan
8 years, 4 months ago (2012-08-03 21:40:49 UTC) #4
https://chromiumcodereview.appspot.com/10850023/diff/1/runtime/vm/flow_graph_...
File runtime/vm/flow_graph_allocator.cc (right):

https://chromiumcodereview.appspot.com/10850023/diff/1/runtime/vm/flow_graph_...
runtime/vm/flow_graph_allocator.cc:957: // Discover structural (reducible) loops
nesting structure.
On 2012/08/03 06:29:00, Vyacheslav Egorov (Google) wrote:
> On 2012/08/02 20:04:37, srdjan wrote:
> > Aren't all Dart generated loops reducible?
> 
> AFAIK you can generate an irreducible control flow with 
> 
> switch (a) {
>   case 1: break 2;
>   case 2: break 1;
> }
> 
> if it still compiles.

You cannot do this. The break goes only  to outer enclosing structure (loop,
switch, etc).

Powered by Google App Engine
This is Rietveld 408576698