[llvm-dev] Reg units for unaddressable register parts?

Krzysztof Parzyszek via llvm-dev llvm-dev at lists.llvm.org
Wed Sep 28 13:13:18 PDT 2016

On 9/28/2016 2:59 PM, Quentin Colombet wrote:
> The cases where that it could make sense to use unaddressable register units are:
> 2. If we want to track precise liveness for physical registers
> #2 is not a problem IMO since most of our work with liveness happens on unallocated code.

This is what I'm working on (RDF). I generate a data-flow graph for 
physical registers, and I need to be able to accurately connect defs to 
Currently it has target-specific hooks to determine covering, and the 
only target hook for now is for Hexagon. The generic code is not very 
precise and using lane masks would
(1) simplify some parts of the code quite a bit,
(2) make it work better for other targets.

There are post-RA optimizations that this would enable, at least for 
Hexagon. We already have 1 specific consumer, aside from some simple 
copy propagation/dce, and there will likely be more.

So far it's been developed on Hexagon (and is under lib/Target/Hexagon). 
Vivek Pandya offered to do some work to make it available for all targets.


Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, 
hosted by The Linux Foundation

More information about the llvm-dev mailing list