[llvm-commits] [llvm] r41775 - in /llvm/trunk: lib/Target/X86/X86InstrInfo.td lib/Target/X86/X86InstrSSE.td lib/Target/X86/X86InstrX86-64.td test/CodeGen/X86/zero-remat.ll

Evan Cheng evan.cheng at apple.com
Fri Sep 14 09:46:17 PDT 2007


On Sep 10, 2007, at 1:48 PM, Dan Gohman wrote:

>> Hi Dan,
>>
>> This is not safe because xor will clobber flags. It's a  
>> miscompilation
>> if the user of the rematerialized value is a conditional move (e.g.
>> cmovne).
>
> Thanks for spotting that!
>
>> The current fix is to X86RegisterInfo::reMaterialize() should
>> rematerialize it as a move instruction.
>
> Are you saying such a fix exists already, or that this is how a fix
> should work? If the latter, I'd prefer to just revert the change to
> the instructions that use xor so that they are not marked
> rematerializable for now (though the ones that use pxor/xorps/xorpd
> are ok).

s/current/correct :-) I've already implemented it though.

Why do you prefer to revert the change?

Evan


>
> Dan
>
> -- 
> Dan Gohman, Cray Inc.
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list