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

Issue 9025012: New bugfix for phi eliminator: if a loop phi is used after its update, the load of the phi must n... (Closed)

Created:
9 years ago by ngeoffray
Modified:
8 years, 12 months ago
Reviewers:
floitsch, kasperl
CC:
reviews_dartlang.org
Visibility:
Public.

Description

New bugfix for phi eliminator: if a loop phi is used after its update, the load of the phi must not be generated at use site. Otherwise, the users would use the updated value, instead of the old value.

Patch Set 1 : '' #

Total comments: 2

Patch Set 2 : '' #

Patch Set 3 : '' #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+37 lines, -2 lines) Patch
M dart/frog/leg/ssa/phi_eliminator.dart View 1 2 1 chunk +37 lines, -1 line 1 comment Download
M dart/tests/language/language-leg.status View 1 1 chunk +0 lines, -1 line 0 comments Download

Messages

Total messages: 6 (0 generated)
ngeoffray
9 years ago (2011-12-22 15:03:06 UTC) #1
kasperl
LGTM with comment: http://codereview.chromium.org/9025012/diff/1001/dart/frog/leg/ssa/phi_eliminator.dart File dart/frog/leg/ssa/phi_eliminator.dart (right): http://codereview.chromium.org/9025012/diff/1001/dart/frog/leg/ssa/phi_eliminator.dart#newcode130 dart/frog/leg/ssa/phi_eliminator.dart:130: !isUsedAfterStores(stores[1], load)) { Is stores[1] guaranteed ...
9 years ago (2011-12-22 15:11:54 UTC) #2
ngeoffray
Thanks! http://codereview.chromium.org/9025012/diff/1001/dart/frog/leg/ssa/phi_eliminator.dart File dart/frog/leg/ssa/phi_eliminator.dart (right): http://codereview.chromium.org/9025012/diff/1001/dart/frog/leg/ssa/phi_eliminator.dart#newcode130 dart/frog/leg/ssa/phi_eliminator.dart:130: !isUsedAfterStores(stores[1], load)) { On 2011/12/22 15:11:54, kasperl wrote: ...
9 years ago (2011-12-22 15:15:10 UTC) #3
ngeoffray
PTAL, this new change keeps the current 'optimized' (read prettier code) version that we were ...
9 years ago (2011-12-22 15:58:57 UTC) #4
floitsch
FYI. http://codereview.chromium.org/9025012/diff/5003/dart/frog/leg/ssa/phi_eliminator.dart File dart/frog/leg/ssa/phi_eliminator.dart (right): http://codereview.chromium.org/9025012/diff/5003/dart/frog/leg/ssa/phi_eliminator.dart#newcode146 dart/frog/leg/ssa/phi_eliminator.dart:146: if (instruction.block.parentLoopHeader != update.block.parentLoopHeader) { What about nested ...
9 years ago (2011-12-22 16:30:56 UTC) #5
ngeoffray
8 years, 12 months ago (2011-12-27 08:51:03 UTC) #6
On 2011/12/22 16:30:56, floitsch wrote:
> FYI.
> 
>
http://codereview.chromium.org/9025012/diff/5003/dart/frog/leg/ssa/phi_elimin...
> File dart/frog/leg/ssa/phi_eliminator.dart (right):
> 
>
http://codereview.chromium.org/9025012/diff/5003/dart/frog/leg/ssa/phi_elimin...
> dart/frog/leg/ssa/phi_eliminator.dart:146: if
> (instruction.block.parentLoopHeader != update.block.parentLoopHeader) {
> What about nested loops? Then the parentLoopHeader is different, but the load
> would still be used inside the loop.

You are right. I am closing this CL for another CL that disables generate at use
site for loop phis.

Powered by Google App Engine
This is Rietveld 408576698