Message ID | 54678860.7050807@redhat.com |
---|---|
State | New |
Headers | show |
On Sat, Nov 15, 2014 at 9:07 AM, Vladimir Makarov <vmakarov@redhat.com> wrote: > On 2014-11-15 9:58 AM, H.J. Lu wrote: >> >> On Fri, Nov 14, 2014 at 12:07 PM, Vladimir Makarov <vmakarov@redhat.com> >> wrote: >>> >>> The LRA rematerialization patch I've submitted about day ago broke >>> H.J.'s >>> 32-bit bootstrap. So I switched off the rematerialization right away. >>> The >>> set for bootstrapping used by H.J. was very useful. I've fixed several >>> existing and potential bugs. >>> >>> Here the patch fixing the bugs and switching on LRA remat back. The >>> patch >>> was bootstrapped on x86-64 and i686 (using H.J.'s options). >>> >>> Committed as rev. 217588. >>> >>> 2014-11-14 Vladimir Makarov <vmakarov@redhat.com> >>> >>> * lra-int.h (lra_create_live_ranges): Add parameter. >>> * lra-lives.c (temp_bitmap): Move higher. >>> (initiate_live_solver): Move temp_bitmap initialization into >>> lra_live_ranges_init. >>> (finish_live_solver): Move temp_bitmap clearing into >>> live_ranges_finish. >>> (process_bb_lives): Add parameter. Use it to control live info >>> update and dead insn elimination. Pass it to mark_regno_live >>> and >>> mark_regno_dead. >>> (lra_create_live_ranges): Add parameter. Pass it to >>> process_bb_lives. >>> (lra_live_ranges_init, lra_live_ranges_finish): See changes in >>> initiate_live_solver and finish_live_solver. >>> * lra-remat.c (do_remat): Process insn non-operand hard regs >>> too. >>> Use temp_bitmap to update avail_cands. >>> * lra.c (lra): Pass new parameter to lra_create_live_ranges. >>> Move >>> check with lra_need_for_spill_p after live range pass. Switch >>> on >>> rematerialization pass. >> >> >> Unfortunately, it failed to bootstrap ia32 GCC: >> >> https://gcc.gnu.org/ml/gcc-regression/2014-11/msg00392.html >> >> You can bootstrap ia32 GCC on Linux/x86-64: >> >> 1. Install ia32 binutils under /foo/bar. >> 2. Set PATH=/foo/bar:$PATH >> 3. Install 32-bit libraries used by GCC, glibc, mpfr, gmp, libmpc. ... >> 4. Configure GCC with >> > > Thanks, H.J. I see it's a different set of options as it was before. I > switched off remat. temporarily (rev. 217609). It also miscompiled SPEC CPU 2000 on both ia32 and x86-64: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63895
Index: ChangeLog =================================================================== --- ChangeLog (revision 217608) +++ ChangeLog (working copy) @@ -1,3 +1,7 @@ +2014-11-15 Vladimir Makarov <vmakarov@redhat.com> + + * lra.c (lra): Switch off rematerialization pass. + 2014-11-15 Marc Glisse <marc.glisse@inria.fr> * config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps, Index: lra.c =================================================================== --- lra.c (revision 217602) +++ lra.c (working copy) @@ -2354,7 +2354,7 @@ break; /* Now we know what pseudos should be spilled. Try to rematerialize them first. */ - if (lra_remat ()) + if (0&&lra_remat ()) { /* We need full live info -- see the comment above. */ lra_create_live_ranges (lra_reg_spill_p, true);