On Tue, Aug 25, 2026 at 12:20 AM Josef Melcr <[email protected]> wrote:
>
> On Tue Aug 25, 2026 at 1:48 AM CEST, Andrea Pinski wrote:
> > On Mon, Aug 24, 2026 at 6:05 AM Josef Melcr <[email protected]> wrote:
> >>
> >> Hi,
> >> references are recreated when redirecting edges in the target clone
> >> pass. However, the references are not created with their corresponding
> >> call statements, potentially leading to ICEs as shown in PR127023.  This
> >> patch fixes that.
> >>
> >> Bootstrapped, LTO-bootstrapped and regtested on x86_64-linux without any
> >> new regressions.  OK for master?
> >
> > Ok.
>
> I forgot to ask, is this okay for the 16 branch as well?  Thanks :)

Yes.

>
> Josef
>
> >
> >>
> >> Best regards,
> >> Josef
> >>
> >>         PR ipa/127023
> >>
> >> gcc/ChangeLog:
> >>
> >>         * multiple_target.cc (create_dispatcher_calls): Use the call
> >>         statement variant of create_reference.
> >>
> >> gcc/testsuite/ChangeLog:
> >>
> >>         * gcc.target/i386/pr127023.c: New test.
> >>
> >> Signed-off-by: Josef Melcr <[email protected]>
> >> ---
> >>  gcc/multiple_target.cc                   |  2 +-
> >>  gcc/testsuite/gcc.target/i386/pr127023.c | 16 ++++++++++++++++
> >>  2 files changed, 17 insertions(+), 1 deletion(-)
> >>  create mode 100644 gcc/testsuite/gcc.target/i386/pr127023.c
> >>
> >> diff --git a/gcc/multiple_target.cc b/gcc/multiple_target.cc
> >> index 3f8676f5943..01d3ff84bf3 100644
> >> --- a/gcc/multiple_target.cc
> >> +++ b/gcc/multiple_target.cc
> >> @@ -190,7 +190,7 @@ create_dispatcher_calls (struct cgraph_node *node)
> >>                 }
> >>
> >>               symtab_node *source = ref->referring;
> >> -             source->create_reference (inode, IPA_REF_ADDR);
> >> +             source->create_reference (inode, IPA_REF_ADDR, ref->stmt);
> >>             }
> >>           else if (ref->use == IPA_REF_ALIAS)
> >>             {
> >> diff --git a/gcc/testsuite/gcc.target/i386/pr127023.c 
> >> b/gcc/testsuite/gcc.target/i386/pr127023.c
> >> new file mode 100644
> >> index 00000000000..ecd6af57cf6
> >> --- /dev/null
> >> +++ b/gcc/testsuite/gcc.target/i386/pr127023.c
> >> @@ -0,0 +1,16 @@
> >> +/* PR ipa/127023 */
> >> +/* { dg-do compile } */
> >> +/* { dg-options "-O2 -fopenmp" } */
> >> +/* { dg-require-ifunc "" } */
> >> +
> >> +__attribute__((target_clones("default", "fma4"), noinline))
> >> +static void e(int f) {
> >> +  if (!f)
> >> +#pragma omp parallel
> >> +    for (;;)
> >> +      ;
> >> +}
> >> +__attribute__((target_clones("default", "fma4")))
> >> +void g(void) {
> >> +  e(1);
> >> +}
> >> --
> >> 2.55.0
> >>
>
>

Reply via email to