[PATCH] D17032: [X86] Add a pass to change byte and word instructions to zero-extending versions.

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 10 15:14:23 PST 2016


spatel added a comment.

In http://reviews.llvm.org/D17032#349091, @kbsmith1 wrote:

> Eric - My expectation is this could be used both to get rid or partial stall code in other places, but I really don't know where those other places are at this time.  If you have suggestions for places to look at for that, I'd like to look into fixing them using this.


There are a few spots that I know of:

1. X86TargetLowering::EmitCmp() has the change introduced with http://reviews.llvm.org/rL195496 .
2. The ExecutionDepsFix pass uses getPartialRegUpdateClearance() and getUndefRegClearance() to insert xor insts ( https://llvm.org/bugs/show_bug.cgi?id=22024 ).
3. PerformTargetShuffleCombine() has a comment about movsd vs. blendpd.

There are probably other cases in X86ISelLowering. It would be good to consolidate those kinds of transforms in a machine pass. So it may be worth renaming this to something more general (FixupPartialRegStalls?) before checking it in just to save on some naming churn.


http://reviews.llvm.org/D17032





More information about the llvm-commits mailing list