mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 23:17:16 +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