[LLVMdev] subtle issue with soft-float and new attribute scheme (possibly an issue with other attributes)

reed kotler rkotler at mips.com
Fri May 17 21:15:45 PDT 2013


On 05/17/2013 08:08 PM, Rafael EspĂ­ndola wrote:
> My understanding is that with the new attribute system we should
> deprecate and eventually remove the codegen command line options.
How is that possible?


> On 17 May 2013 06:04, reed kotler <rkotler at mips.com> wrote:
>> I can't say this is a bug it is changed behavior from before the new
>> attribute scheme.
>>
>> This issue may appear with other attributes. (there are other attributes
>> that clang will now place
>> on each function)
>>
>> If you run clang  as a single pass to create a .ll and don't say
>> -msoft-float, it puts the attribute use-soft-float=false on every function.
>> (It used to be that in that case -msoft-float had no effect because those
>> attributes where not preserved in the IL. )
>>
>> Then if you run llc and say -soft-float, what happens is that the code
>> generator will compile everything as soft-float, but the value of the
>> following will be false in XXXISelLowering
>> getTargetMachine().Options.UseSoftFloat
>>
>> When the constructor for XXXISelLowering is called, TM.Options.UseSoftFloat
>> will be true.
>>
>> What is interesting is that code for "make check" won't have any of the new
>> attributes there so
>> it will work as before.
>>
>> I was seeing this behavior and could not figure out how my tests could
>> possibly pass if getTargetMachine().Options.UseSoftFloat was returning the
>> wrong result.
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev





More information about the llvm-dev mailing list