This is the mail archive of the
mailing list for the GCC project.
assigning hard regs to pseudo regs
- From: shmuel gutl <shmeelgutl at shmuelhome dot mine dot nu>
- To: gcc at gcc dot gnu dot org
- Date: Sun, 15 Jun 2014 16:06:45 +0300
- Subject: assigning hard regs to pseudo regs
- Authentication-results: sourceware.org; auth=none
For certain instructions, I am trying to do my own register assignments
before IRA runs. I call df_analyze to find all register references and
after my manipulations I call df_scan_blocks to reparse the insns.
A typical replacement that I want to handle is a register reference of
(subreg:REGQ (reg/v: TI 195 [x2] 4)
If I replace the entire subreg expression by genRTX the compilation
works but I lose the reference to X2 (plus I have to update every
reference to reg expressions referencing reg 195).
If I call SET_REGNO on the inner expression, it automatically updates
all of the comparable expressions, and register 195 only appears as
original reg in any insn. The insn dumps look correct to me. But reload
will complain that register 195 didn't get a hard register assignment.
What do I need to do to make reload happy?