public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "law at redhat dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/46878] V850 ICE in in maybe_add_or_update_dep_1, at sched-deps.c:854
Date: Sat, 22 Jan 2011 09:40:00 -0000	[thread overview]
Message-ID: <bug-46878-4-aYC8sbvDRK@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-46878-4@http.gcc.gnu.org/bugzilla/>

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

--- Comment #15 from Jeffrey A. Law <law at redhat dot com> 2011-01-22 04:03:24 UTC ---
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 01/21/11 17:41, dj at redhat dot com wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46878
> 
> --- Comment #12 from DJ Delorie <dj at redhat dot com> 2011-01-22 00:40:44 UTC ---
> Of course, one could argue that perhaps the compare should *not* have been
> removed?  I don't know how clever the new redundant compare removal code is.
I'm thinking that is the fundamental problem.

This appears to be a HAVE_cc0 target.  On a cc0 target the setter and
user must always remain consecutive.  The reason for that is insns
implicitly set cc0, which isn't reflected in the rtl/dataflow.  So if we
allowed anything in between setter & user it might clobber the flags
unexpectedly.


Prior to combine you have this:

(code_label 20 17 21 4 2 "" [1 uses])

(note 21 20 22 4 [bb 4] NOTE_INSN_BASIC_BLOCK)

(insn 22 21 23 4 (set (cc0)
        (compare (reg:SI 43 [ D.1959 ])
            (const_int 1 [0x1]))) test.c:10 16 {cmpsi_insn}
     (expr_list:REG_DEAD (reg:SI 43 [ D.1959 ])
        (nil)))

(insn 23 22 60 4 (set (reg/v:SI 44 [ c ])
        (ne:SI (cc0)
            (const_int 0 [0]))) test.c:10 40 {*setcc}
     (nil))


Everything looks fine and dandy.  The cc0 setter and cc0 user are
consecutive insns.

After combine you have:

(code_label 20 17 21 4 2 "" [1 uses])

(note 21 20 22 4 [bb 4] NOTE_INSN_BASIC_BLOCK)

(note 22 21 23 4 NOTE_INSN_DELETED)

(insn 23 22 60 4 (set (reg/v:SI 44 [ c ])
        (ne:SI (cc0)
            (const_int 0 [0]))) test.c:10 40 {*setcc}
     (nil))

(note 60 23 59 4 NOTE_INSN_DELETED)


Even if insn 22 was redundant on the paths leading to code_label 20, on
a HAVE_cc0 target, the cc0 setter and cc0 user must remain consecutive
insns thus deleting insn 22 is incorrect.


So, you need to track down why combine decides it's OK to delete insn 22.

jeff
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJNOlb2AAoJEBRtltQi2kC778wH/3fsKS9yq2BBqjK1cWFHbbkp
1IqAwk2cZAOYLWgtAIrmRKkoUAIKi7rqKzNfvy7qWJwtpLavX1SvQ69e4EBtc67R
ZdSq05H3n1MzU6tRx/TcF/SjMlO0vAct/AOSI6TvHK59eZGoYGSa0Mqaqw7LQCT+
zX4aT2x09w/tNA4qJgBLoEEw71dIfEszACz9F3T6k2ZMIHjyPQoBzt7k0YKGOcDU
0uv89djEHVmvr0mFkF7k5Pn/RlytibDVy/43aKUCmflWvsj7BsOkrKfruHDSdGtI
Yg9Zd2MPCDQ2gHrN0VaxOFITjwgMf9takt4gJYqKGOJMFcyiiaFlKSAgQlt0/bs=
=xVgr
-----END PGP SIGNATURE-----


  parent reply	other threads:[~2011-01-22  4:03 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-10  0:48 [Bug target/46878] New: " monaka@monami-software.com
2010-12-10  0:53 ` [Bug target/46878] " monaka@monami-software.com
2010-12-10  1:47 ` monaka@monami-software.com
2010-12-10  2:36 ` monaka@monami-software.com
2010-12-10 15:02 ` monaka@monami-software.com
2011-01-18  8:15 ` dj at redhat dot com
2011-01-18 13:50 ` law at redhat dot com
2011-01-18 13:56 ` law at redhat dot com
2011-01-21 22:39 ` dj at redhat dot com
2011-01-21 22:41 ` dj at redhat dot com
2011-01-22  0:43 ` law at redhat dot com
2011-01-22  0:50 ` law at redhat dot com
2011-01-22  1:11 ` dj at redhat dot com
2011-01-22  2:49 ` dj at redhat dot com
2011-01-22  3:46 ` law at redhat dot com
2011-01-22  3:57 ` law at redhat dot com
2011-01-22  9:40 ` law at redhat dot com [this message]
2011-01-26  0:09 ` dj at redhat dot com
2011-01-26 14:15 ` law at redhat dot com
2011-01-26 14:20 ` law at redhat dot com
2011-01-26 14:20 ` law at redhat dot com
2011-01-26 14:26 ` [Bug rtl-optimization/46878] " law at redhat dot com
2011-01-26 15:05 ` [Bug rtl-optimization/46878] [4.6 regression] " mikpe at it dot uu.se
2011-01-26 16:43 ` law at redhat dot com
2011-01-26 22:39 ` dj at gcc dot gnu.org
2011-01-27  1:25 ` dj at redhat dot com
2011-02-02 18:12 ` dnovillo 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-46878-4-aYC8sbvDRK@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).