public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Joern Rennecke <amylaar@cygnus.co.uk>
To: Michael Hayes <m.hayes@elec.canterbury.ac.nz>
Cc: gcc@gcc.gnu.org
Subject: Re: Loop patch update (Was: Re: Autoincrement examples)
Date: Tue, 21 Dec 1999 17:04:00 -0000	[thread overview]
Message-ID: <199912220104.BAA13879@phal.cygnus.co.uk> (raw)
In-Reply-To: <199912110058.AAA21045@phal.cygnus.co.uk>

When I tried the c4x compiler built with my almagamated patches on a
combine.i from it own build (x86 hosted), I get a SEGV.  I eventally tracked
it down to the DECL_RTL of uid_cuid being clobbered by a loop transformation.
On the c4x, (mem/f:QI (symbol_ref:QI ("uid_cuid")) can be shared.

*** loop.c-19991221	Tue Dec 21 22:49:24 1999
--- loop.c	Wed Dec 22 00:46:12 1999
*************** general_induction_var (x, src_reg, add_v
*** 6421,6428 ****
--- 6421,6437 ----
  #if 0 /* Invariants are useful to derive other givs from.  */
    /* If this is an invariant, forget it, it isn't a giv.  */
    if (invariant_p (x) == 1)
      return 0;
+ #else
+   /* If this is an address, we couldn't derive other givs from it, so ignore
+      it if it's invariant.
+      If we recorded these as givs, we could generate incorrect code and/or
+      corrupt the DECL_RTL of global variables on some targets when the
+      address is substituted with a pseudo, since MEMs with a
+      CONSTANT_ADDRESS_P address can be shared.  */
+   if (is_addr && invariant_p (x) == 1)
+     return 0;
  #endif
  
    /* See if the expression could be a giv and get its form.
       Mark our place on the obstack in case we don't find a giv.  */

WARNING: multiple messages have this Message-ID
From: Joern Rennecke <amylaar@cygnus.co.uk>
To: Michael Hayes <m.hayes@elec.canterbury.ac.nz>
Cc: gcc@gcc.gnu.org
Subject: Re: Loop patch update (Was: Re: Autoincrement examples)
Date: Fri, 31 Dec 1999 23:54:00 -0000	[thread overview]
Message-ID: <199912220104.BAA13879@phal.cygnus.co.uk> (raw)
Message-ID: <19991231235400.xZBIpVsb7lOA7xC7eTdo3vASV2Tm2P0Ct32Q4nelpJI@z> (raw)
In-Reply-To: <199912110058.AAA21045@phal.cygnus.co.uk>

When I tried the c4x compiler built with my almagamated patches on a
combine.i from it own build (x86 hosted), I get a SEGV.  I eventally tracked
it down to the DECL_RTL of uid_cuid being clobbered by a loop transformation.
On the c4x, (mem/f:QI (symbol_ref:QI ("uid_cuid")) can be shared.

*** loop.c-19991221	Tue Dec 21 22:49:24 1999
--- loop.c	Wed Dec 22 00:46:12 1999
*************** general_induction_var (x, src_reg, add_v
*** 6421,6428 ****
--- 6421,6437 ----
  #if 0 /* Invariants are useful to derive other givs from.  */
    /* If this is an invariant, forget it, it isn't a giv.  */
    if (invariant_p (x) == 1)
      return 0;
+ #else
+   /* If this is an address, we couldn't derive other givs from it, so ignore
+      it if it's invariant.
+      If we recorded these as givs, we could generate incorrect code and/or
+      corrupt the DECL_RTL of global variables on some targets when the
+      address is substituted with a pseudo, since MEMs with a
+      CONSTANT_ADDRESS_P address can be shared.  */
+   if (is_addr && invariant_p (x) == 1)
+     return 0;
  #endif
  
    /* See if the expression could be a giv and get its form.
       Mark our place on the obstack in case we don't find a giv.  */

  parent reply	other threads:[~1999-12-21 17:04 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-09-22  3:09 Autoincrement examples Bernd Schmidt
1999-09-22  4:32 ` Michael Hayes
1999-09-22  4:39   ` Bernd Schmidt
1999-09-22  4:57     ` Michael Hayes
1999-09-30 18:02       ` Michael Hayes
1999-09-22  5:00     ` Michael Hayes
1999-09-22 23:23       ` Michael Hayes
1999-09-23  1:50         ` Bernd Schmidt
1999-09-23  4:37           ` Michael Hayes
1999-09-30 18:02             ` Michael Hayes
1999-09-30 18:02           ` Bernd Schmidt
1999-09-30 18:02         ` Michael Hayes
1999-09-30 18:02       ` Michael Hayes
1999-09-30 18:02     ` Bernd Schmidt
1999-09-24  4:35   ` Michael Hayes
1999-09-30 18:02     ` Michael Hayes
1999-11-18  0:22     ` Jeffrey A Law
1999-11-18  0:45       ` Michael Hayes
1999-11-18  7:33         ` Joern Rennecke
1999-11-18 16:25           ` Jeffrey A Law
1999-11-30 23:37             ` Jeffrey A Law
1999-12-13 15:28             ` Joern Rennecke
1999-12-31 23:54               ` Joern Rennecke
1999-11-30 23:37           ` Joern Rennecke
1999-11-18 17:00         ` Michael Hayes
1999-11-18 18:02           ` Joern Rennecke
1999-11-18 18:27             ` Joern Rennecke
1999-11-30 23:37               ` Joern Rennecke
1999-11-18 21:28             ` Michael Hayes
1999-11-18 23:06               ` Toshiyasu Morita
1999-11-19  2:35                 ` Michael Hayes
1999-11-30 23:37                   ` Michael Hayes
1999-11-30 23:37                 ` Toshiyasu Morita
1999-11-19  8:49               ` Joern Rennecke
1999-11-30 23:37                 ` Joern Rennecke
1999-11-22 23:43               ` Jeffrey A Law
1999-11-23  7:07                 ` Joern Rennecke
1999-11-30 23:37                   ` Joern Rennecke
1999-11-30 23:37                 ` Jeffrey A Law
1999-11-30 23:37               ` Michael Hayes
1999-11-22 23:47             ` Jeffrey A Law
1999-11-30 23:37               ` Jeffrey A Law
1999-11-30 23:37             ` Joern Rennecke
1999-11-30 23:37           ` Michael Hayes
1999-12-08 10:57           ` Joern Rennecke
1999-12-08 14:38             ` Michael Hayes
1999-12-10  8:42               ` Joern Rennecke
1999-12-10 13:36                 ` Michael Hayes
1999-12-10 16:59                   ` Loop patch update (Was: Re: Autoincrement examples) Joern Rennecke
1999-12-13 14:37                     ` Joern Rennecke
1999-12-13 14:59                       ` Autoincrement example (Was: Re: Loop patch update (Was: Re: Autoincrement examples)) Joern Rennecke
1999-12-31 23:54                         ` Joern Rennecke
1999-12-13 20:20                       ` Loop patch update (Was: Re: Autoincrement examples) Jeffrey A Law
1999-12-14 11:20                         ` Joern Rennecke
1999-12-31 23:54                           ` Joern Rennecke
1999-12-31 23:54                         ` Jeffrey A Law
1999-12-31 23:54                       ` Joern Rennecke
1999-12-21 17:04                     ` Joern Rennecke [this message]
1999-12-31 23:54                       ` Joern Rennecke
2000-01-04  0:54                       ` Jeffrey A Law
2000-01-20 23:33                         ` Joern Rennecke
1999-12-31 23:54                     ` Joern Rennecke
1999-12-14 15:49                   ` Autoincrement patches " Joern Rennecke
1999-12-14 19:58                     ` Autoincrement patches Michael Hayes
1999-12-16 15:05                       ` Joern Rennecke
1999-12-31 23:54                         ` Joern Rennecke
1999-12-31 23:54                       ` Michael Hayes
1999-12-31 23:54                     ` Autoincrement patches (Was: Re: Autoincrement examples) Joern Rennecke
1999-12-31 23:54                   ` Autoincrement examples Michael Hayes
1999-12-31 23:54                 ` Joern Rennecke
1999-12-31 23:54               ` Michael Hayes
1999-12-31 23:54             ` Joern Rennecke
1999-12-17 18:08           ` Joern Rennecke
1999-12-17 18:27             ` Michael Hayes
1999-12-31 23:54               ` Michael Hayes
1999-12-31 23:54             ` Joern Rennecke
1999-11-30 23:37         ` Michael Hayes
1999-11-18  7:29       ` Joern Rennecke
1999-11-30 23:37         ` Joern Rennecke
1999-11-18 14:29       ` Joern Rennecke
1999-11-22 23:47         ` Jeffrey A Law
1999-11-30 23:37           ` Jeffrey A Law
1999-11-30 23:37         ` Joern Rennecke
1999-11-30 23:37       ` Jeffrey A Law
1999-09-30 18:02   ` Michael Hayes
1999-09-22 12:31 ` Denis Chertykov
1999-09-30 18:02   ` Denis Chertykov
1999-09-29  6:15 ` Rask Ingemann Lambertsen
1999-09-30 18:02   ` Rask Ingemann Lambertsen
1999-09-30 18:02 ` Bernd Schmidt

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=199912220104.BAA13879@phal.cygnus.co.uk \
    --to=amylaar@cygnus.co.uk \
    --cc=gcc@gcc.gnu.org \
    --cc=m.hayes@elec.canterbury.ac.nz \
    /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).