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

            Bug ID: 79388
           Summary: [6/7 Regression] wrong code with -O
                    -fno-tree-coalesce-vars
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zsojka at seznam dot cz
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
            Target: x86_64-pc-linux-gnu

Created attachment 40675
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40675&action=edit
reduced testcase

Output:
$ x86_64-pc-linux-gnu-gcc -O -fno-tree-coalesce-vars testcase.c
$ ./a.out 
Aborted

$ /repo/gcc-trunk/binary-latest-amd64/bin/x86_64-pc-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=/repo/gcc-trunk/binary-latest-amd64/bin/x86_64-pc-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-245149-checking-yes-rtl-df-extra-nographite-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/7.0.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++
--enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra
--without-cloog --without-ppl --without-isl --build=x86_64-pc-linux-gnu
--host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu
--with-ld=/usr/bin/x86_64-pc-linux-gnu-ld
--with-as=/usr/bin/x86_64-pc-linux-gnu-as --disable-libstdcxx-pch
--prefix=/repo/gcc-trunk//binary-trunk-245149-checking-yes-rtl-df-extra-nographite-amd64
Thread model: posix
gcc version 7.0.1 20170203 (experimental) (GCC) 


The .combine dump has:
(insn 22 21 23 2 (set (mem/c:SI (symbol_ref:DI ("c") [flags 0x2] <var_decl
0x7f1ffd25bb40 c>) [1 cD.1797+0 S4 A32])
        (reg/v:SI 91 [ pD.1798 ])) "testcase.c":12 82 {*movsi_internal}
     (expr_list:REG_DEAD (reg/v:SI 91 [ pD.1798 ])
        (nil)))
(note 23 22 24 2 NOTE_INSN_DELETED)
(insn 24 23 29 2 (set (reg:SI 102)
        (mem/c:SI (symbol_ref:DI ("a") [flags 0x2] <var_decl 0x7f1ffd25bab0 a>)
[1 aD.1796+0 S4 A32])) "testcase.c":13 82 {*movsi_internal}
     (nil))

reg 91 was originally used in insn 24, but the use somehow disappeared.

Reply via email to