[LLVMdev] How to use LLVM optimizations with clang

Chad Rosier mcrosier at apple.com
Thu Jun 7 13:44:04 PDT 2012


On Jun 7, 2012, at 1:39 PM, Abdul Wahid Memon wrote:

> Thanks alot Chad for quick response. Does this means that, we can not
> use LLVM optimizations except O1, O2, O3, O4 and unroll-loops with
> clang?

Try using the -debug-pass=Arguments options to see what passes are being run at each optimization level.

E.g.,
clang -O[0-3] -mllvm -debug-pass=Arguments foo.c.

> 
> One more thing I would like to know that If I want to process multiple
> modules with opt at the same time like
> 
> opt -adce *.bc

I don't think this will work.

> 
> then how is it possible with opt in one go, if I process all the
> bytecode files within Makefile.

You should be able to define a rule in the Makefile to compile your bitcode/IR files.

 Chad

> 
> Thanks.
> 
> Shahzad
> 
> On Thu, Jun 7, 2012 at 9:22 PM, Chad Rosier <mcrosier at apple.com> wrote:
>> 
>> On Jun 7, 2012, at 10:59 AM, Abdul Wahid Memon wrote:
>> 
>>> Hello everyone
>>> 
>>> I am trying to use some LLVM optimizations like -die or -adce. Is it
>>> possible to use them along clang?
>>> 
>>> Or is there a way where these optimization can be passed on to "opt"
>>> tool through clang, if opt is being used by clang behind the scenes?
>>> 
>> 
>> No, opt only works on llvm IR/bitcode.  You can generate it like this:
>> clang -c foo.c -emit-llvm -o foo.bc
>> or
>> clang -S foo.c -emit-llvm -o foo.ll
>> 
>> Then you can run the optimization(s):
>> opt -adce foo.bc -o foo-adce.bc
>> 
>> Then you can compile using clang
>> clang -c foo-adce.bc -o foo-adce.o
>> 
>>  Chad
>> 
>>> Thanks alot
>>> 
>>> Regards
>>> 
>>> Shahzad
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>> 




More information about the llvm-dev mailing list