remove_unnecessary_notes breaks libjava build

Per Bothner per@bothner.com
Tue Mar 6 23:38:00 GMT 2001


kenner@vlsi1.ultra.nyu.edu (Richard Kenner) writes:
> But the point is that BLOCK_DEAD is being set *precisely* in the
> case where the note is being deleted. So how can somebody be using it?

Ah, but the insn notes for the *sub*-blocks are not deleted, yet
all_blocks does not recursive if BLOCK_DEAD is set. This patch
seems to fix that problem. (The boostrap hasn't completed yet.)
Does this look right?
Index: function.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/function.c,v
retrieving revision 1.254
diff -u -p -r1.254 function.c
--- function.c	2001年03月02日 01:50:49	1.254
+++ function.c	2001年03月07日 06:22:49
@@ -5954,20 +5954,22 @@ all_blocks (blocks, vector)
 tree block;
 
 for (block = blocks; block != 0; block = TREE_CHAIN (block))
- if (!BLOCK_DEAD (block))
- {
-	TREE_ASM_WRITTEN (block) = 0;
+ {
+ if (! BLOCK_DEAD (block))
+	{
+	 TREE_ASM_WRITTEN (block) = 0;
 
-	/* Record this block. */
-	if (vector)
-	 vector[n_blocks] = block;
+	 /* Record this block. */
+	 if (vector)
+	 vector[n_blocks] = block;
 
-	++n_blocks;
+	 ++n_blocks;
+	}
 
-	/* Record the subblocks, and their subblocks... */
-	n_blocks += all_blocks (BLOCK_SUBBLOCKS (block),
-				vector ? vector + n_blocks : 0);
- }
+ /* Record the subblocks, and their subblocks... */
+ n_blocks += all_blocks (BLOCK_SUBBLOCKS (block),
+			 vector ? vector + n_blocks : 0);
+ }
 
 return n_blocks;
 }
-- 
	--Per Bothner
per@bothner.com http://www.bothner.com/~per/


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /