public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
@ 2021-01-08 13:08 acoplan at gcc dot gnu.org
  2021-03-31 10:30 ` [Bug rtl-optimization/98601] [8/9/10/11 Regression] " acoplan at gcc dot gnu.org
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: acoplan at gcc dot gnu.org @ 2021-01-08 13:08 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 98601
           Summary: aarch64: ICE in rtx_addr_can_trap_p_1, at
                    rtlanal.c:467
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: acoplan at gcc dot gnu.org
  Target Milestone: ---

The following fails:

$ cat test.c
void a() {
  void *b;
  asm("" : "=Q"(*b));
}
$ aarch64-elf-gcc -c test.c -O
test.c: In function 'a':
test.c:3:17: warning: dereferencing 'void *' pointer
    3 |   asm("" : "=Q"(*b));
      |                 ^~
during RTL pass: cprop_hardreg
test.c:4:1: internal compiler error: in rtx_addr_can_trap_p_1, at rtlanal.c:467
    4 | }
      | ^
0xd61f35 rtx_addr_can_trap_p_1
        /home/alecop01/toolchain/src/gcc/gcc/rtlanal.c:467
0xd626ac may_trap_p_1(rtx_def const*, unsigned int)
        /home/alecop01/toolchain/src/gcc/gcc/rtlanal.c:3182
0xd62918 may_trap_p_1(rtx_def const*, unsigned int)
        /home/alecop01/toolchain/src/gcc/gcc/rtlanal.c:3282
0xd629cd may_trap_p(rtx_def const*)
        /home/alecop01/toolchain/src/gcc/gcc/rtlanal.c:3301
0xd2de10 copyprop_hardreg_forward_1
        /home/alecop01/toolchain/src/gcc/gcc/regcprop.c:789
0xd2eb9a cprop_hardreg_bb
        /home/alecop01/toolchain/src/gcc/gcc/regcprop.c:1302
0xd2ee2a execute
        /home/alecop01/toolchain/src/gcc/gcc/regcprop.c:1367
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

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

* [Bug rtl-optimization/98601] [8/9/10/11 Regression] aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
  2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
@ 2021-03-31 10:30 ` acoplan at gcc dot gnu.org
  2021-03-31 11:00 ` acoplan at gcc dot gnu.org
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: acoplan at gcc dot gnu.org @ 2021-03-31 10:30 UTC (permalink / raw)
  To: gcc-bugs

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

Alex Coplan <acoplan at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|aarch64: ICE in             |[8/9/10/11 Regression]
                   |rtx_addr_can_trap_p_1, at   |aarch64: ICE in
                   |rtlanal.c:467               |rtx_addr_can_trap_p_1, at
                   |                            |rtlanal.c:467
             Target|aarch64                     |arm aarch64

--- Comment #1 from Alex Coplan <acoplan at gcc dot gnu.org> ---
ICEs started with GCC 8. GCC 7 accepts the code with a warning (warning:
dereferencing 'void *' pointer).

Clearly we should fix the ICE, but I'm wondering whether this code is actually
valid?

clang rejects it with "error: dereference of pointer to incomplete type 'void'"

x86-64 GCC rejects it with:

<source>:3:3: error: invalid use of void expression
    3 |   asm("" : "=Q"(*b));
      |   ^~~
<source>:3:3: error: invalid lvalue in 'asm' output 0

We also hit the same ICE with this testcase on AArch32, FWIW.

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

* [Bug rtl-optimization/98601] [8/9/10/11 Regression] aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
  2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
  2021-03-31 10:30 ` [Bug rtl-optimization/98601] [8/9/10/11 Regression] " acoplan at gcc dot gnu.org
@ 2021-03-31 11:00 ` acoplan at gcc dot gnu.org
  2021-03-31 11:41 ` [Bug target/98601] " rguenth at gcc dot gnu.org
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: acoplan at gcc dot gnu.org @ 2021-03-31 11:00 UTC (permalink / raw)
  To: gcc-bugs

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

Alex Coplan <acoplan at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |11.0

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

