[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

Bill Wendling isanbard at gmail.com
Thu Dec 11 21:02:44 PST 2008


Ah! I didn't see. I'll take a look.

-bw

On Dec 11, 2008, at 7:30 PM, "Eli Friedman" <eli.friedman at gmail.com>  
wrote:

> 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
> _______________________________________________
> 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