Commit 74fe548b by Xinliang David Li Committed by Xinliang David Li

Add dbg count support for ccp

From-SVN: r145206
parent 414d751c
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> 2009-03-28 Jan Hubicka <jh@suse.cz>
Merge from pretty-ipa: Merge from pretty-ipa:
......
...@@ -142,6 +142,7 @@ echo ubound: $ub ...@@ -142,6 +142,7 @@ echo ubound: $ub
/* Debug counter definitions. */ /* Debug counter definitions. */
DEBUG_COUNTER (auto_inc_dec) DEBUG_COUNTER (auto_inc_dec)
DEBUG_COUNTER (ccp)
DEBUG_COUNTER (cfg_cleanup) DEBUG_COUNTER (cfg_cleanup)
DEBUG_COUNTER (cse2_move2add) DEBUG_COUNTER (cse2_move2add)
DEBUG_COUNTER (cprop1) DEBUG_COUNTER (cprop1)
......
...@@ -208,6 +208,7 @@ along with GCC; see the file COPYING3. If not see ...@@ -208,6 +208,7 @@ along with GCC; see the file COPYING3. If not see
#include "langhooks.h" #include "langhooks.h"
#include "target.h" #include "target.h"
#include "toplev.h" #include "toplev.h"
#include "dbgcnt.h"
/* Possible lattice values. */ /* Possible lattice values. */
...@@ -666,6 +667,24 @@ ccp_initialize (void) ...@@ -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 /* Do final substitution of propagated values, cleanup the flowgraph and
free allocated storage. free allocated storage.
...@@ -675,8 +694,11 @@ ccp_initialize (void) ...@@ -675,8 +694,11 @@ ccp_initialize (void)
static bool static bool
ccp_finalize (void) ccp_finalize (void)
{ {
bool something_changed;
do_dbg_cnt ();
/* Perform substitutions based on the known constant values. */ /* 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); free (const_val);
const_val = NULL; const_val = NULL;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment