mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-28 22:23:43 +00:00
Check for extra kill flags on live-out virtual registers.
This would previously get reported as the misleading "Virtual register def doesn't dominate all uses." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159460 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6c50551e9a
commit
bb0721680c
@ -1049,6 +1049,20 @@ void MachineVerifier::visitMachineFunctionAfter() {
|
|||||||
// Now check liveness info if available
|
// Now check liveness info if available
|
||||||
calcRegsRequired();
|
calcRegsRequired();
|
||||||
|
|
||||||
|
// Check for killed virtual registers that should be live out.
|
||||||
|
for (MachineFunction::const_iterator MFI = MF->begin(), MFE = MF->end();
|
||||||
|
MFI != MFE; ++MFI) {
|
||||||
|
BBInfo &MInfo = MBBInfoMap[MFI];
|
||||||
|
for (RegSet::iterator
|
||||||
|
I = MInfo.vregsRequired.begin(), E = MInfo.vregsRequired.end(); I != E;
|
||||||
|
++I)
|
||||||
|
if (MInfo.regsKilled.count(*I)) {
|
||||||
|
report("Virtual register killed in block, but needed live out.", MFI);
|
||||||
|
*OS << "Virtual register " << PrintReg(*I)
|
||||||
|
<< " is used after the block.\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!MF->empty()) {
|
if (!MF->empty()) {
|
||||||
BBInfo &MInfo = MBBInfoMap[&MF->front()];
|
BBInfo &MInfo = MBBInfoMap[&MF->front()];
|
||||||
for (RegSet::iterator
|
for (RegSet::iterator
|
||||||
|
Loading…
x
Reference in New Issue
Block a user