X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=ir%2Fir%2Firgraph_t.h;h=0d0740c33b696dc160eb58cc41ab5f324ca426ca;hb=513a7f65a98d28f2c482da861a94e1328f981684;hp=af39b5ae10bba1a4fc3c30cd91ed8e38b9a04597;hpb=38b8c7fed1b7a0bdd9667f73a7a8c8b25fbaa563;p=libfirm diff --git a/ir/ir/irgraph_t.h b/ir/ir/irgraph_t.h index af39b5ae1..0d0740c33 100644 --- a/ir/ir/irgraph_t.h +++ b/ir/ir/irgraph_t.h @@ -1,6 +1,14 @@ -/* 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 -- internal header. + * 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_t.h @@ -10,7 +18,6 @@ * @author Martin Trapp, Christian Schaefer */ -/* $Id$ */ # ifndef _IRGRAPH_T_H_ # define _IRGRAPH_T_H_ @@ -18,11 +25,13 @@ # include "pset.h" # include "irgraph.h" # include "firm_common_t.h" +# include "irtypeinfo.h" #define FRAME_TP_SUFFIX "frame_tp" /** ir_graph holds all information for a procedure */ struct ir_graph { + firm_kind kind; /**< always set to k_ir_graph*/ /* -- Basics of the representation -- */ struct entity *ent; /**< The entity of this procedure, i.e., the type of the procedure and the @@ -40,7 +49,8 @@ struct ir_graph { struct ir_node *args; /**< methods arguments */ struct ir_node *bad; /**< bad node of this ir_graph, the one and only in this graph */ - struct ir_node *unknown; /**< unknown node of this ir_graph */ + /* GL removed: we need unknown with mode for analyses. */ + // struct ir_node *unknown; /**< unknown node of this ir_graph */ struct obstack *obst; /**< obstack where all of the ir_nodes live */ struct ir_node *current_block; /**< block for newly gen_*()-erated ir_nodes */ @@ -50,6 +60,7 @@ struct ir_graph { op_pinned pinned; /**< Flag for status of nodes */ irg_outs_state outs_state; /**< Out edges. */ irg_dom_state dom_state; /**< Dominator information */ + irg_typeinfo_state typeinfo_state; /**< Validity of type inforamtion */ /* -- Fields for construction -- */ #if USE_EXPLICIT_PHI_IN_STACK @@ -84,10 +95,24 @@ void init_irgraph(void); Must look like a correct irg, spare everything else. */ ir_graph *new_const_code_irg(void); +/** + * Set the pinned state of a graph. + * + * @irg the IR graph + * @p new pin state + */ INLINE void set_irg_pinned (ir_graph *irg, op_pinned p); /** Returns the obstack associated with the graph. */ struct obstack *get_irg_obstack(ir_graph *irg); +/** + * Returns true if the node n is allocated on the storage of graph irg. + * + * @param irg the IR graph + * @param n the IR node + */ +int node_is_in_irgs_storage(ir_graph *irg, ir_node *n); + # endif /* _IRGRAPH_T_H_ */