public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "jakub at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/46171] [4.6 Regression] ICE: in gen_rtx_SUBREG, at emit-rtl.c:774 with -fno-tree-dce -g
Date: Wed, 27 Oct 2010 02:51:00 -0000	[thread overview]
Message-ID: <20101027025100.P0fU3_VKLKgSaOn4RG9GFfMZDANM1fCPfM7SB-zheyE@z> (raw)
In-Reply-To: <bug-46171-4@http.gcc.gnu.org/bugzilla/>

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46171

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2010-10-27 02:51:32 UTC ---
So we have RTL like:
(insn 6 3 7 2 (set (reg:SF 21 xmm0)
        (reg/v:SF 61 [ f ])) pr46171.c:7 110 {*movsf_internal}
     (nil))

(call_insn 7 6 17 2 (set (reg:SF 21 xmm0)
        (call (mem:QI (symbol_ref:DI ("barf") [flags 0x41] <function_decl
0x7ffff16d1000 barf>) [0 S1 A8])
            (const_int 0 [0]))) pr46171.c:7 883 {*call_value_0_rex64}
     (nil)
    (expr_list:REG_DEP_TRUE (use (reg:SF 21 xmm0))
        (nil)))

(debug_insn 17 7 9 2 (var_location:SF D#2 (reg:SF 21 xmm0)) -1
     (nil))

(debug_insn 9 17 10 2 (var_location:SF f (debug_expr:SF D#2)) pr46171.c:7 -1
     (nil))

(insn 10 9 11 2 (set (reg:QI 0 ax)
        (const_int 0 [0])) pr46171.c:8 66 {*movqi_internal}
     (nil))

(call_insn 11 10 16 2 (set (reg:DF 21 xmm0)
        (call (mem:QI (symbol_ref:DI ("bard") [flags 0x41] <function_decl
0x7ffff16b2f00 bard>) [0 S1 A8])
            (const_int 0 [0]))) pr46171.c:8 883 {*call_value_0_rex64}
     (expr_list:REG_UNUSED (reg:DF 21 xmm0)
        (nil))
    (expr_list:REG_DEP_TRUE (use (reg:QI 0 ax))
        (nil)))

(debug_insn 16 11 13 2 (var_location:DF D#1 (reg:DF 21 xmm0)) -1
     (nil))

(debug_insn 13 16 0 2 (var_location:DF d (debug_expr:DF D#1)) pr46171.c:8 -1
     (nil))

debug insn 16 adds DFmode use of xmm0 via dead_debug_add.  Then the call_insn
before it isn't called for reg 21, as there are no uses of it, just sets.
Then another dead_debug_add is called for register 21 on insn 17, this time in
SFmode and then finally a dead_debug_insert_before is called on the first call
insn because reg 21 is also used there, not just set.  As we have both SFmode
and DFmode in dead debug structures for reg 21, it tries to create a SFmode
SUBREG of the DFmode DEBUG_EXPR and ICEs.


  parent reply	other threads:[~2010-10-27  2:51 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-25 20:54 [Bug rtl-optimization/46171] New: " zsojka at seznam dot cz
2010-10-25 20:58 ` [Bug target/46171] " pinskia at gcc dot gnu.org
2010-10-26  0:50 ` jakub at gcc dot gnu.org
2010-10-26  7:49 ` hjl.tools at gmail dot com
2010-10-27  2:51 ` jakub at gcc dot gnu.org [this message]
2010-11-09 19:05 ` [Bug debug/46171] " jakub at gcc dot gnu.org
2010-11-09 19:21 ` jakub at gcc dot gnu.org
2010-11-10 12:42 ` jakub 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=20101027025100.P0fU3_VKLKgSaOn4RG9GFfMZDANM1fCPfM7SB-zheyE@z \
    --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).