Closed
Bug 1068960
Opened 11 years ago
Closed 11 years ago
GVN: protecting foldsTo from discarded dependencies pessimizes redundance elimination
Categories
(Core :: JavaScript Engine: JIT, enhancement)
Core
JavaScript Engine: JIT
Tracking
()
RESOLVED
FIXED
mozilla35
People
(Reporter: sunfish, Assigned: sunfish)
Details
Attachments
(1 file)
|
2.35 KB,
patch
|
nbp
:
review+
|
Details | Diff | Splinter Review |
As noted in bug 1029830 comment 34, bug 1029830 caused an AWFY regression on misc-bugs-608733-interpreter.js.
Bug 1049691 added a foldsTo method to fold loads when their dependency() is a dominating store.
This makes foldsTo depend on dependency() fields being in non-discarded blocks. To ensure this remains true as other patches in bug 1029830 enable GVN to discard blocks, bug 1029830 attachment 8476266 [details] [diff] [review] (gvn-clear-dependencies.patch) was added to clear problematic dependencies, protecting the foldsTo optimization.
However, this causes GVN to miss the opportunity to eliminate redundant loads when their dependencies happen to be in discarded blocks. For congruence checking, a dependence in a discarded block is not a problem.
The attached patch restores the dependence after the foldsTo call is done, before doing the redundancy check. It fixes the perf regression in misc-bugs-608733-interpreter.js. It admittedly looks a little silly clearing and restoring the dependency() field like this, but I'm open to suggestions for better ways to do this.
Attachment #8491079 -
Flags: review?(nicolas.b.pierron)
Updated•11 years ago
|
Attachment #8491079 -
Flags: review?(nicolas.b.pierron) → review+
| Assignee | ||
Comment 1•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla35
You need to log in
before you can comment on or make changes to this bug.
Description
•