diff options
author | Xinliang David Li <davidxl@google.com> | 2009-03-28 20:38:44 +0000 |
---|---|---|
committer | Xinliang David Li <davidxl@gcc.gnu.org> | 2009-03-28 20:38:44 +0000 |
commit | 74fe548b85213c7fadaf0c9c65097f8e78cdb624 (patch) | |
tree | 8a0222ff3ea81d5b3f64cf4d1bd860247cf62c52 /gcc | |
parent | 414d751cdcca360bb70a8f9d33e9afc0b084e66a (diff) | |
download | gcc-74fe548b85213c7fadaf0c9c65097f8e78cdb624.zip gcc-74fe548b85213c7fadaf0c9c65097f8e78cdb624.tar.gz gcc-74fe548b85213c7fadaf0c9c65097f8e78cdb624.tar.bz2 |
Add dbg count support for ccp
From-SVN: r145206
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/dbgcnt.def | 1 | ||||
-rw-r--r-- | gcc/tree-ssa-ccp.c | 24 |
3 files changed, 29 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ee45bf8..64d06c0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-03-28 Xinliang David Li <davidxl@google.com> + + * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. + (do_dbg_cnt): New function. + 2009-03-28 Jan Hubicka <jh@suse.cz> Merge from pretty-ipa: diff --git a/gcc/dbgcnt.def b/gcc/dbgcnt.def index 5330c72..5a2f8f0 100644 --- a/gcc/dbgcnt.def +++ b/gcc/dbgcnt.def @@ -142,6 +142,7 @@ echo ubound: $ub /* Debug counter definitions. */ DEBUG_COUNTER (auto_inc_dec) +DEBUG_COUNTER (ccp) DEBUG_COUNTER (cfg_cleanup) DEBUG_COUNTER (cse2_move2add) DEBUG_COUNTER (cprop1) diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c index 26b6722..c7df588 100644 --- a/gcc/tree-ssa-ccp.c +++ b/gcc/tree-ssa-ccp.c @@ -208,6 +208,7 @@ along with GCC; see the file COPYING3. If not see #include "langhooks.h" #include "target.h" #include "toplev.h" +#include "dbgcnt.h" /* Possible lattice values. */ @@ -666,6 +667,24 @@ ccp_initialize (void) } } +/* Debug count support. Reset the values of ssa names + VARYING when the total number ssa names analyzed is + beyond the debug count specified. */ + +static void +do_dbg_cnt (void) +{ + unsigned i; + for (i = 0; i < num_ssa_names; i++) + { + if (!dbg_cnt (ccp)) + { + const_val[i].lattice_val = VARYING; + const_val[i].value = NULL_TREE; + } + } +} + /* Do final substitution of propagated values, cleanup the flowgraph and free allocated storage. @@ -675,8 +694,11 @@ ccp_initialize (void) static bool ccp_finalize (void) { + bool something_changed; + + do_dbg_cnt (); /* Perform substitutions based on the known constant values. */ - bool something_changed = substitute_and_fold (const_val, false); + something_changed = substitute_and_fold (const_val, false); free (const_val); const_val = NULL; |