libFirm
cgana.h
1 /*
2  * This file is part of libFirm.
3  * Copyright (C) 2012 University of Karlsruhe.
4  */
5 
19 #ifndef FIRM_ANA_CGANA_H
20 #define FIRM_ANA_CGANA_H
21 
22 #include <stddef.h>
23 
24 #include "firm_types.h"
25 #include "begin.h"
26 
54 FIRM_API size_t cgana(ir_entity ***free_methods);
55 
63 FIRM_API void free_callee_info(ir_graph *irg);
65 FIRM_API void free_irp_callee_info(void);
66 
71 FIRM_API void opt_call_addrs(void);
72 
90 FIRM_API int cg_call_has_callees(const ir_node *node);
92 FIRM_API size_t cg_get_call_n_callees(const ir_node *node);
94 FIRM_API ir_entity *cg_get_call_callee(const ir_node *node, size_t pos);
95 
99 FIRM_API void cg_set_call_callee_arr(ir_node *node, size_t n, ir_entity **arr);
101 FIRM_API void cg_remove_call_callee_arr(ir_node *node);
102 
105 #include "end.h"
106 
107 #endif
void cg_set_call_callee_arr(ir_node *node, size_t n, ir_entity **arr)
Sets the full callee array.
size_t cg_get_call_n_callees(const ir_node *node)
Returns the number of callees of Call node node.
void free_callee_info(ir_graph *irg)
Frees callee information.
int cg_call_has_callees(const ir_node *node)
Sets, get and remove the callee information for a Call node.
void cg_remove_call_callee_arr(ir_node *node)
Frees callee array of call node node.
void free_irp_callee_info(void)
Frees callee information for all graphs in the current program.
size_t cgana(ir_entity ***free_methods)
Analyses a rough estimation of the possible call graph.
ir_entity * cg_get_call_callee(const ir_node *node, size_t pos)
Returns callee number pos of Call node node.
void opt_call_addrs(void)
Optimizes the address expressions passed to call nodes.
struct ir_entity ir_entity
Entity.
Definition: firm_types.h:83
struct ir_node ir_node
Procedure Graph Node.
Definition: firm_types.h:53
struct ir_graph ir_graph
Procedure Graph.
Definition: firm_types.h:74