On Mar 7, 2007, at 11:22 PM, Evan Cheng wrote:

>
> On Mar 7, 2007, at 9:15 PM, Chris Lattner wrote:
>
>>> +          // Read-only data.
>>> +          bool isIntFPLiteral = Type->isInteger()  || Type- 
>>> >isFloatingPoint();
>>> +          if (C->ContainsRelocations() && Subtarget- 
>>> >isTargetDarwin() &&
>>> +              TM.getRelocationModel() != Reloc::Static)
>>
>> Please rearrange this to:
>> if (isdarwin && not static && containsrelocations)
>>
>> putting the expensive check last.
>>
>>> +            SwitchToDataSection("\t.const_data\n");
>>> +          else if (isIntFPLiteral && Size == 4 &&
>>> +                   TAI->getFourByteConstantSection())
>>> +            SwitchToDataSection(TAI->getFourByteConstantSection 
>>> (), I);
>>> +          else if (isIntFPLiteral && Size == 8 &&
>>> +                   TAI->getEightByteConstantSection())
>>> +            SwitchToDataSection(TAI->getEightByteConstantSection 
>>> (), I);
>>> +          else if (isIntFPLiteral && Size == 16 &&
>>> +                   TAI->getSixteenByteConstantSection())
>>> +            SwitchToDataSection(TAI- 
>>> >getSixteenByteConstantSection(), I);
>>
>> Do we really need to check isIntFPLiteral here?  Why can't  
>> something like {short,short} go in literal4 ?
>
> We don't. But ContainsRelocations has to be checked first. We can't  
> use FourByteConstantSection, etc. if the constant has relocations.

Ah, ok, so instead of "isIntFPLiteral", you really mean "!contains  
relocations"

-Chris
_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to