[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