[PATCH] Fix MachineCopyPropagation with subregs

Jakob Stoklund Olesen stoklund at 2pi.dk
Tue Jan 21 12:45:26 PST 2014


On Jan 21, 2014, at 11:24 AM, Hal Finkel <hfinkel at anl.gov> wrote:

> Am I correct in thinking that the benefit comes on targets that have independently-usable subregisters (so that, for example, the scavenger might separately allocate both al and ah on x86)? Maybe ARM would notice if we always "upcasted" liveness to the largest super-register (since they have those register pairs, etc.).

I also think it is dangerous to be thinking in terms of ‘largest super-register’. Because of the way we model ARM NEON instructions that operate on multiple sequential vector registers, the largest super-register is not unique and super-registers can become very big. I think the largest ARM registers are 4x128 bits, or 1/4 of the NEON register bank.

I prefer to turn the abstractions upside down and look towards sub-registers instead. That is what the register units do. Register units don’t change when you add more super-registers by composing existing registers.

Thanks,
/jakob

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140121/15f69b8b/attachment.html>


More information about the llvm-commits mailing list