forked from OSchip/llvm-project
[NewPM][optnone] Mark various passes as required
This was done by turning on -enable-npm-optnone and fixing failures. That will be enabled in a follow-up change for ease of reverting. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D85457
This commit is contained in:
parent
58f5966d5b
commit
e6ea8779c2
|
@ -0,0 +1,14 @@
|
|||
// Test that no passes are skipped under -O0/NPM
|
||||
//
|
||||
// RUN: %clang_cc1 -triple x86_64-linux-gnu -mllvm -enable-npm-optnone -O0 -fexperimental-new-pass-manager %s -fdebug-pass-manager -emit-llvm -o /dev/null 2>&1 | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple x86_64-linux-gnu -mllvm -enable-npm-optnone -O0 -fexperimental-new-pass-manager %s -fdebug-pass-manager -emit-llvm -o /dev/null -fcoroutines-ts 2>&1 | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple x86_64-linux-gnu -mllvm -enable-npm-optnone -O0 -fexperimental-new-pass-manager %s -fdebug-pass-manager -emit-llvm -o /dev/null -fsanitize=address 2>&1 | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple x86_64-linux-gnu -mllvm -enable-npm-optnone -O0 -fexperimental-new-pass-manager %s -fdebug-pass-manager -emit-llvm -o /dev/null -fsanitize=hwaddress 2>&1 | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple x86_64-linux-gnu -mllvm -enable-npm-optnone -O0 -fexperimental-new-pass-manager %s -fdebug-pass-manager -emit-llvm -o /dev/null -fsanitize=memory 2>&1 | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple x86_64-linux-gnu -mllvm -enable-npm-optnone -O0 -fexperimental-new-pass-manager %s -fdebug-pass-manager -emit-llvm -o /dev/null -fsanitize=thread 2>&1 | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple x86_64-linux-gnu -mllvm -enable-npm-optnone -O0 -fexperimental-new-pass-manager %s -fdebug-pass-manager -emit-llvm -o /dev/null -fsanitize=local-bounds 2>&1 | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple x86_64-linux-gnu -mllvm -enable-npm-optnone -O0 -fexperimental-new-pass-manager %s -fdebug-pass-manager -emit-llvm -o /dev/null -fsanitize-coverage-trace-pc-guard 2>&1 | FileCheck %s
|
||||
|
||||
// CHECK-NOT: Skipping pass
|
||||
|
||||
int func(int a) { return a; }
|
|
@ -76,6 +76,7 @@ public:
|
|||
bool ShouldPreserveUseListOrder = false);
|
||||
|
||||
PreservedAnalyses run(Module &M, AnalysisManager<Module> &);
|
||||
static bool isRequired() { return true; }
|
||||
};
|
||||
|
||||
/// Pass for printing a Function as LLVM's text IR assembly.
|
||||
|
@ -91,6 +92,7 @@ public:
|
|||
PrintFunctionPass(raw_ostream &OS, const std::string &Banner = "");
|
||||
|
||||
PreservedAnalyses run(Function &F, AnalysisManager<Function> &);
|
||||
static bool isRequired() { return true; }
|
||||
};
|
||||
|
||||
} // End llvm namespace
|
||||
|
|
|
@ -1308,6 +1308,7 @@ struct RequireAnalysisPass
|
|||
|
||||
return PreservedAnalyses::all();
|
||||
}
|
||||
static bool isRequired() { return true; }
|
||||
};
|
||||
|
||||
/// A no-op pass template which simply forces a specific analysis result
|
||||
|
|
|
@ -116,6 +116,7 @@ public:
|
|||
|
||||
Result run(Module &M, ModuleAnalysisManager &);
|
||||
Result run(Function &F, FunctionAnalysisManager &);
|
||||
static bool isRequired() { return true; }
|
||||
};
|
||||
|
||||
/// Check a module for errors, but report debug info errors separately.
|
||||
|
@ -141,6 +142,7 @@ public:
|
|||
|
||||
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
|
||||
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
|
||||
static bool isRequired() { return true; }
|
||||
};
|
||||
|
||||
} // end namespace llvm
|
||||
|
|
|
@ -22,6 +22,7 @@ class Function;
|
|||
|
||||
struct CoroCleanupPass : PassInfoMixin<CoroCleanupPass> {
|
||||
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
|
||||
static bool isRequired() { return true; }
|
||||
};
|
||||
} // end namespace llvm
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ class Function;
|
|||
|
||||
struct CoroEarlyPass : PassInfoMixin<CoroEarlyPass> {
|
||||
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
|
||||
static bool isRequired() { return true; }
|
||||
};
|
||||
} // end namespace llvm
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ class Function;
|
|||
|
||||
struct CoroElidePass : PassInfoMixin<CoroElidePass> {
|
||||
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
|
||||
static bool isRequired() { return true; }
|
||||
};
|
||||
} // end namespace llvm
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ namespace llvm {
|
|||
struct CoroSplitPass : PassInfoMixin<CoroSplitPass> {
|
||||
PreservedAnalyses run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM,
|
||||
LazyCallGraph &CG, CGSCCUpdateResult &UR);
|
||||
static bool isRequired() { return true; }
|
||||
};
|
||||
} // end namespace llvm
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ public:
|
|||
: InsertLifetime(InsertLifetime) {}
|
||||
|
||||
PreservedAnalyses run(Module &M, ModuleAnalysisManager &);
|
||||
static bool isRequired() { return true; }
|
||||
};
|
||||
|
||||
/// Create a legacy pass manager instance of a pass to inline and remove
|
||||
|
|
|
@ -102,6 +102,7 @@ public:
|
|||
bool Recover = false,
|
||||
bool UseAfterScope = false);
|
||||
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
|
||||
static bool isRequired() { return true; }
|
||||
|
||||
private:
|
||||
bool CompileKernel;
|
||||
|
@ -122,6 +123,7 @@ public:
|
|||
bool UseGlobalGC = true,
|
||||
bool UseOdrIndicator = false);
|
||||
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
|
||||
static bool isRequired() { return true; }
|
||||
|
||||
private:
|
||||
bool CompileKernel;
|
||||
|
|
|
@ -17,6 +17,7 @@ namespace llvm {
|
|||
/// stores, and other memory intrinsics.
|
||||
struct BoundsCheckingPass : PassInfoMixin<BoundsCheckingPass> {
|
||||
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
|
||||
static bool isRequired() { return true; }
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ public:
|
|||
explicit HWAddressSanitizerPass(bool CompileKernel = false,
|
||||
bool Recover = false);
|
||||
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM);
|
||||
static bool isRequired() { return true; }
|
||||
|
||||
private:
|
||||
bool CompileKernel;
|
||||
|
|
|
@ -41,6 +41,7 @@ struct MemorySanitizerPass : public PassInfoMixin<MemorySanitizerPass> {
|
|||
|
||||
PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM);
|
||||
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
|
||||
static bool isRequired() { return true; }
|
||||
|
||||
private:
|
||||
MemorySanitizerOptions Options;
|
||||
|
|
|
@ -46,6 +46,7 @@ public:
|
|||
*vfs::getRealFileSystem());
|
||||
}
|
||||
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
|
||||
static bool isRequired() { return true; }
|
||||
|
||||
private:
|
||||
SanitizerCoverageOptions Options;
|
||||
|
|
|
@ -28,6 +28,7 @@ FunctionPass *createThreadSanitizerLegacyPassPass();
|
|||
struct ThreadSanitizerPass : public PassInfoMixin<ThreadSanitizerPass> {
|
||||
PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM);
|
||||
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
|
||||
static bool isRequired() { return true; }
|
||||
};
|
||||
|
||||
} // namespace llvm
|
||||
|
|
|
@ -22,6 +22,7 @@ namespace llvm {
|
|||
class LowerAtomicPass : public PassInfoMixin<LowerAtomicPass> {
|
||||
public:
|
||||
PreservedAnalyses run(Function &F, FunctionAnalysisManager &);
|
||||
static bool isRequired() { return true; }
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
namespace llvm {
|
||||
struct LowerMatrixIntrinsicsPass : PassInfoMixin<LowerMatrixIntrinsicsPass> {
|
||||
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
|
||||
static bool isRequired() { return true; }
|
||||
};
|
||||
} // namespace llvm
|
||||
|
||||
|
|
|
@ -66,8 +66,8 @@ attributes #0 = { optnone noinline }
|
|||
; Additional IR passes that opt doesn't turn on by default.
|
||||
; MORE-DAG: Skipping pass 'Dead Code Elimination'
|
||||
; MORE-DAG: Skipping pass 'Dead Instruction Elimination'
|
||||
; NPM-MORE-DAG: Skipping pass: DCEPass
|
||||
; NPM-MORE-DAG: Skipping pass: GVNHoistPass
|
||||
; NPM-MORE-DAG: Skipping pass: LowerAtomicPass
|
||||
|
||||
; Loop IR passes that opt doesn't turn on by default.
|
||||
; LOOP-DAG: Skipping pass 'Delete dead loops'
|
||||
|
|
Loading…
Reference in New Issue