[llvm-commits] [llvm] r41967 - in /llvm/trunk: include/llvm/ADT/APInt.h include/llvm/ADT/FoldingSet.h include/llvm/Constants.h lib/CodeGen/SelectionDAG/LegalizeDAG.cpp lib/CodeGen/SelectionDAG/SelectionDAG.cpp lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp lib/Support/APInt.cpp lib/Support/FoldingSet.cpp lib/Target/CBackend/CBackend.cpp lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86RegisterInfo.cpp lib/Transforms/Scalar/InstructionCombining.cpp lib/VMCore/Constants.cpp
Chris Lattner
clattner at apple.com
Sun Sep 16 12:02:18 PDT 2007
On Sep 16, 2007, at 9:55 AM, Dale Johannesen wrote:
> On Sep 14, 2007, at 11:12 PM, Chris Lattner wrote:
>>> +ConstantFP *ConstantFP::getNegativeZero(const Type *Ty) {
>>> + APFloat apf = cast <ConstantFP>(Constant::getNullValue(Ty))-
>>>> getValueAPF();
>>> + apf.changeSign();
>>> + return ConstantFP::get(Ty, apf);
>>> +}
>>
>> This seems fairly expensive. Why not just start by creating an
>> APFloat of the appropriate zero type, changing its sign, then
>> returning it. Why start with a Constant?
>
> Because there's no easy way to make "an APFloat of the appropriate
> zero type", you need a switch like the one in getNullValue. This is
> cleaner. (It's true I'm getting tired of converting from MVT to Type
> to fpSemantics all over the place, maybe I'll do something about
> that...)
Ah, good point. I think that's a great problem to solve :). One
possibility: how about making APFloat use an MVT as its "fpsemantics"
enum?
-Chris
More information about the llvm-commits
mailing list