From 7ba78302b59a0cf7d2bc90a831ca201e107f4d47 Mon Sep 17 00:00:00 2001 From: Akira Hatanaka Date: Sat, 13 Dec 2014 04:52:04 +0000 Subject: [PATCH] Rename argument strings of codegen passes to avoid collisions with command line options. This commit changes the command line arguments (PassInfo::PassArgument) of two passes, MachineFunctionPrinter and MachineScheduler, to avoid collisions with command line options that have the same argument strings. This bug manifests when the PassList construct (defined in opt.cpp) is used in a tool that links with codegen passes. To reproduce the bug, paste the following lines into llc.cpp and run llc. #include "llvm/IR/LegacyPassNameParser.h" static llvm::cl::list PassList(llvm::cl::desc("Optimizations available:")); rdar://problem/19212448 llvm-svn: 224186 --- llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp | 2 +- llvm/lib/CodeGen/MachineScheduler.cpp | 4 ++-- llvm/lib/CodeGen/Passes.cpp | 2 +- llvm/test/CodeGen/Generic/print-machineinstrs.ll | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp b/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp index dee3977cd080..790f5accdb26 100644 --- a/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp +++ b/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp @@ -52,7 +52,7 @@ char MachineFunctionPrinterPass::ID = 0; } char &llvm::MachineFunctionPrinterPassID = MachineFunctionPrinterPass::ID; -INITIALIZE_PASS(MachineFunctionPrinterPass, "print-machineinstrs", +INITIALIZE_PASS(MachineFunctionPrinterPass, "machineinstr-printer", "Machine Function Printer", false, false) namespace llvm { diff --git a/llvm/lib/CodeGen/MachineScheduler.cpp b/llvm/lib/CodeGen/MachineScheduler.cpp index cc8f3a075e9e..9fe23c5b2272 100644 --- a/llvm/lib/CodeGen/MachineScheduler.cpp +++ b/llvm/lib/CodeGen/MachineScheduler.cpp @@ -144,12 +144,12 @@ char MachineScheduler::ID = 0; char &llvm::MachineSchedulerID = MachineScheduler::ID; -INITIALIZE_PASS_BEGIN(MachineScheduler, "misched", +INITIALIZE_PASS_BEGIN(MachineScheduler, "machine-scheduler", "Machine Instruction Scheduler", false, false) INITIALIZE_AG_DEPENDENCY(AliasAnalysis) INITIALIZE_PASS_DEPENDENCY(SlotIndexes) INITIALIZE_PASS_DEPENDENCY(LiveIntervals) -INITIALIZE_PASS_END(MachineScheduler, "misched", +INITIALIZE_PASS_END(MachineScheduler, "machine-scheduler", "Machine Instruction Scheduler", false, false) MachineScheduler::MachineScheduler() diff --git a/llvm/lib/CodeGen/Passes.cpp b/llvm/lib/CodeGen/Passes.cpp index 453d5cf77d35..5e1117522dbf 100644 --- a/llvm/lib/CodeGen/Passes.cpp +++ b/llvm/lib/CodeGen/Passes.cpp @@ -520,7 +520,7 @@ void TargetPassConfig::addMachinePasses() { .equals("option-unspecified")) { const PassRegistry *PR = PassRegistry::getPassRegistry(); const PassInfo *TPI = PR->getPassInfo(PrintMachineInstrs.getValue()); - const PassInfo *IPI = PR->getPassInfo(StringRef("print-machineinstrs")); + const PassInfo *IPI = PR->getPassInfo(StringRef("machineinstr-printer")); assert (TPI && IPI && "Pass ID not registered!"); const char *TID = (const char *)(TPI->getTypeInfo()); const char *IID = (const char *)(IPI->getTypeInfo()); diff --git a/llvm/test/CodeGen/Generic/print-machineinstrs.ll b/llvm/test/CodeGen/Generic/print-machineinstrs.ll index 75dceb5b2623..26bccaae572c 100644 --- a/llvm/test/CodeGen/Generic/print-machineinstrs.ll +++ b/llvm/test/CodeGen/Generic/print-machineinstrs.ll @@ -3,7 +3,7 @@ ; RUN: llc < %s -O3 -debug-pass=Structure -print-machineinstrs= -o /dev/null 2>&1 | FileCheck %s define i64 @foo(i64 %a, i64 %b) nounwind { -; CHECK: -branch-folder -print-machineinstrs +; CHECK: -branch-folder -machineinstr-printer ; CHECK: Control Flow Optimizer ; CHECK-NEXT: MachineFunction Printer ; CHECK: Machine code for function foo: