public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "hp at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/18701] [4.0 regression] mmix-knuth-mmixware gcc.c-torture/execute failures: 20010224-1.c, 20020216-1.c, 20040218-1.c, 20040709-2.c
Date: Mon, 20 Dec 2004 03:40:00 -0000	[thread overview]
Message-ID: <20041220034050.21089.qmail@sourceware.org> (raw)
In-Reply-To: <20041128144007.18701.hp@gcc.gnu.org>


------- Additional Comments From hp at gcc dot gnu dot org  2004-12-20 03:40 -------
On the assumption that the above transformation is valid [because when we see
the (subreg:DI (mem:HI ...)) we should think of it as a (reg:DI ...)], we later
get (though I have no clue why there's SImode here):
Breakpoint 8, try_combine (i3=0xf6efe398, i2=0xf6efe370, i1=0x0,
new_direct_jump_p=0xfefffa28)
    at /home/hp/combined/combined/gcc/combine.c:1629
i1 = (nil)
i2 = (insn 16 15 17 0 (set (subreg:DI (reg:HI 276) 0)
        (plus:DI (reg:DI 272)
            (subreg:DI (mem:HI (plus:DI (reg/v/f:DI 269 [ y ])
                        (const_int 2 [0x2])) [3 S2 A16]) 0))) 7 {adddi3}
(insn_list:REG_DEP_TRUE 12 (nil))
    (expr_list:REG_DEAD (reg:DI 272)
        (expr_list:REG_DEAD (reg/v/f:DI 269 [ y ])
            (nil))))
i3 = (insn 17 16 18 0 (set (reg:SI 277)
        (subreg:SI (reg:HI 276) 0)) 2 {movsi} (insn_list:REG_DEP_TRUE 16 (nil))
    (expr_list:REG_DEAD (reg:HI 276)
        (nil)))

causing gcc to end up in combine_simplify_rtx
with x = (subreg:SI (subreg:HI (plus:DI (reg:DI 272)
            (subreg:DI (mem:HI (plus:DI (reg/v/f:DI 269 [ y ])
                        (const_int 2 [0x2])) [3 S2 A16]) 0)) 6) 0)
and now the subreg-will-be-a-reg-not-a-mem-access-in-the-outer-mode assumption
is made false, because x is transformed into
(plus:DI (reg:DI 272)
    (subreg:DI (mem:SI (plus:DI (reg/v/f:DI 269 [ y ])
                (const_int 6 [0x6])) [3 S4 A16]) 0))
where the mem is now an invalid address (accessing SImode at !SImode boundary)
though as the result is not a SEGV but an unexpected result, the test-case
will abort rather than the simulator simulate a SIGSEGV (or SIGBUS).

The solution should be along the lines to avoid generating the first paradoxical
subreg.

-- 


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


  parent reply	other threads:[~2004-12-20  3:40 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-28 14:40 [Bug target/18701] New: " hp at gcc dot gnu dot org
2004-11-28 15:08 ` [Bug target/18701] " pinskia at gcc dot gnu dot org
2004-12-02 12:17 ` lerdsuwa at gcc dot gnu dot org
2004-12-19 18:02 ` hp at gcc dot gnu dot org
2004-12-20  0:55 ` steven at gcc dot gnu dot org
2004-12-20  0:59 ` hp at gcc dot gnu dot org
2004-12-20  0:59 ` hp at gcc dot gnu dot org
2004-12-20  1:00 ` hp at bitrange dot com
2004-12-20  1:55 ` hp at gcc dot gnu dot org
2004-12-20  3:40 ` hp at gcc dot gnu dot org [this message]
2004-12-23 18:46 ` hp at gcc dot gnu dot org
2004-12-31 16:25 ` cvs-commit at gcc dot gnu dot org
2004-12-31 16:28 ` cvs-commit at gcc dot gnu dot org
2004-12-31 16:33 ` hp at gcc dot gnu dot org
2005-01-21  2:14 ` cvs-commit at gcc dot gnu dot 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=20041220034050.21089.qmail@sourceware.org \
    --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).