summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_vec4.cpp
diff options
context:
space:
mode:
authorMatt Turner <[email protected]>2014-07-12 21:18:39 -0700
committerMatt Turner <[email protected]>2014-08-22 10:23:34 -0700
commit20a849b4aa63c7fce96b04de674a4c70f054ed9c (patch)
tree087219521b7702de2bc0754c8831fa55140701c0 /src/mesa/drivers/dri/i965/brw_vec4.cpp
parente0aa45768c6bda947b645ae6962054673937a55f (diff)
i965: Use basic-block aware insertion/removal functions.
To avoid invalidating and recreating the control flow graph. Also stop invalidating the CFG in places we didn't add or remove an instruction. cfg calculations: 202951 -> 80307 (-60.43%) Reviewed-by: Topi Pohjolainen <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_vec4.cpp')
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp
index ee61202c358..acf0b6390bc 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
@@ -403,7 +403,7 @@ vec4_visitor::opt_reduce_swizzle()
}
if (progress)
- invalidate_live_intervals();
+ invalidate_live_intervals(false);
return progress;
}
@@ -1029,7 +1029,7 @@ vec4_visitor::opt_register_coalesce()
calculate_live_intervals();
- foreach_in_list_safe(vec4_instruction, inst, &instructions) {
+ foreach_block_and_inst_safe (block, vec4_instruction, inst, cfg) {
int ip = next_ip;
next_ip++;
@@ -1199,13 +1199,13 @@ vec4_visitor::opt_register_coalesce()
}
scan_inst = (vec4_instruction *)scan_inst->next;
}
- inst->remove();
+ inst->remove(block);
progress = true;
}
}
if (progress)
- invalidate_live_intervals();
+ invalidate_live_intervals(false);
return progress;
}
@@ -1284,7 +1284,7 @@ vec4_visitor::split_virtual_grfs()
}
}
}
- invalidate_live_intervals();
+ invalidate_live_intervals(false);
}
void