public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs
@ 2020-03-21 20:52 seurer at linux dot vnet.ibm.com
  2020-03-22  9:27 ` [Bug target/94254] " zsojka at seznam dot cz
                   ` (20 more replies)
  0 siblings, 21 replies; 22+ messages in thread
From: seurer at linux dot vnet.ibm.com @ 2020-03-21 20:52 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 94254
           Summary: [10 regression] r10-7312 causes compiler hangs
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: seurer at linux dot vnet.ibm.com
  Target Milestone: ---

g:497498c878d48754318e486428e2aa30854020b9, r10-7312 

FAIL: gcc.target/powerpc/pr39902-2.c (test for excess errors)
FAIL: gcc.target/powerpc/pr79916.c (test for excess errors)
FAIL: gcc.target/powerpc/sd-pwr6.c (test for excess errors)

All 3 of those compilations hang starting with this revision.  I saw this on a
power 8 and power 9.

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
@ 2020-03-22  9:27 ` zsojka at seznam dot cz
  2020-03-22  9:30 ` zsojka at seznam dot cz
                   ` (19 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: zsojka at seznam dot cz @ 2020-03-22  9:27 UTC (permalink / raw)
  To: gcc-bugs

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

Zdenek Sojka <zsojka at seznam dot cz> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |zsojka at seznam dot cz

--- Comment #1 from Zdenek Sojka <zsojka at seznam dot cz> ---
I observe the same issue, and it breaks libgcc build for me:

$
/repo/build-trunk-r10-7320-20200321085330-g497498c878d-checking-yes-rtl-df-extra-powerpc/./gcc/xgcc
-B/repo/build-trunk-r10-7320-20200321085330-g497498c878d-checking-yes-rtl-df-extra-powerpc/./gcc/
-B/repo/gcc-trunk//binary-trunk-r10-7320-20200321085330-g497498c878d-checking-yes-rtl-df-extra-powerpc/powerpc-unknown-linux-gnu/bin/
-B/repo/gcc-trunk//binary-trunk-r10-7320-20200321085330-g497498c878d-checking-yes-rtl-df-extra-powerpc/powerpc-unknown-linux-gnu/lib/
-isystem
/repo/gcc-trunk//binary-trunk-r10-7320-20200321085330-g497498c878d-checking-yes-rtl-df-extra-powerpc/powerpc-unknown-linux-gnu/include
-isystem
/repo/gcc-trunk//binary-trunk-r10-7320-20200321085330-g497498c878d-checking-yes-rtl-df-extra-powerpc/powerpc-unknown-linux-gnu/sys-include
   -g -O2 -O2  -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -W -Wall
-Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition  -isystem ./include   -fPIC
-mlong-double-128 -mno-minimal-toc -g -DIN_LIBGCC2 -fbuilding-libgcc
-fno-stack-protector   -fPIC -mlong-double-128 -mno-minimal-toc -I. -I.
-I../.././gcc -I/repo/gcc-trunk/libgcc -I/repo/gcc-trunk/libgcc/.
-I/repo/gcc-trunk/libgcc/../gcc -I/repo/gcc-trunk/libgcc/../include
-I/repo/gcc-trunk/libgcc/../libdecnumber/dpd
-I/repo/gcc-trunk/libgcc/../libdecnumber -DHAVE_CC_TLS  -o _sd_to_si.o -MT
_sd_to_si.o -MD -MP -MF _sd_to_si.dep -DFINE_GRAINED_LIBRARIES -DL_sd_to_si
-DWIDTH=32 -c /repo/gcc-trunk/libgcc/dfp-bit.c

hangs; I can provide reduced testcase if needed

(for reasons unknown to me, git gcc-descr returns "r10-7320" for me for the
same  git checkout as in #c0)

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
  2020-03-22  9:27 ` [Bug target/94254] " zsojka at seznam dot cz
