[LLVMdev] O3 passes

Ryan M. Lefever lefever at crhc.illinois.edu
Tue Apr 28 01:32:38 PDT 2009

Thanks for the help.  When I run the following (where $llvm is the path 
to my llvm installation):

$llvm/bin/llvm-gcc -c -o - -O1 tmp.c -emit-llvm -mllvm 
--disable-llvm-optzns | $llvm/bin/opt -raiseallocs

I get the following error:

cc1: error: unrecognized command line option "-fdisable-llvm-optzns"

I am running llvm 2.5.  I performed a 
$llvm/libexec/gcc/i686-pc-linux-gnu/4.2.1/cc1 --help and didn't see 
-fdisable-llvm-optzns or anything similar.  Do you know what might be 
going on?


Duncan Sands wrote:
> On Tuesday 28 April 2009 09:19:19 am Ryan M. Lefever wrote:
>> Can I specify passes that I want run directly to llvm-gcc?  I don't want 
>> all of -O3, for example.  I tried llvm-gcc -raiseallocs ..., but that 
>> didn't work.  I also tried running cc1 directly and it didn't take 
>> -raiseallocs as a parameter either.
> You are better off run passes explicitly using opt.  Try this:
>   llvm-gcc -c -o - -O1 my_proc.c -emit-llvm -mllvm --disable-llvm-optzns | opt list_of_passes
> Passing -O1 to llvm-gcc means that gcc will perform constant folding and
> some other small optimizations.  Passing -emit-llvm means that LLVM bitcode
> is produced, suitable for piping to opt.  -mllvm --disable-llvm-optzns means
> that the LLVM optimizers will not be run.
> Ciao,
> Duncan.

More information about the llvm-dev mailing list