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

Issue 2441463003: Rerun GVN if load elimination creates GVN candidates. (Closed)

Created:
4 years, 2 months ago by sra1
Modified:
3 years, 9 months ago
CC:
reviews_dartlang.org
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Rerun GVN if load elimination creates GVN candidates. This does not fire often but is occasionally useful. e.g t3 = t2._collection$_length; if (t3 === 0) timer = null; else { if (t3 === 0) H.throwExpression(new P.StateError("No such element")); timer = t2._collection$_first; } --> if (t2._collection$_length === 0) timer = null; else timer = t2._collection$_first; After load-elimination creates t3 = t2._collections$_length, t3 == 0 becomes a GVN candidate. Then the inner "x" in "if (x) ... else { if (x) ... }" is replaced by "false". The original code was something like "timer = t2.isEmpty ? null : t2.first". BUG= R=sigmund@google.com Committed: https://github.com/dart-lang/sdk/commit/d6e324f0565b54d500987262821069dde498b584

Patch Set 1 #

Patch Set 2 : dartfmt #

Unified diffs Side-by-side diffs Delta from patch set Stats (+18 lines, -2 lines) Patch
M pkg/compiler/lib/src/ssa/optimize.dart View 1 8 chunks +18 lines, -2 lines 0 comments Download

Messages

Total messages: 7 (4 generated)
sra1
3 years, 9 months ago (2017-03-22 07:43:14 UTC) #4
Siggi Cherem (dart-lang)
lgtm
3 years, 9 months ago (2017-03-22 16:20:10 UTC) #5
sra1
3 years, 9 months ago (2017-03-22 19:17:31 UTC) #7
Message was sent while issue was closed.
Committed patchset #2 (id:40001) manually as
d6e324f0565b54d500987262821069dde498b584 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698