4 * @author Sebastian Hack
6 * Live in/end checks whose only precomputation concerns the structure of the CFG.
7 * Hence, nothing has to be updated if the program is modified unless the CFG is touched.
8 * See .c file for more comments.
10 * Copyright (C) 2007 Universitaet Karlsruhe
11 * Released under the GPL
20 typedef struct _lv_chk_t lv_chk_t;
23 * Make a new liveness check environment.
24 * @param irg The graph.
25 * @return The environment.
27 extern lv_chk_t *lv_chk_new(ir_graph *irg);
30 * Free liveness check information.
31 * @param lv The liveness check information.
33 extern void lv_chk_free(lv_chk_t *lv);
36 * Check, if a node is live end of a given block.
37 * @param lv The liveness environment.
38 * @param bl The block to investigate.
39 * @param irn The node to check for.
40 * @return 1, if @p what is live end at @p bl, 0 else.
42 extern int lv_chk_bl_end(const lv_chk_t *lv, const ir_node *bl, const ir_node *irn);
45 * Check, if a node is live out of a given block.
46 * @param lv The liveness environment.
47 * @param bl The block to investigate.
48 * @param irn The node to check for.
49 * @return 1, if @p what is live out at @p bl, 0 else.
51 extern int lv_chk_bl_out(const lv_chk_t *lv, const ir_node *bl, const ir_node *irn);
54 * Check, if a node is live in of a given block.
55 * @param lv The liveness environment.
56 * @param bl The block to investigate.
57 * @param irn The node to check for.
58 * @return 1, if @p what is live in at @p bl, 0 else.
60 extern int lv_chk_bl_in(const lv_chk_t *lv, const ir_node *bl, const ir_node *irn);
62 #endif /* _IRLIVECHK_H */