public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/110313] New: [14 Regression] GCN Fiji reload ICE in 'process_alt_operands'
@ 2023-06-19 15:59 tschwinge at gcc dot gnu.org
2023-06-20 8:11 ` [Bug target/110313] " rguenth at gcc dot gnu.org
` (12 more replies)
0 siblings, 13 replies; 14+ messages in thread
From: tschwinge at gcc dot gnu.org @ 2023-06-19 15:59 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110313
Bug ID: 110313
Summary: [14 Regression] GCN Fiji reload ICE in
'process_alt_operands'
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Keywords: openmp
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: tschwinge at gcc dot gnu.org
CC: ams at gcc dot gnu.org, burnus at gcc dot gnu.org, jules at gcc dot gnu.org
Target Milestone: ---
Target: GCN
Between GCC commit
2720bbd597f56742a17119dfe80edc2ba86af255..bc6bd0d608da1609c1caeb04ab795a83720add55
(that is, 2023-05-30 - 2023-06-16) appeared some changes in GCC that cause an
ICE for a small number of libgomp offloading test cases, for GCN offloading
only, and with (default) '-march=fiji' only.
[-PASS:-]{+FAIL: libgomp.c++/../libgomp.c-c++-common/for-9.c (internal
compiler error: Segmentation fault)+}
{+FAIL:+} libgomp.c++/../libgomp.c-c++-common/for-9.c (test for excess
errors)
[-PASS:-]{+UNRESOLVED:+} libgomp.c++/../libgomp.c-c++-common/for-9.c
[-execution test-]{+compilation failed to produce executable+}
[-PASS:-]{+FAIL: libgomp.c/../libgomp.c-c++-common/for-9.c (internal
compiler error: Segmentation fault)+}
{+FAIL:+} libgomp.c/../libgomp.c-c++-common/for-9.c (test for excess
errors)
[-PASS:-]{+UNRESOLVED:+} libgomp.c/../libgomp.c-c++-common/for-9.c
[-execution test-]{+compilation failed to produce executable+}
The latter C++ variant not always observed.
Additionally (same ICE), but so far observed on one system only, when running
the exact same toolchain:
[-PASS:-]{+FAIL: libgomp.c/../libgomp.c-c++-common/for-16.c (internal
compiler error: Segmentation fault)+}
{+FAIL:+} libgomp.c/../libgomp.c-c++-common/for-16.c (test for excess
errors)
[-PASS:-]{+UNRESOLVED:+} libgomp.c/../libgomp.c-c++-common/for-16.c
[-execution test-]{+compilation failed to produce executable+}
The ICE is:
spawn -ignore SIGHUP gcc
../source-gcc/libgomp/testsuite/libgomp.c/../libgomp.c-c++-common/for-9.c
-I../source-gcc/libgomp/testsuite/../../include
-I../source-gcc/libgomp/testsuite/.. -fmessage-length=0
-fno-diagnostics-show-caret -fdiagnostics-color=never -fopenmp -O2 -lm -o
./for-9.exe
during RTL pass: reload
../source-gcc/libgomp/testsuite/libgomp.c/../libgomp.c-c++-common/for-2.h:
In function 'f20_dpf_ds128_runtime':
../source-gcc/libgomp/testsuite/libgomp.c/../libgomp.c-c++-common/for-2.h:346:1:
internal compiler error: Segmentation fault
0xe28adf crash_signal
[...]/source-gcc/gcc/toplev.cc:314
0xc19737 process_alt_operands
[...]/source-gcc/gcc/lra-constraints.cc:2789
0xc19737 curr_insn_transform
[...]/source-gcc/gcc/lra-constraints.cc:4201
0xc1ed0e lra_constraints(bool)
[...]/source-gcc/gcc/lra-constraints.cc:5396
0xbff652 lra(_IO_FILE*)
[...]/source-gcc/gcc/lra.cc:2396
0xb9c639 do_reload
[...]/source-gcc/gcc/ira.cc:5967
0xb9c639 execute
[...]/source-gcc/gcc/ira.cc:6153
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
gcn mkoffload: fatal error: x86_64-pc-linux-gnu-accel-amdgcn-amdhsa-gcc
returned 1 exit status
compilation terminated.
lto-wrapper: fatal error: [...]/amdgcn-amdhsa/mkoffload returned 1 exit
status
'gcc/lra-constraints.cc':
2778 if (operand_reg[nop] != NULL_RTX
2779 /* Output operands and matched input operands are
2780 not inherited. The following conditions do not
2781 exactly describe the previous statement but they
2782 are pretty close. */
2783 && curr_static_id->operand[nop].type != OP_OUT
2784 && (this_alternative_matches < 0
2785 || curr_static_id->operand[nop].type != OP_IN))
2786 {
2787 int last_reload = (lra_reg_info[ORIGINAL_REGNO
2788 (operand_reg[nop])]
2789 .last_reload);
Tobias mentioned that 'operand_reg[nop]' is '(reg/f:DI 16 s16 [3483])'.
It was "obvious" to try, but reverting Vlad's three recent commits:
- commit r14-1891-g154c69039571c66b3a6d16ecfa9e6ff22942f59f "RA: Ignore
conflicts for some pseudos from insns throwing a final exception"
- commit r14-1610-g8cc8707446b77f9413654b31704f5a639673c916 "RA: Constrain
class of pic offset table pseudo to general regs"
- commit r14-1417-g30038a207c10a2783fa2695b62c7c8458ef05e73 "LRA: Update insn
sp offset if its input reload changes SP"
... does *not* cure this issue.
I've not yet tested with a non-offloading, GCN target toolchain (... with
(default) '-march=fiji').
I'm now bisecting.
Once we've located the "offender", I'll see about providing a reproducer -- if
necessary.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/110313] [14 Regression] GCN Fiji reload ICE in 'process_alt_operands'
2023-06-19 15:59 [Bug target/110313] New: [14 Regression] GCN Fiji reload ICE in 'process_alt_operands' tschwinge at gcc dot gnu.org
@ 2023-06-20 8:11 ` rguenth at gcc dot gnu.org
2023-06-20 9:13 ` ams at gcc dot gnu.org
` (11 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-06-20 8:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110313
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |14.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/110313] [14 Regression] GCN Fiji reload ICE in 'process_alt_operands'
2023-06-19 15:59 [Bug target/110313] New: [14 Regression] GCN Fiji reload ICE in 'process_alt_operands' tschwinge at gcc dot gnu.org
2023-06-20 8:11 ` [Bug target/110313] " rguenth at gcc dot gnu.org
@ 2023-06-20 9:13 ` ams at gcc dot gnu.org
2023-06-20 9:21 ` tschwinge at gcc dot gnu.org
` (10 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: ams at gcc dot gnu.org @ 2023-06-20 9:13 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110313
--- Comment #1 from Andrew Stubbs <ams at gcc dot gnu.org> ---
This ICE also affect the following standalone test failures (raw amdgcn, no
offloading):
gfortran.dg/assumed_rank_21.f90
gfortran.dg/finalize_38.f90
gfortran.dg/finalize_38a.f90
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/110313] [14 Regression] GCN Fiji reload ICE in 'process_alt_operands'
2023-06-19 15:59 [Bug target/110313] New: [14 Regression] GCN Fiji reload ICE in 'process_alt_operands' tschwinge at gcc dot gnu.org
2023-06-20 8:11 ` [Bug target/110313] " rguenth at gcc dot gnu.org
2023-06-20 9:13 ` ams at gcc dot gnu.org
@ 2023-06-20 9:21 ` tschwinge at gcc dot gnu.org
2023-06-20 9:41 ` ams at gcc dot gnu.org
` (9 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: tschwinge at gcc dot gnu.org @ 2023-06-20 9:21 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110313
Thomas Schwinge <tschwinge at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2023-06-20
--- Comment #2 from Thomas Schwinge <tschwinge at gcc dot gnu.org> ---
I had found, and wanted to report the same thing:
(In reply to Andrew Stubbs from comment #1)
> This ICE also affect the following standalone test failures (raw amdgcn, no
> offloading):
>
> gfortran.dg/assumed_rank_21.f90
> gfortran.dg/finalize_38.f90
> gfortran.dg/finalize_38a.f90
... but with the additional detail: ICE in their '-O3 -g' testing variants
only.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/110313] [14 Regression] GCN Fiji reload ICE in 'process_alt_operands'
2023-06-19 15:59 [Bug target/110313] New: [14 Regression] GCN Fiji reload ICE in 'process_alt_operands' tschwinge at gcc dot gnu.org
` (2 preceding siblings ...)
2023-06-20 9:21 ` tschwinge at gcc dot gnu.org
@ 2023-06-20 9:41 ` ams at gcc dot gnu.org
2023-06-20 15:36 ` tschwinge at gcc dot gnu.org
` (8 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: ams at gcc dot gnu.org @ 2023-06-20 9:41 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110313
--- Comment #3 from Andrew Stubbs <ams at gcc dot gnu.org> ---
It's curious that this affects the Fiji target only, and not the newer targets
at all.
There are some additional register options for multiply instructions, some
differences to atomics, but mostly the difference is that Fiji's "flat" load
and store instructions can't have offsets.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/110313] [14 Regression] GCN Fiji reload ICE in 'process_alt_operands'
2023-06-19 15:59 [Bug target/110313] New: [14 Regression] GCN Fiji reload ICE in 'process_alt_operands' tschwinge at gcc dot gnu.org
` (3 preceding siblings ...)
2023-06-20 9:41 ` ams at gcc dot gnu.org
@ 2023-06-20 15:36 ` tschwinge at gcc dot gnu.org
2023-06-20 15:56 ` ams at gcc dot gnu.org
` (7 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: tschwinge at gcc dot gnu.org @ 2023-06-20 15:36 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110313
Thomas Schwinge <tschwinge at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |manolis.tsamis at vrull dot eu
--- Comment #4 from Thomas Schwinge <tschwinge at gcc dot gnu.org> ---
(In reply to myself from comment #2)
> I had found, and wanted to report the same thing:
>
> (In reply to Andrew Stubbs from comment #1)
> > This ICE also affect the following standalone test failures (raw amdgcn, no
> > offloading):
> >
> > gfortran.dg/assumed_rank_21.f90
> > gfortran.dg/finalize_38.f90
> > gfortran.dg/finalize_38a.f90
>
> ... but with the additional detail: ICE in their '-O3 -g' testing variants
> only.
Also, there appears to be some non-determinism involved here: in another run of
the exact same toolchain build I've then also seen the ICE for
'gfortran.dg/PR100906.f90' (again, '-O3 -g' testing variant only).
(In reply to myself from comment #0)
> I'm now bisecting.
With commit r14-1873-g6a2e8dcbbd4bab374b27abea375bf7a921047800 "cprop_hardreg:
Enable propagation of the stack pointer if possible" reverted, we're back to
normal, both for GCN target and for GCN offloading.
That, however, is completely outside my area of competence -- if such a thing
exists at all... ;-)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/110313] [14 Regression] GCN Fiji reload ICE in 'process_alt_operands'
2023-06-19 15:59 [Bug target/110313] New: [14 Regression] GCN Fiji reload ICE in 'process_alt_operands' tschwinge at gcc dot gnu.org
` (4 preceding siblings ...)
2023-06-20 15:36 ` tschwinge at gcc dot gnu.org
@ 2023-06-20 15:56 ` ams at gcc dot gnu.org
2023-06-20 20:57 ` burnus at gcc dot gnu.org
` (6 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: ams at gcc dot gnu.org @ 2023-06-20 15:56 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110313
--- Comment #5 from Andrew Stubbs <ams at gcc dot gnu.org> ---
One thing that is unusual about the GCN stack pointer is that it's actually two
registers. Could this be breaking some cprop assumptions?
GCN can't fit an address in one (SImode) register so all (DImode) pointers
require a pair of registers. We had to rework the dwarf stack representation
code for this architecture, so I'm pretty sure no other port does this.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/110313] [14 Regression] GCN Fiji reload ICE in 'process_alt_operands'
2023-06-19 15:59 [Bug target/110313] New: [14 Regression] GCN Fiji reload ICE in 'process_alt_operands' tschwinge at gcc dot gnu.org
` (5 preceding siblings ...)
2023-06-20 15:56 ` ams at gcc dot gnu.org
@ 2023-06-20 20:57 ` burnus at gcc dot gnu.org
2023-06-20 21:48 ` burnus at gcc dot gnu.org
` (5 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2023-06-20 20:57 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110313
--- Comment #6 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Some more debugging: We have:
(gdb) p debug_rtx(curr_id->insn)
(insn 106 3450 3080 4 (parallel [
(set (reg/f:DI 1433)
(plus:DI (reg/f:DI 16 s16 [3483])
(const_int -48 [0xffffffffffffffd0])))
(clobber (reg:BI 1852))
(clobber (reg:DI 1853))
]) "libgomp/testsuite/libgomp.c/../libgomp.c-c++-common/for-2.h":530:9
29 {adddi3}
(expr_list:REG_UNUSED (reg:DI 1853)
(expr_list:REG_UNUSED (reg:BI 1852)
(nil))))
With:
debug_rtx(*curr_id->operand_loc[0]) → (reg/f:DI 1433)
debug_rtx(*curr_id->operand_loc[1]) → (reg/f:DI 16 s16 [3483])
where 3483 == ORIGINAL_REGNO (op) == ORIGINAL_REGNO(operand_reg[nop])
and lra_reg_info[3483] → Cannot access memory at address 0x43ad8a0
* * *
This seems to be gcn.md's:
(define_expand "adddi3_scc"
[(parallel [(set (match_operand:DI 0 "register_operand")
(plus:DI (match_operand:DI 1 "register_operand")
(match_operand:DI 2 "nonmemory_operand")))
(clobber (reg:BI SCC_REG))
(clobber (scratch:DI))])]
""
{})
* * *
The ORIGINAL_REGNO with value 3483 is created via
#0 init_raw_REG (x=x@entry=0x7ffff7829618, mode=mode@entry=E_DImode,
regno=regno@entry=3483)
at emit-rtl.cc:477
#1 0x0000000000bca0e0 in gen_raw_REG (mode=mode@entry=E_DImode, regno=3483)
at emit-rtl.cc:489
#2 0x0000000000bca97f in gen_reg_rtx (mode=mode@entry=E_DImode) at
emit-rtl.cc:1213
#3 0x000000000104039a in lra_create_new_reg_with_unique_value
(md_mode=md_mode@entry=E_DImode, original=original@entry=0x0,
rclass=rclass@entry=VGPR_REGS,
exclude_start_hard_regs=exclude_start_hard_regs@entry=0x0,
title=title@entry=0x2de1511 "base + disp")
at lra.cc:192
#4 0x0000000001040807 in lra_create_new_reg (md_mode=E_DImode,
original=original@entry=0x0, rclass=rclass@entry=VGPR_REGS,
exclude_start_hard_regs=exclude_start_hard_regs@entry=0x0,
title=title@entry=0x2de1511 "base + disp")
at lra.cc:233
#5 0x0000000001054d84 in base_plus_disp_to_reg (ad=ad@entry=0x7fffffffd1f0,
disp=0x7ffff78a0240)
at lra-constraints.cc:3335
#6 0x0000000001063484 in process_address_1 (nop=nop@entry=1,
check_only_p=check_only_p@entry=false, before=before@entry=0x7fffffffd498,
after=after@entry=0x7fffffffd490)
at lra-constraints.cc:3781
#7 0x0000000001063de5 in process_address (nop=nop@entry=1,
check_only_p=check_only_p@entry=false, before=before@entry=0x7fffffffd498,
after=after@entry=0x7fffffffd490)
at lra-constraints.cc:3869
#8 0x0000000001068fb9 in curr_insn_transform
(check_only_p=check_only_p@entry=false)
at lra-constraints.cc:4177
#9 0x000000000106d61c in lra_constraints (first_p=<optimized out>)
at lra-constraints.cc:5397
#10 0x00000000010470e7 in lra (f=0x0) at lra.cc:2396
#11 0x0000000000fc1efb in do_reload () at ira.cc:5967
* * *
lra_reg_info is first allocated in init_reg_info to:
lra_reg_info = XNEWVEC (class lra_reg, reg_info_size);
and later possibly extended via expand_reg_info:
lra_reg_info = XRESIZEVEC (class lra_reg, lra_reg_info, reg_info_size);
At the time of the backtrace above (call to init_raw_REG), we have:
reg_info_size == 3659 which is > 3483
and it is possible to print lra_reg_info[3483].
* * *
However, the init_raw_REG is called many times with regno = 3483.
In the failing case (segfault), lra_reg_info is still 3659 but accessing
lra_reg_info[3483] fails.
Additionally lra_reg_info[0] shows: 'insn_bitmap = {static crashme' indicating
that memory has been released.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/110313] [14 Regression] GCN Fiji reload ICE in 'process_alt_operands'
2023-06-19 15:59 [Bug target/110313] New: [14 Regression] GCN Fiji reload ICE in 'process_alt_operands' tschwinge at gcc dot gnu.org
` (6 preceding siblings ...)
2023-06-20 20:57 ` burnus at gcc dot gnu.org
@ 2023-06-20 21:48 ` burnus at gcc dot gnu.org
2023-06-20 22:55 ` burnus at gcc dot gnu.org
` (4 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2023-06-20 21:48 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110313
--- Comment #7 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Correction with regards to reg_info_size:
I claimed that reg_info_size = 3659 > 3483 – but that's not quite true.
That's the result when doing 'p reg_info_size' in lra-constraints.cc.
When going 'up' in the debugger to lra.cc, the value is there:
reg_info_size == 2723
It is not completely clear which 'reg_info_size' gdb picks up in
lra-constraints.cc as there are:
lra.cc:static int reg_info_size;
reginfo.cc:static int reg_info_size;
and none in lra-constraints.cc.
* * *
In any case, the lra.c's reg_info_size is increased via
* lra.c's init_reg_info + expand_reg_info;
the latter is also called via expand_reg_data
and add_regs_to_insn_regno_info. And indirectly via lra_emit_move,
lra_create_new_reg_with_unique_value and lra_emit_add.
The last 3 are non-static and also called in lra-constraints.cc
* reginfo.cc's allocate_reg_info is set in allocate_reg_info,
reginfo_init and resize_reg_info - and the last one is non-static
and called via:
lra_get_regno_hard_regno and lra_get_allocno_class
and togather with the lra.c's one in via the lra_emit_* and
lra_create_*
It seems as if some of the lra-constraints.cc calls that call
lra_get_allocno_class or lra_get_regno_hard_regno - also need to
call something which increases the size of lra.c's reg_info_size
and the associated lra_reg_info array.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/110313] [14 Regression] GCN Fiji reload ICE in 'process_alt_operands'
2023-06-19 15:59 [Bug target/110313] New: [14 Regression] GCN Fiji reload ICE in 'process_alt_operands' tschwinge at gcc dot gnu.org
` (7 preceding siblings ...)
2023-06-20 21:48 ` burnus at gcc dot gnu.org
@ 2023-06-20 22:55 ` burnus at gcc dot gnu.org
2023-06-21 6:49 ` manolis.tsamis at vrull dot eu
` (3 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2023-06-20 22:55 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110313
--- Comment #8 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Adding this debug code :
__builtin_fprintf (stderr, "DEBUG:>> %d - %d - %d\n",
get_lra_reg_info_size () ,
max_reg_num (), ORIGINAL_REGNO (operand_reg[nop]));
shows for the failing case:
DEBUG: 664 - 446 - 835
Namely: the problem is that
ORIGINAL_REGNO() > max_reg_num ()
and not that lra.cc's reg_info_size < max_reg_num ().
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/110313] [14 Regression] GCN Fiji reload ICE in 'process_alt_operands'
2023-06-19 15:59 [Bug target/110313] New: [14 Regression] GCN Fiji reload ICE in 'process_alt_operands' tschwinge at gcc dot gnu.org
` (8 preceding siblings ...)
2023-06-20 22:55 ` burnus at gcc dot gnu.org
@ 2023-06-21 6:49 ` manolis.tsamis at vrull dot eu
2023-06-21 7:25 ` tschwinge at gcc dot gnu.org
` (2 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: manolis.tsamis at vrull dot eu @ 2023-06-21 6:49 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110313
--- Comment #9 from manolis.tsamis at vrull dot eu ---
Hi,
This commit is known to be an issue and I'm working on a fix, you can find more
details on this ticket https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110308.
Would it be easy for you to test whether the patch in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110308#c10 also fixes this issue?
Thanks,
Manolis
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/110313] [14 Regression] GCN Fiji reload ICE in 'process_alt_operands'
2023-06-19 15:59 [Bug target/110313] New: [14 Regression] GCN Fiji reload ICE in 'process_alt_operands' tschwinge at gcc dot gnu.org
` (9 preceding siblings ...)
2023-06-21 6:49 ` manolis.tsamis at vrull dot eu
@ 2023-06-21 7:25 ` tschwinge at gcc dot gnu.org
2023-06-21 8:45 ` burnus at gcc dot gnu.org
2023-06-28 14:06 ` cvs-commit at gcc dot gnu.org
12 siblings, 0 replies; 14+ messages in thread
From: tschwinge at gcc dot gnu.org @ 2023-06-21 7:25 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110313
Thomas Schwinge <tschwinge at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |ice-on-valid-code
See Also| |https://gcc.gnu.org/bugzill
| |a/show_bug.cgi?id=110308
--- Comment #10 from Thomas Schwinge <tschwinge at gcc dot gnu.org> ---
(In reply to manolis.tsamis from comment #9)
> test whether the patch in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110308#c10 also fixes this issue?
Thanks, it does!
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/110313] [14 Regression] GCN Fiji reload ICE in 'process_alt_operands'
2023-06-19 15:59 [Bug target/110313] New: [14 Regression] GCN Fiji reload ICE in 'process_alt_operands' tschwinge at gcc dot gnu.org
` (10 preceding siblings ...)
2023-06-21 7:25 ` tschwinge at gcc dot gnu.org
@ 2023-06-21 8:45 ` burnus at gcc dot gnu.org
2023-06-28 14:06 ` cvs-commit at gcc dot gnu.org
12 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2023-06-21 8:45 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110313
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |DUPLICATE
Status|NEW |RESOLVED
--- Comment #11 from Tobias Burnus <burnus at gcc dot gnu.org> ---
I can also confirm that the patch (bug 110308 comment 10) of PR 110308 fixes
this issue
→ Mark as duplicate.
*** This bug has been marked as a duplicate of bug 110308 ***
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/110313] [14 Regression] GCN Fiji reload ICE in 'process_alt_operands'
2023-06-19 15:59 [Bug target/110313] New: [14 Regression] GCN Fiji reload ICE in 'process_alt_operands' tschwinge at gcc dot gnu.org
` (11 preceding siblings ...)
2023-06-21 8:45 ` burnus at gcc dot gnu.org
@ 2023-06-28 14:06 ` cvs-commit at gcc dot gnu.org
12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-06-28 14:06 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110313
--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Philipp Tomsich <ptomsich@gcc.gnu.org>:
https://gcc.gnu.org/g:893883f2f8f56984209c6ed210ee992ff71a14b0
commit r14-2165-g893883f2f8f56984209c6ed210ee992ff71a14b0
Author: Manolis Tsamis <manolis.tsamis@vrull.eu>
Date: Tue Jun 20 16:23:52 2023 +0200
cprop_hardreg: fix ORIGINAL_REGNO/REG_ATTRS/REG_POINTER handling
Fixes: 6a2e8dcbbd4bab3
Propagation for the stack pointer in regcprop was enabled in
6a2e8dcbbd4bab3, but set ORIGINAL_REGNO/REG_ATTRS/REG_POINTER for
stack_pointer_rtx which caused regression (e.g., PR 110313, PR 110308).
This fix adds special handling for stack_pointer_rtx in the places
where maybe_mode_change is called. This also adds an check in
maybe_mode_change to return the stack pointer only when the requested
mode matches the mode of stack_pointer_rtx.
PR debug/110308
gcc/ChangeLog:
* regcprop.cc (maybe_mode_change): Check stack_pointer_rtx mode.
(maybe_copy_reg_attrs): New function.
(find_oldest_value_reg): Use maybe_copy_reg_attrs.
(copyprop_hardreg_forward_1): Ditto.
gcc/testsuite/ChangeLog:
* g++.dg/torture/pr110308.C: New test.
Signed-off-by: Manolis Tsamis <manolis.tsamis@vrull.eu>
Signed-off-by: Philipp Tomsich <philipp.tomsich@vrull.eu>
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2023-06-28 14:06 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-19 15:59 [Bug target/110313] New: [14 Regression] GCN Fiji reload ICE in 'process_alt_operands' tschwinge at gcc dot gnu.org
2023-06-20 8:11 ` [Bug target/110313] " rguenth at gcc dot gnu.org
2023-06-20 9:13 ` ams at gcc dot gnu.org
2023-06-20 9:21 ` tschwinge at gcc dot gnu.org
2023-06-20 9:41 ` ams at gcc dot gnu.org
2023-06-20 15:36 ` tschwinge at gcc dot gnu.org
2023-06-20 15:56 ` ams at gcc dot gnu.org
2023-06-20 20:57 ` burnus at gcc dot gnu.org
2023-06-20 21:48 ` burnus at gcc dot gnu.org
2023-06-20 22:55 ` burnus at gcc dot gnu.org
2023-06-21 6:49 ` manolis.tsamis at vrull dot eu
2023-06-21 7:25 ` tschwinge at gcc dot gnu.org
2023-06-21 8:45 ` burnus at gcc dot gnu.org
2023-06-28 14:06 ` cvs-commit 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).