[llvm-dev] Allowing virtual registers after register allocation
Krzysztof Parzyszek via llvm-dev
llvm-dev at lists.llvm.org
Thu Dec 10 09:47:02 PST 2015
On 12/10/2015 11:39 AM, Hal Finkel via llvm-dev wrote:
> But there is lots of code that assumes that it can iterate over all physical registers in some class. My thought had been that you don't want to introduce infinite physical register sets because this assumption of enumerability is broken (as is the assumption that the size does not dynamically change). Thoughts?
The post-RA code may not be free from assumptions that all virtual
registers are gone. For example, such code may not handle subregisters,
since PhysReg:Sub can always be collapsed to another physical register.
For virtual registers, there is no such guarantee.
I think it would be a lot clearer if we introduced infinite register
classes, with all the properties of physical registers (except those
obviously related to finiteness). Having virtual registers after RA
sounds like a huge hack.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
More information about the llvm-dev