From: Jim Wilson <wilson@cygnus.com>
To: linux-ia64@vger.kernel.org
Subject: [Linux-ia64] toolchain patch.010 for tcl miscompilation
Date: Fri, 01 Sep 2000 22:08:30 +0000 [thread overview]
Message-ID: <marc-linux-ia64-105590678205443@msgid-missing> (raw)
The file tcl/generic/tclCompExpr.c was being miscompiled at -O2 due to
a strength reduction bug. This showed up as a gcc "make check" failure
if the toolchain was built with itself. I've added the following patch
to fix this problem.
2000-09-01 Jim Wilson <wilson@cygnus.com>
* loop.c (check_final_value): Check for biv use before checking for
giv use. Check for both biv and giv uses. Always set last_giv_use
if there is a giv use.
Index: loop.c
=================================RCS file: /cvs/gcc/egcs/gcc/loop.c,v
retrieving revision 1.277
diff -p -r1.277 loop.c
*** loop.c 2000/08/29 19:15:26 1.277
--- loop.c 2000/09/01 21:53:40
*************** check_final_value (loop, v)
*** 5677,5695 ****
if (GET_CODE (p) = INSN || GET_CODE (p) = JUMP_INSN
|| GET_CODE (p) = CALL_INSN)
{
! if (biv_increment_seen)
{
! if (reg_mentioned_p (v->dest_reg, PATTERN (p)))
{
v->replaceable = 0;
v->not_replaceable = 1;
break;
}
}
- else if (reg_set_p (v->src_reg, PATTERN (p)))
- biv_increment_seen = 1;
- else if (reg_mentioned_p (v->dest_reg, PATTERN (p)))
- last_giv_use = p;
}
}
--- 5677,5701 ----
if (GET_CODE (p) = INSN || GET_CODE (p) = JUMP_INSN
|| GET_CODE (p) = CALL_INSN)
{
! /* It is possible for the BIV increment to use the GIV if we
! have a cycle. Thus we must be sure to check each insn for
! both BIV and GIV uses, and we must check for BIV uses
! first. */
!
! if (! biv_increment_seen
! && reg_set_p (v->src_reg, PATTERN (p)))
! biv_increment_seen = 1;
!
! if (reg_mentioned_p (v->dest_reg, PATTERN (p)))
{
! if (biv_increment_seen)
{
v->replaceable = 0;
v->not_replaceable = 1;
break;
}
+ last_giv_use = p;
}
}
}
reply other threads:[~2000-09-01 22:08 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=marc-linux-ia64-105590678205443@msgid-missing \
--to=wilson@cygnus.com \
--cc=linux-ia64@vger.kernel.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