Remove false dependency on the destination of the popcnt instruction.
Needs RevisionPublic

Authored by fryguybob on May 5 2017, 10:10 AM.

Details

Reviewers
bgamari
austin
Summary

Some Intel processors appear to have a false dependency on the destination of the popcnt instruction. This could lead to poor performance. A simple way to prevent this is to clear the destination register immediately before the popcnt instruction. Currently I can't produce code from GHC where the source and destination registers are not the same (perhaps someone is interested in producing a test case that does). I'm putting this here in case anyone is interested in investigating further.

References:

fryguybob created this revision.May 5 2017, 10:10 AM
bgamari requested changes to this revision.May 18 2017, 10:42 PM

I've opened Trac #13725 to track this.

Bumping out of the review queue until someone picks this up.

This revision now requires changes to proceed.May 18 2017, 10:42 PM
bgamari edited the summary of this revision. (Show Details)Sep 25 2017, 4:57 PM
austin resigned from this revision.Nov 9 2017, 11:37 AM