Displaying 20 results from an estimated 6000 matches similar to: "[LLVMdev] How to use LLVM optimizations with clang"
2012 Jun 08
2
[LLVMdev] How to use LLVM optimizations with clang
Hi Shahzad,
> Is it possible that we can use LLVM optimization beside O1, O2, O3
> along with dragonegg plugin?
sure, try this:
gcc -fplugin=path/dragonegg.so ...other_options_here... -S -o -
-fplugin-arg-dragonegg-emit-ir -fplugin-arg-dragonegg-llvm-ir-optimize=0 | opt
-pass1 -pass2 ...
Here -fplugin-arg-dragonegg-emit-ir tells it to output LLVM IR rather than
target assembler.
2012 Jun 08
2
[LLVMdev] How to use LLVM optimizations with clang
Hi Shahzad,
> I tried your method and it works fine. What would be the next step to
> produce the final executable? I have tried the following but it is
> producing an error
>
> $ gcc -fplugin=/path/to/dragonegg.so -S *.c
> -fplugin-arg-dragonegg-emit-ir | opt -adce
this won't work because you aren't passing the IR to opt (you need -o - for
that if using a pipe) and you
2012 Jun 07
3
[LLVMdev] How to use LLVM optimizations with clang
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?
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
then how is it possible with opt in one go, if I process all the
bytecode files within Makefile.
Thanks.
Shahzad
On Thu, Jun
2012 Jun 07
0
[LLVMdev] How to use LLVM optimizations with clang
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>
2012 Jun 12
2
[LLVMdev] How to use LLVM optimizations with clang
Hello
I need some help here please.
If we compile source files directly in to native code:
$ clang -O3 -lm *.c
then the runtime is like following
real 0m2.807s
user 0m2.784s
sys 0m0.012s
and If we emit LLVM bytcode and apply optimizations
$ clang -O3 -c -emit-llvm *.c
$ llvm-link *.o -o comb.ll
$ time lli ./comb.ll
then the runtime is
real 0m2.671s
user 0m2.640s
sys 0m0.020s
But, if I
2012 Jun 08
2
[LLVMdev] How to use LLVM optimizations with clang
Hi,
> I tried it with -o - but its producing an error
>
> gcc: fatal error: cannot specify -o with -c, -S or -E with multiple files
>
> What you suggest?
what I wrote:
>> for F in *.c ; do B=`basename $F .c` ; gcc -fplugin=/path/to/dragonegg.so
>> -S -o - $F -fplugin-arg-dragonegg-emit-ir | opt -adce -o $B.ll ; done
>> clang *.ll
Thanks to the for loop and
2012 Jun 12
2
[LLVMdev] How to use LLVM optimizations with clang
Hi
Yes, they both are exactly the same.
Regards
Shahzad
On Tue, Jun 12, 2012 at 9:38 AM, Duncan Sands <baldrick at free.fr> wrote:
> Hi, is the comb.ll used here:
>
>
>> $ time lli ./comb.ll
>>
>> then the runtime is
>>
>> real 0m2.671s
>> user 0m2.640s
>> sys 0m0.020s
>>
>> But, if I convert this same file comb,ll
2012 Jun 08
2
[LLVMdev] How to use LLVM optimizations with clang
Hi,
> If I compile the program using the following command line i.e.
>
> $ clang -O3 -lm *.c
this may be doing link time optimization.
>
> then
>
> $ time ./a.out
>
> real 0m2.606s
> user 0m2.584s
> sys 0m0.012s
>
> BUT, if I use all the optimizations enabled with -O3 but specify them
> explicity i.e.
you can just use "opt -O3"
2012 Jun 08
0
[LLVMdev] How to use LLVM optimizations with clang
Hello Duncan
I tried your method and it works fine. What would be the next step to
produce the final executable? I have tried the following but it is
producing an error
$ gcc -fplugin=/path/to/dragonegg.so -S *.c
-fplugin-arg-dragonegg-emit-ir | opt -adce
$ clang *.s
Regards
Shahzad
On Fri, Jun 8, 2012 at 9:10 AM, Duncan Sands <baldrick at free.fr> wrote:
> Hi Shahzad,
>
>
2012 Jun 08
0
[LLVMdev] How to use LLVM optimizations with clang
Hello Duncan
On Fri, Jun 8, 2012 at 2:58 PM, Duncan Sands <baldrick at free.fr> wrote:
> Hi Shahzad,
>
>
>> I tried your method and it works fine. What would be the next step to
>> produce the final executable? I have tried the following but it is
>> producing an error
>>
>> $ gcc -fplugin=/path/to/dragonegg.so -S *.c
>>
2012 Jun 12
0
[LLVMdev] How to use LLVM optimizations with clang
Hi, is the comb.ll used here:
> $ time lli ./comb.ll
>
> then the runtime is
>
> real 0m2.671s
> user 0m2.640s
> sys 0m0.020s
>
> But, if I convert this same file comb,ll in to native binary
the same as the comb.ll used here:
> $ clang comb.ll
?
Ciao, Duncan.
>
> and execute it, then the runtime increases alot
>
> $ time ./a.out
>
> real
2012 Jun 08
0
[LLVMdev] How to use LLVM optimizations with clang
Thanks Duncan
It was really helpful.
Regards
Abdul
On Fri, Jun 8, 2012 at 7:23 PM, Duncan Sands <baldrick at free.fr> wrote:
> Hi,
>
>
>> If I compile the program using the following command line i.e.
>>
>> $ clang -O3 -lm *.c
>
>
> this may be doing link time optimization.
>
>
>>
>> then
>>
>> $ time ./a.out
>>
2012 Jun 12
0
[LLVMdev] How to use LLVM optimizations with clang
Hi,
> Yes, they both are exactly the same.
then I don't know what is going on. I suggest you send a copy of comb.ll to the
list so that we can see for ourselves.
Ciao, Duncan.
>
> Regards
>
> Shahzad
>
> On Tue, Jun 12, 2012 at 9:38 AM, Duncan Sands<baldrick at free.fr> wrote:
>> Hi, is the comb.ll used here:
>>
>>
>>> $ time lli
2012 Jun 08
0
[LLVMdev] How to use LLVM optimizations with clang
Hello Duncan
Sorry for the mistake. Actually that error occurred when I was
compiling all the files at once, NOT in for loop.
The for loop is working perfectly as it is dealing with individual
files. I have now one new issue. Let me specify it briefly.
If I compile the program using the following command line i.e.
$ clang -O3 -lm *.c
then
$ time ./a.out
real 0m2.606s
user 0m2.584s
sys
2012 Jun 07
0
[LLVMdev] How to use LLVM optimizations with clang
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
2012 Jun 12
2
[LLVMdev] How to use LLVM optimizations with clang
Sure. The comb.ll and data files are attached and can be invoked as
the following
$ lli comb.ll data -c
Regards
Shahzad
On Tue, Jun 12, 2012 at 12:28 PM, Duncan Sands <baldrick at free.fr> wrote:
> Hi,
>
>
>> Yes, they both are exactly the same.
>
>
> then I don't know what is going on. I suggest you send a copy of comb.ll to
> the
> list so that we can
2012 Jun 12
2
[LLVMdev] How to use LLVM optimizations with clang
Thanks again.
I executed the following command line
llc -O3 comb.ll.bc -debug-pass=Arguments
and got
Pass Arguments: -targetdata -targetpassconfig -no-aa -tbaa
-targetlibinfo -basicaa -collector-metadata -machinemoduleinfo
-machine-branch-prob -preverify -domtree -verify -loops -loop-simplify
-scalar-evolution -loop-simplify -iv-users -loop-reduce -gc-lowering
-unreachableblockelim
2012 Jun 12
2
[LLVMdev] How to use LLVM optimizations with clang
Thanks alot. How can we view those optimization which are enabled when we do
llc -O3 comb.ll
Are these the same as the ones produced by the following command line
llvm-as < /dev/null | opt -O3 -disable-output -debug-pass=Arguments
Regards
Shahzad
On Tue, Jun 12, 2012 at 1:01 PM, Duncan Sands <baldrick at free.fr> wrote:
>> Yes. But how exactly code generation (optimized one)
2012 Jun 12
0
[LLVMdev] How to use LLVM optimizations with clang
Hi,
> I executed the following command line
>
> llc -O3 comb.ll.bc -debug-pass=Arguments
>
> and got
>
> Pass Arguments: -targetdata -targetpassconfig -no-aa -tbaa
> -targetlibinfo -basicaa -collector-metadata -machinemoduleinfo
> -machine-branch-prob -preverify -domtree -verify -loops -loop-simplify
> -scalar-evolution -loop-simplify -iv-users -loop-reduce
2012 Jun 12
0
[LLVMdev] How to use LLVM optimizations with clang
Hi,
On 12/06/12 13:09, Abdul Wahid Memon wrote:
> Thanks alot. How can we view those optimization which are enabled when we do
>
> llc -O3 comb.ll
llc -O3 comb.ll -debug-pass=Arguments
>
> Are these the same as the ones produced by the following command line
no, as I mentioned before they are of a completely different nature
to the optimizations that opt does.
Ciao, Duncan.