aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineFunction.cpp
diff options
context:
space:
mode:
authorJay Foad <jay.foad@amd.com>2021-10-15 11:26:48 +0100
committerJay Foad <jay.foad@amd.com>2021-10-18 10:26:46 +0100
commit36deb9a670d06fc254df2f357ae595fb8f817d07 (patch)
tree9e64e18edb754282b8cd716dacd80283fad55cb8 /llvm/lib/CodeGen/MachineFunction.cpp
parentd869921004526e804f344936d671a994852ab4d2 (diff)
downloadllvm-36deb9a670d06fc254df2f357ae595fb8f817d07.zip
llvm-36deb9a670d06fc254df2f357ae595fb8f817d07.tar.gz
llvm-36deb9a670d06fc254df2f357ae595fb8f817d07.tar.bz2
Add new MachineFunction property FailsVerification
TargetPassConfig::addPass takes a "bool verifyAfter" argument which lets you skip machine verification after a particular pass. Unfortunately this is used in generic code in TargetPassConfig itself to skip verification after a generic pass, only because some previous target- specific pass damaged the MIR on that specific target. This is bad because problems in one target cause lack of verification for all targets. This patch replaces that mechanism with a new MachineFunction property called "FailsVerification" which can be set by (usually target-specific) passes that are known to introduce problems. Later passes can reset it again if they are known to clean up the previous problems. Differential Revision: https://reviews.llvm.org/D111397
Diffstat (limited to 'llvm/lib/CodeGen/MachineFunction.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineFunction.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineFunction.cpp b/llvm/lib/CodeGen/MachineFunction.cpp
index e118d6d..4a838b8 100644
--- a/llvm/lib/CodeGen/MachineFunction.cpp
+++ b/llvm/lib/CodeGen/MachineFunction.cpp
@@ -99,6 +99,7 @@ static const char *getPropertyName(MachineFunctionProperties::Property Prop) {
case P::Selected: return "Selected";
case P::TracksLiveness: return "TracksLiveness";
case P::TiedOpsRewritten: return "TiedOpsRewritten";
+ case P::FailsVerification: return "FailsVerification";
}
llvm_unreachable("Invalid machine function property");
}