Regression caused by the splitting of Ionbuilder

RESOLVED FIXED in Firefox 53

Status

()

Core
JavaScript Engine: JIT
P1
normal
RESOLVED FIXED
a year ago
a year 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)

Comment hidden (empty)
(Assignee)

Updated

a year ago
Blocks: 1310155
(Assignee)

Comment 2

a year ago
Created attachment 8817679 [details] [diff] [review]
Disable optimization

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

a year ago
Created attachment 8817703 [details] [diff] [review]
Patch

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

a year 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

a year ago
Priority: -- → P1

Comment 6

a year ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/b877875abb3a
Status: NEW → RESOLVED
Last Resolved: a year ago
status-firefox53: --- → fixed
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.