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 to fix PR65647


Hi,

The issue is also present in 4.9 branch as explained in:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65647

As 4.9 doesn't contains lra rematerialization passe, we only need to
stop updating lra_constraint_new_regno_start when inheritance is
switched off.

Bootstrapped and tested on x64_64 and cross built and tested on
AArch64, arm, armeb and i686. Ok for 4.9 ?

Cheers,
Yvan

2015-04-05  Yvan Roux  <yvan.roux@linaro.org>

        Backport from trunk r221867
        2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>

        PR target/65647
        * lra.c (lra): Stop updating lra_constraint_new_regno_start after
          switching off inheritance.

2015-04-05  Yvan Roux  <yvan.roux@linaro.org>

        Backport from trunk r221867
        2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>

        PR target/65647
        * gcc.target/arm/pr65647.c: New.
        * gcc.target/arm/pr65647-2.c: New.

On 4 April 2015 at 16:39, Vladimir Makarov <vmakarov@redhat.com> wrote:
>   The following patch fixes
>
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65647
>
>   This very complicated problem occurred in rare cases when chain of reloads
> involving at least two pseudos and insns were generated and one pseudo was
> spilled on later sub-passes after spilling sub-pass and this pattern
> happened to be repeated.
>
>   The patch was bootstrapped and tested on x86/x86-64, ppc64, and aarch64.
>
>   Committed as rev.221867.
>
> 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
>
>         PR target/65647
>         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
>         value checking.
>         (lra_rematerialization_iter): New.
>         * lra.c (lra): Initialize lra_rematerialization_iter.
>         Stop updating lra_constraint_new_regno_start after switching of
>         inheritance and rematerialization.
>         * lra-remat.c (lra_rematerialization_iter): New.
>         (lra_remat): Add printing pass iteration.  Do rematerialization
>         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
>
> 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
>
>         PR target/65647
>         * gcc.target/arm/pr65647.c: New.
>
>

Attachment: pr65647.diff
Description: Text document


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