You've already forked linux-packaging-mono
							
							
		
			
				
	
	
		
			215 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			215 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| lli - directly execute programs from LLVM bitcode
 | |
| =================================================
 | |
| 
 | |
| SYNOPSIS
 | |
| --------
 | |
| 
 | |
| :program:`lli` [*options*] [*filename*] [*program args*]
 | |
| 
 | |
| DESCRIPTION
 | |
| -----------
 | |
| 
 | |
| :program:`lli` directly executes programs in LLVM bitcode format.  It takes a program
 | |
| in LLVM bitcode format and executes it using a just-in-time compiler or an
 | |
| interpreter.
 | |
| 
 | |
| :program:`lli` is *not* an emulator. It will not execute IR of different architectures
 | |
| and it can only interpret (or JIT-compile) for the host architecture.
 | |
| 
 | |
| The JIT compiler takes the same arguments as other tools, like :program:`llc`,
 | |
| but they don't necessarily work for the interpreter.
 | |
| 
 | |
| If `filename` is not specified, then :program:`lli` reads the LLVM bitcode for the
 | |
| program from standard input.
 | |
| 
 | |
| The optional *args* specified on the command line are passed to the program as
 | |
| arguments.
 | |
| 
 | |
| GENERAL OPTIONS
 | |
| ---------------
 | |
| 
 | |
| .. option:: -fake-argv0=executable
 | |
| 
 | |
|  Override the ``argv[0]`` value passed into the executing program.
 | |
| 
 | |
| .. option:: -force-interpreter={false,true}
 | |
| 
 | |
|  If set to true, use the interpreter even if a just-in-time compiler is available
 | |
|  for this architecture. Defaults to false.
 | |
| 
 | |
| .. option:: -help
 | |
| 
 | |
|  Print a summary of command line options.
 | |
| 
 | |
| .. option:: -load=pluginfilename
 | |
| 
 | |
|  Causes :program:`lli` to load the plugin (shared object) named *pluginfilename* and use
 | |
|  it for optimization.
 | |
| 
 | |
| .. option:: -stats
 | |
| 
 | |
|  Print statistics from the code-generation passes. This is only meaningful for
 | |
|  the just-in-time compiler, at present.
 | |
| 
 | |
| .. option:: -time-passes
 | |
| 
 | |
|  Record the amount of time needed for each code-generation pass and print it to
 | |
|  standard error.
 | |
| 
 | |
| .. option:: -version
 | |
| 
 | |
|  Print out the version of :program:`lli` and exit without doing anything else.
 | |
| 
 | |
| TARGET OPTIONS
 | |
| --------------
 | |
| 
 | |
| .. option:: -mtriple=target triple
 | |
| 
 | |
|  Override the target triple specified in the input bitcode file with the
 | |
|  specified string.  This may result in a crash if you pick an
 | |
|  architecture which is not compatible with the current system.
 | |
| 
 | |
| .. option:: -march=arch
 | |
| 
 | |
|  Specify the architecture for which to generate assembly, overriding the target
 | |
|  encoded in the bitcode file.  See the output of **llc -help** for a list of
 | |
|  valid architectures.  By default this is inferred from the target triple or
 | |
|  autodetected to the current architecture.
 | |
| 
 | |
| .. option:: -mcpu=cpuname
 | |
| 
 | |
|  Specify a specific chip in the current architecture to generate code for.
 | |
|  By default this is inferred from the target triple and autodetected to
 | |
|  the current architecture.  For a list of available CPUs, use:
 | |
|  **llvm-as < /dev/null | llc -march=xyz -mcpu=help**
 | |
| 
 | |
| .. option:: -mattr=a1,+a2,-a3,...
 | |
| 
 | |
|  Override or control specific attributes of the target, such as whether SIMD
 | |
|  operations are enabled or not.  The default set of attributes is set by the
 | |
|  current CPU.  For a list of available attributes, use:
 | |
|  **llvm-as < /dev/null | llc -march=xyz -mattr=help**
 | |
| 
 | |
| FLOATING POINT OPTIONS
 | |
| ----------------------
 | |
| 
 | |
| .. option:: -disable-excess-fp-precision
 | |
| 
 | |
|  Disable optimizations that may increase floating point precision.
 | |
| 
 | |
| .. option:: -enable-no-infs-fp-math
 | |
| 
 | |
