Commit 2b1d9dc0 by Diego Novillo Committed by Diego Novillo

basic-block.h (tree_node): Forward declare if needed.

2001-07-09  Diego Novillo  <dnovillo@redhat.com>

	* basic-block.h (tree_node): Forward declare if needed.
	(struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
	(BLOCK_HEAD_TREE): Define.
	(BLOCK_END_TREE): Define.
	(struct loops): Rename field 'tree' to 'tree_root'.
	* flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
	'end_tree'.
	(flow_loops_tree_build): Rename reference to field 'tree' to
	'tree_root'.
	(flow_loops_level_compute): Ditto.
	* predict.c (estimate_bb_frequencies): Ditto.
	* tree.h (struct tree_common): Add field 'aux'.

From-SVN: r43886
parent 70bdc2ff
2001-07-09 Diego Novillo <dnovillo@redhat.com>
* basic-block.h (tree_node): Forward declare if needed.
(struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
(BLOCK_HEAD_TREE): Define.
(BLOCK_END_TREE): Define.
(struct loops): Rename field 'tree' to 'tree_root'.
* flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
'end_tree'.
(flow_loops_tree_build): Rename reference to field 'tree' to
'tree_root'.
(flow_loops_level_compute): Ditto.
* predict.c (estimate_bb_frequencies): Ditto.
* tree.h (struct tree_common): Add field 'aux'.
2001-07-09 Stan Shebs <shebs@apple.com>
* config/darwin.c (darwin_encode_section_info): Don't mark any
......
......@@ -26,6 +26,11 @@ Boston, MA 02111-1307, USA. */
#include "varray.h"
#include "partition.h"
#ifndef TREE_CODE
union tree_node;
#define tree union tree_node *
#endif
/* Head of register set linked list. */
typedef bitmap_head regset_head;
/* A pointer to a regset_head. */
......@@ -174,6 +179,10 @@ typedef struct basic_block_def {
/* The first and last insns of the block. */
rtx head, end;
/* The first and last trees of the block. */
tree head_tree;
tree end_tree;
/* The edges into and out of the block. */
edge pred, succ;
......@@ -247,6 +256,9 @@ extern regset regs_live_at_setjmp;
#define BLOCK_HEAD(B) (BASIC_BLOCK (B)->head)
#define BLOCK_END(B) (BASIC_BLOCK (B)->end)
#define BLOCK_HEAD_TREE(B) (BASIC_BLOCK (B)->head_tree)
#define BLOCK_END_TREE(B) (BASIC_BLOCK (B)->end_tree)
/* Special block numbers [markers] for entry and exit. */
#define ENTRY_BLOCK (-1)
#define EXIT_BLOCK (-2)
......@@ -433,7 +445,7 @@ struct loops
struct loop *array;
/* Pointer to root of loop heirachy tree. */
struct loop *tree;
struct loop *tree_root;
/* Information derived from the CFG. */
struct cfg
......
......@@ -195,6 +195,8 @@ varray_type basic_block_info;
struct basic_block_def entry_exit_blocks[2]
= {{NULL, /* head */
NULL, /* end */
NULL, /* head_tree */
NULL, /* end_tree */
NULL, /* pred */
NULL, /* succ */
NULL, /* local_set */
......@@ -210,6 +212,8 @@ struct basic_block_def entry_exit_blocks[2]
{
NULL, /* head */
NULL, /* end */
NULL, /* head_tree */
NULL, /* end_tree */
NULL, /* pred */
NULL, /* succ */
NULL, /* local_set */
......@@ -8718,8 +8722,8 @@ flow_loops_tree_build (loops)
/* Root the loop hierarchy tree with the first loop found.
Since we used a depth first search this should be the
outermost loop. */
loops->tree = &loops->array[0];
loops->tree->outer = loops->tree->inner = loops->tree->next = NULL;
loops->tree_root = &loops->array[0];
loops->tree_root->outer = loops->tree_root->inner = loops->tree_root->next = NULL;
/* Add the remaining loops to the tree. */
for (i = 1; i < num_loops; i++)
......@@ -8773,7 +8777,7 @@ flow_loops_level_compute (loops)
int levels = 0;
/* Traverse all the outer level loops. */
for (loop = loops->tree; loop; loop = loop->next)
for (loop = loops->tree_root; loop; loop = loop->next)
{
level = flow_loop_level_compute (loop, 1);
if (level > levels)
......
......@@ -806,7 +806,7 @@ estimate_bb_frequencies (loops)
}
/* First compute probabilities locally for each loop from innermost
to outermost to examine probabilities for back edges. */
estimate_loops_at_level (loops->tree);
estimate_loops_at_level (loops->tree_root);
/* Now fake loop around whole function to finalize probabilities. */
for (i = 0; i < n_basic_blocks; i++)
......
......@@ -130,6 +130,7 @@ struct tree_common
{
union tree_node *chain;
union tree_node *type;
void *aux;
ENUM_BITFIELD(tree_code) code : 8;
unsigned side_effects_flag : 1;
unsigned constant_flag : 1;
......
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