This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: Bootstrap
- To: Mark Mitchell <mark at codesourcery dot com>
- Subject: Re: Bootstrap
- From: Zack Weinberg <zack at wolery dot cumb dot org>
- Date: Sat, 4 Mar 2000 11:29:20 -0800
- Cc: Jan Hubicka <jhub6202 at ss1000 dot ms dot mff dot cuni dot cz>, gcc-bugs at gcc dot gnu dot org
- References: <20000304111243C.mitchell@codesourcery.com>
On Sat, Mar 04, 2000 at 11:12:43AM -0800, Mark Mitchell wrote:
>
> Jan --
>
> The bootstrap is still broken on i686-pc-linux-gnu.
>
> Reverting to before this change:
>
> Mon Feb 28 12:53:57 MET 2000 Jan Hubicka <jh@suse.cz>
>
> * calls.c (expand_call): Attempt to combine stack adjustments with
> pending stack adjustments.
>
> allows a successful bootstrap. I'm not sure whether or not that
> change is the only problem -- I reverted all subsequent changes as
> well in my tree. So, it could be that this problem is fixed -- but
> that some other patch introduced the problem.
This is a sufficient change to restore i386 to bootstrap:
===================================================================
Index: builtins.c
--- builtins.c 2000/02/29 02:34:46 1.32
+++ builtins.c 2000/03/04 19:23:26
@@ -1328,6 +1328,9 @@ expand_builtin_strlen (exp, target, mode
tree arglist = TREE_OPERAND (exp, 1);
enum machine_mode value_mode = TYPE_MODE (TREE_TYPE (exp));
+ /* Currently busted. */
+ return 0;
+
if (arglist == 0
/* Arg could be non-pointer if user redeclared this fcn wrong. */
|| TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))) != POINTER_TYPE)
The actual problem appears to be that the strlensi expander in i386.md
(a) uses uninitialized variables, and (b) can FAIL. I suspect that
the change that exposed the problem was one of kenner's sizetype
mutations, but can't prove it.
I'm not at all convinced that the strlensi expander should exist. rep
scasb is dead slow on modern CPUs and the alternate is huge. Under
what conditions is it a performance win?
zw