[llvm] r258729 - X86ISelLowering: Fix cmov(cmov) special lowering bug

Matthias Braun via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 26 11:32:12 PST 2016


Yes sounds reasonable, it's a low risk fix.

- Matthias

> On Jan 26, 2016, at 11:28 AM, Hans Wennborg via llvm-commits <llvm-commits at lists.llvm.org> wrote:
> 
> Should this be merged to 3.8?
> 
> On Mon, Jan 25, 2016 at 2:08 PM, Matthias Braun via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
>> Author: matze
>> Date: Mon Jan 25 16:08:25 2016
>> New Revision: 258729
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=258729&view=rev
>> Log:
>> X86ISelLowering: Fix cmov(cmov) special lowering bug
>> 
>> There's a special case in EmitLoweredSelect() that produces an improved
>> lowering for cmov(cmov) patterns. However this special lowering is
>> currently broken if the inner cmov has multiple users so this patch
>> stops using it in this case.
>> 
>> If you wonder why this wasn't fixed by continuing to use the special
>> lowering and inserting a 2nd PHI for the inner cmov: I believe this
>> would incur additional copies/register pressure so the special lowering
>> does not improve upon the normal one anymore in this case.
>> 
>> This fixes http://llvm.org/PR26256 (= rdar://24329747)
>> 
>> Modified:
>>    llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
>>    llvm/trunk/test/CodeGen/X86/cmovcmov.ll
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list