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

Rafael EspĂ­ndola rafael.espindola at gmail.com
Fri May 17 20:08:51 PDT 2013


My understanding is that with the new attribute system we should
deprecate and eventually remove the codegen command line options.

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