[llvm-commits] [llvm] r60042 - in /llvm/trunk: lib/Support/APFloat.cpp test/Transforms/IndVarsSimplify/2008-11-25-APFloatAssert.ll
Evan Cheng
evan.cheng at apple.com
Tue Nov 25 17:03:13 PST 2008
On Nov 25, 2008, at 4:55 PM, Evan Cheng wrote:
>
> On Nov 25, 2008, at 11:14 AM, Chris Lattner wrote:
>
>>
>> On Nov 25, 2008, at 11:00 AM, Evan Cheng wrote:
>>
>>> Author: evancheng
>>> Date: Tue Nov 25 13:00:29 2008
>>> New Revision: 60042
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=60042&view=rev
>>> Log:
>>> convertToSignExtendedInteger should return opInvalidOp instead of
>>> asserting if sematics of float does not allow arithmetics.
>>
>> Are you sure? This behavior was consistent with all the other
>> methods. Usually the client has to check to see if it is hacking on
>> ppc long double and not do the optimization in question.
>
> The client is calling convertToInteger(). How would it know it's not
> possible to convert ppc long double? Seems like only APFloat has this
> information.
Ok, I see checks for PPCDoubleDouble elsewhere. I'll fix.
Evan
>
>
> Evan
>
>>
>>
>> -Chris
>>
>>>
>>>
>>> Added:
>>> llvm/trunk/test/Transforms/IndVarsSimplify/2008-11-25-
>>> APFloatAssert.ll
>>> Modified:
>>> llvm/trunk/lib/Support/APFloat.cpp
>>>
>>> Modified: llvm/trunk/lib/Support/APFloat.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/APFloat.cpp?rev=60042&r1=60041&r2=60042&view=diff
>>>
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ====================================================================
>>> --- llvm/trunk/lib/Support/APFloat.cpp (original)
>>> +++ llvm/trunk/lib/Support/APFloat.cpp Tue Nov 25 13:00:29 2008
>>> @@ -117,6 +117,11 @@
>>> && "Compile-time arithmetic does not support these
>>> semantics");
>>> }
>>>
>>> + static inline bool
>>> + isArithmeticOk(const llvm::fltSemantics &semantics) {
>>> + return semantics.arithmeticOK;
>>> + }
>>> +
>>> /* Return the value of a decimal exponent of the form
>>> [+-]ddddddd.
>>>
>>> @@ -1787,7 +1792,8 @@
>>> const integerPart *src;
>>> unsigned int dstPartsCount, truncatedBits;
>>>
>>> - assertArithmeticOK(*semantics);
>>> + if (!isArithmeticOk(*semantics))
>>> + return opInvalidOp;
>>>
>>> *isExact = false;
>>>
>>>
>>> Added: llvm/trunk/test/Transforms/IndVarsSimplify/2008-11-25-
>>> APFloatAssert.ll
>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/IndVarsSimplify/2008-11-25-APFloatAssert.ll?rev=60042&view=auto
>>>
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ====================================================================
>>> --- llvm/trunk/test/Transforms/IndVarsSimplify/2008-11-25-
>>> APFloatAssert.ll (added)
>>> +++ llvm/trunk/test/Transforms/IndVarsSimplify/2008-11-25-
>>> APFloatAssert.ll Tue Nov 25 13:00:29 2008
>>> @@ -0,0 +1,11 @@
>>> +; RUN: llvm-as < %s | opt -indvars
>>> +
>>> +define void @t() nounwind {
>>> +entry:
>>> + br label %bb23.i91
>>> +
>>> +bb23.i91: ; preds = %bb23.i91, %entry
>>> + %result.0.i89 = phi ppc_fp128
>>> [ 0xM00000000000000000000000000000000, %entry ], [ %0,
>>> %bb23.i91 ] ; <ppc_fp128> [#uses=2]
>>> + %0 = mul ppc_fp128 %result.0.i89, %result.0.i89 ; <ppc_fp128>
>>> [#uses=1]
>>> + br label %bb23.i91
>>> +}
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> _______________________________________________
> 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