[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 16:55:09 PST 2008


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.

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




More information about the llvm-commits mailing list