[PATCH] [AArch64] enable rematerialization of float 0 values
t.p.northover at gmail.com
Thu Mar 19 17:08:57 PDT 2015
> 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.
More information about the llvm-commits