[llvm-commits] [llvm] r139854 - /llvm/trunk/lib/Target/X86/X86InstrInfo.cpp

Jakob Stoklund Olesen stoklund at 2pi.dk
Thu Sep 15 16:39:53 PDT 2011


On Sep 15, 2011, at 3:58 PM, Bruno Cardoso Lopes wrote:

> Hi Chris,
> 
> On Thu, Sep 15, 2011 at 3:55 PM, Chris Lattner <clattner at apple.com> wrote:
>> 
>> On Sep 15, 2011, at 2:42 PM, Bruno Cardoso Lopes wrote:
>> 
>>> Author: bruno
>>> Date: Thu Sep 15 16:42:23 2011
>>> New Revision: 139854
>>> 
>>> URL: http://llvm.org/viewvc/llvm-project?rev=139854&view=rev
>>> Log:
>>> Factor out partial register update checks for some SSE instructions.
>>> Also add the AVX versions and add comments!
>> 
>> Hi Bruno,
>> 
>> I know it isn't your fault, but could hasPartialRegUpdate become a "TSFlag" bit so it can be in the .td files instead of .cpp code?
> 
> I was just talking about that with Jakob, already in my TODO. I'll add
> FIXME there anyways! :)

I just realized: These are the SSE instructions that read a single value and write a partial register.  All the other *SS and *SD instructions read two values, and they are in two-address form.  That means the false dependency on the high bits in the destination register is already satisfied as a real dependency on the tied operand.

Bruno, if you find other SSE instructions that read a single register and write a partial register, they should probably get the TSFlag bit too. I think MOVSSrr/MOVSDrr are the only ones missing.

/jakob




More information about the llvm-commits mailing list