On 11/19/20 8:52 AM, Eric Botcazou wrote:
> Hi,
>
> there is a loophole in new string store merging support I added recently: it 
> does not check that the stores are consecutive, which is obviously required 
> if 
> you want to concatenate them...  Simple fix attached, the nice thing being 
> that it can fall back to the regular processing if any hole is detected in 
> the 
> series of stores, thanks to the handling of STRING_CST by native_encode_expr.
>
> Tested on x86-64/Linux, OK for the mainline?
>
>
> 2020-11-19  Eric Botcazou  <ebotca...@adacore.com>
>
>       * gimple-ssa-store-merging.c (struct merged_store_group): Add
>       new 'consecutive' field.
>       (merged_store_group): Set it to true.
>       (do_merge): Set it to false if the store is not consecutive and
>       set string_concatenation to false in this case.
>       (merge_into): Call do_merge on entry.
>       (merge_overlapping): Likewise.
>
>
> 2020-11-19  Eric Botcazou  <ebotca...@adacore.com>
>
>       * gnat.dg/opt90a.adb: New test.
>       * gnat.dg/opt90b.adb: Likewise.
>       * gnat.dg/opt90c.adb: Likewise.
>       * gnat.dg/opt90d.adb: Likewise.
>       * gnat.dg/opt90e.adb: Likewise.
>       * gnat.dg/opt90a_pkg.ads: New helper.
>       * gnat.dg/opt90b_pkg.ads: Likewise.
>       * gnat.dg/opt90c_pkg.ads: Likewise.
>       * gnat.dg/opt90d_pkg.ads: Likewise.
>       * gnat.dg/opt90e_pkg.ads: Likewise.
OK
jeff

Reply via email to