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. */
next prev 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).