@ 2020-03-22  9:30 ` zsojka at seznam dot cz
  2020-03-22 17:11 ` rsandifo at gcc dot gnu.org
                   ` (18 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: zsojka at seznam dot cz @ 2020-03-22  9:30 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Zdenek Sojka <zsojka at seznam dot cz> ---
(In reply to Zdenek Sojka from comment #1)
> I observe the same issue, and it breaks libgcc build for me:
...
> 
> (for reasons unknown to me, git gcc-descr returns "r10-7320" for me for the
> same  git checkout as in #c0)

Sorry, I accidentally sent the message before I removed this part of the
comment; apparently git gcc-descr works with the most recent commit in the
branch, not with the actual checkout.

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
  2020-03-22  9:27 ` [Bug target/94254] " zsojka at seznam dot cz
  2020-03-22  9:30 ` zsojka at seznam dot cz
@ 2020-03-22 17:11 ` rsandifo at gcc dot gnu.org
  2020-03-22 18:30 ` rsandifo at gcc dot gnu.org
                   ` (17 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2020-03-22 17:11 UTC (permalink / raw)
  To: gcc-bugs

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

rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |rsandifo at gcc dot gnu.org
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |ASSIGNED
                 CC|                            |rsandifo at gcc dot gnu.org
   Last reconfirmed|                            |2020-03-22

--- Comment #3 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
Mine.

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (2 preceding siblings ...)
  2020-03-22 17:11 ` rsandifo at gcc dot gnu.org
@ 2020-03-22 18:30 ` rsandifo at gcc dot gnu.org
  2020-03-22 18:39 ` rsandifo at gcc dot gnu.org
                   ` (16 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2020-03-22 18:30 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
The cycling comes from reloading:

(insn 7 6 8 2 (set (reg:SD 122 [ a32 ])
        (mem/c:SD (reg/f:DI 120) [1 a32+0 S4 A32]))
"gcc/testsuite/gcc.target/powerpc/pr39902-2.c":15:13 516 {movsd_hardfloat}
     (expr_list:REG_DEAD (reg/f:DI 120)
        (nil)))

r122 is assigned an FPR, and the power6 pattern doesn't provide
any alternatives that load from memory into FPRs, so we convert
this into a secondary memory reload.

Doing that for SDmode memory would cycle, but the rs6000 port has:

/* Implement TARGET_SECONDARY_RELOAD_NEEDED_MODE.  For SDmode values we         
   need to use DDmode, in all other cases we can use the same mode.  */
static machine_mode
rs6000_secondary_memory_needed_mode (machine_mode mode)
{
  if (lra_in_progress && mode == SDmode)
    return DDmode;
  return mode;
}

which says that the move should happen in DDmode instead.
This means that the eventual FPR reload will happen in DDmode
rather than SDmode.

The problem is that rs6000_can_change_mode_class doesn't allow
FPRs to change from SDmode to DDmode:

          if (from_size < 8 || to_size < 8)
            return false;

So there seems to be a contradiction here: secondary memory
reloads for FPRs have to happen in DDmode rather than SDmode,
but FPRs aren't allowed to change to DDmode from SDmode.

Previously this worked because LRA ignored
rs6000_can_change_mode_class and changed the mode of the
FPR regardless.  I guess that must have been the right
thing to do in context, but it would be good to pin down
exactly why the SD->DD mode change is OK for rs6000 in the
specific context of secondary memory reloads but not otherwise.

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (3 preceding siblings ...)
  2020-03-22 18:30 ` rsandifo at gcc dot gnu.org
@ 2020-03-22 18:39 ` rsandifo at gcc dot gnu.org
  2020-03-22 19:03 ` zsojka at seznam dot cz
                   ` (15 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2020-03-22 18:39 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
(In reply to Zdenek Sojka from comment #1)
> I observe the same issue, and it breaks libgcc build for me:

What configure arguments do you use?

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (4 preceding siblings ...)
  2020-03-22 18:39 ` rsandifo at gcc dot gnu.org
@ 2020-03-22 19:03 ` zsojka at seznam dot cz
  2020-03-22 19:05 ` rsandifo at gcc dot gnu.org
                   ` (14 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: zsojka at seznam dot cz @ 2020-03-22 19:03 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Zdenek Sojka <zsojka at seznam dot cz> ---
(In reply to rsandifo@gcc.gnu.org from comment #5)
> (In reply to Zdenek Sojka from comment #1)
> > I observe the same issue, and it breaks libgcc build for me:
> 
> What configure arguments do you use?

Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++
--enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra
--with-cloog --with-ppl --with-isl
--with-sysroot=/usr/powerpc-unknown-linux-gnu --build=x86_64-pc-linux-gnu
--host=x86_64-pc-linux-gnu --target=powerpc-unknown-linux-gnu
--with-ld=/usr/bin/powerpc-unknown-linux-gnu-ld
--with-as=/usr/bin/powerpc-unknown-linux-gnu-as --disable-libstdcxx-pch
--prefix=/repo/gcc-trunk//binary-trunk-r10-7229-20200317212116-cd0b7124273-checking-yes-rtl-df-extra-powerpc

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (5 preceding siblings ...)
  2020-03-22 19:03 ` zsojka at seznam dot cz
@ 2020-03-22 19:05 ` rsandifo at gcc dot gnu.org
  2020-03-23  1:19 ` segher at gcc dot gnu.org
                   ` (13 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2020-03-22 19:05 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
Created attachment 48080
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48080&action=edit
Proof-of-concept hack to back up the point in comment 4

This hack shows what I mean in comment 4.  It "fixes" the three
testcases but almost certainly isn't correct.  The point is that
before r10-7312 we did the mode change regardless of what
rs6000_can_change_mode_class said.

I don't know enough about powerpc to know what cases:

          if (from_size < 8 || to_size < 8)
            return false;

is handling.

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (6 preceding siblings ...)
  2020-03-22 19:05 ` rsandifo at gcc dot gnu.org
@ 2020-03-23  1:19 ` segher at gcc dot gnu.org
  2020-03-23  8:07 ` rguenth at gcc dot gnu.org
                   ` (12 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: segher at gcc dot gnu.org @ 2020-03-23  1:19 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from Segher Boessenkool <segher at gcc dot gnu.org> ---
SFmode values are stored as DP IEEE float normally.  There may be other
cases as well, but this is the obvious one.

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (7 preceding siblings ...)
  2020-03-23  1:19 ` segher at gcc dot gnu.org
@ 2020-03-23  8:07 ` rguenth at gcc dot gnu.org
  2020-03-23 10:20 ` rsandifo at gcc dot gnu.org
                   ` (11 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-03-23  8:07 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |10.0
           Keywords|                            |ra
           Priority|P3                          |P1

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (8 preceding siblings ...)
  2020-03-23  8:07 ` rguenth at gcc dot gnu.org
@ 2020-03-23 10:20 ` rsandifo at gcc dot gnu.org
  2020-03-23 12:35 ` segher at gcc dot gnu.org
                   ` (10 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2020-03-23 10:20 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #9 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
(In reply to Segher Boessenkool from comment #8)
> SFmode values are stored as DP IEEE float normally.  There may be other
> cases as well, but this is the obvious one.

OK, thanks.  Does the same problem affect decimal floats (i.e. SD an DD)?

If not, maybe the answer really is to allow these cases through,
but probably without the lra_in_progress check in the hack/patch.

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (9 preceding siblings ...)
  2020-03-23 10:20 ` rsandifo at gcc dot gnu.org
@ 2020-03-23 12:35 ` segher at gcc dot gnu.org
  2020-03-23 13:43 ` rsandifo at gcc dot gnu.org
                   ` (9 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: segher at gcc dot gnu.org @ 2020-03-23 12:35 UTC (permalink / raw)
  To: gcc-bugs

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

Segher Boessenkool <segher at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |meissner at gcc dot gnu.org

--- Comment #10 from Segher Boessenkool <segher at gcc dot gnu.org> ---
An SDmode value is stored in the rightmost 32 bits of an FPR, while a DDmode
one uses all 64 bits of an FPR.  So yeah I think you're plan is correct and
will work.

(Cc: Mike, he should know more, I only read manuals :-) )

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (10 preceding siblings ...)
  2020-03-23 12:35 ` segher at gcc dot gnu.org
@ 2020-03-23 13:43 ` rsandifo at gcc dot gnu.org
  2020-03-23 15:17 ` segher at gcc dot gnu.org
                   ` (8 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2020-03-23 13:43 UTC (permalink / raw)
  To: gcc-bugs

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

rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #48080|0                           |1
        is obsolete|                            |

--- Comment #11 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
Created attachment 48088
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48088&action=edit
Candidate patch

OK, thanks. This version drops the lra_in_progress hack and
makes the test symmetric.  As mentioned in the commit
message, I'd wondered about generalising it further and
allowing any 64-bit mode, but that seems unnecessarily
dangerous for stage 4.

The previous hack passed bootstrap & regtest on gcc112.
I'll try with this version too.

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (11 preceding siblings ...)
  2020-03-23 13:43 ` rsandifo at gcc dot gnu.org
@ 2020-03-23 15:17 ` segher at gcc dot gnu.org
  2020-03-23 18:30 ` rsandifo at gcc dot gnu.org
                   ` (7 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: segher at gcc dot gnu.org @ 2020-03-23 15:17 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #12 from Segher Boessenkool <segher at gcc dot gnu.org> ---
That patch looks fine, thank you!

Is there some way you can test if this works?  Ideally in the testsuite
of course, but that can be hard :-/

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (12 preceding siblings ...)
  2020-03-23 15:17 ` segher at gcc dot gnu.org
@ 2020-03-23 18:30 ` rsandifo at gcc dot gnu.org
  2020-03-23 18:33 ` zsojka at seznam dot cz
                   ` (6 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2020-03-23 18:30 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #13 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
(In reply to Segher Boessenkool from comment #12)
> That patch looks fine, thank you!
> 
> Is there some way you can test if this works?  Ideally in the testsuite
> of course, but that can be hard :-/

I've now tried doing a bootstrap & regtest with --with-cpu-power6 as well,
comparing without the lra patch with after both patches.  (With master the
build hangs in the same way as it did for Zdenek.)  There didn't seem
to be any differences in test results.

Hopefully that will have given some execution test coverage when
running things like gcc.dg/dfp and c-c++-common/dfp.

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (13 preceding siblings ...)
  2020-03-23 18:30 ` rsandifo at gcc dot gnu.org
@ 2020-03-23 18:33 ` zsojka at seznam dot cz
  2020-03-24 10:36 ` segher at gcc dot gnu.org
                   ` (5 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: zsojka at seznam dot cz @ 2020-03-23 18:33 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #14 from Zdenek Sojka <zsojka at seznam dot cz> ---
(In reply to rsandifo@gcc.gnu.org from comment #11)
> Created attachment 48088 [details]
> Candidate patch

It fixes the build for me.
I am unable to find a way how to run the testsuite on a non-native system
(using qemu userspace emulation).

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (14 preceding siblings ...)
  2020-03-23 18:33 ` zsojka at seznam dot cz
@ 2020-03-24 10:36 ` segher at gcc dot gnu.org
  2020-03-24 10:41 ` segher at gcc dot gnu.org
                   ` (4 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: segher at gcc dot gnu.org @ 2020-03-24 10:36 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #15 from Segher Boessenkool <segher at gcc dot gnu.org> ---
(In reply to rsandifo@gcc.gnu.org from comment #13)
> (In reply to Segher Boessenkool from comment #12)
> > That patch looks fine, thank you!
> > 
> > Is there some way you can test if this works?  Ideally in the testsuite
> > of course, but that can be hard :-/
> 
> I've now tried doing a bootstrap & regtest with --with-cpu-power6 as well,
> comparing without the lra patch with after both patches.  (With master the
> build hangs in the same way as it did for Zdenek.)  There didn't seem
> to be any differences in test results.
> 
> Hopefully that will have given some execution test coverage when
> running things like gcc.dg/dfp and c-c++-common/dfp.

Excellent :-)


Segher

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (15 preceding siblings ...)
  2020-03-24 10:36 ` segher at gcc dot gnu.org
@ 2020-03-24 10:41 ` segher at gcc dot gnu.org
  2020-03-25 11:06 ` doko at debian dot org
                   ` (3 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: segher at gcc dot gnu.org @ 2020-03-24 10:41 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #16 from Segher Boessenkool <segher at gcc dot gnu.org> ---
(In reply to Zdenek Sojka from comment #14)
> (In reply to rsandifo@gcc.gnu.org from comment #11)
> > Created attachment 48088 [details]
> > Candidate patch
> 
> It fixes the build for me.
> I am unable to find a way how to run the testsuite on a non-native system
> (using qemu userspace emulation).

Yeah, with qemu it is harder than with proper emulators (qemu does not
mimic any existing cpu model closely).  It should be possible if you do
some magic in a boards file.

Maybe ask on gcc@?  And/or start a topic for it on the wiki?

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (16 preceding siblings ...)
  2020-03-24 10:41 ` segher at gcc dot gnu.org
@ 2020-03-25 11:06 ` doko at debian dot org
  2020-03-25 16:35 ` law at redhat dot com
                   ` (2 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: doko at debian dot org @ 2020-03-25 11:06 UTC (permalink / raw)
  To: gcc-bugs

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

Matthias Klose <doko at debian dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |doko at debian dot org

--- Comment #17 from Matthias Klose <doko at debian dot org> ---
*** Bug 94318 has been marked as a duplicate of this bug. ***

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (17 preceding siblings ...)
  2020-03-25 11:06 ` doko at debian dot org
@ 2020-03-25 16:35 ` law at redhat dot com
  2020-03-25 16:38 ` cvs-commit at gcc dot gnu.org
  2020-03-25 16:38 ` law at redhat dot com
  20 siblings, 0 replies; 22+ messages in thread
From: law at redhat dot com @ 2020-03-25 16:35 UTC (permalink / raw)
  To: gcc-bugs

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

Jeffrey A. Law <law at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |law at redhat dot com

--- Comment #18 from Jeffrey A. Law <law at redhat dot com> ---
I put the candidate patch into my tester which will run it on ppc64 and ppc64le
native.  Both ran fine and it fixed the regressions associated with Richard's
LRA patch.  They also both successfully built glibc and the kernel.

Given Segher's c#12, I'm going to go ahead and commit the patch from c#11.

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (18 preceding siblings ...)
  2020-03-25 16:35 ` law at redhat dot com
@ 2020-03-25 16:38 ` cvs-commit at gcc dot gnu.org
  2020-03-25 16:38 ` law at redhat dot com
  20 siblings, 0 replies; 22+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-03-25 16:38 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #19 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jeff Law <law@gcc.gnu.org>:

https://gcc.gnu.org/g:713ecb3d417363a4b12c725b335fce10355da206

commit r10-7380-g713ecb3d417363a4b12c725b335fce10355da206
Author: Jeff Law <law@redhat.com>
Date:   Wed Mar 25 10:37:31 2020 -0600

        rs6000: Allow FPRs to change between SDmode and DDmode [PR94254]

        g:497498c878d48754318e486428e2aa30854020b9 caused lra to cycle
        on some SDmode reloads for power6.  As explained in more detail
        in the PR comments, the problem was a conflict between two target
        hooks: rs6000_secondary_memory_needed_mode required SDmode FPR
        reloads to use DDmode memory (rightly, since using SDmode memory
        wouldn't make progress) but rs6000_can_change_mode_class didn't
        allow FPRs to change from SDmode to DDmode.  Previously lra
        ignored that and changed the mode anyway.

        From what Segher says, it sounds like the "from_size < 8 || to_size <
8"
        check is mostly there for SF<->64-bit subregs, and that SDmode is
stored
        in the way that target-independent code expects.  This patch therefore
        allows SD<->DD changes.

        I wondered about checking for SD<->64-bit changes instead, but that
        seemed like an unnecessary generalisation for this stage.

        2020-03-23  Richard Sandiford  <richard.sandiford@arm.com>

        gcc/
                PR target/94254
                * config/rs6000/rs6000.c (rs6000_can_change_mode_class): Allow
                FPRs to change between SDmode and DDmode.

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

* [Bug target/94254] [10 regression] r10-7312 causes compiler hangs
  2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
                   ` (19 preceding siblings ...)
  2020-03-25 16:38 ` cvs-commit at gcc dot gnu.org
@ 2020-03-25 16:38 ` law at redhat dot com
  20 siblings, 0 replies; 22+ messages in thread
From: law at redhat dot com @ 2020-03-25 16:38 UTC (permalink / raw)
  To: gcc-bugs

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

Jeffrey A. Law <law at redhat dot com> changed:

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

--- Comment #20 from Jeffrey A. Law <law at redhat dot com> ---
Fixed by Richard's patch.

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

end of thread, other threads:[~2020-03-25 16:38 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-21 20:52 [Bug target/94254] New: [10 regression] r10-7312 causes compiler hangs seurer at linux dot vnet.ibm.com
2020-03-22  9:27 ` [Bug target/94254] " zsojka at seznam dot cz
2020-03-22  9:30 ` zsojka at seznam dot cz
2020-03-22 17:11 ` rsandifo at gcc dot gnu.org
2020-03-22 18:30 ` rsandifo at gcc dot gnu.org
2020-03-22 18:39 ` rsandifo at gcc dot gnu.org
2020-03-22 19:03 ` zsojka at seznam dot cz
2020-03-22 19:05 ` rsandifo at gcc dot gnu.org
2020-03-23  1:19 ` segher at gcc dot gnu.org
2020-03-23  8:07 ` rguenth at gcc dot gnu.org
2020-03-23 10:20 ` rsandifo at gcc dot gnu.org
2020-03-23 12:35 ` segher at gcc dot gnu.org
2020-03-23 13:43 ` rsandifo at gcc dot gnu.org
2020-03-23 15:17 ` segher at gcc dot gnu.org
2020-03-23 18:30 ` rsandifo at gcc dot gnu.org
2020-03-23 18:33 ` zsojka at seznam dot cz
2020-03-24 10:36 ` segher at gcc dot gnu.org
2020-03-24 10:41 ` segher at gcc dot gnu.org
2020-03-25 11:06 ` doko at debian dot org
2020-03-25 16:35 ` law at redhat dot com
2020-03-25 16:38 ` cvs-commit at gcc dot gnu.org
2020-03-25 16:38 ` law at redhat dot com

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).