Pre-inline optimization, version 3
Richard Guenther
richard.guenther@gmail.com
Thu Jan 11 14:00:00 GMT 2007
On 1/11/07, Jan Hubicka <jh@suse.cz> wrote:
> Hi,
> this is slightly improved version of the patch - now when the leak
> concncerning SSA names is plugged I can actually ggc_free the SSA names
> instead of doing the memset hack.
>
> It would be OK to also just NULLify the pointer to SSA names list now,
> but I would actually like to have some mean of checking that the names
> are no longer referenced at this place as it is important for whole
> consumption (ie if we manage to leak pointer to single name of the list,
> we bring alive a lot of other datastructures). I would be however happy
> to skip the ggc_free if it would block the patch and this can be
> addressed independencty by Zdenek's verifier or something.
>
> Boostrapped/regtested i686-linux, I also have PPC bootstrap with
> --enable-checking=gc,gcac running for three days. I probably will need
> to interrupt it after little extra while, but I hope it is enought of
> check that we ought to be quite safe concerning the references to dead
> SSA names.
>
> The patch makes following regression to disappear:
> gcc.c-torture/execute/pr15262-1.c execution, -O2
> gcc.c-torture/execute/pr15262-1.c execution, -O3 -fomit-frame-pointer
> gcc.c-torture/execute/pr15262-1.c execution, -O3 -g
> gcc.c-torture/execute/pr15262-1.c execution, -Os
> From nature of the regression I would guess the problem is just made
> latent, I will check tomorrow.
This patch is ok for mainline.
Thanks,
Richard.
> :ADDPATCH tree-optimization:
> PR tree-optimization/1046
> * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
> when alias info is not ready.
> (pass_tail_recursion): Do not require aliasing.
> * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
> * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
> * tree-ssa-copy.c (pass_copy_prop): Likewise.
> * tree-ssa-forwprop.c (pass_forwprop): Likewise.
> * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
> * passes.c (init_optimization_passes): Execute rename_ssa_copies,
> ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
> before inlining.
> * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
> When aliasing is not build, mark statement as volatile.
>
> * gcc.dg/tree-ssa/tailrecursion-4.c: Update dump file.
> * gcc.dg/tree-ssa/tailrecursion-1.c: Update dump file.
> * gcc.dg/tree-ssa/tailrecursion-2.c: Update dump file.
> * gcc.dg/tree-ssa/tailrecursion-3.c: Update dump file.
> * gcc.dg/tree-ssa/pr21658.c: Likewise.
> * gcc.dg/tree-ssa/pr15349.c: Likewise.
> * gcc.dg/tree-ssa/pr25501.c: Likewise.
> * gcc.dg/tree-ssa/vrp11.c: Make more complex so it still test
> transformation in question.
> * gcc.dg/tree-ssa/vrp05.c: Likewise.
> * gcc.dg/tree-ssa/pr20701.c: Likewise.
> * gcc.dg/always_inline3.c: Likewise.
More information about the Gcc-patches
mailing list