Patchwork [RFA,ARM/4.7] Backport Split all insns before pool placement

login
register
mail settings
Submitter Matthew Gretton-Dann
Date Oct. 17, 2012, 10:55 a.m.
Message ID <168827293.One0uaPfNY@e103209-lin>
Download mbox | patch
Permalink /patch/192013/
State New
Headers show

Comments

Matthew Gretton-Dann - Oct. 17, 2012, 10:55 a.m.
All,

Ulrich posted the following patch in July:
   http://gcc.gnu.org/ml/gcc-patches/2012-07/msg01123.html

Richard E requested that it be left in testing on trunk for a couple of days 
before being backported to 4.7.  Three months seems to satisfy the 'couple of 
days' requirement :-).

Is this OK to be backported to 4.7?  Cross tested arm-none-linux-gnueabi.

Thanks,

Matt

2012-10-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>

       Backported from mainline
       2012-07-23  Ulrich Weigand  <ulrich.weigand@linaro.org>

       * config/arm/arm.c (arm_reorg): Ensure all insns are split.
Richard Earnshaw - Oct. 17, 2012, 12:17 p.m.
On 17/10/12 11:55, Matthew Gretton-Dann wrote:
> All,
>
> Ulrich posted the following patch in July:
>     http://gcc.gnu.org/ml/gcc-patches/2012-07/msg01123.html
>
> Richard E requested that it be left in testing on trunk for a couple of days
> before being backported to 4.7.  Three months seems to satisfy the 'couple of
> days' requirement :-).
>
> Is this OK to be backported to 4.7?  Cross tested arm-none-linux-gnueabi.
>
> Thanks,
>
> Matt
>
> 2012-10-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
>
>         Backported from mainline
>         2012-07-23  Ulrich Weigand  <ulrich.weigand@linaro.org>
>
>         * config/arm/arm.c (arm_reorg): Ensure all insns are split.
>

OK.

R.

>
> 20121017-split-insns-noflow.txt
>
>
> diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
> index 35b73c5..3796a80 100644
> --- a/gcc/config/arm/arm.c
> +++ b/gcc/config/arm/arm.c
> @@ -13337,6 +13337,13 @@ arm_reorg (void)
>     if (TARGET_THUMB2)
>       thumb2_reorg ();
>
> +  /* Ensure all insns that must be split have been split at this point.
> +     Otherwise, the pool placement code below may compute incorrect
> +     insn lengths.  Note that when optimizing, all insns have already
> +     been split at this point.  */
> +  if (!optimize)
> +    split_all_insns_noflow ();
> +
>     minipool_fix_head = minipool_fix_tail = NULL;
>
>     /* The first insn must always be a note, or the code below won't
>

Patch

diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 35b73c5..3796a80 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -13337,6 +13337,13 @@  arm_reorg (void)
   if (TARGET_THUMB2)
     thumb2_reorg ();
 
+  /* Ensure all insns that must be split have been split at this point.
+     Otherwise, the pool placement code below may compute incorrect
+     insn lengths.  Note that when optimizing, all insns have already
+     been split at this point.  */
+  if (!optimize)
+    split_all_insns_noflow ();
+
   minipool_fix_head = minipool_fix_tail = NULL;
 
   /* The first insn must always be a note, or the code below won't