Minor issue with recent code to twiddle costs of pseudos with invariant equivalents
Jeff Law
law@redhat.com
Thu Jun 10 20:59:00 GMT 2010
Compile the attached with -O2 on x86-unknown-linux-gnu and review the
.ira dump for main()
starting the processing of deferred insns
ending the processing of deferred insns
df_analyze called
Building IRA IR
starting the processing of deferred insns
ending the processing of deferred insns
df_analyze called
init_insns for 59: (insn_list:REG_DEP_TRUE 5 (nil))
Reg 59 has equivalence, initial gains 4000
Pass 0 for finding pseudo/allocno costs
a0 (r59,l0) best NO_REGS, cover NO_REGS
a0(r59,l0) costs: AREG:0,0 DREG:0,0 CREG:0,0 BREG:0,0 SIREG:0,0
DIREG:-1000,-1000 AD_REGS:0,0 CLOBBERED_REGS:0,0 Q_REGS:0,0
NON_Q_REGS:0,0 LEGACY_REGS:0,0 GENERAL_REGS:0,0
SSE_FIRST_REG:26000,26000 SSE_REGS:26000,26000 MMX_REGS:26000,26000 MEM:7000
Pass 1 for finding pseudo/allocno costs
r59: preferred NO_REGS, alternative NO_REGS, cover NO_REGS
a0(r59,l0) costs: AREG:8000,8000 DREG:8000,8000 CREG:8000,8000
BREG:8000,8000 SIREG:8000,8000 DIREG:3000,3000 AD_REGS:8000,8000
CLOBBERED_REGS:8000,8000 Q_REGS:8000,8000 NON_Q_REGS:8000,8000
LEGACY_REGS:8000,8000 GENERAL_REGS:8000,8000 SSE_FIRST_REG:34000,34000
SSE_REGS:34000,34000 MMX_REGS:34000,34000 MEM:15000
[ ... ]
Loop 0 (parent -1, header bb0, depth 0)
bbs: 2
all: 0r59
modified regnos: 59
border:
Pressure: GENERAL_REGS=4
Spill a0(r59,l0)
Disposition:
0:r59 l0 mem
Ultimately I think reload is cleaning this up, but it seems awful
strange to have a pseudo/allocno which clearly should be allocated to a
hard GPR preferring NO_REGS and from an allocation standpoint living in
memory.
Jeff
-------------- next part --------------
A non-text attachment was scrubbed...
Name: j.c
Type: text/x-csrc
Size: 26740 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc/attachments/20100610/fada8719/attachment.bin>
More information about the Gcc
mailing list