[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