-// Copyright (c) 2002 by Universität Karlsruhe (TH). All Rights Reserved
-
-/***
- NAME
- st.h
- PURPOSE
- provide some auxilliary structures for firm graphs.
- NOTES
+/*
+ * Project: libFIRM
+ * File name: ir/st/st.h
+ * Purpose: Provide some auxilliary structures for firm graphs.
+ * Author: Florian Liekweg
+ * Modified by:
+ * Created: 26.2.2002
+ * CVS-ID: $Id$
+ * Copyright: (c) 2002-2003 Universität Karlsruhe
+ * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ */
+/**
+ @file st.h
+
+ Provide some auxilliary structures for firm graphs.
+
+ @author Florian Liekweg
+
+ @note
not quite complete
- HISTORY
- liekweg - Feb 26, 2002: Created.
- CVS:
- $Id$
-***/
+*/
# ifndef _ST_H_
# define _ST_H_
-// Includes:
-# include "irgraph.h"
-# include "irnode.h"
+/* Includes: */
+#include "irgraph.h"
+#include "irnode.h"
-# include "bs.h"
+#include "bs.h"
-# include "bool.h"
+#include <stdbool.h>
-#define true TRUE
-#define false FALSE
-// Data Types:
+/* Data Types: */
-// One dominator tree
+/** One dominator tree */
typedef struct
{
int n_blocks;
- ir_graph *graph; // PRE
+ ir_graph *graph; /**< PRE */
ir_node **blocks;
- ir_node **idoms; // idom [n] == immediate dominator of blocks [n]
+ ir_node **idoms; /**< idom [n] == immediate dominator of blocks [n] */
bs_t *masks;
}
dt_t;
-// List entry:
+/** List entry. */
typedef struct dtree_t
{
dt_t *tree;
}
dtree_t;
-// dominator environment for a node @a in graph @graph
+/** dominator environment for a node dom_env_t::a in graph dom_env_t::graph */
typedef struct dom_env_t
{
dt_t *dt;
bs_t mask;
} dom_env_t;
-// Forwards for Globals:
+/* Forwards for Globals: */
extern dtree_t *trees;
extern dtree_t *last;
-// Prototypes:
+/* Prototypes: */
void st_build_dominator_tree (ir_graph*);
bool dominates (ir_graph*, ir_node*, ir_node*);
ir_node *get_idom (ir_graph*, ir_node*);