[llvm] r228135 - [x86] Give movss and movsd execution domains in the x86 backend.
chandlerc at gmail.com
Wed Feb 4 03:27:20 PST 2015
On Wed, Feb 4, 2015 at 2:58 AM, Chandler Carruth <chandlerc at gmail.com>
> Author: chandlerc
> Date: Wed Feb 4 04:58:53 2015
> New Revision: 228135
> URL: http://llvm.org/viewvc/llvm-project?rev=228135&view=rev
> [x86] Give movss and movsd execution domains in the x86 backend.
> This associates movss and movsd with the packed single and packed double
> execution domains (resp.). While this is largely cosmetic, as we now
> don't have weird ping-pong-ing between single and double precision, it
> is also useful because it avoids the domain fixing algorithm from seeing
> domain breaks that don't actually exist. It will also be much more
> important if we have an execution domain default other than packed
> single, as that would cause us to mix movss and movsd with integer
> vector code on a regular basis, a very bad mixture.
After writing this and looking at other patterns, I see elsewhere we use a
'let ExeDomain = ... in' clause handle this rather than threading it
through the multiclasses.
Which is the preferred approach? I'm happy to revert this and go the other
way. But I'd like to know which one is preferred, and why, or what criteria
I should use to choose between them....
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-commits