[LLVMdev] Disabling x87 instructions for a sub-target

Christoph Erhardt
Wed, 04 Apr 2012 21:03:23 -0000

Hi Sriram,

I'm not sure if I understand your question correctly: Do you need to
generate code that contains no x87 floating-point instructions
altogether, but uses calls into a soft-float library instead? That
behaviour can be enabled using the "-soft-float" flag, as far as I
know.

Or is it only about the fcomi* instructions, which are not supported by
pre-Pentium Pro chips? Then I have good news: I have been working on
getting this bug [1] fixed, and I'm planning to submit a patch within
the next few days (hopefully in time for the 3.1 release).

Best regards,
Christoph

[1] http://llvm.org/bugs/show_bug.cgi?id=6679

On 04/04/2012 21:45, Murali, Sriram wrote:
> Hello there,
>
> I recently started working on the LLVM backend for a target that doesn’t
> support x87 instructions.
>
> Currently, I am in the process of completely disabling some x87
> instructions such as fcomi, fcompi,… for a specific sub-target. I also
> do not have SSE enabled for my sub-target, and llvm resorts to fcomi*
> instructions for FP compare instructions.
>
>
>
> Is there a way to bypass the automatic optimization that generates the
> x87 instructions when SSE is disabled, and completely eliminate the code
> generation for the same(error out)?