------- Comment #8 from hjl at lucon dot org 2007-10-06 16:16 ------- (In reply to comment #7) > Subject: Re: [4.3 Regression] Revision 128957 > miscompiles 481.wrf > > hjl at lucon dot org wrote: > > ------- Comment #5 from hjl at lucon dot org 2007-10-06 02:07 ------- > > Kenny, does your patch > > > > http://gcc.gnu.org/ml/gcc-patches/2007-10/msg00124.html > > > > handle cases where number of consecutive hard regs needed to hold some mode > > > 1 > > correctly? IA32 needs 2 hard registers to hold long long and your patch > > miscompiles the testcase in comment #4. > > > > > > > I will look into it. It should do this correctly. >
Can you take a look at while (regno < last) { if ((!TEST_HARD_REG_BIT (hard_regs_live, regno)) && (!TEST_HARD_REG_BIT (renumbers_live, regno)) && ! fixed_regs[regno]) { if (dump_file) fprintf (dump_file, " dying hard reg %d\n", regno); if (renumbering) SET_HARD_REG_BIT (renumbers_live, regno); else SET_HARD_REG_BIT (hard_regs_live, regno); added = true; } regno++; } in global_conflicts? Should it also check live_subregs before marking a hard register is dying? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33669