mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-31 08:16:47 +00:00 
			
		
		
		
	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<const llvm::PassInfo*, bool, llvm::PassNameParser>
PassList(llvm::cl::desc("Optimizations available:"));
rdar://problem/19212448
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224186 91177308-0d34-0410-b5e6-96231b3b80d8
		
	
		
			
				
	
	
		
			15 lines
		
	
	
		
			594 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
			
		
		
	
	
			15 lines
		
	
	
		
			594 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
| ; RUN: llc < %s -O3 -debug-pass=Structure -print-machineinstrs=branch-folder -o /dev/null 2>&1 | FileCheck %s
 | |
| ; RUN: llc < %s -O3 -debug-pass=Structure -print-machineinstrs -o /dev/null 2>&1 | FileCheck %s
 | |
| ; 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  -machineinstr-printer
 | |
| ; CHECK: Control Flow Optimizer
 | |
| ; CHECK-NEXT: MachineFunction Printer
 | |
| ; CHECK: Machine code for function foo:
 | |
|   %c = add i64 %a, %b
 | |
|   %d = trunc i64 %c to i32
 | |
|   %e = zext i32 %d to i64
 | |
|   ret i64 %e
 | |
| }
 |