mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-31 08:16:47 +00:00 
			
		
		
		
	git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168919 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			144 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			144 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| opt - LLVM optimizer
 | |
| ====================
 | |
| 
 | |
| SYNOPSIS
 | |
| --------
 | |
| 
 | |
| :program:`opt` [*options*] [*filename*]
 | |
| 
 | |
| DESCRIPTION
 | |
| -----------
 | |
| 
 | |
| The :program:`opt` command is the modular LLVM optimizer and analyzer.  It
 | |
| takes LLVM source files as input, runs the specified optimizations or analyses
 | |
| on it, and then outputs the optimized file or the analysis results.  The
 | |
| function of :program:`opt` depends on whether the :option:`-analyze` option is
 | |
| given.
 | |
| 
 | |
| When :option:`-analyze` is specified, :program:`opt` performs various analyses
 | |
| of the input source.  It will usually print the results on standard output, but
 | |
| in a few cases, it will print output to standard error or generate a file with
 | |
| the analysis output, which is usually done when the output is meant for another
 | |
| program.
 | |
| 
 | |
| While :option:`-analyze` is *not* given, :program:`opt` attempts to produce an
 | |
| optimized output file.  The optimizations available via :program:`opt` depend
 | |
| upon what libraries were linked into it as well as any additional libraries
 | |
| that have been loaded with the :option:`-load` option.  Use the :option:`-help`
 | |
| option to determine what optimizations you can use.
 | |
| 
 | |
| If ``filename`` is omitted from the command line or is "``-``", :program:`opt`
 | |
| reads its input from standard input.  Inputs can be in either the LLVM assembly
 | |
| language format (``.ll``) or the LLVM bitcode format (``.bc``).
 | |
| 
 | |
| If an output filename is not specified with the :option:`-o` option,
 | |
| :program:`opt` writes its output to the standard output.
 | |
| 
 | |
| OPTIONS
 | |
| -------
 | |
| 
 | |
| .. option:: -f
 | |
| 
 | |
|  Enable binary output on terminals.  Normally, :program:`opt` will refuse to
 | |
|  write raw bitcode output if the output stream is a terminal.  With this option,
 | |
|  :program:`opt` will write raw bitcode regardless of the output device.
 | |
| 
 | |
| .. option:: -help
 | |
| 
 | |
|  Print a summary of command line options.
 | |
| 
 | |
| .. option:: -o <filename>
 | |
| 
 | |
|  Specify the output filename.
 | |
| 
 | |
| .. option:: -S
 | |
| 
 | |
|  Write output in LLVM intermediate language (instead of bitcode).
 | |
| 
 | |
| .. option:: -{passname}
 | |
| 
 | |
|  :program:`opt` provides the ability to run any of LLVM's optimization or
 | |
|  analysis passes in any order.  The :option:`-help` option lists all the passes
 | |
|  available.  The order in which the options occur on the command line are the
 | |
|  order in which they are executed (within pass constraints).
 | |
| 
 | |
| .. option:: -std-compile-opts
 | |
| 
 | |
|  This is short hand for a standard list of *compile time optimization* passes.
 | |
|  This is typically used to optimize the output from the llvm-gcc front end.  It
 | |
|  might be useful for other front end compilers as well.  To discover the full
 | |
|  set of options available, use the following command:
 | |
| 
 | |
|  .. code-block:: sh
 | |
| 
 | |
|      llvm-as < /dev/null | opt -std-compile-opts -disable-output -debug-pass=Arguments
 | |
| 
 | |
| .. option:: -disable-inlining
 | |
| 
 | |
|  This option is only meaningful when :option:`-std-compile-opts` is given.  It
 | |
|  simply removes the inlining pass from the standard list.
 | |
| 
 | |
| .. option:: -disable-opt
 | |
| 
 | |
|  This option is only meaningful when :option:`-std-compile-opts` is given.  It
 | |
|  disables most, but not all, of the :option:`-std-compile-opts`.  The ones that
 | |
|  remain are :option:`-verify`, :option:`-lower-setjmp`, and
 | |
|  :option:`-funcresolve`.
 | |
| 
 | |
| .. option:: -strip-debug
 | |
| 
 | |
|  This option causes opt to strip debug information from the module before
 | |
|  applying other optimizations.  It is essentially the same as :option:`-strip`
 | |
|  but it ensures that stripping of debug information is done first.
 | |
| 
 | |
| .. option:: -verify-each
 | |
| 
 | |
|  This option causes opt to add a verify pass after every pass otherwise
 | |
|  specified on the command line (including :option:`-verify`).  This is useful
 | |
|  for cases where it is suspected that a pass is creating an invalid module but
 | |
|  it is not clear which pass is doing it.  The combination of
 | |
|  :option:`-std-compile-opts` and :option:`-verify-each` can quickly track down
 | |
|  this kind of problem.
 | |
| 
 | |
| .. option:: -profile-info-file <filename>
 | |
| 
 | |
|  Specify the name of the file loaded by the ``-profile-loader`` option.
 | |
| 
 | |
| .. option:: -stats
 | |
| 
 | |
|  Print statistics.
 | |
| 
 | |
| .. option:: -time-passes
 | |
| 
 | |
|  Record the amount of time needed for each pass and print it to standard
 | |
|  error.
 | |
| 
 | |
| .. option:: -debug
 | |
| 
 | |
|  If this is a debug build, this option will enable debug printouts from passes
 | |
|  which use the ``DEBUG()`` macro.  See the `LLVM Programmer's Manual
 | |
|  <../ProgrammersManual.html>`_, section ``#DEBUG`` for more information.
 | |
| 
 | |
| .. option:: -load=<plugin>
 | |
| 
 | |
|  Load the dynamic object ``plugin``.  This object should register new
 | |
|  optimization or analysis passes.  Once loaded, the object will add new command
 | |
|  line options to enable various optimizations or analyses.  To see the new
 | |
|  complete list of optimizations, use the :option:`-help` and :option:`-load`
 | |
|  options together.  For example:
 | |
| 
 | |
|  .. code-block:: sh
 | |
| 
 | |
|      opt -load=plugin.so -help
 | |
| 
 | |
| .. option:: -p
 | |
| 
 | |
|  Print module after each transformation.
 | |
| 
 | |
| EXIT STATUS
 | |
| -----------
 | |
| 
 | |
| If :program:`opt` succeeds, it will exit with 0.  Otherwise, if an error
 | |
| occurs, it will exit with a non-zero value.
 | |
| 
 |