Although such nodes are allocatable, the cost of spilling may be less than
allocating to register, so spilling the node may provide a better solution.
The assert does not account for this case, so remove it for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229103
91177308-0d34-0410-b5e6-
96231b3b80d8
assert(RS >= this->RS && "A node's reduction state can not be downgraded");
this->RS = RS;
}
- bool isSpillable() const {
- return RS == NotProvablyAllocatable || RS == OptimallyReducible;
- }
void handleAddEdge(const MatrixMetadata& MD, bool Transpose) {
DeniedOpts += Transpose ? MD.getWorstRow() : MD.getWorstCol();
assert(PReg != 0 && "Invalid preg selected.");
VRM.assignVirt2Phys(VReg, PReg);
} else {
- assert(G.getNodeMetadata(NId).isSpillable() &&
- "Spilling a node which can not be spilled.");
// Spill VReg. If this introduces new intervals we'll need another round
// of allocation.
SmallVector<unsigned, 8> NewVRegs;