This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] New testsuite regressions
> On Sun, 2003-11-30 at 14:26, Jan Hubicka wrote:
>
> > I am looking into this now. What architecture/flags did you used to
> > reproduce this?
> >
> None other than --disable-multilib. This is off of a vanilla bootstrap
> with checking enabled on x86_64.
>
> On x86 (bootstrapped with --disable-checking), the only new failures are
>
> -------------------------------------------------------------------------------
> Testsuite differences between 20031129/gcc.sum.gz and 20031130/gcc.sum.gz
> -------------------------------------------------------------------------------
>
> New regressions in 20031130/gcc.sum.gz:
> FAIL: gcc.c-torture/execute/bcp-1.c execution
> FAIL: gcc.c-torture/execute/bcp-1.c execution
> FAIL: gcc.c-torture/execute/bcp-1.c execution
> FAIL: gcc.c-torture/execute/bcp-1.c execution
> FAIL: gcc.c-torture/execute/bcp-1.c execution
> FAIL: gcc.c-torture/execute/bcp-1.c execution
> FAIL: gcc.c-torture/execute/bcp-1.c execution
>
> Fixed regressions in 20031130/gcc.sum.gz:
> -------------------------------------------------------------------------------
Hi,
I managed to reproduce the bcp-1.c failure that is caused by somewhat confused
code to clear DECL_SAVED_TREE I managed to update incorrectly. This code is
redundant as callgraph code contains more strict logic, so I am removing it and
will commit the patch as obivous if thesting pases. I also moved ggc_collect
to the very end of function as it clears some extra pointers. This
change is not needed, but very trivial.
I believe that the other failures are caused by same problem (the code
was very wrong), but it would be great if you could try the patch. I am
trying to reproduce it on x86-64 now.
In incremental patch I will remove rest of confusion and unify
cgraph/tree_rest_of_compilation memory management code.
Honza
2003-11-30 Jan Hubicka <jh@suse.cz>
* tree-optimize.c (tree_rest_of_compilation): Move ggc_collect call to the end
of function; keep clearing of DECL_SAVED_TREE to the cgraph code.
Index: tree-optimize.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-optimize.c,v
retrieving revision 1.1.4.80
diff -c -3 -p -r1.1.4.80 tree-optimize.c
*** tree-optimize.c 29 Nov 2003 12:43:10 -0000 1.1.4.80
--- tree-optimize.c 30 Nov 2003 19:50:04 -0000
*************** tree_rest_of_compilation (tree fndecl, b
*** 408,414 ****
}
cfun = 0;
DECL_SAVED_INSNS (fndecl) = 0;
- ggc_collect ();
/* If requested, warn about function definitions where the function will
return a value (usually of some struct or union type) which itself will
--- 408,413 ----
*************** tree_rest_of_compilation (tree fndecl, b
*** 434,451 ****
}
}
- /* ??? Looks like some of this could be combined. */
-
-
- /* If possible, obliterate the body of the function so that it can
- be garbage collected. */
- else if (dump_enabled_p (TDI_all))
- /* Keep the body; we're going to dump it. */
- ;
- else
- /* We don't need the body; blow it away. */
- DECL_SAVED_TREE (fndecl) = NULL;
-
/* Since we don't need the RTL for this function anymore, stop pointing to
it. That's especially important for LABEL_DECLs, since you can reach all
the instructions in the function from the CODE_LABEL stored in the
--- 433,438 ----
*************** tree_rest_of_compilation (tree fndecl, b
*** 472,476 ****
--- 459,464 ----
input_location = saved_loc;
+ ggc_collect ();
timevar_pop (TV_EXPAND);
}