/**
* Get the block entry or allocate one if not yet assigned.
*/
-static block_entry_t *get_block_entry(ir_node *block) {
+static block_entry_t *get_block_entry(ir_node *block)
+{
block_entry_t *entry = get_irn_link(block);
if (entry == NULL) {
- entry = obstack_alloc(&env->obst, sizeof(*entry));
+ entry = OALLOC(&env->obst, block_entry_t);
entry->live_ins = NEW_ARR_F(ir_node *, 0);
entry->live_outs = NEW_ARR_F(ir_node *, 0);
return entry;
}
-static void add_entry(ir_node ***arr, ir_node *irn) {
+static void add_entry(ir_node ***arr, ir_node *irn)
+{
ir_node **list = *arr;
int i;
ARR_APP1(ir_node *, *arr, irn);
}
-static void add_live_in(ir_node *block, ir_node *irn) {
+static void add_live_in(ir_node *block, ir_node *irn)
+{
block_entry_t *entry = get_block_entry(block);
add_entry(&entry->live_ins, irn);
}
-static void add_live_out(ir_node *block, ir_node *irn) {
+static void add_live_out(ir_node *block, ir_node *irn)
+{
block_entry_t *entry = get_block_entry(block);
add_entry(&entry->live_outs, irn);
* @param def The node (value).
* @param block The block to mark the value live out of.
*/
-static void live_end_at_block(ir_node *def, ir_node *block) {
+static void live_end_at_block(ir_node *def, ir_node *block)
+{
add_live_out(block, def);
if (is_irn_constlike(def)) {
/**
* Walker: finds live-outs and calculate live-ins from that.
*/
-static void find_live_outs(ir_node *irn, void *ctx) {
+static void find_live_outs(ir_node *irn, void *ctx)
+{
ir_mode *mode = get_irn_mode(irn);
ir_node *block, *use_block;
int i;
+ (void)ctx;
+
/* only data nodes */
if (! mode_is_datab(mode))
return;
* Calculate the live-in and live out of blocks for datab nodes.
* Use it to estimate register pressure.
*/
-void stat_liveness(ir_graph *irg) {
+void stat_liveness(ir_graph *irg)
+{
environment_t genv;
block_entry_t *p;