|  Enable optimizations that assume no Inf values.
 | |
| 
 | |
| .. option:: -enable-no-nans-fp-math
 | |
| 
 | |
|  Enable optimizations that assume no NAN values.
 | |
| 
 | |
| .. option:: -enable-unsafe-fp-math
 | |
| 
 | |
|  Causes :program:`lli` to enable optimizations that may decrease floating point
 | |
|  precision.
 | |
| 
 | |
| .. option:: -soft-float
 | |
| 
 | |
|  Causes :program:`lli` to generate software floating point library calls instead of
 | |
|  equivalent hardware instructions.
 | |
| 
 | |
| CODE GENERATION OPTIONS
 | |
| -----------------------
 | |
| 
 | |
| .. option:: -code-model=model
 | |
| 
 | |
|  Choose the code model from:
 | |
| 
 | |
|  .. code-block:: text
 | |
| 
 | |
|       default: Target default code model
 | |
|       small: Small code model
 | |
|       kernel: Kernel code model
 | |
|       medium: Medium code model
 | |
|       large: Large code model
 | |
| 
 | |
| .. option:: -disable-post-RA-scheduler
 | |
| 
 | |
|  Disable scheduling after register allocation.
 | |
| 
 | |
| .. option:: -disable-spill-fusing
 | |
| 
 | |
|  Disable fusing of spill code into instructions.
 | |
| 
 | |
| .. option:: -jit-enable-eh
 | |
| 
 | |
|  Exception handling should be enabled in the just-in-time compiler.
 | |
| 
 | |
| .. option:: -join-liveintervals
 | |
| 
 | |
|  Coalesce copies (default=true).
 | |
| 
 | |
| .. option:: -nozero-initialized-in-bss
 | |
| 
 | |
|   Don't place zero-initialized symbols into the BSS section.
 | |
| 
 | |
| .. option:: -pre-RA-sched=scheduler
 | |
| 
 | |
|  Instruction schedulers available (before register allocation):
 | |
| 
 | |
|  .. code-block:: text
 | |
| 
 | |
|       =default: Best scheduler for the target
 | |
|       =none: No scheduling: breadth first sequencing
 | |
|       =simple: Simple two pass scheduling: minimize critical path and maximize processor utilization
 | |
|       =simple-noitin: Simple two pass scheduling: Same as simple except using generic latency
 | |
|       =list-burr: Bottom-up register reduction list scheduling
 | |
|       =list-tdrr: Top-down register reduction list scheduling
 | |
|       =list-td: Top-down list scheduler -print-machineinstrs - Print generated machine code
 | |
| 
 | |
| .. option:: -regalloc=allocator
 | |
| 
 | |
|  Register allocator to use (default=linearscan)
 | |
| 
 | |
|  .. code-block:: text
 | |
| 
 | |
|       =bigblock: Big-block register allocator
 | |
|       =linearscan: linear scan register allocator =local -   local register allocator
 | |
|       =simple: simple register allocator
 | |
| 
 | |
| .. option:: -relocation-model=model
 | |
| 
 | |
|  Choose relocation model from:
 | |
| 
 | |
|  .. code-block:: text
 | |
| 
 | |
|       =default: Target default relocation model
 | |
|       =static: Non-relocatable code =pic -   Fully relocatable, position independent code
 | |
|       =dynamic-no-pic: Relocatable external references, non-relocatable code
 | |
| 
 | |
| .. option:: -spiller
 | |
| 
 | |
|  Spiller to use (default=local)
 | |
| 
 | |
|  .. code-block:: text
 | |
| 
 | |
|       =simple: simple spiller
 | |
|       =local: local spiller
 | |
| 
 | |
| .. option:: -x86-asm-syntax=syntax
 | |
| 
 | |
|  Choose style of code to emit from X86 backend:
 | |
| 
 | |
|  .. code-block:: text
 | |
| 
 | |
|       =att: Emit AT&T-style assembly
 | |
|       =intel: Emit Intel-style assembly
 | |
| 
 | |
| EXIT STATUS
 | |
| -----------
 | |
| 
 | |
| If :program:`lli` fails to load the program, it will exit with an exit code of 1.
 | |
| Otherwise, it will return the exit code of the program it executes.
 | |
| 
 | |
| SEE ALSO
 | |
| --------
 | |
| 
 | |
| :program:`llc`
 |