-/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
-* All rights reserved.
-*/
+/*
+ * Project: libFIRM
+ * File name: ir/ir/irgraph.c
+ * Purpose: Entry point to the representation of procedure code.
+ * Author: Martin Trapp, Christian Schaefer
+ * Modified by: Goetz Lindenmaier
+ * Created:
+ * CVS-ID: $Id$
+ * Copyright: (c) 1998-2003 Universität Karlsruhe
+ * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ */
/**
* @file irgraph.h
* @author Martin Trapp, Christian Schaefer
*/
-/* $Id$ */
#include "irop.h"
void set_interprocedural_view(bool state);
/** Create a new ir graph to built ir for a procedure.
- ent is the entity representing this procedure, i.e., the type of the
- entity must be of a method type. The constructor automatically sets the
- field irg of the entity as well as current_ir_graph to the new ir graph.
- n_loc is the number of local variables in this procedure including
- the procedure parameters.
- The state of the ir graph is: phase_building, pinned, no_outs. */
+ *
+ * ent is the entity representing this procedure, i.e., the type of the
+ * entity must be of a method type. The constructor automatically sets the
+ * field irg of the entity as well as current_ir_graph to the new ir graph.
+ * n_loc is the number of local variables in this procedure including
+ * the procedure parameters.
+ * The constructor adds the new irgraph to the list in ir_prog.
+ * The state of the ir graph is: phase_building, pinned, no_outs. */
ir_graph *new_ir_graph (entity *ent, int n_loc);
/** Frees the passed irgraph.
int
is_ir_graph(void *thing);
+#define get_irg_entity get_irg_ent
+#define set_irg_entity set_irg_ent
entity *get_irg_ent (ir_graph *irg);
void set_irg_ent (ir_graph *irg, entity *ent);
void set_irg_cstore (ir_graph *irg, ir_node *node);
/* end oblivious */
+/* node that represents frame pointer */
ir_node *get_irg_frame (ir_graph *irg);
void set_irg_frame (ir_graph *irg, ir_node *node);
+/* node that represents global pointer */
ir_node *get_irg_globals (ir_graph *irg);
void set_irg_globals (ir_graph *irg, ir_node *node);
void set_irg_bad (ir_graph *irg, ir_node *node);
/* Use new_Unknown() instead!! */
+/* GL removed: we need unknown with mode for analyses.
ir_node *get_irg_unknown (ir_graph *irg);
void set_irg_unknown (ir_graph *irg, ir_node *node);
+*/
int get_irg_n_locs (ir_graph *irg);
/* state: loopinfo_state
Loop information describes the loops within the control and
- data flow of the procedure.
-tpedef enum { @@@ make unrecognizable for jni script!!!
+ data flow of the procedure. */
+/* @@@ make unrecognizable for jni script!!! -- Why??? */
+typedef enum {
no_loopinfo,
loopinfo_consistent,
loopinfo_inconsistent
} irg_loopinfo_state;
irg_loopinfo_state get_irg_loopinfo_state(ir_graph *irg);
void set_irg_loopinfo_inconsistent(ir_graph *irg);
-*/
+
/* A void * field to link arbritary information to the node. */
-void set_irg_link (ir_graph *irg, void *thing);
+void set_irg_link (ir_graph *irg, void *thing);
void *get_irg_link (ir_graph *irg);
/* increments visited by one */
-void inc_irg_visited(ir_graph *irg);
+void inc_irg_visited (ir_graph *irg);
unsigned long get_irg_visited (ir_graph *irg);
-void set_irg_visited(ir_graph *irg, unsigned long i);
-unsigned long get_max_irg_visited(void);
-void set_max_irg_visited(int val);
-unsigned long inc_max_irg_visited(void);
+void set_irg_visited (ir_graph *irg, unsigned long i);
+unsigned long get_max_irg_visited (void);
+void set_max_irg_visited (int val);
+unsigned long inc_max_irg_visited (void);
/* increments block_visited by one */
-void inc_irg_block_visited(ir_graph *irg);
+void inc_irg_block_visited (ir_graph *irg);
unsigned long get_irg_block_visited (ir_graph *irg);
-void set_irg_block_visited(ir_graph *irg, unsigned long i);
+void set_irg_block_visited (ir_graph *irg, unsigned long i);
# endif /* _IRGRAPH_H_ */