* [Bug target/98601] [8/9/10/11 Regression] aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
  2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
  2021-03-31 10:30 ` [Bug rtl-optimization/98601] [8/9/10/11 Regression] " acoplan at gcc dot gnu.org
  2021-03-31 11:00 ` acoplan at gcc dot gnu.org
@ 2021-03-31 11:41 ` rguenth at gcc dot gnu.org
  2021-03-31 11:50 ` [Bug rtl-optimization/98601] " rguenth at gcc dot gnu.org
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-03-31 11:41 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|rtl-optimization            |target

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Note for 'm' constraints (*b) might be preferred over (*(non-void *)b), esp.
if used in address context.

The generic code rejects it on x86_64 here:

#1  0x0000000000a8c37c in build_asm_expr (loc=262658, string=<string_cst
0x7ffff66b00d8>, 
    outputs=<tree_list 0x7ffff669c9d8>, inputs=<tree 0x0>, clobbers=<tree 0x0>,
labels=<tree 0x0>, 
    simple=false, is_inline=false) at
/home/rguenther/src/gcc3/gcc/c/c-typeck.c:10669
10669                 error_at (loc, "invalid use of void expression");
(gdb) l
10664               output = error_mark_node;
10665             if (!(!allows_reg && allows_mem)
10666                 && output != error_mark_node
10667                 && VOID_TYPE_P (TREE_TYPE (output)))
10668               {
10669                 error_at (loc, "invalid use of void expression");
10670                 output = error_mark_node;

but it looks like Q is a memory constraint on arm?  If so then I don't see
why it should be invalid.

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

* [Bug rtl-optimization/98601] [8/9/10/11 Regression] aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
  2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2021-03-31 11:41 ` [Bug target/98601] " rguenth at gcc dot gnu.org
@ 2021-03-31 11:50 ` rguenth at gcc dot gnu.org
  2021-03-31 12:51 ` acoplan at gcc dot gnu.org
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-03-31 11:50 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|target                      |rtl-optimization

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
For some reason we have

(insn 5 9 12 2 (set (mem (reg/v/f:DI 0 x0 [orig:92 b ] [92]) [0 *b_2(D)+0 A8])
        (asm_operands ("") ("=Q") 0 []
             []
             [] t.c:3)) "t.c":3:3 -1
     (expr_list:REG_DEAD (reg/v/f:DI 0 x0 [orig:92 b ] [92])
        (nil)))

on x86_64 we get (with a "=m" constraint):

(insn 6 3 12 2 (parallel [
            (set (mem (reg:DI 5 di [83]) [0 *b_2(D)+0 A8])
                (asm_operands ("") ("=m") 0 []
                     []
                     [] t.c:2))
            (clobber (reg:CC 17 flags))
        ]) "t.c":2:3 -1
     (expr_list:REG_DEAD (reg:DI 5 di [83])
        (expr_list:REG_UNUSED (reg:CC 17 flags)
            (nil))))

I suppose we could special-case the VOIDmode/unknown-size and make it
possibly trapping (conservatively so).  I'm sure rejecting the code
will break existing code.

That said, I can't reproduce on x86_64.  Target independent testcase
(still ICEs on aarch64):

void a(void *b) {
  asm("" : "=m"(*b));
}

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

* [Bug rtl-optimization/98601] [8/9/10/11 Regression] aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
  2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2021-03-31 11:50 ` [Bug rtl-optimization/98601] " rguenth at gcc dot gnu.org
@ 2021-03-31 12:51 ` acoplan at gcc dot gnu.org
  2021-04-09  8:05 ` rguenth at gcc dot gnu.org
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: acoplan at gcc dot gnu.org @ 2021-03-31 12:51 UTC (permalink / raw)
  To: gcc-bugs

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

Alex Coplan <acoplan at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2021-03-31
           Keywords|                            |ice-on-valid-code

--- Comment #4 from Alex Coplan <acoplan at gcc dot gnu.org> ---
richi: thanks for the pointers. I agree it looks like this should be valid.
E.g. the very reasonable:

void foo(void *p)
{
    asm volatile ("str xzr, %0" : "=Q"(*p));
}

gives:

foo:
        str xzr, [x0]
        ret

at -O2 on AArch64. (Dropping the volatile in this case reproduce the ICE.)

I bisected the ICE to r8-7484-g532c7a45847f3401e26fa2f07e52613891c80718:

commit 532c7a45847f3401e26fa2f07e52613891c80718
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Mar 23 20:55:40 2018

    re PR inline-asm/85022 (internal compiler error: in write_dependence_p, at
alias.c:3003)

            PR inline-asm/85022
            * emit-rtl.c (init_emit_regs): Indicate that VOIDmode MEMs don't
have
            known size by default.

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

* [Bug rtl-optimization/98601] [8/9/10/11 Regression] aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
  2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2021-03-31 12:51 ` acoplan at gcc dot gnu.org
@ 2021-04-09  8:05 ` rguenth at gcc dot gnu.org
  2021-04-09  9:16 ` jakub at gcc dot gnu.org
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-04-09  8:05 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org
   Target Milestone|11.0                        |8.5
           Priority|P3                          |P2

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

* [Bug rtl-optimization/98601] [8/9/10/11 Regression] aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
  2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2021-04-09  8:05 ` rguenth at gcc dot gnu.org
@ 2021-04-09  9:16 ` jakub at gcc dot gnu.org
  2021-04-09  9:28 ` jakub at gcc dot gnu.org
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-09  9:16 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |jakub at gcc dot gnu.org
             Status|NEW                         |ASSIGNED

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
See https://gcc.gnu.org/legacy-ml/gcc-patches/2018-03/msg01277.html for more
details.
void
foo (void *p)
{
  asm ("" : "=m" (*p));
}
ICEs even on x86_64-linux.

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

* [Bug rtl-optimization/98601] [8/9/10/11 Regression] aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
  2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2021-04-09  9:16 ` jakub at gcc dot gnu.org
@ 2021-04-09  9:28 ` jakub at gcc dot gnu.org
  2021-04-10 10:47 ` cvs-commit at gcc dot gnu.org
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-09  9:28 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 50534
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50534&action=edit
gcc11-pr98601.patch

Untested fix.

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

* [Bug rtl-optimization/98601] [8/9/10/11 Regression] aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
  2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2021-04-09  9:28 ` jakub at gcc dot gnu.org
@ 2021-04-10 10:47 ` cvs-commit at gcc dot gnu.org
  2021-04-10 10:50 ` [Bug rtl-optimization/98601] [8/9/10 " jakub at gcc dot gnu.org
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-04-10 10:47 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:7a493fcd27d6a1af896c4f5ef4ab1e0afe8a839d

commit r11-8106-g7a493fcd27d6a1af896c4f5ef4ab1e0afe8a839d
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Apr 10 12:46:09 2021 +0200

    rtlanal: Another fix for VOIDmode MEMs [PR98601]

    This is a sequel to the PR85022 changes, inline-asm can (unfortunately)
    introduce VOIDmode MEMs and in PR85022 they have been changed so that
    we don't pretend we know their size (as opposed to assuming they have
    zero size).

    This time we ICE in rtx_addr_can_trap_p_1 because it assumes that
    all memory but BLKmode has known size.  The patch just treats VOIDmode
    MEMs like BLKmode in that regard.  And, the STRICT_ALIGNMENT change
    is needed because VOIDmode has GET_MODE_SIZE of 0 and we don't want to
    check if something is a multiple of 0.

    2021-04-10  Jakub Jelinek  <jakub@redhat.com>

            PR rtl-optimization/98601
            * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
            not just for BLKmode, but also for VOIDmode.  For STRICT_ALIGNMENT
            unaligned_mems handle VOIDmode like BLKmode.

            * gcc.dg/torture/pr98601.c: New test.

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

* [Bug rtl-optimization/98601] [8/9/10 Regression] aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
  2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2021-04-10 10:47 ` cvs-commit at gcc dot gnu.org
@ 2021-04-10 10:50 ` jakub at gcc dot gnu.org
  2021-04-20  9:45 ` cvs-commit at gcc dot gnu.org
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-10 10:50 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[8/9/10/11 Regression]      |[8/9/10 Regression]
                   |aarch64: ICE in             |aarch64: ICE in
                   |rtx_addr_can_trap_p_1, at   |rtx_addr_can_trap_p_1, at
                   |rtlanal.c:467               |rtlanal.c:467

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed on the trunk so far.

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

* [Bug rtl-optimization/98601] [8/9/10 Regression] aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
  2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
                   ` (9 preceding siblings ...)
  2021-04-10 10:50 ` [Bug rtl-optimization/98601] [8/9/10 " jakub at gcc dot gnu.org
@ 2021-04-20  9:45 ` cvs-commit at gcc dot gnu.org
  2021-04-20  9:52 ` [Bug rtl-optimization/98601] [8/9 " jakub at gcc dot gnu.org
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-04-20  9:45 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

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

commit r10-9723-ge68ac8c2b46997af1464f2549ac520a192c928b1
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Apr 10 12:46:09 2021 +0200

    rtlanal: Another fix for VOIDmode MEMs [PR98601]

    This is a sequel to the PR85022 changes, inline-asm can (unfortunately)
    introduce VOIDmode MEMs and in PR85022 they have been changed so that
    we don't pretend we know their size (as opposed to assuming they have
    zero size).

    This time we ICE in rtx_addr_can_trap_p_1 because it assumes that
    all memory but BLKmode has known size.  The patch just treats VOIDmode
    MEMs like BLKmode in that regard.  And, the STRICT_ALIGNMENT change
    is needed because VOIDmode has GET_MODE_SIZE of 0 and we don't want to
    check if something is a multiple of 0.

    2021-04-10  Jakub Jelinek  <jakub@redhat.com>

            PR rtl-optimization/98601
            * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
            not just for BLKmode, but also for VOIDmode.  For STRICT_ALIGNMENT
            unaligned_mems handle VOIDmode like BLKmode.

            * gcc.dg/torture/pr98601.c: New test.

    (cherry picked from commit 7a493fcd27d6a1af896c4f5ef4ab1e0afe8a839d)

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

* [Bug rtl-optimization/98601] [8/9 Regression] aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
  2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
                   ` (10 preceding siblings ...)
  2021-04-20  9:45 ` cvs-commit at gcc dot gnu.org
@ 2021-04-20  9:52 ` jakub at gcc dot gnu.org
  2021-04-20 23:34 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-20  9:52 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[8/9/10 Regression]         |[8/9 Regression] aarch64:
                   |aarch64: ICE in             |ICE in
                   |rtx_addr_can_trap_p_1, at   |rtx_addr_can_trap_p_1, at
                   |rtlanal.c:467               |rtlanal.c:467

--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed for 10.4 too.

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

* [Bug rtl-optimization/98601] [8/9 Regression] aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
  2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
                   ` (11 preceding siblings ...)
  2021-04-20  9:52 ` [Bug rtl-optimization/98601] [8/9 " jakub at gcc dot gnu.org
@ 2021-04-20 23:34 ` cvs-commit at gcc dot gnu.org
  2021-04-22 16:52 ` cvs-commit at gcc dot gnu.org
  2021-04-22 17:11 ` jakub at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-04-20 23:34 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:86e761b46de55532db35f257ea67071512804a58

commit r9-9442-g86e761b46de55532db35f257ea67071512804a58
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Apr 10 12:46:09 2021 +0200

    rtlanal: Another fix for VOIDmode MEMs [PR98601]

    This is a sequel to the PR85022 changes, inline-asm can (unfortunately)
    introduce VOIDmode MEMs and in PR85022 they have been changed so that
    we don't pretend we know their size (as opposed to assuming they have
    zero size).

    This time we ICE in rtx_addr_can_trap_p_1 because it assumes that
    all memory but BLKmode has known size.  The patch just treats VOIDmode
    MEMs like BLKmode in that regard.  And, the STRICT_ALIGNMENT change
    is needed because VOIDmode has GET_MODE_SIZE of 0 and we don't want to
    check if something is a multiple of 0.

    2021-04-10  Jakub Jelinek  <jakub@redhat.com>

            PR rtl-optimization/98601
            * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
            not just for BLKmode, but also for VOIDmode.  For STRICT_ALIGNMENT
            unaligned_mems handle VOIDmode like BLKmode.

            * gcc.dg/torture/pr98601.c: New test.

    (cherry picked from commit e68ac8c2b46997af1464f2549ac520a192c928b1)

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

* [Bug rtl-optimization/98601] [8/9 Regression] aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
  2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
                   ` (12 preceding siblings ...)
  2021-04-20 23:34 ` cvs-commit at gcc dot gnu.org
@ 2021-04-22 16:52 ` cvs-commit at gcc dot gnu.org
  2021-04-22 17:11 ` jakub at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-04-22 16:52 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-8 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

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

commit r8-10905-gb7cac48e100fc70d361ce98be27f209659c4b0e9
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Apr 10 12:46:09 2021 +0200

    rtlanal: Another fix for VOIDmode MEMs [PR98601]

    This is a sequel to the PR85022 changes, inline-asm can (unfortunately)
    introduce VOIDmode MEMs and in PR85022 they have been changed so that
    we don't pretend we know their size (as opposed to assuming they have
    zero size).

    This time we ICE in rtx_addr_can_trap_p_1 because it assumes that
    all memory but BLKmode has known size.  The patch just treats VOIDmode
    MEMs like BLKmode in that regard.  And, the STRICT_ALIGNMENT change
    is needed because VOIDmode has GET_MODE_SIZE of 0 and we don't want to
    check if something is a multiple of 0.

    2021-04-10  Jakub Jelinek  <jakub@redhat.com>

            PR rtl-optimization/98601
            * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
            not just for BLKmode, but also for VOIDmode.  For STRICT_ALIGNMENT
            unaligned_mems handle VOIDmode like BLKmode.

            * gcc.dg/torture/pr98601.c: New test.

    (cherry picked from commit e68ac8c2b46997af1464f2549ac520a192c928b1)

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

* [Bug rtl-optimization/98601] [8/9 Regression] aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467
  2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
                   ` (13 preceding siblings ...)
  2021-04-22 16:52 ` cvs-commit at gcc dot gnu.org
@ 2021-04-22 17:11 ` jakub at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-22 17:11 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

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

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed.

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

end of thread, other threads:[~2021-04-22 17:11 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-08 13:08 [Bug rtl-optimization/98601] New: aarch64: ICE in rtx_addr_can_trap_p_1, at rtlanal.c:467 acoplan at gcc dot gnu.org
2021-03-31 10:30 ` [Bug rtl-optimization/98601] [8/9/10/11 Regression] " acoplan at gcc dot gnu.org
2021-03-31 11:00 ` acoplan at gcc dot gnu.org
2021-03-31 11:41 ` [Bug target/98601] " rguenth at gcc dot gnu.org
2021-03-31 11:50 ` [Bug rtl-optimization/98601] " rguenth at gcc dot gnu.org
2021-03-31 12:51 ` acoplan at gcc dot gnu.org
2021-04-09  8:05 ` rguenth at gcc dot gnu.org
2021-04-09  9:16 ` jakub at gcc dot gnu.org
2021-04-09  9:28 ` jakub at gcc dot gnu.org
2021-04-10 10:47 ` cvs-commit at gcc dot gnu.org
2021-04-10 10:50 ` [Bug rtl-optimization/98601] [8/9/10 " jakub at gcc dot gnu.org
2021-04-20  9:45 ` cvs-commit at gcc dot gnu.org
2021-04-20  9:52 ` [Bug rtl-optimization/98601] [8/9 " jakub at gcc dot gnu.org
2021-04-20 23:34 ` cvs-commit at gcc dot gnu.org
2021-04-22 16:52 ` cvs-commit at gcc dot gnu.org
2021-04-22 17:11 ` jakub 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).