OSDN Git Service

Add dbg count support for ccp
authordavidxl <davidxl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 28 Mar 2009 20:38:44 +0000 (20:38 +0000)
committerdavidxl <davidxl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 28 Mar 2009 20:38:44 +0000 (20:38 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145206 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/dbgcnt.def
gcc/tree-ssa-ccp.c

index ee45bf8..64d06c0 100644 (file)
@@ -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:
index 5330c72..5a2f8f0 100644 (file)
@@ -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)
index 26b6722..c7df588 100644 (file)
@@ -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;