This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Unreviewed fix for bootstrap failure
- From: Geoff Keating <geoffk at geoffk dot org>
- To: dave at hiauly1 dot hia dot nrc dot ca
- Cc: rth at redhat dot com, gcc-patches at gcc dot gnu dot org
- Date: Sun, 29 Jun 2003 20:35:39 -0700
- Subject: Re: Unreviewed fix for bootstrap failure
- References: <200306290434.h5T4Y5SD024503@hiauly1.hia.nrc.ca>
> Date: Sun, 29 Jun 2003 00:34:05 -0400 (EDT)
> From: "John David Anglin" <dave@hiauly1.hia.nrc.ca>
> > 2. Are you sure this is a good idea? What happens if a label is deleted
> > that's referred to from a REG_EQUIV note, and the note is later
> > substituted for the register (say, by reload)?
>
> As I understand the current situation, the only notes that can contain
> label references are REG_EQUAL notes. These cannot be used for
> substitution, only cse. Thus, this isn't a problem.
I don't see why that would be the case. Surely it's valid to have a
REG_EQUIV note that says "this is (label_ref ...)".
> I agree that if there was a more general usage of notes with symbol
> references, then they would have to be included in the label usage
> counts.
>
> The patch doesn't change the current semantics. For example, label
> usage counts are not updated when a register note is deleted. Situations
> when the labels in an instruction are replaced are relatively rare.
Yes, this is probably what's been saving us until now.
> Otherwise, the patch which added these notes would have created a lot
> more problems. Thus, it seemed the most expediate fix was to the
> replacement. The other alternative was to delete REG_EQUAL notes
> containing symbol references from instructions that needed label
> replacement.
Why can't we simply keep track of each replacement? Surely it's as
easy as incrementing one counter, and decrementing another, for each
place where the replacement is done.
--
- Geoffrey Keating <geoffk@geoffk.org>