public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/61641] New: [4.9 Regression] undefined label in jump_table_data
@ 2014-06-28 22:44 danglin at gcc dot gnu.org
  2014-06-28 22:45 ` [Bug rtl-optimization/61641] " danglin at gcc dot gnu.org
                   ` (15 more replies)
  0 siblings, 16 replies; 17+ messages in thread
From: danglin at gcc dot gnu.org @ 2014-06-28 22:44 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 61641
           Summary: [4.9 Regression] undefined label in jump_table_data
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: danglin at gcc dot gnu.org
              Host: hppa-unknown-linux-gnu
            Target: hppa-unknown-linux-gnu
             Build: hppa-unknown-linux-gnu

Created attachment 33027
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33027&action=edit
Preprocessed source

dave@mx3210:~/mesa-gcc$ g++ -fpreprocessed -fvisibility=hidden -g -O2 -Wformat
-Werror=format-security -Wall -Wall -fno-strict-aliasing -fno-builtin-memcmp
-MT opt_vectorize.lo -MD -MP -MF .deps/opt_vectorize.Tpo -c opt_vectorize.ii 
-fPIC -DPIC -o opt_vectorize.o
/tmp/ccGEh3f3.s: Assembler messages:
/tmp/ccGEh3f3.s:717: Error: can't resolve `.L71' {.text section} - `.L78'
{*UND* section}
/tmp/ccGEh3f3.s:718: Error: can't resolve `.L79' {.text section} - `.L78'
{*UND* section}
/tmp/ccGEh3f3.s:719: Error: can't resolve `.L72' {.text section} - `.L78'
{*UND* section}
/tmp/ccGEh3f3.s:720: Error: can't resolve `.L82' {.text section} - `.L78'
{*UND* section}
/tmp/ccGEh3f3.s:721: Error: can't resolve `.L72' {.text section} - `.L78'
{*UND* section}
/tmp/ccGEh3f3.s:722: Error: can't resolve `.L72' {.text section} - `.L78'
{*UND* section}
/tmp/ccGEh3f3.s:723: Error: can't resolve `.L72' {.text section} - `.L78'
{*UND* section}
/tmp/ccGEh3f3.s:724: Error: can't resolve `.L70' {.text section} - `.L78'
{*UND* section}

We have following RTL after barriers pass:

(jump_insn:TI 135 164 136 (parallel [
            (set (pc)
                (mem:SI (plus:SI (mult:SI (reg:SI 20 %r20 [orig:141 D.35077 ]
[141])
                            (const_int 4 [0x4]))
                        (label_ref 136)) [0  S4 A32]))
            (clobber (reg:SI 21 %r21))
            (clobber (reg:SI 22 %r22))
        ]) ../../../../src/glsl/opt_vectorize.cpp:224 193 {casesi32p}
     (expr_list:REG_DEAD (reg:SI 20 %r20 [orig:141 D.35077 ] [141])
        (expr_list:REG_UNUSED (reg:SI 22 %r22)
            (expr_list:REG_UNUSED (reg:SI 21 %r21)
                (nil))))
 -> 136)
(code_label 136 135 295 78 "" [1 uses])
(insn 295 136 137 (const_int 1 [0x1]) -1
     (nil))
(jump_table_data 137 295 296 (addr_diff_vec:SI (label_ref:SI 136)
         [
            (label_ref:SI 62)
            (label_ref:SI 139)
            (label_ref:SI 57)
            (label_ref:SI 163)
            (label_ref:SI 57)
            (label_ref:SI 57)
            (label_ref:SI 57)
            (label_ref:SI 53)
        ]
        (const_int 0 [0])
        (const_int 0 [0])))
(insn 296 137 138 (const_int 2 [0x2]) -1
     (nil))
(barrier 138 296 53)

After dbr pass, we have:

(barrier 59 57 58)
(note 58 59 164 [bb 11] NOTE_INSN_BASIC_BLOCK)
(note 164 58 137 [bb 12] NOTE_INSN_BASIC_BLOCK)
(jump_table_data 137 164 296 (addr_diff_vec:SI (label_ref:SI 136)
         [
            (label_ref:SI 62)
            (label_ref:SI 139)
            (label_ref:SI 57)
            (label_ref:SI 163)
            (label_ref:SI 57)
            (label_ref:SI 57)
            (label_ref:SI 57)
            (label_ref:SI 53)
        ]
        (const_int 0 [0])
        (const_int 0 [0])))
(insn 296 137 138 (const_int 2 [0x2]) 211 {end_brtab}
     (nil))
(barrier 138 296 53)

The casesi jump and code_label 136 have been deleted, but not the
addr_diff_vec using code_label 136.

This results in the incorrect assembly code.


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

end of thread, other threads:[~2015-01-18 17:46 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-28 22:44 [Bug rtl-optimization/61641] New: [4.9 Regression] undefined label in jump_table_data danglin at gcc dot gnu.org
2014-06-28 22:45 ` [Bug rtl-optimization/61641] " danglin at gcc dot gnu.org
2014-06-28 22:46 ` danglin at gcc dot gnu.org
2014-07-01  1:42 ` danglin at gcc dot gnu.org
2014-07-07 11:10 ` [Bug rtl-optimization/61641] [4.9/4.10 " rguenth at gcc dot gnu.org
2014-07-16 13:30 ` jakub at gcc dot gnu.org
2014-08-07 23:32 ` danglin at gcc dot gnu.org
2014-08-08 18:52 ` danglin at gcc dot gnu.org
2014-08-08 23:37 ` [Bug target/61641] " danglin at gcc dot gnu.org
2014-08-11 16:54 ` danglin at gcc dot gnu.org
2014-08-16  3:12 ` [Bug target/61641] [4.9/5 " danglin at gcc dot gnu.org
2014-08-16 16:37 ` danglin at gcc dot gnu.org
2014-08-16 16:39 ` danglin at gcc dot gnu.org
2014-09-01  9:23 ` jakub at gcc dot gnu.org
2014-09-01 15:57 ` dave.anglin at bell dot net
2014-10-30 10:41 ` jakub at gcc dot gnu.org
2015-01-18 17:46 ` danglin 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).