libFirm 1.20
libfirm/irouts.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 
00026 #ifndef FIRM_ANA_IROUTS_H
00027 #define FIRM_ANA_IROUTS_H
00028 
00029 #include "firm_types.h"
00030 #include "begin.h"
00031 
00041 FIRM_API int get_irn_n_outs(const ir_node *node);
00042 
00044 FIRM_API ir_node *get_irn_out(const ir_node *def, int pos);
00045 
00050 FIRM_API ir_node *get_irn_out_ex(const ir_node *def, int pos, int *in_pos);
00051 
00060 FIRM_API void set_irn_out(ir_node *def, int pos, ir_node *use, int in_pos);
00061 
00063 FIRM_API int get_Block_n_cfg_outs(const ir_node *node);
00064 
00066 FIRM_API int get_Block_n_cfg_outs_ka(const ir_node *node);
00067 
00069 FIRM_API ir_node *get_Block_cfg_out(const ir_node *node, int pos);
00070 
00072 FIRM_API ir_node *get_Block_cfg_out_ka(const ir_node *node, int pos);
00073 
00078 FIRM_API void irg_out_walk(ir_node *node, irg_walk_func *pre,
00079                            irg_walk_func *post, void *env);
00080 
00086 FIRM_API void irg_out_block_walk(ir_node *node, irg_walk_func *pre,
00087                                  irg_walk_func *post, void *env);
00088 
00094 FIRM_API int get_irn_outs_computed(const ir_node *node);
00095 
00102 FIRM_API void compute_irg_outs(ir_graph *irg);
00104 FIRM_API void compute_irp_outs(void);
00105 
00107 FIRM_API void assure_irg_outs(ir_graph *irg);
00108 
00110 FIRM_API void free_irg_outs(ir_graph *irg);
00112 FIRM_API void free_irp_outs(void);
00113 
00116 #include "end.h"
00117 
00118 #endif