This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: patch switching on LRA remat


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



-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]