[llvm-commits] [llvm] r60915 - in /llvm/trunk/lib: CodeGen/SelectionDAG/DAGCombiner.cpp Target/X86/X86ISelLowering.cpp Target/X86/X86ISelLowering.h Target/X86/X86Instr64bit.td Target/X86/X86InstrInfo.td

Eli Friedman eli.friedman at gmail.com
Thu Dec 11 19:30:56 PST 2008


On Thu, Dec 11, 2008 at 4:56 PM, Bill Wendling <isanbard at gmail.com> wrote:
> Author: void
> Date: Thu Dec 11 18:56:36 2008
> New Revision: 60915
>
> URL: http://llvm.org/viewvc/llvm-project?rev=60915&view=rev
> Log:
> Redo the arithmetic with overflow architecture. I was changing the semantics of
> ISD::ADD to emit an implicit EFLAGS. This was horribly broken. Instead, replace
> the intrinsic with an ISD::SADDO node. Then custom lower that into an
> X86ISD::ADD node with a associated SETCC that checks the correct condition code
> (overflow or carry). Then that gets lowered into the correct X86::ADDOvf
> instruction.
>
> Similar for SUB and MUL instructions.

Looks generally good...

In case you didn't notice it, though, PR3197 is a rather serious flaw
in the current implementation of overflow checking for unsigned
multiplication.

-Eli



More information about the llvm-commits mailing list