mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-19 02:25:01 +00:00
llc: Add a 'run-pass' option.
This commit adds a 'run-pass' option to llc, which instructs the compiler to run one specific code generation pass only. Llc already has the 'start-after' and the 'stop-after' options, and this new option complements the other two by making it easier to write tests that want to invoke a single pass only. Reviewers: Duncan P. N. Exon Smith Differential Revision: http://reviews.llvm.org/D10776 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241476 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -214,10 +214,10 @@ TargetPassConfig::~TargetPassConfig() {
|
||||
// Out of line constructor provides default values for pass options and
|
||||
// registers all common codegen passes.
|
||||
TargetPassConfig::TargetPassConfig(TargetMachine *tm, PassManagerBase &pm)
|
||||
: ImmutablePass(ID), PM(&pm), StartAfter(nullptr), StopAfter(nullptr),
|
||||
Started(true), Stopped(false), AddingMachinePasses(false), TM(tm),
|
||||
Impl(nullptr), Initialized(false), DisableVerify(false),
|
||||
EnableTailMerge(true), EnableShrinkWrap(false) {
|
||||
: ImmutablePass(ID), PM(&pm), StartBefore(nullptr), StartAfter(nullptr),
|
||||
StopAfter(nullptr), Started(true), Stopped(false),
|
||||
AddingMachinePasses(false), TM(tm), Impl(nullptr), Initialized(false),
|
||||
DisableVerify(false), EnableTailMerge(true), EnableShrinkWrap(false) {
|
||||
|
||||
Impl = new PassConfigImpl();
|
||||
|
||||
@@ -288,6 +288,8 @@ void TargetPassConfig::addPass(Pass *P, bool verifyAfter, bool printAfter) {
|
||||
// and shouldn't reference it.
|
||||
AnalysisID PassID = P->getPassID();
|
||||
|
||||
if (StartBefore == PassID)
|
||||
Started = true;
|
||||
if (Started && !Stopped) {
|
||||
std::string Banner;
|
||||
// Construct banner message before PM->add() as that may delete the pass.
|
||||
|
Reference in New Issue
Block a user