[MIPS] Avoiding FP operations/register usage
Matthew Fortune
Matthew.Fortune@imgtec.com
Tue Feb 11 10:03:00 GMT 2014
> Matthew Fortune <Matthew.Fortune@imgtec.com> writes:
> > I'm still interested in how successfully the MIPS backend is managing
> > to avoid floating point but I am also convinced there are bugs in
> > ld.so entry points for MIPS.
>
> It uses the standard mechanism to avoid it, which is marking uses of FP
> registers for integer moves, loads and stores with "*". This tells the register
> allocator to ignore those alternatives. AFAIK it is effective and I think any
> cases where it doesn't work would be fair bug reports.
I understand that '*' has no effect on whether reload/LRA will use the alternative though so I take that to mean they could still allocate FP regs as part of an integer move?
> It becomes a lot more difficult to define with things like the Loongson
> extensions though, since some of those are also useful as scalar integer
> operations. And of course the same goes for MSA.
Indeed.
Avoiding FP registers 99.9% of time is fine for performance, it's the potential 0.1% I'm concerned about for correctness. I'm tending towards accounting for potential FPU usage even from integer only source just to be safe. I don't want to ever be the one debugging something like ld.so in the face of this kind of bug.
I'll move the discussion to glibc regarding ld.so.
Regards,
Matthew
More information about the Gcc
mailing list