libFirm 1.20
libfirm/irtypeinfo.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
00003  *
00004  * This file is part of libFirm.
00005  *
00006  * This file may be distributed and/or modified under the terms of the
00007  * GNU General Public License version 2 as published by the Free Software
00008  * Foundation and appearing in the file LICENSE.GPL included in the
00009  * packaging of this file.
00010  *
00011  * Licensees holding valid libFirm Professional Edition licenses may use
00012  * this file in accordance with the libFirm Commercial License.
00013  * Agreement provided with the Software.
00014  *
00015  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00016  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00017  * PURPOSE.
00018  */
00019 
00032 #ifndef FIRM_ANA_IRTYPEINFO_H
00033 #define FIRM_ANA_IRTYPEINFO_H
00034 
00035 #include "firm_types.h"
00036 #include "begin.h"
00037 
00038 /* ------------ Auxiliary type. --------------------------------------- */
00039 
00046 FIRM_API ir_type *initial_type;
00047 
00048 
00049 
00050 /* ------------ Initializing this module. ----------------------------- */
00051 
00059 FIRM_API void init_irtypeinfo(void);
00061 FIRM_API void free_irtypeinfo(void);
00062 
00063 /* ------------ Irgraph state handling. ------------------------------- */
00064 
00066 typedef enum {
00067     ir_typeinfo_none,        
00069     ir_typeinfo_consistent,  
00071     ir_typeinfo_inconsistent 
00073 } ir_typeinfo_state;
00074 
00076 FIRM_API void set_irg_typeinfo_state(ir_graph *irg, ir_typeinfo_state state);
00078 FIRM_API ir_typeinfo_state get_irg_typeinfo_state(const ir_graph *irg);
00079 
00086 FIRM_API ir_typeinfo_state get_irp_typeinfo_state(void);
00088 FIRM_API void set_irp_typeinfo_state(ir_typeinfo_state state);
00090 FIRM_API void set_irp_typeinfo_inconsistent(void);
00091 
00092 /* ------------ Irnode type information. ------------------------------ */
00093 
00100 FIRM_API ir_type *get_irn_typeinfo_type(const ir_node *n);
00102 FIRM_API void set_irn_typeinfo_type(ir_node *node, ir_type *type);
00103 
00104 #include "end.h"
00105 
00106 #endif