public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "danglin at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug rtl-optimization/61641] New: [4.9 Regression] undefined label in jump_table_data
Date: Sat, 28 Jun 2014 22:44:00 -0000	[thread overview]
Message-ID: <bug-61641-4@http.gcc.gnu.org/bugzilla/> (raw)

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.


             reply	other threads:[~2014-06-28 22:44 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-28 22:44 danglin at gcc dot gnu.org [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-61641-4@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).