[PATCH] [AArch64] enable rematerialization of float 0 values

Tim Northover t.p.northover at gmail.com
Thu Mar 19 17:08:57 PDT 2015


Hi Geoff,

> On AArch64, float 0 values are currently being spilled/filled by the
> register allocator instead of being more cheaply rematerialized.

This looks dodgy to me. It's marking every single UnscaledConversion
as rematerializable (e.g. "fmov WS0, W0"), but it's only actually OK
if the source register is wzr or xzr.

If that's safe (i.e. the rest of the pipeline can infer safety
anyway), it would seem there's no need for the flag at all. So I think
we need at least more justification of why it is OK.

Also, there are no tests here.

Cheers.

Tim.



More information about the llvm-commits mailing list