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

Issue 11234002: Enable redundancy elimination for array loads. (Closed)

Created:
8 years, 2 months ago by Florian Schneider
Modified:
8 years, 2 months ago
Reviewers:
srdjan
CC:
reviews_dartlang.org, Cutch
Visibility:
Public.

Description

Enable redundancy elimination for array loads. This CL also adds a second round of CSE if necessary to make use of secondary effects for more optimization opportunities. Committed: https://code.google.com/p/dart/source/detail?r=13859

Patch Set 1 #

Total comments: 10

Patch Set 2 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+81 lines, -26 lines) Patch
M runtime/vm/compiler.cc View 1 1 chunk +6 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_optimizer.h View 1 1 chunk +4 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 11 chunks +31 lines, -23 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 chunk +4 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 1 chunk +7 lines, -0 lines 0 comments Download
A tests/language/optimize_redundant_array_load.dart View 1 chunk +29 lines, -0 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Florian Schneider
This CL addresses the problem of missed optimization opportunities with indexed loads on arrays.
8 years, 2 months ago (2012-10-19 12:53:05 UTC) #1
srdjan
LGTM https://codereview.chromium.org/11234002/diff/1/runtime/vm/compiler.cc File runtime/vm/compiler.cc (right): https://codereview.chromium.org/11234002/diff/1/runtime/vm/compiler.cc#newcode219 runtime/vm/compiler.cc:219: // Do another round of CSE to take ...
8 years, 2 months ago (2012-10-19 14:45:50 UTC) #2
Florian Schneider
8 years, 2 months ago (2012-10-22 10:31:55 UTC) #3
https://codereview.chromium.org/11234002/diff/1/runtime/vm/compiler.cc
File runtime/vm/compiler.cc (right):

https://codereview.chromium.org/11234002/diff/1/runtime/vm/compiler.cc#newcod...
runtime/vm/compiler.cc:219: // Do another round of CSE to take seconary effects
into account.
On 2012/10/19 14:45:50, srdjan wrote:
> Can you give a brief example of secondary effects we are talking about here?

Done.

https://codereview.chromium.org/11234002/diff/1/runtime/vm/compiler.cc#newcod...
runtime/vm/compiler.cc:219: // Do another round of CSE to take seconary effects
into account.
On 2012/10/19 14:45:50, srdjan wrote:
> s/seconary/secondary/

Done.

https://codereview.chromium.org/11234002/diff/1/runtime/vm/flow_graph_optimiz...
File runtime/vm/flow_graph_optimizer.cc (right):

https://codereview.chromium.org/11234002/diff/1/runtime/vm/flow_graph_optimiz...
runtime/vm/flow_graph_optimizer.cc:2647: changed = OptimizeLoads(child,
&child_defs, avail_in) || changed;
On 2012/10/19 14:45:50, srdjan wrote:
> Alternatives:
> 
> changed ||= OptimizeLoads...
> changed = changed || OptimizedLoads ...
> 
> your call.

I can't change the order in short-circuit || since OptimizedLoads won't be
evaluated when changed is already true.

https://codereview.chromium.org/11234002/diff/1/runtime/vm/flow_graph_optimiz...
runtime/vm/flow_graph_optimizer.cc:2678: changed =
OptimizeRecursive(graph->graph_entry(), &map) || changed;
On 2012/10/19 14:45:50, srdjan wrote:
> ditto

Done.

https://codereview.chromium.org/11234002/diff/1/runtime/vm/flow_graph_optimiz...
File runtime/vm/flow_graph_optimizer.h (right):

https://codereview.chromium.org/11234002/diff/1/runtime/vm/flow_graph_optimiz...
runtime/vm/flow_graph_optimizer.h:158: static bool Optimize(FlowGraph* graph);
On 2012/10/19 14:45:50, srdjan wrote:
> Describe in comment what result true/false means

Done.

Powered by Google App Engine
This is Rietveld 408576698