This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Bootstrap


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]