Regression caused by the splitting of Ionbuilder

RESOLVED FIXED in Firefox 53

Status

()

defect
P1
normal
RESOLVED FIXED
3 years ago
3 years ago

People

(Reporter: h4writer, Assigned: h4writer)

Tracking

unspecified
mozilla53
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox53 fixed)

Details

Attachments

(1 attachment, 1 obsolete attachment)

Assignee

Description

3 years ago
No description provided.
Assignee

Updated

3 years ago
Blocks: 1310155
Assignee

Comment 2

3 years ago
Posted patch Disable optimization (obsolete) — Splinter Review
Disable this optimization I added during the ionbuilder split. It seems to introduce some regressions. I think it is related to adding a block in a bad place that interrupts the flow of the true branch. I'll open follow-up bug to try to enable it again.
Assignee: nobody → hv1989
Attachment #8817679 - Flags: review?(jdemooij)
Assignee

Comment 3

3 years ago
Posted patch PatchSplinter Review
Fix for this.
1) We didn't set the hit counts on the extra block added in visitTest to allow for optimizing the false branch. Which resulted in pruning not taking place. This was the bug I encountered when investigating.
2) Ditto for table switch
3) Improvement on branches where a second block was added on the false branch and make sure it gets added just before the false branch. Instead of just after the true branch.
Attachment #8817679 - Attachment is obsolete: true
Attachment #8817679 - Flags: review?(jdemooij)
Attachment #8817703 - Flags: review?(jdemooij)
Comment on attachment 8817703 [details] [diff] [review]
Patch

Review of attachment 8817703 [details] [diff] [review]:
-----------------------------------------------------------------

Good finds.

::: js/src/jit/IonBuilder.cpp
@@ +1513,5 @@
>      if (!setCurrentAndSpecializePhis(mblock))
>          return false;
>      graph().addBlock(mblock);
>  
> +

Nit: rm second blank line.
Attachment #8817703 - Flags: review?(jdemooij) → review+

Comment 5

3 years ago
Pushed by hv1989@gmail.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/b877875abb3a
IonMonkey - Add the hit count information on the extra false branch blocks, r=jandem
Assignee

Updated

3 years ago
Priority: -- → P1

Comment 6

3 years ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/b877875abb3a
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla53
Depends on: 1322932
this looks to have given is a perf boost on android perf tests:
== Change summary for alert #4567 (as of December 20 2016 21:47 UTC) ==

Improvements:

  3%  local-blank summary android-4-4-armv7-api15 opt      1287.25 -> 1253.89
  2%  remote-blank summary android-4-4-armv7-api15 opt     1307.07 -> 1277.98
  2%  local-blank summary android-4-4-armv7-api15 opt      1285.41 -> 1258.49

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=4567

I see wins in many of our other tests, that is just the alerts we have :)
You need to log in before you can comment on or make changes to this bug.