src/lima/pp_lir/dep_info.c
/* Calculates the transitive reduction of the dataflow graph, which contains
 * the minimum necessary links. This has the property that if there is a link
 * A -> B, then there is no other way to get from A to B, and therefore it is
 * safe to merge A and B, combining their successors & predecessors. Note that
 * the combined node, however, may have extra successors/predecessors, meaning
 * that this function must be called again before using min_preds and min_succs
 * of the combined node.
 */
Calculates the transitive reduction of the dataflow graph, which contains
the minimum necessary links. This has the property that if there is a link
A -> B, then there is no other way to get from A to B, and therefore it is
safe to merge A and B, combining their successors & predecessors. Note that
the combined node, however, may have extra successors/predecessors, meaning
that this function must be called again before using min_preds and min_succs
of the combined node.
Calculates the transitive reduction of the dataflow graph which contains the minimum necessary links . This has the property that if there is a link A - > B then there is no other way to get from A to B and therefore it is safe to merge A and B combining their successors & predecessors . Note that the combined node however may have extra successors / predecessors meaning that this function must be called again before using min_preds and min_succs of the combined node .
void lima_pp_lir_calc_min_dep_info(lima_pp_lir_block_t* block)
{
	lima_pp_lir_scheduled_instr_t* instr;
	pp_lir_block_for_each_instr(block, instr)
	{
		lima_pp_lir_scheduled_instr_t* temp;
		pp_lir_block_for_each_instr(block, temp)
		{
			temp->visited = false;
		}
		ptrset_iter_t iter = ptrset_iter_create(instr->succs);
		lima_pp_lir_scheduled_instr_t* succ;
		ptrset_iter_for_each(iter, succ)
		{
			remove_edges(instr, succ);
		}
	}
}
void lima_pp_lir_calc_min_dep_info ( lima_pp_lir_block_t * block ) { lima_pp_lir_scheduled_instr_t * instr ; pp_lir_block_for_each_instr ( block , instr ) { lima_pp_lir_scheduled_instr_t * temp ; pp_lir_block_for_each_instr ( block , temp ) { temp -> visited = false ; } ptrset_iter_t iter = ptrset_iter_create ( instr -> succs ) ; lima_pp_lir_scheduled_instr_t * succ ; ptrset_iter_for_each ( iter , succ ) { remove_edges ( instr , succ ) ; } } }
Calculates the transitive reduction of the dataflow graph, which contains
 the minimum necessary links.
Calculates the transitive reduction of the dataflow graph which contains the minimum necessary links .