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);