[llvm-commits] [llvm] r40792 - in /llvm/trunk/lib/Target: Alpha/AlphaTargetMachine.cpp IA64/IA64TargetMachine.cpp PowerPC/PPCSubtarget.h Sparc/SparcTargetMachine.cpp TargetData.cpp X86/X86TargetMachine.cpp

Dale Johannesen dalej at apple.com
Fri Aug 3 14:49:05 PDT 2007


On Aug 3, 2007, at 2:06 PM, Dan Gohman wrote:

>> --- llvm/trunk/lib/Target/X86/X86TargetMachine.cpp (original)
>> +++ llvm/trunk/lib/Target/X86/X86TargetMachine.cpp Fri Aug  3  
>> 15:20:50 2007
>> @@ -115,8 +115,8 @@
>>                                     bool is64Bit)
>>    : Subtarget(M, FS, is64Bit),
>>      DataLayout(Subtarget.is64Bit() ?
>> -               std::string("e-p:64:64-f64:32:64-i64:32:64") :
>> -               std::string("e-p:32:32-f64:32:64-i64:32:64")),
>> +               std::string("e-p:64:64-f64:32:64-i64:32:64- 
>> f80:128:128") :
>> +               std::string("e-p:32:32-f64:32:64-i64:32:64- 
>> f80:128:128")),
>
> sizeof(long double) on i686-pc-linux-gnu (32-bit) is 12, and  
> __alignof is 4.

Thanks, I'll make this OS-dependent as well.

>> +    PPC_FP128TyID,   ///<  5: 128 bit floating point type (two 64- 
>> bits)
>
> Is there a different name for this? PowerPC isn't the only platform  
> that
> uses (or could use) a double-double approach.

What other target does?  I've no objection to renaming if you have a  
more descriptive suggestion (with a relatively short name - 80  
columns you know.  Wonder how many LLVM hackers have ever seen a  
punched card....)

> Also, what LLVM instruction would be used for conversions between this
> type and the regular FP128 type?

I don't see a short-term need to support this; they don't exist  
simultaneously on any target AFAIK.  (Having this target dependency  
in the IR is unfortunate, IMO; if there were a single "long double"  
type you couldn't even ask that question.  But as long as the FEs are  
responsible for decimal->binary constant conversion we're stuck with  
it.)




More information about the llvm-commits mailing list