[llvm-commits] [llvm] r47122 - in /llvm/trunk: include/llvm/Target/TargetLowering.h lib/CodeGen/SelectionDAG/LegalizeDAG.cpp lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp lib/CodeGen/SelectionDAG/TargetLowering.cpp lib/Target/ARM/ARMISelLowering.cpp lib/Target/Alpha/AlphaISelLowering.cpp lib/Target/Alpha/AlphaISelLowering.h lib/Target/IA64/IA64ISelLowering.cpp lib/Target/IA64/IA64ISelLowering.h lib/Target/Sparc/SparcISelDAGToDAG.cpp lib/Target/X86/X86ISelLowering.cpp

Evan Cheng evan.cheng at apple.com
Thu Feb 14 15:37:24 PST 2008


On Feb 14, 2008, at 9:28 AM, Duncan Sands wrote:

> Author: baldrick
> Date: Thu Feb 14 11:28:50 2008
> New Revision: 47122
>
> URL: http://llvm.org/viewvc/llvm-project?rev=47122&view=rev
> Log:
> In TargetLowering::LowerCallTo, don't assert that
> the return value is zero-extended if it isn't
> sign-extended.  It may also be any-extended.
> Also, if a floating point value was returned
> in a larger floating point type, pass 1 as the
> second operand to FP_ROUND, which tells it
> that all the precision is in the original type.
> I think this is right but I could be wrong.

Yep.

>
> Finally, when doing libcalls, set isZExt on
> a parameter if it is "unsigned".  Currently
> isSExt is set when signed, and nothing is
> set otherwise.  This should be right for all
> calls to standard library routines.

I am not sure I totally understand the reason for this. Is it because  
these libcalls are implicitly defined?

Evan



More information about the llvm-commits mailing list