gcc/gcc ChangeLog.tcb common.opt opts.c timeva ...
dnovillo@gcc.gnu.org
dnovillo@gcc.gnu.org
Tue Oct 19 21:56:00 GMT 2004
CVSROOT: /cvs/gcc
Module name: gcc
Branch: tree-cleanup-branch
Changes by: dnovillo@gcc.gnu.org 2004-10-19 21:56:12
Modified files:
gcc : ChangeLog.tcb common.opt opts.c timevar.def
tree-flow.h tree-optimize.c tree-pass.h
tree-ssa-ccp.c tree-ssa-copy.c
tree-ssa-propagate.c tree-ssa-propagate.h
gcc/doc : invoke.texi
gcc/testsuite : ChangeLog.tcb
Added files:
gcc/testsuite/gcc.c-torture/execute: 20041019-1.c
Log message:
* common.opt (-ftree-store-copy-prop): New flag.
* opts.c (decode_options): Enable STORE-COPY-PROP at O2.
* timevar.def (TV_TREE_STORE_COPY_PROP): Define.
* tree-flow.h (execute_copy_prop): Add boolean argument.
* tree-optimize.c (init_tree_optimization_passes): Schedule
STORE-COPY-PROP after SRA.
* tree-pass.h (pass_store_copy_prop): Declare.
* tree-ssa-ccp.c (set_lattice_value): Fix typo in comment.
(replace_uses_in): Call may_propagate_copy before doing the
final propagation.
(replace_vuses_in): Call get_value_loaded_by.
(ccp_lattice_meet): Do not test for memory reference equality
if DO_STORE_CCP is false.
(ccp_fold): Call get_value_loaded_by.
(visit_assignment): Likewise.
Set all the virtual definitions in the statement to the newly
computed value.
(ccp_visit_stmt): Reformat dump output.
(do_ssa_store_ccp): If STORE-CCP is not enabled, run standard
CCP.
(gate_store_ccp): Return true if either CCP or STORE-CCP are
enabled.
(pass_store_ccp): Rename dump suffix.
* tree-ssa-copy.c (cached_last_copy_of): Declare.
(stmt_may_generate_copy): Return false if the name occurs in
an abnormal PHI.
(copy_chains): Remove. Update all functions to use COPY_OF
instead.
(get_copy_of_val): Rename from get_first_copy. Return a
pointer to the COPY_OF slot for VAR.
(set_copy_of_val): Rename from set_first_copy_of.
Used CACHED_LAST_COPY_OF to determine whether the copy-of
chain has changed.
(copy_prop_visit_assignment): Do not call may_propagate_copy.
In the case of STORE-COPY-PROP set the copy-of value for all
the virtual definitions.
(copy_prop_visit_stmt): Reformat dump output.
(copy_prop_visit_phi_node): Support STORE-COPY-PROP by
checking memory references for each argument.
Do not allow copies to flow through abnormal edges.
(init_copy_prop): Allocate cached_last_copy_of.
(fini_copy_prop): Free cached_last_copy_of
(execute_copy_prop): Add new boolean argument to determine
whether to enable STORE-COPY-PROP.
(do_copy_prop): New function.
(pass_copy_prop): Call do_copy_prop.
(gate_store_copy_prop): New function.
(store_copy_prop): New function.
(pass_store_copy_prop): Define.
* tree-ssa-propagate.c (first_vuse): Remove.
(get_value_loaded_by): New function.
* tree-ssa-propagate.h (first_vuse): Remove.
(get_value_loaded_by): Declare.
* doc/invoke.texi (-ftree-store-copy-prop): Document.
(-fdump-tree-store_copyprop): Document.
testsuite/ChangeLog.tcb
* gcc.c-torture/execute/20041019-1.c: New test.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.tcb.diff?cvsroot=gcc&only_with_tag=tree-cleanup-branch&r1=1.1.2.6&r2=1.1.2.7
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/common.opt.diff?cvsroot=gcc&only_with_tag=tree-cleanup-branch&r1=1.55.2.4&r2=1.55.2.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/opts.c.diff?cvsroot=gcc&only_with_tag=tree-cleanup-branch&r1=1.82.2.2&r2=1.82.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/timevar.def.diff?cvsroot=gcc&only_with_tag=tree-cleanup-branch&r1=1.36.2.3&r2=1.36.2.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-flow.h.diff?cvsroot=gcc&only_with_tag=tree-cleanup-branch&r1=2.46.2.5&r2=2.46.2.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-optimize.c.diff?cvsroot=gcc&only_with_tag=tree-cleanup-branch&r1=2.47.2.6&r2=2.47.2.7
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-pass.h.diff?cvsroot=gcc&only_with_tag=tree-cleanup-branch&r1=2.15.2.4&r2=2.15.2.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-ccp.c.diff?cvsroot=gcc&only_with_tag=tree-cleanup-branch&r1=2.41.2.5&r2=2.41.2.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-copy.c.diff?cvsroot=gcc&only_with_tag=tree-cleanup-branch&r1=2.15.2.5&r2=2.15.2.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-propagate.c.diff?cvsroot=gcc&only_with_tag=tree-cleanup-branch&r1=2.5.2.3&r2=2.5.2.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-propagate.h.diff?cvsroot=gcc&only_with_tag=tree-cleanup-branch&r1=2.2.8.3&r2=2.2.8.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/doc/invoke.texi.diff?cvsroot=gcc&only_with_tag=tree-cleanup-branch&r1=1.539.2.4&r2=1.539.2.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.tcb.diff?cvsroot=gcc&only_with_tag=tree-cleanup-branch&r1=1.1.2.3&r2=1.1.2.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/20041019-1.c.diff?cvsroot=gcc&only_with_tag=tree-cleanup-branch&r1=NONE&r2=1.1.2.1
More information about the Gcc-cvs
mailing list