[llvm-commits] [llvm] r153614 - in /llvm/trunk/lib/CodeGen: MachineVerifier.cpp Passes.cpp
Jakob Stoklund Olesen
stoklund at 2pi.dk
Wed Mar 28 16:31:16 PDT 2012
Author: stoklund
Date: Wed Mar 28 18:31:15 2012
New Revision: 153614
URL: http://llvm.org/viewvc/llvm-project?rev=153614&view=rev
Log:
Enable machine code verification after PreSched2 passes.
The late scheduler depends on accurate liveness information if it is
breaking anti-dependencies, so we should be able to verify it.
Relax the terminator checking in the machine code verifier so it can
handle the basic blocks created by if conversion.
Modified:
llvm/trunk/lib/CodeGen/MachineVerifier.cpp
llvm/trunk/lib/CodeGen/Passes.cpp
Modified: llvm/trunk/lib/CodeGen/MachineVerifier.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineVerifier.cpp?rev=153614&r1=153613&r2=153614&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/MachineVerifier.cpp (original)
+++ llvm/trunk/lib/CodeGen/MachineVerifier.cpp Wed Mar 28 18:31:15 2012
@@ -609,7 +609,9 @@
}
// Ensure non-terminators don't follow terminators.
- if (MI->isTerminator()) {
+ // Ignore predicated terminators formed by if conversion.
+ // FIXME: If conversion shouldn't need to violate this rule.
+ if (MI->isTerminator() && !TII->isPredicated(MI)) {
if (!FirstTerminator)
FirstTerminator = MI;
} else if (FirstTerminator) {
Modified: llvm/trunk/lib/CodeGen/Passes.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/Passes.cpp?rev=153614&r1=153613&r2=153614&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/Passes.cpp (original)
+++ llvm/trunk/lib/CodeGen/Passes.cpp Wed Mar 28 18:31:15 2012
@@ -398,7 +398,7 @@
// Run pre-sched2 passes.
if (addPreSched2())
- printNoVerify("After PreSched2 passes");
+ printAndVerify("After PreSched2 passes");
// Second pass scheduler.
if (getOptLevel() != CodeGenOpt::None) {
More information about the llvm-commits
mailing list