aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/emit-rtl.c1
-rw-r--r--gcc/function.c32
-rw-r--r--gcc/integrate.c11
-rw-r--r--gcc/print-tree.c8
-rw-r--r--gcc/tree.h7
6 files changed, 33 insertions, 37 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4f50d1b..912cd5f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2001-03-12 Jeffrey Oldham <oldham@codesourcery.com>
+
+ * emit-rtl.c (remove_unnecessary_notes): Reverse Richard Kenner's
+ 2001-02-24 which broke building the Java library.
+ * function.c (identify_blocks): Likewise.
+ (all_blocks): Likewise.
+ * integrate.c (integrate_decl_tree): Likewise.
+ * print-tree.c (print_node): Likewise.
+ * tree.h (BLOCK_NUMBER): Likewise.
+ (struct tree_block): Likewise.
+
2001-03-12 David Edelsohn <edelsohn@gnu.org>
* rs6000/aix51.h (CPP_SPEC, CPLUSPLUS_CPP_SPEC): Fix typo in
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 6ac8ac1..d95df87 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -2907,7 +2907,6 @@ remove_unnecessary_notes ()
with the block_stack check above. */
if (debug_ignore_block (NOTE_BLOCK (insn)))
{
- BLOCK_DEAD (NOTE_BLOCK (insn)) = 1;
remove_insn (tmp);
remove_insn (insn);
}
diff --git a/gcc/function.c b/gcc/function.c
index 63aa5b5..dde5ee0 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -5740,7 +5740,8 @@ identify_blocks ()
block_stack);
/* If we didn't use all of the subblocks, we've misplaced block notes. */
- if (last_block_vector != block_vector + n_blocks)
+ /* ??? This appears to happen all the time. Latent bugs elsewhere? */
+ if (0 && last_block_vector != block_vector + n_blocks)
abort ();
free (block_vector);
@@ -5946,28 +5947,27 @@ blocks_nreverse (t)
blocks. */
static int
-all_blocks (blocks, vector)
- tree blocks;
+all_blocks (block, vector)
+ tree block;
tree *vector;
{
int n_blocks = 0;
- tree block;
- for (block = blocks; block != 0; block = TREE_CHAIN (block))
- if (!BLOCK_DEAD (block))
- {
- TREE_ASM_WRITTEN (block) = 0;
+ while (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);
+ block = BLOCK_CHAIN (block);
+ }
return n_blocks;
}
diff --git a/gcc/integrate.c b/gcc/integrate.c
index 23f3590..270a9c5 100644
--- a/gcc/integrate.c
+++ b/gcc/integrate.c
@@ -1684,12 +1684,11 @@ integrate_decl_tree (let, map)
next = &BLOCK_SUBBLOCKS (new_block);
for (t = BLOCK_SUBBLOCKS (let); t; t = BLOCK_CHAIN (t))
- if (!BLOCK_DEAD (t))
- {
- *next = integrate_decl_tree (t, map);
- BLOCK_SUPERCONTEXT (*next) = new_block;
- next = &BLOCK_CHAIN (*next);
- }
+ {
+ *next = integrate_decl_tree (t, map);
+ BLOCK_SUPERCONTEXT (*next) = new_block;
+ next = &BLOCK_CHAIN (*next);
+ }
TREE_USED (new_block) = TREE_USED (let);
BLOCK_ABSTRACT_ORIGIN (new_block) = let;
diff --git a/gcc/print-tree.c b/gcc/print-tree.c
index 7e49ee0..3bbea3f 100644
--- a/gcc/print-tree.c
+++ b/gcc/print-tree.c
@@ -584,14 +584,6 @@ print_node (file, prefix, node, indent)
break;
case 'b':
- if (BLOCK_ABSTRACT (node))
- fprintf (file, " abstract");
- if (BLOCK_HANDLER_BLOCK (node))
- fprintf (file, " handler-block");
- if (BLOCK_DEAD (node))
- fprintf (file, " dead");
- fprintf (file, " block-number %d", BLOCK_NUMBER (node));
-
print_node (file, "vars", BLOCK_VARS (node), indent + 4);
print_node (file, "supercontext", BLOCK_SUPERCONTEXT (node), indent + 4);
print_node (file, "subblocks", BLOCK_SUBBLOCKS (node), indent + 4);
diff --git a/gcc/tree.h b/gcc/tree.h
index d6dde70..4ec4321 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -830,10 +830,6 @@ struct tree_exp
listed in the BLOCK_VARS slot. */
#define BLOCK_HANDLER_BLOCK(NODE) (BLOCK_CHECK (NODE)->block.handler_block_flag)
-/* Nonzero means the block was deleted as dead and should not be copied
- when a function is inlined. */
-#define BLOCK_DEAD(NODE) (BLOCK_CHECK (NODE)->block.dead_flag)
-
/* An index number for this block. These values are not guaranteed to
be unique across functions -- whether or not they are depends on
the debugging output format in use. */
@@ -845,8 +841,7 @@ struct tree_block
unsigned handler_block_flag : 1;
unsigned abstract_flag : 1;
- unsigned dead_flag : 1;
- unsigned block_num : 29;
+ unsigned block_num : 30;
union tree_node *vars;
union tree_node *subblocks;