public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "amacleod at redhat dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug inline-asm/23200] [4.2/4.3/4.4 Regression] rejects "i"(&var + 1)
Date: Mon, 26 Jan 2009 16:17:00 -0000	[thread overview]
Message-ID: <20090126161643.5305.qmail@sourceware.org> (raw)
In-Reply-To: <bug-23200-11104@http.gcc.gnu.org/bugzilla/>



------- Comment #40 from amacleod at redhat dot com  2009-01-26 16:16 -------
Created an attachment (id=17185)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17185&action=view)
possible patch

The problem is due to a check that was added to is_replaceable_p() in
tree-ssa-ter.c.  I presume this was added by Honza back in

2008-07-19  Jan Hubicka  <jh@suse.cz>
  (is_replaceable_p): Check that locations match; when aliasing
        is missing be conservative about loads.

The check is:

   if (!optimize
      && ((locus1 && locus1 != locus2) || (block1 && block1 != block2)))
    return false;

The locus's do not compare equal. This is presumably due to Aldy's enhanced
column information which can easily create different locus's for things that
are on the same line.

I presume this check is an attempt to preserve debug information at some level
by not merging expressions from different lines?   Honza will have to verify
this assumption.  I'm also unsure about why blocks for the locus's are compared
at the end of the expression.  There is a check to make sure the 2 expressions
are in the same block a few lines above, so why the locus block check as well? 
Shouldn't just locus comparing be sufficient?

In any case, if the locus block's are not checked, and the locus line numbers
are compared if *both* are valid, then the test case work.  With -ftree-ter of
course.

Honza will have to comment on the intent and rationale however, there may be
other reasons for that code.

A secondary question, why is TER turned off by default with this check in
place? It shouldn't destroy any critical debug info if only things that
originated on the same line are merged...   And on that note, I've added making
TER not lose locus's high on my todo list. There is nothing inherent in it that
would lose locus info, so I'm presuming there is an oversight in there
somewhere.  IS that the only problem with TER as far as -O0 goes?


-- 


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


  parent reply	other threads:[~2009-01-26 16:17 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-23200-11104@http.gcc.gnu.org/bugzilla/>
2005-10-29 15:11 ` [Bug inline-asm/23200] [4.0/4.1 regression] " steven at gcc dot gnu dot org
2005-10-31  4:37 ` mmitchel at gcc dot gnu dot org
2005-11-11  8:59 ` bonzini at gcc dot gnu dot org
2005-11-11  9:00 ` bonzini at gcc dot gnu dot org
2006-01-14  5:50 ` [Bug inline-asm/23200] [4.0/4.1/4.2 " pinskia at gcc dot gnu dot org
2006-01-15 23:15 ` mmitchel at gcc dot gnu dot org
2006-01-15 23:23 ` steven at gcc dot gnu dot org
2006-01-19 19:50 ` amacleod at redhat dot com
2006-02-04  0:16 ` mrs at apple dot com
2006-02-24  0:26 ` mmitchel at gcc dot gnu dot org
2006-02-24  2:17 ` mrs at apple dot com
2006-02-24  2:24 ` mark at codesourcery dot com
2006-05-13  8:27 ` stsp at users dot sourceforge dot net
2006-05-25  2:33 ` mmitchel at gcc dot gnu dot org
2006-10-04 22:20 ` jakub at gcc dot gnu dot org
2006-10-04 22:33 ` amacleod at redhat dot com
2006-10-05 19:29 ` stsp at users dot sourceforge dot net
2006-12-08 14:32 ` [Bug inline-asm/23200] [4.0/4.1/4.2/4.3 " amacleod at redhat dot com
2007-02-14  9:06 ` mmitchel at gcc dot gnu dot org
2007-03-10  1:36 ` [Bug inline-asm/23200] [4.0/4.1/4.2 " mmitchel at gcc dot gnu dot org
2007-03-10  1:40 ` mmitchel at gcc dot gnu dot org
2007-03-10  1:41 ` [Bug inline-asm/23200] [4.0/4.1/4.2/4.3 " pinskia at gcc dot gnu dot org
2007-03-12 13:11 ` amacleod at redhat dot com
2007-11-22 15:41 ` jakub at gcc dot gnu dot org
2007-11-22 15:53 ` jakub at gcc dot gnu dot org
2007-11-22 17:27 ` stsp at users dot sourceforge dot net
2008-01-16 22:34 ` [Bug inline-asm/23200] [4.1/4.2/4.3 Regression] " rguenth at gcc dot gnu dot org
2008-01-17 19:09 ` stsp at users dot sourceforge dot net
2008-07-04 20:01 ` [Bug inline-asm/23200] [4.1/4.2/4.3/4.4 " jsm28 at gcc dot gnu dot org
2008-07-05  5:29 ` stsp at users dot sourceforge dot net
2008-07-05  9:41 ` [Bug inline-asm/23200] [4.2/4.3/4.4 " jsm28 at gcc dot gnu dot org
2009-01-25 18:40 ` rguenth at gcc dot gnu dot org
2009-01-26 16:17 ` amacleod at redhat dot com [this message]
2009-03-31 18:54 ` [Bug inline-asm/23200] [4.3/4.4/4.5 " jsm28 at gcc dot gnu dot org
2009-08-04 12:30 ` rguenth at gcc dot gnu dot org
2010-05-22 19:00 ` [Bug inline-asm/23200] [4.3/4.4/4.5/4.6 " rguenth at gcc dot gnu dot org
2010-08-18 22:43 ` pinskia 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=20090126161643.5305.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).