On 2014-11-15 9:58 AM, H.J. Lu wrote:
On Fri, Nov 14, 2014 at 12:07 PM, Vladimir Makarov <vmaka...@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  <vmaka...@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).

Index: ChangeLog
===================================================================
--- ChangeLog   (revision 217608)
+++ ChangeLog   (working copy)
@@ -1,3 +1,7 @@
+2014-11-15  Vladimir Makarov  <vmaka...@redhat.com>
+
+       * lra.c (lra): Switch off rematerialization pass.
+
 2014-11-15  Marc Glisse  <marc.gli...@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);


Reply via email to