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

Issue 10375048: Don't allow phi equivalences along back-edges. (Closed)

Created:
8 years, 7 months ago by Lasse Reichstein Nielsen
Modified:
8 years, 7 months ago
Reviewers:
ngeoffray
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Don't allow phi equivalences along back-edges. Avoids problem in http://code.google.com/p/dart/issues/detail?id=2913 by breaking equivalences that go around a loop. BUG=2913 Committed: https://code.google.com/p/dart/source/detail?r=7407

Patch Set 1 #

Patch Set 2 : Added test. Updated other tests. Simplified isPhiBefore. #

Total comments: 4

Patch Set 3 : Inline before-check #

Unified diffs Side-by-side diffs Delta from patch set Stats (+31 lines, -5 lines) Patch
M frog/tests/leg/ssa_phi_codegen_test.dart View 1 1 chunk +3 lines, -1 line 0 comments Download
M frog/tests/leg/type_inference_test.dart View 1 1 chunk +2 lines, -2 lines 0 comments Download
A frog/tests/leg_only/regression_2913_test.dart View 1 1 chunk +23 lines, -0 lines 0 comments Download
M lib/compiler/implementation/ssa/codegen_helpers.dart View 1 2 1 chunk +3 lines, -2 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Lasse Reichstein Nielsen
8 years, 7 months ago (2012-05-08 08:45:39 UTC) #1
ngeoffray
LGTM! https://chromiumcodereview.appspot.com/10375048/diff/3001/lib/compiler/implementation/ssa/codegen_helpers.dart File lib/compiler/implementation/ssa/codegen_helpers.dart (right): https://chromiumcodereview.appspot.com/10375048/diff/3001/lib/compiler/implementation/ssa/codegen_helpers.dart#newcode449 lib/compiler/implementation/ssa/codegen_helpers.dart:449: // A phi can never be used in ...
8 years, 7 months ago (2012-05-08 09:13:01 UTC) #2
Lasse Reichstein Nielsen
8 years, 7 months ago (2012-05-08 09:17:14 UTC) #3
https://chromiumcodereview.appspot.com/10375048/diff/3001/lib/compiler/implem...
File lib/compiler/implementation/ssa/codegen_helpers.dart (right):

https://chromiumcodereview.appspot.com/10375048/diff/3001/lib/compiler/implem...
lib/compiler/implementation/ssa/codegen_helpers.dart:449: // A phi can never be
used in another phi in the same block.
I'll just inline it all in the test that already tested that.

https://chromiumcodereview.appspot.com/10375048/diff/3001/lib/compiler/implem...
lib/compiler/implementation/ssa/codegen_helpers.dart:450: return phi1.block.id <
phi2.block.id;
Not sure it's necessary. If it's an invariant, it's probably already checked by
the validator, and if not, it should not be asserted.

Powered by Google App Engine
This is Rietveld 408576698