mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-23 02:32:11 +00:00
Don't verify LiveVariables if LiveIntervals is available.
LiveVariables becomes horribly wrong while the coalescer is running, but the analysis is not zapped until after the coalescer pass has run. This causes tons of false reports when calling verify form the coalescer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110402 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5eeb19d189
commit
c910c8d2fa
@ -245,12 +245,13 @@ bool MachineVerifier::runOnMachineFunction(MachineFunction &MF) {
|
||||
TRI = TM->getRegisterInfo();
|
||||
MRI = &MF.getRegInfo();
|
||||
|
||||
LiveVars = NULL;
|
||||
LiveInts = NULL;
|
||||
if (PASS) {
|
||||
LiveVars = PASS->getAnalysisIfAvailable<LiveVariables>();
|
||||
LiveInts = PASS->getAnalysisIfAvailable<LiveIntervals>();
|
||||
} else {
|
||||
LiveVars = NULL;
|
||||
LiveInts = NULL;
|
||||
// We don't want to verify LiveVariables if LiveIntervals is available.
|
||||
if (!LiveInts)
|
||||
LiveVars = PASS->getAnalysisIfAvailable<LiveVariables>();
|
||||
}
|
||||
|
||||
visitMachineFunctionBefore();
|
||||
@ -576,16 +577,16 @@ MachineVerifier::visitMachineOperand(const MachineOperand *MO, unsigned MONum) {
|
||||
} else
|
||||
isKill = MO->isKill();
|
||||
|
||||
if (isKill) {
|
||||
if (isKill)
|
||||
addRegWithSubRegs(regsKilled, Reg);
|
||||
|
||||
// Check that LiveVars knows this kill
|
||||
if (LiveVars && TargetRegisterInfo::isVirtualRegister(Reg)) {
|
||||
LiveVariables::VarInfo &VI = LiveVars->getVarInfo(Reg);
|
||||
if (std::find(VI.Kills.begin(),
|
||||
VI.Kills.end(), MI) == VI.Kills.end())
|
||||
report("Kill missing from LiveVariables", MO, MONum);
|
||||
}
|
||||
// Check that LiveVars knows this kill.
|
||||
if (LiveVars && TargetRegisterInfo::isVirtualRegister(Reg) &&
|
||||
MO->isKill()) {
|
||||
LiveVariables::VarInfo &VI = LiveVars->getVarInfo(Reg);
|
||||
if (std::find(VI.Kills.begin(),
|
||||
VI.Kills.end(), MI) == VI.Kills.end())
|
||||
report("Kill missing from LiveVariables", MO, MONum);
|
||||
}
|
||||
|
||||
// Check LiveInts liveness and kill.
|
||||
|
Loading…
x
Reference in New Issue
Block a user