[llvm-commits] [llvm] r59760 - in /llvm/trunk: include/llvm/CodeGen/SelectionDAGNodes.h lib/CodeGen/SelectionDAG/SelectionDAG.cpp

Dan Gohman gohman at apple.com
Thu Nov 20 17:08:40 PST 2008


On Nov 20, 2008, at 4:38 PM, Bill Wendling wrote:

> On Thu, Nov 20, 2008 at 4:22 PM, Dan Gohman <gohman at apple.com> wrote:
>>
>> On Nov 20, 2008, at 4:11 PM, Bill Wendling wrote:
>>> +
>>> +    // Overflow-aware nodes for arithmetic operations. These nodes
>>> take two
>>> +    // operands: the normal lhs and rhs to the add. They produce
>>> two results:
>>> +    // the normal result of the add, and a flag indicating whether
>>> an overflow
>>> +    // occured. These nodes are generated from the llvm.
>>> [su]add.with.overflow
>>> +    // intrinsics. They are lowered by target-dependent code.
>>> +    SADDO, UADDO,
>>
>> Hi Bill,
>>
>> Is UADDO is equivalent to ADDC?
>>
> Hmm. It does appear to be similar. How is ADDC handled later on? I see
> that the DAG combiner does some reasoning about trivial cases, but how
> is it handled in the back ends?

In the x86 backend, ADDC is lowered to a single add instruction, with
the carry information carried by the flags register.

Dan




More information about the llvm-commits mailing list