Collect full conflict-bundle list, by not ending PhysReg probe on first conflict; this leads to better eviction decisions on bz2
This commit is contained in:
@@ -2305,19 +2305,6 @@ impl<'a, F: Function> Env<'a, F> {
|
||||
if !conflicts.iter().any(|b| *b == conflict_bundle) {
|
||||
conflicts.push(conflict_bundle);
|
||||
}
|
||||
|
||||
// Empirically, it seems to be essentially as good
|
||||
// to return only one conflicting bundle as all of
|
||||
// them; it is very rare that the combination of
|
||||
// all conflicting bundles yields a maximum spill
|
||||
// weight that is enough to keep them in place
|
||||
// when a single conflict does not. It is also a
|
||||
// quite significant compile-time win to *stop
|
||||
// scanning* as soon as we have a conflict. To
|
||||
// experiment with this, however, just remove this
|
||||
// `break`; the rest of the code will do the right
|
||||
// thing.
|
||||
break;
|
||||
} else {
|
||||
log::debug!(" -> conflict with fixed reservation");
|
||||
// range from a direct use of the PReg (due to clobber).
|
||||
|
||||
Reference in New Issue
Block a user