[LLVMdev] How to use LLVM optimizations with clang

Abdul Wahid Memon engrwahidmemon at gmail.com
Thu Jun 7 14:04:04 PDT 2012


Hello Duncan

Is it possible that we can use LLVM optimization beside O1, O2, O3
along with dragonegg plugin?

Regards

Shahzad

On Thu, Jun 7, 2012 at 10:59 PM, Abdul Wahid Memon
<engrwahidmemon at gmail.com> wrote:
> Thanks alot Chad for these quick and fine responses.
>
> Regards
>
> Abdul
>
> On Thu, Jun 7, 2012 at 10:57 PM, Chad Rosier <mcrosier at apple.com> wrote:
>>
>> On Jun 7, 2012, at 1:53 PM, Abdul Wahid Memon wrote:
>>
>>> Thanks again chad. One more question please.
>>>
>>> Is it possible that I can use these optimization using dragonegg plugin somehow?
>>
>> I haven't a clue.  Maybe Duncan can answer that?
>>
>>  Chad
>>
>>>
>>> Regards
>>>
>>> Shahzad
>>>
>>> On Thu, Jun 7, 2012 at 10:51 PM, Chad Rosier <mcrosier at apple.com> wrote:
>>>>
>>>> On Jun 7, 2012, at 1:48 PM, Abdul Wahid Memon wrote:
>>>>
>>>>> On Thu, Jun 7, 2012 at 10:44 PM, Chad Rosier <mcrosier at apple.com> wrote:
>>>>>>
>>>>>> 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.
>>>>> Yes, I have seen those optimization but I want to disable all the
>>>>> default optimization (-O0) and specify them individually to test their
>>>>> effect.
>>>>
>>>> 1. Generate the bitcode/ir with -O0
>>>> 2. Run opt with the optimization in question.  You should be able to specify most any pass with opt.
>>>>
>>>>>>
>>>>>> 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.
>>>>>>
>>>>> ok.
>>>>>>>
>>>>>>> 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.
>>>>> ok. I got the point.
>>>>>
>>>>> Thanks alot
>>>>>
>>>>> Shahzad
>>>>>>
>>>>>>  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