Fix fuzzbug related to bundle priority ordering.
Changes in computation of bundle priorities during review of the initial PR introduced a possible mis-ordering of priorities: inner-loop bundle use weights could exceed the weights of 1_000_000 and 2_000_000 used for minimal bundles without and with fixed uses (respectively). These two kinds of minimal bundle are meant to be the highest-priority bundles, evicting any other bundle they need to, because they can't be split further. This PR introduces two special bundle weights for these two kinds of bundles, and clamps all other bundle weights to just below them. Thanks to @Amanieu for reporting the issue! Fixes #19.
This commit is contained in:
@@ -78,7 +78,7 @@
|
||||
|
||||
use crate::{
|
||||
Allocation, AllocationKind, Block, Edit, Function, Inst, InstPosition, Operand,
|
||||
OperandConstraint, OperandKind, OperandPos, Output, PReg, ProgPoint, RegClass, VReg,
|
||||
OperandConstraint, OperandKind, OperandPos, Output, PReg, ProgPoint, VReg,
|
||||
};
|
||||
|
||||
use std::collections::{HashMap, HashSet, VecDeque};
|
||||
|
||||
Reference in New Issue
Block a user