}
}
-void be_liveness_nodes_live_at_input(const be_lv_t *lv,
- const arch_env_t *arch_env,
- const arch_register_class_t *cls,
- const ir_node *pos, ir_nodeset_t *live)
-{
- const ir_node *bl = is_Block(pos) ? pos : get_nodes_block(pos);
- ir_node *irn;
- (void)arch_env; // TODO remove parameter
-
- assert(lv->nodes && "live sets must be computed");
- be_liveness_end_of_block(lv, cls, bl, live);
- sched_foreach_reverse(bl, irn) {
- be_liveness_transfer(cls, irn, live);
- if(irn == pos)
- return;
- }
-}
-
static void collect_node(ir_node *irn, void *data)
{
struct obstack *obst = data;
const arch_register_class_t *cls,
const ir_node *pos, ir_nodeset_t *live);
-/**
- * Compute a set of nodes which are live at another node.
- * BEWARE: This is the liveness immediately before the node,
- * so the node itself is not alive but it's operands are.
- * @param arch_env The architecture environment.
- * @param cls The register class to consider.
- * @param pos The node.
- * @param live The set to put them into.
- */
-void be_liveness_nodes_live_at_input(const be_lv_t *lv,
- const arch_env_t *arch_env,
- const arch_register_class_t *cls,
- const ir_node *pos, ir_nodeset_t *live);
-
/**
* Make sure the live sets are computed.
* @param lv The liveness information.