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

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 26 11:28:33 PST 2016


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


More information about the llvm-commits mailing list