diff options
author | Jakub Jelinek <jakub@redhat.com> | 2020-03-21 14:39:56 +0000 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2020-04-29 09:31:02 +0200 |
commit | ccf93cd0b21e9c0ff0a1d4ace59899fca25ac157 (patch) | |
tree | cad5d4911f7242a46226abde83d37b1ee826a0f4 /gcc | |
parent | afa3d80e86fb538ce7f5f1485fa774c11fdaf0f6 (diff) | |
download | gcc-ccf93cd0b21e9c0ff0a1d4ace59899fca25ac157.zip gcc-ccf93cd0b21e9c0ff0a1d4ace59899fca25ac157.tar.gz gcc-ccf93cd0b21e9c0ff0a1d4ace59899fca25ac157.tar.bz2 |
[gcn] Fix build with RTL checking [PR94248]
Building (for offloading) a '--target=amdgcn-amdhsa' GCC with
'--enable-checking=yes,extra,rtl' fails:
during RTL pass: split2
[...]/source-gcc/libgcc/libgcc2.c: In function '__absvdi2':
[...]/source-gcc/libgcc/libgcc2.c:271:1: internal compiler error: RTL check: expected code 'reg', have 'const_int' in rhs_regno, at rtl.h:1923
271 | }
| ^
0x565847 ???
[...]/source-gcc/gcc/rtl.c:881
0x59a8a4 ???
[...]/source-gcc/gcc/rtl.h:1923
0x12e3a5c ???
[...]/source-gcc/gcc/config/gcn/gcn.md:631
[...]
Makefile:501: recipe for target '_absvdi2.o' failed
make[4]: *** [_absvdi2.o] Error 1
make[4]: Leaving directory '[...]/build-gcc-offload-amdgcn-amdhsa/amdgcn-amdhsa/gfx900/libgcc'
gcc/
PR target/94248
* config/gcn/gcn.md (*mov<mode>_insn): Use
'reg_overlap_mentioned_p' to check for overlap.
Tested-by: Thomas Schwinge <thomas@codesourcery.com>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/gcn/gcn.md | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5541d9c..3321e88 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2020-04-29 Jakub Jelinek <jakub@redhat.com> + PR target/94248 + * config/gcn/gcn.md (*mov<mode>_insn): Use + 'reg_overlap_mentioned_p' to check for overlap. + PR target/94706 * config/ia64/ia64.c (hfa_element_mode): Use DECL_FIELD_ABI_IGNORED instead of cxx17_empty_base_field_p. diff --git a/gcc/config/gcn/gcn.md b/gcc/config/gcn/gcn.md index 8f59377..8cfb3a8 100644 --- a/gcc/config/gcn/gcn.md +++ b/gcc/config/gcn/gcn.md @@ -629,7 +629,7 @@ rtx outhi = gen_highpart_mode (SImode, <MODE>mode, operands[0]); /* Ensure that overlapping registers aren't corrupted. */ - if (REGNO (outlo) == REGNO (inhi)) + if (reg_overlap_mentioned_p (outlo, inhi)) { operands[0] = outhi; operands[1] = inhi; |