mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-17 05:25:47 +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:
@@ -90,8 +90,8 @@ TargetIRAnalysis LLVMTargetMachine::getTargetIRAnalysis() {
|
||||
/// addPassesToX helper drives creation and initialization of TargetPassConfig.
|
||||
static MCContext *
|
||||
addPassesToGenerateCode(LLVMTargetMachine *TM, PassManagerBase &PM,
|
||||
bool DisableVerify, AnalysisID StartAfter,
|
||||
AnalysisID StopAfter,
|
||||
bool DisableVerify, AnalysisID StartBefore,
|
||||
AnalysisID StartAfter, AnalysisID StopAfter,
|
||||
MachineFunctionInitializer *MFInitializer = nullptr) {
|
||||
|
||||
// Add internal analysis passes from the target machine.
|
||||
@@ -100,7 +100,7 @@ addPassesToGenerateCode(LLVMTargetMachine *TM, PassManagerBase &PM,
|
||||
// Targets may override createPassConfig to provide a target-specific
|
||||
// subclass.
|
||||
TargetPassConfig *PassConfig = TM->createPassConfig(PM);
|
||||
PassConfig->setStartStopPasses(StartAfter, StopAfter);
|
||||
PassConfig->setStartStopPasses(StartBefore, StartAfter, StopAfter);
|
||||
|
||||
// Set PassConfig options provided by TargetMachine.
|
||||
PassConfig->setDisableVerify(DisableVerify);
|
||||
@@ -143,11 +143,12 @@ addPassesToGenerateCode(LLVMTargetMachine *TM, PassManagerBase &PM,
|
||||
|
||||
bool LLVMTargetMachine::addPassesToEmitFile(
|
||||
PassManagerBase &PM, raw_pwrite_stream &Out, CodeGenFileType FileType,
|
||||
bool DisableVerify, AnalysisID StartAfter, AnalysisID StopAfter,
|
||||
MachineFunctionInitializer *MFInitializer) {
|
||||
bool DisableVerify, AnalysisID StartBefore, AnalysisID StartAfter,
|
||||
AnalysisID StopAfter, MachineFunctionInitializer *MFInitializer) {
|
||||
// Add common CodeGen passes.
|
||||
MCContext *Context = addPassesToGenerateCode(
|
||||
this, PM, DisableVerify, StartAfter, StopAfter, MFInitializer);
|
||||
MCContext *Context =
|
||||
addPassesToGenerateCode(this, PM, DisableVerify, StartBefore, StartAfter,
|
||||
StopAfter, MFInitializer);
|
||||
if (!Context)
|
||||
return true;
|
||||
|
||||
@@ -231,7 +232,8 @@ bool LLVMTargetMachine::addPassesToEmitMC(PassManagerBase &PM, MCContext *&Ctx,
|
||||
raw_pwrite_stream &Out,
|
||||
bool DisableVerify) {
|
||||
// Add common CodeGen passes.
|
||||
Ctx = addPassesToGenerateCode(this, PM, DisableVerify, nullptr, nullptr);
|
||||
Ctx = addPassesToGenerateCode(this, PM, DisableVerify, nullptr, nullptr,
|
||||
nullptr);
|
||||
if (!Ctx)
|
||||
return true;
|
||||
|
||||
|
Reference in New Issue
Block a user