mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-03 19:02:35 +00:00
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:🆑:list<const llvm::PassInfo*, bool, llvm::PassNameParser> PassList(llvm:🆑:desc("Optimizations available:")); rdar://problem/19212448 llvm-svn: 224186
This commit is contained in:
parent
429456643c
commit
e6d6f49584
@ -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 {
|
||||
|
@ -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()
|
||||
|
@ -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());
|
||||
|
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user