public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/115342] New: [14/15 Regression] AArch64: Function multiversioning initialization incorrect
@ 2024-06-04  9:11 wilco at gcc dot gnu.org
  2024-06-05  6:42 ` [Bug target/115342] " rguenth at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: wilco at gcc dot gnu.org @ 2024-06-04  9:11 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 115342
           Summary: [14/15 Regression] AArch64: Function multiversioning
                    initialization incorrect
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: wilco at gcc dot gnu.org
  Target Milestone: ---

The CPU features initialization code uses CPUID registers. It uses incorrect
comparisons so that for example SVE is not set if SVE2 is available. Using
HWCAPs for these is both simpler and works correctly. The initialization must
also be done atomically so to avoid multiple threads causing corruption due to
non-atomic RMW of the global.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug target/115342] [14/15 Regression] AArch64: Function multiversioning initialization incorrect
  2024-06-04  9:11 [Bug target/115342] New: [14/15 Regression] AArch64: Function multiversioning initialization incorrect wilco at gcc dot gnu.org
@ 2024-06-05  6:42 ` rguenth at gcc dot gnu.org
  2024-06-05 13:21 ` cvs-commit at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2024-06-05  6:42 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |14.2

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug target/115342] [14/15 Regression] AArch64: Function multiversioning initialization incorrect
  2024-06-04  9:11 [Bug target/115342] New: [14/15 Regression] AArch64: Function multiversioning initialization incorrect wilco at gcc dot gnu.org
  2024-06-05  6:42 ` [Bug target/115342] " rguenth at gcc dot gnu.org
@ 2024-06-05 13:21 ` cvs-commit at gcc dot gnu.org
  2024-06-20  4:47 ` ramana at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2024-06-05 13:21 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Wilco Dijkstra <wilco@gcc.gnu.org>:

https://gcc.gnu.org/g:d7cbcfe7c33645eaf95f175f19884d443817857b

commit r15-1036-gd7cbcfe7c33645eaf95f175f19884d443817857b
Author: Wilco Dijkstra <wilco.dijkstra@arm.com>
Date:   Wed Jun 5 14:04:33 2024 +0100

    AArch64: Fix cpu features initialization [PR115342]

    The CPU features initialization code uses CPUID registers (rather than
    HWCAP).  The equality comparisons it uses are incorrect: for example
FEAT_SVE
    is not set if SVE2 is available.  Using HWCAPs for these is both simpler
and
    correct.  The initialization must also be done atomically to avoid multiple
    threads causing corruption due to non-atomic RMW accesses to the global.

    libgcc:
            PR target/115342
            * config/aarch64/cpuinfo.c (__init_cpu_features_constructor):
            Use HWCAP where possible.  Use atomic write for initialization.
            Fix FEAT_PREDRES comparison.
            (__init_cpu_features_resolver): Use atomic load for correct
            initialization.
            (__init_cpu_features): Likewise.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug target/115342] [14/15 Regression] AArch64: Function multiversioning initialization incorrect
  2024-06-04  9:11 [Bug target/115342] New: [14/15 Regression] AArch64: Function multiversioning initialization incorrect wilco at gcc dot gnu.org
  2024-06-05  6:42 ` [Bug target/115342] " rguenth at gcc dot gnu.org
  2024-06-05 13:21 ` cvs-commit at gcc dot gnu.org
@ 2024-06-20  4:47 ` ramana at gcc dot gnu.org
  2024-06-20 10:38 ` wilco at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: ramana at gcc dot gnu.org @ 2024-06-20  4:47 UTC (permalink / raw)
  To: gcc-bugs

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

Ramana Radhakrishnan <ramana at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ramana at gcc dot gnu.org
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2024-06-20

--- Comment #2 from Ramana Radhakrishnan <ramana at gcc dot gnu.org> ---
Confirmed ?

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug target/115342] [14/15 Regression] AArch64: Function multiversioning initialization incorrect
  2024-06-04  9:11 [Bug target/115342] New: [14/15 Regression] AArch64: Function multiversioning initialization incorrect wilco at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2024-06-20  4:47 ` ramana at gcc dot gnu.org
@ 2024-06-20 10:38 ` wilco at gcc dot gnu.org
  2024-06-21 16:33 ` cvs-commit at gcc dot gnu.org
  2024-06-21 16:36 ` wilco at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: wilco at gcc dot gnu.org @ 2024-06-20 10:38 UTC (permalink / raw)
  To: gcc-bugs

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

Wilco <wilco at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED

--- Comment #3 from Wilco <wilco at gcc dot gnu.org> ---
(In reply to Ramana Radhakrishnan from comment #2)
> Confirmed ?

And fixed on trunk. Will do the backport later.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug target/115342] [14/15 Regression] AArch64: Function multiversioning initialization incorrect
  2024-06-04  9:11 [Bug target/115342] New: [14/15 Regression] AArch64: Function multiversioning initialization incorrect wilco at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2024-06-20 10:38 ` wilco at gcc dot gnu.org
@ 2024-06-21 16:33 ` cvs-commit at gcc dot gnu.org
  2024-06-21 16:36 ` wilco at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2024-06-21 16:33 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-14 branch has been updated by Wilco Dijkstra
<wilco@gcc.gnu.org>:

https://gcc.gnu.org/g:9421f02916676d27e24fcda918f85e359329ac69

commit r14-10338-g9421f02916676d27e24fcda918f85e359329ac69
Author: Wilco Dijkstra <wilco.dijkstra@arm.com>
Date:   Wed Jun 5 14:04:33 2024 +0100

    AArch64: Fix cpu features initialization [PR115342]

    The CPU features initialization code uses CPUID registers (rather than
    HWCAP).  The equality comparisons it uses are incorrect: for example
FEAT_SVE
    is not set if SVE2 is available.  Using HWCAPs for these is both simpler
and
    correct.  The initialization must also be done atomically to avoid multiple
    threads causing corruption due to non-atomic RMW accesses to the global.

    libgcc:
            PR target/115342
            * config/aarch64/cpuinfo.c (__init_cpu_features_constructor):
            Use HWCAP where possible.  Use atomic write for initialization.
            Fix FEAT_PREDRES comparison.
            (__init_cpu_features_resolver): Use atomic load for correct
            initialization.
            (__init_cpu_features): Likewise.
    (cherry picked from commit d7cbcfe7c33645eaf95f175f19884d443817857b)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug target/115342] [14/15 Regression] AArch64: Function multiversioning initialization incorrect
  2024-06-04  9:11 [Bug target/115342] New: [14/15 Regression] AArch64: Function multiversioning initialization incorrect wilco at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2024-06-21 16:33 ` cvs-commit at gcc dot gnu.org
@ 2024-06-21 16:36 ` wilco at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: wilco at gcc dot gnu.org @ 2024-06-21 16:36 UTC (permalink / raw)
  To: gcc-bugs

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

Wilco <wilco at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #5 from Wilco <wilco at gcc dot gnu.org> ---
Fixed on trunk and gcc-14 branch.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-06-21 16:36 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-06-04  9:11 [Bug target/115342] New: [14/15 Regression] AArch64: Function multiversioning initialization incorrect wilco at gcc dot gnu.org
2024-06-05  6:42 ` [Bug target/115342] " rguenth at gcc dot gnu.org
2024-06-05 13:21 ` cvs-commit at gcc dot gnu.org
2024-06-20  4:47 ` ramana at gcc dot gnu.org
2024-06-20 10:38 ` wilco at gcc dot gnu.org
2024-06-21 16:33 ` cvs-commit at gcc dot gnu.org
2024-06-21 16:36 ` wilco at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).