* [Bug target/102027] [11/12 Regression] ABI break when using vector type in function arg/return value
2021-08-23 18:10 [Bug target/102027] New: ABI break when using vector type in function arg/return value mpolacek at gcc dot gnu.org
@ 2021-08-23 18:10 ` mpolacek at gcc dot gnu.org
2021-08-23 18:49 ` ubizjak at gmail dot com
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2021-08-23 18:10 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102027
Marek Polacek <mpolacek at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |ABI
Summary|ABI break when using vector |[11/12 Regression] ABI
|type in function arg/return |break when using vector
|value |type in function arg/return
| |value
Target Milestone|--- |11.3
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/102027] [11/12 Regression] ABI break when using vector type in function arg/return value
2021-08-23 18:10 [Bug target/102027] New: ABI break when using vector type in function arg/return value mpolacek at gcc dot gnu.org
2021-08-23 18:10 ` [Bug target/102027] [11/12 Regression] " mpolacek at gcc dot gnu.org
@ 2021-08-23 18:49 ` ubizjak at gmail dot com
2021-08-23 19:12 ` ubizjak at gmail dot com
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: ubizjak at gmail dot com @ 2021-08-23 18:49 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102027
--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Marek Polacek from comment #0)
> We have an ABI break. Discovered by
> Running
> /root/rpmbuild/BUILD/gcc-11.2.1-20210728/gcc/testsuite/gcc.dg/compat/struct-
> layout-1.exp ...
> FAIL: tmpdir-gcc.dg-struct-layout-1/t025 c_compat_x_tst.o-c_compat_y_alt.o
> execute
> FAIL: tmpdir-gcc.dg-struct-layout-1/t025 c_compat_x_alt.o-c_compat_y_tst.o
> execute
>
> Started with r11-263.
Strange, changes in the referred revision do not touch any of the ABI-definning
functions.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/102027] [11/12 Regression] ABI break when using vector type in function arg/return value
2021-08-23 18:10 [Bug target/102027] New: ABI break when using vector type in function arg/return value mpolacek at gcc dot gnu.org
2021-08-23 18:10 ` [Bug target/102027] [11/12 Regression] " mpolacek at gcc dot gnu.org
2021-08-23 18:49 ` ubizjak at gmail dot com
@ 2021-08-23 19:12 ` ubizjak at gmail dot com
2021-08-23 19:58 ` pinskia at gcc dot gnu.org
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: ubizjak at gmail dot com @ 2021-08-23 19:12 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102027
--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
gcc-11 does:
0000000000000000 <check2237>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # b
<check2237+0xb>
7: R_X86_64_PC32 check2237_ret-0x4
b: 66 48 0f 6e c0 movq %rax,%xmm0
10: 5d pop %rbp
11: c3 retq
and for reference, clang-12:
0000000000000000 <check2237>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: 48 8b 04 25 00 00 00 mov 0x0,%rax
b: 00
8: R_X86_64_32S check2237_ret
c: 48 89 45 f8 mov %rax,-0x8(%rbp)
10: f2 0f 10 45 f8 movsd -0x8(%rbp),%xmm0
15: 5d pop %rbp
16: c3 retq
These are the same.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/102027] [11/12 Regression] ABI break when using vector type in function arg/return value
2021-08-23 18:10 [Bug target/102027] New: ABI break when using vector type in function arg/return value mpolacek at gcc dot gnu.org
` (2 preceding siblings ...)
2021-08-23 19:12 ` ubizjak at gmail dot com
@ 2021-08-23 19:58 ` pinskia at gcc dot gnu.org
2021-08-23 20:25 ` hjl.tools at gmail dot com
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-08-23 19:58 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102027
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2021-08-23
Ever confirmed|0 |1
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
There are calls to vector_mode_supported_p in stor-layout which changes the
TYPE_MODE of the RECORD_TYPE depending on if vector_mode_supported_p returns
true or not and classify_argument depends on TYPE_MODE in some cases ....
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/102027] [11/12 Regression] ABI break when using vector type in function arg/return value
2021-08-23 18:10 [Bug target/102027] New: ABI break when using vector type in function arg/return value mpolacek at gcc dot gnu.org
` (3 preceding siblings ...)
2021-08-23 19:58 ` pinskia at gcc dot gnu.org
@ 2021-08-23 20:25 ` hjl.tools at gmail dot com
2021-08-24 1:47 ` hjl.tools at gmail dot com
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: hjl.tools at gmail dot com @ 2021-08-23 20:25 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102027
--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Andrew Pinski from comment #3)
> There are calls to vector_mode_supported_p in stor-layout which changes the
> TYPE_MODE of the RECORD_TYPE depending on if vector_mode_supported_p returns
> true or not and classify_argument depends on TYPE_MODE in some cases ....
We need to issue a ABI change warning.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/102027] [11/12 Regression] ABI break when using vector type in function arg/return value
2021-08-23 18:10 [Bug target/102027] New: ABI break when using vector type in function arg/return value mpolacek at gcc dot gnu.org
` (4 preceding siblings ...)
2021-08-23 20:25 ` hjl.tools at gmail dot com
@ 2021-08-24 1:47 ` hjl.tools at gmail dot com
2021-08-24 1:50 ` pinskia at gcc dot gnu.org
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: hjl.tools at gmail dot com @ 2021-08-24 1:47 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102027
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Andrew Pinski from comment #3)
> There are calls to vector_mode_supported_p in stor-layout which changes the
It sounds odd to me since vector_mode_supported_p can change overtime.
> TYPE_MODE of the RECORD_TYPE depending on if vector_mode_supported_p returns
> true or not and classify_argument depends on TYPE_MODE in some cases ....
I am not sure if we can fix it in backend alone.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/102027] [11/12 Regression] ABI break when using vector type in function arg/return value
2021-08-23 18:10 [Bug target/102027] New: ABI break when using vector type in function arg/return value mpolacek at gcc dot gnu.org
` (5 preceding siblings ...)
2021-08-24 1:47 ` hjl.tools at gmail dot com
@ 2021-08-24 1:50 ` pinskia at gcc dot gnu.org
2021-08-24 7:12 ` rguenth at gcc dot gnu.org
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-08-24 1:50 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102027
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to H.J. Lu from comment #5)
> (In reply to Andrew Pinski from comment #3)
> > There are calls to vector_mode_supported_p in stor-layout which changes the
>
> It sounds odd to me since vector_mode_supported_p can change overtime.
>
> > TYPE_MODE of the RECORD_TYPE depending on if vector_mode_supported_p returns
> > true or not and classify_argument depends on TYPE_MODE in some cases ....
>
> I am not sure if we can fix it in backend alone.
Most back-ends moved away from looking at TYPE_MODE for argument passing long
time ago. I can understand why you might want to stay with that I don't think
anyone should depend on TYPE_MODE for argument passing any more.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/102027] [11/12 Regression] ABI break when using vector type in function arg/return value
2021-08-23 18:10 [Bug target/102027] New: ABI break when using vector type in function arg/return value mpolacek at gcc dot gnu.org
` (6 preceding siblings ...)
2021-08-24 1:50 ` pinskia at gcc dot gnu.org
@ 2021-08-24 7:12 ` rguenth at gcc dot gnu.org
2021-08-24 13:08 ` hjl.tools at gmail dot com
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-08-24 7:12 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102027
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
Version|unknown |11.2.1
Target| |x86_64-*-*
CC| |rguenth at gcc dot gnu.org
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
Yes, it would be nice to transition away from relying on TYPE_MODE for argument
passing. Does the psABI say anything about this case or is it in the area of
implementation defined behavior?
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/102027] [11/12 Regression] ABI break when using vector type in function arg/return value
2021-08-23 18:10 [Bug target/102027] New: ABI break when using vector type in function arg/return value mpolacek at gcc dot gnu.org
` (7 preceding siblings ...)
2021-08-24 7:12 ` rguenth at gcc dot gnu.org
@ 2021-08-24 13:08 ` hjl.tools at gmail dot com
2022-04-21 7:50 ` rguenth at gcc dot gnu.org
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: hjl.tools at gmail dot com @ 2021-08-24 13:08 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102027
--- Comment #8 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Richard Biener from comment #7)
> Yes, it would be nice to transition away from relying on TYPE_MODE for
> argument passing. Does the psABI say anything about this case or is it in
> the area of implementation defined behavior?
Arguments of types _Float16, float, double, _Decimal32, _Decimal64 and
__m64 are in class SSE. V2SF is covered by __m64.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/102027] [11/12 Regression] ABI break when using vector type in function arg/return value
2021-08-23 18:10 [Bug target/102027] New: ABI break when using vector type in function arg/return value mpolacek at gcc dot gnu.org
` (8 preceding siblings ...)
2021-08-24 13:08 ` hjl.tools at gmail dot com
@ 2022-04-21 7:50 ` rguenth at gcc dot gnu.org
2023-04-17 15:15 ` [Bug target/102027] [11/12/13/14 " woodard at redhat dot com
2023-05-29 10:05 ` jakub at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-04-21 7:50 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102027
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|11.3 |11.4
--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 11.3 is being released, retargeting bugs to GCC 11.4.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/102027] [11/12/13/14 Regression] ABI break when using vector type in function arg/return value
2021-08-23 18:10 [Bug target/102027] New: ABI break when using vector type in function arg/return value mpolacek at gcc dot gnu.org
` (9 preceding siblings ...)
2022-04-21 7:50 ` rguenth at gcc dot gnu.org
@ 2023-04-17 15:15 ` woodard at redhat dot com
2023-05-29 10:05 ` jakub at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: woodard at redhat dot com @ 2023-04-17 15:15 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102027
--- Comment #10 from Ben Woodard <woodard at redhat dot com> ---
Currently Libabigail is not able to detect this kind of ABI break. We would be
able to detect this if https://dwarfstd.org/issues/221105.1.html were
implemented. As mentioned in the DWARF issue, this would also other languages
and may even simplify some work that debuggers need to do. Since it is just an
ignorable attribute, can we start supporting it even before it is standardized.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/102027] [11/12/13/14 Regression] ABI break when using vector type in function arg/return value
2021-08-23 18:10 [Bug target/102027] New: ABI break when using vector type in function arg/return value mpolacek at gcc dot gnu.org
` (10 preceding siblings ...)
2023-04-17 15:15 ` [Bug target/102027] [11/12/13/14 " woodard at redhat dot com
@ 2023-05-29 10:05 ` jakub at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-05-29 10:05 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102027
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|11.4 |11.5
--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 11.4 is being released, retargeting bugs to GCC 11.5.
^ permalink raw reply [flat|nested] 13+ messages in thread