[llvm-dev] reg alloc hints
Jonas Paulsson via llvm-dev
llvm-dev at lists.llvm.org
Mon Aug 14 06:07:17 PDT 2017
Hi,
I am curious if it would be possible to use reg-alloc hints to improve
code generation for SystemZ. The background is that I ran into a
regression which seems to relate to code generation for conditional
register moves.
The SystemZ backend uses a GRX32 register class for a LOCRMux pseudo
instroction (Load On Condition of Register), in order to utilize all
32bit registers optimally. However, depending on the register assignment
this pseudo will become a single load-on-condition instruction only if
both source and dest registers are either low or high parts. Otherwise,
LOCRMux will expand to a compare/jump sequence, which is of course less
desirable. LOCR can only handle two low-parts, and LOCFHR can only
handle two high-parts (GRX32 is the union of these two reg classes).
In order to increase the number of LOCR/LOCFHRs generated, I would like
to tell regalloc something like "If src reg of an LOCRMux is high, try
to make dst reg high", and similarly for the case where one register is
in the low part.
I am not sure if it is possible to do anything about this in a simple
manner, and would appreciate any help.
Thanks,
Jonas
More information about the llvm-dev
mailing list