mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-12 13:38:21 +00:00
verify-di: Implement DebugInfoVerifier
Implement DebugInfoVerifier, which steals verification relying on DebugInfoFinder from Verifier. - Adds LegacyDebugInfoVerifierPassPass, a ModulePass which wraps DebugInfoVerifier. Uses -verify-di command-line flag. - Change verifyModule() to invoke DebugInfoVerifier as well as Verifier. - Add a call to createDebugInfoVerifierPass() wherever there was a call to createVerifierPass(). This implementation as a module pass should sidestep efficiency issues, allowing us to turn debug info verification back on. <rdar://problem/15500563> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206300 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -384,8 +384,10 @@ void TargetPassConfig::addIRPasses() {
|
||||
|
||||
// Before running any passes, run the verifier to determine if the input
|
||||
// coming from the front-end and/or optimizer is valid.
|
||||
if (!DisableVerify)
|
||||
if (!DisableVerify) {
|
||||
addPass(createVerifierPass());
|
||||
addPass(createDebugInfoVerifierPass());
|
||||
}
|
||||
|
||||
// Run loop strength reduction before anything else.
|
||||
if (getOptLevel() != CodeGenOpt::None && !DisableLSR) {
|
||||
@ -443,6 +445,12 @@ void TargetPassConfig::addCodeGenPrepare() {
|
||||
void TargetPassConfig::addISelPrepare() {
|
||||
addPreISel();
|
||||
|
||||
// Need to verify DebugInfo *before* creating the stack protector analysis.
|
||||
// It's a function pass, and verifying between it and its users causes a
|
||||
// crash.
|
||||
if (!DisableVerify)
|
||||
addPass(createDebugInfoVerifierPass());
|
||||
|
||||
addPass(createStackProtectorPass(TM));
|
||||
|
||||
if (PrintISelInput)
|
||||
|
Reference in New Issue
Block a user