similar to: [LLVMdev] PGO + switch hot case statements

Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] PGO + switch hot case statements"

2014 Dec 15
4
[LLVMdev] Lowering switch statements with PGO
> On Mon, Dec 15, 2014 at 9:57 AM, Chad Rosier <mcrosier at codeaurora.org> > wrote: >> All, >> About two months ago I posted a patch that hoisted the hottest case >> statement from a switch statement during ISelLowering. >> >> See: http://reviews.llvm.org/D5786 >> >> Sean was rather adamant about using a Huffman tree (and I agree this is
2014 Dec 15
7
[LLVMdev] Lowering switch statements with PGO
All, About two months ago I posted a patch that hoisted the hottest case statement from a switch statement during ISelLowering. See: http://reviews.llvm.org/D5786 Sean was rather adamant about using a Huffman tree (and I agree this is a more complete solution), so I'd like to put a patch together. That being said, I have a few questions. The current switch lowering code sorts based on case
2014 Dec 16
3
[LLVMdev] Lowering switch statements with PGO
> On Mon, Dec 15, 2014 at 2:26 PM, Chad Rosier <mcrosier at codeaurora.org> > wrote: >> >> > On Mon, Dec 15, 2014 at 9:57 AM, Chad Rosier <mcrosier at codeaurora.org> >> > wrote: >> >> All, >> >> About two months ago I posted a patch that hoisted the hottest case >> >> statement from a switch statement during
2014 Dec 23
2
[LLVMdev] Lowering switch statements with PGO
After messing around with this a bit recently, I've come to the following conclusions: 1. One issue is at what granularity to consider the PGO weightings. For example, should a set of 50 consecutive cases with 65% of the total weight distributed approximately evenly and which can be lowered to a table lookup be handled before the 3 remaining cases that 5%, 10%, and 20% probability,
2015 Feb 04
2
[LLVMdev] Reassociate and Canonicalization of Expressions
> Hi Chad, > > Thanks for you answer. > >> On Feb 4, 2015, at 11:22 AM, Chad Rosier <mcrosier at codeaurora.org> >> wrote: >> >>>> On Feb 2, 2015, at 11:12 AM, Mehdi Amini <mehdi.amini at apple.com> >>>> wrote: >>>> >>>> Hi, >>>> >>>> I encountered some bugs in Reassociate [1] where we
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 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
2015 Feb 04
3
[LLVMdev] Reassociate and Canonicalization of Expressions
>> On Feb 2, 2015, at 11:12 AM, Mehdi Amini <mehdi.amini at apple.com> wrote: >> >> Hi, >> >> I encountered some bugs in Reassociate [1] where we are hitting some >> assertions: >> >> assert(!Duplicates.count(Factor) && >> "Shouldn't have two constant factors, missed a >> canonicalize");
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 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 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
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 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 Jul 09
4
[LLVMdev] Unable to do even basic Clang tutorial
Use the -I<install path>/include . This directory <install path>/include should look something like: clang/ clang-c/ llvm/ llvm-c/ HTH ashok On 7/9/2012 3:15 PM, NY Knicks Fan wrote: > I downloaded the 3.1 LLVM and Clang sources. > > I followed the directions at: http://clang.llvm.org/get_started.html > > I am able to use Clang to compile stuff, but I could
2012 Jul 09
3
[LLVMdev] Unable to do even basic Clang tutorial
On 7/9/2012 1:42 PM, Chad Rosier wrote: > Have you looked here: http://clang.llvm.org/get_started.html > > Chad > > > On Jul 9, 2012, at 11:33 AM, NY Knicks Fan wrote: > >> I'm trying to do the tutorials at: >> >> https://github.com/loarabia/Clang-tu...i/TutorialOrig >> <https://github.com/loarabia/Clang-tutorial/wiki/TutorialOrig> >>
2012 Jul 09
3
[LLVMdev] Unable to do even basic Clang tutorial
The "make install" should collect everything into your <install path>. The <install path> will then have bin, lib and include dirs. On 7/9/2012 3:52 PM, NY Knicks Fan wrote: > Hi Ashok, > > The documentation suggests that I put clang inside of llvm/tools and so > I have two separate include directories. I tried both of them and > neither worked: > > $
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