This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] tree-ssa-threadupdate.c: Remove rediscover_loops_after_threading.


Hi,

Attached is a patch to remove rediscover_loops_after_threading as one
of the recent patch from Jeff Law

  http://gcc.gnu.org/ml/gcc-patches/2006-02/msg00586.html

made this variable unused.

Tested on x86_64-pc-linux-gnu.  OK to apply?

Kazu Hirata

2006-03-04  Kazu Hirata  <kazu@codesourcery.com>

	* tree-ssa-threadupdate.c (rediscover_loops_after_threading):
	Remove.
	* basic-block.h: Remove the extern for
	rediscover_loops_after_threading.

Index: basic-block.h
===================================================================
--- basic-block.h	(revision 111687)
+++ basic-block.h	(working copy)
@@ -414,10 +414,6 @@ struct control_flow_graph GTY(())
 #define BASIC_BLOCK(N)		(VEC_index (basic_block, basic_block_info, (N)))
 #define SET_BASIC_BLOCK(N,BB)	(VEC_replace (basic_block, basic_block_info, (N), (BB)))
 
-/* TRUE if we should re-run loop discovery after threading jumps, FALSE
-   otherwise.  */
-extern bool rediscover_loops_after_threading;
-
 /* For iterating over basic blocks.  */
 #define FOR_BB_BETWEEN(BB, FROM, TO, DIR) \
   for (BB = FROM; BB != TO; BB = BB->DIR)
Index: tree-ssa-threadupdate.c
===================================================================
--- tree-ssa-threadupdate.c	(revision 111687)
+++ tree-ssa-threadupdate.c	(working copy)
@@ -131,8 +131,6 @@ struct redirection_data
 /* Main data structure to hold information for duplicates of BB.  */
 static htab_t redirection_data;
 
-bool rediscover_loops_after_threading;
-
 /* Data structure of information to pass to hash table traversal routines.  */
 struct local_info
 {
@@ -735,30 +733,6 @@ thread_block (basic_block bb)
 	  update_bb_profile_for_threading (e->dest, EDGE_FREQUENCY (e),
 					   e->count, e->aux);
 
-	  /* If we thread to a loop exit edge, then we will need to 
-	     rediscover the loop exit edges.  While it may seem that
-	     the new edge is a loop exit edge, that is not the case.
-	     Consider threading the edge (5,6) to E in the CFG on the
-	     left which creates the CFG on the right:
-
-
-                      0<--+            0<---+
-                     / \  |           / \   |
-                    1   2 |          1   2  |
-                   / \  | |         / \  |  |
-                  3   4 | |        3   4 6--+
-                   \ /  | |         \ /
-                    5   | |          5
-                     \ /  |          |
-                      6---+          E
-                      |
-                      E
-
-	     After threading, the edge (0, 1)  is the loop exit edge and
-	     the nodes 0, 2, 6 are the only nodes in the loop.  */
-	  if (e2->flags & EDGE_LOOP_EXIT)
-	    rediscover_loops_after_threading = true;
-
 	  /* Insert the outgoing edge into the hash table if it is not
 	     already in the hash table.  */
 	  lookup_redirection_data (e2, e, INSERT);
@@ -859,7 +833,6 @@ thread_through_all_blocks (void)
     return false;
 
   threaded_blocks = BITMAP_ALLOC (NULL);
-  rediscover_loops_after_threading = false;
   memset (&thread_stats, 0, sizeof (thread_stats));
 
   mark_threaded_blocks (threaded_blocks);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]