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