[PATCH] Extend store ccp

Revital1 Eres ERES@il.ibm.com
Tue Jun 26 08:12:00 GMT 2007


Hello,

Attached is the latest version of the patch.
(http://gcc.gnu.org/ml/gcc-patches/2007-06/msg01300.html)

It was bootstrapped and tested on ppc64 and x86_64.
(all languages except Ada)

testcase 20031106-4.c XPASS due to the new functionality.
+XPASS: gcc.dg/tree-ssa/20031106-4.c scan-tree-dump-times link_error 0

We had an example (like the one shown in
http://gcc.gnu.org/ml/gcc-patches/2007-03/msg01305.html) where this
optimization was applied in a loop; open opportunity for DSE optimization
and as a result simplify things for the vectorizer.

I have seen no effect so far on SPEC2006 on ppc64.

As for the effect on compilation time -
Measuring bootstrap time (time make) on c,c++ with -O2
on ppc64 showed about 1% rise in compilation time.

:ADDPATCH (tree-ssa optimization):

OK for mainline?

Thanks,
Revital


2007-06-26  Revital Eres  <eres@il.ibm.com>

        * tree-vrp.c (execute_vrp): Call ssa_propagate function
        with extra parameter to indicate whether to perform
        store constant propagation by walking the virtual operands
        chain.
        * tree-complex.c (tree_lower_complex): Likewise.
        * tree-ssa-copy.c (execute_copy_prop): Likewise.
        * tree-ssa-ccp.c (execute_ssa_ccp): Likewise.
        (visit_assignment): Call get_stmt_rhs_def_stmt
        while performing the propagation.
        * tree-ssa-propagate.c (aggressive_store_cprop_p): New variable.
        (do_store_ccp): New function.
        (ssa_propagate): Add extra parameter to indicate whether to
        perform store constant propagation by walking the virtual
        operands chain.
        (add_edge): New function.
        (add_ssa_edge): Add an edge for every use by walking the virtual
        def-use chain.
        (get_stmt_rhs_def_stmt): New function to get the defining stmt
        of a use by walking the virtual use-def chain.
        (replace_vuses_in): Call get_stmt_rhs_def_stmt to perform the
        final replacement.
        * tree-ssa-propagate.h (get_stmt_rhs_def_stmt): Declare.
        (ssa_propagate): Update Declaration.
        * tree-flow.h (offset_overlaps_with_access): Declare.
        * tree-ssa-structalias.c (offset_overlaps_with_access): Make
        extern.


        * testsuite/gcc.dg/store-ccp-1.c: New test.
        * testsuite/gcc.dg/tree-ssa/20031106-4.c: Remove xfail.

(See attached file: store_ccp-1.txt)(See attached file: patch_ccp_22_6.txt)
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: store_ccp-1.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070626/ccd9a3ff/attachment.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: patch_ccp_22_6.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070626/ccd9a3ff/attachment-0001.txt>


More information about the Gcc-patches mailing list