Displaying 20 results from an estimated 6000 matches similar to: "[LLVMdev] Potential SimplifyCFG optimization; hammock to diamond transformation"
2013 Aug 06
1
[LLVMdev] Potential SimplifyCFG optimization; hammock to diamond transformation
Message: 6
Date: Tue, 6 Aug 2013 10:46:19 -0400
From: Chad Rosier <chad.rosier at gmail.com<mailto:chad.rosier at gmail.com>>
To: llvmdev <llvmdev at cs.uiuc.edu<mailto:llvmdev at cs.uiuc.edu>>
Subject: [LLVMdev] Potential SimplifyCFG optimization; hammock to
diamond transformation
Message-ID:
<CAMo3wbR6x1wBzb17=GrkERV7kvzx2RdpuheFzyxkQEs3BBvKaw at
2013 Aug 06
0
[LLVMdev] Potential SimplifyCFG optimization; hammock to diamond transformation
Thanks, Mark. I will give the paper a look.
On Tue, Aug 6, 2013 at 1:42 PM, Mark Lacey <mark.lacey at apple.com> wrote:
> Hi Chad,
>
> On Aug 6, 2013, at 7:46 AM, Chad Rosier <chad.rosier at gmail.com> wrote:
>
> > All,
> > I have some code that looks like the following:
> >
> > {
> > double a, b, c;
> > for (...) {
> >
2013 Aug 06
1
[LLVMdev] Potential SimplifyCFG optimization; hammock to diamond transformation
Hi Chad,
On Aug 6, 2013, at 7:46 AM, Chad Rosier <chad.rosier at gmail.com> wrote:
> All,
> I have some code that looks like the following:
>
> {
> double a, b, c;
> for (...) {
> ...
> a = lots of FP math;
> b = lots of FP math;
> c = lots of FP math;
> if (cond) {
> a = 0.0;
> b = 0.1;
> c = 0.2;
>
2013 Aug 06
3
[LLVMdev] Potential SimplifyCFG optimization; hammock to diamond transformation
All,
I have some code that looks like the following:
{
double a, b, c;
for (...) {
...
a = lots of FP math;
b = lots of FP math;
c = lots of FP math;
if (cond) {
a = 0.0;
b = 0.1;
c = 0.2;
}
...
}
}
Could we not convert the hammock into a diamond and move the initial
computation of a, b, and c into the else block. Something like this:
{
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 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 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, 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 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
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 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
2009 Aug 28
1
[LLVMdev] SimplifyCFG
Hello,
in the description of SimplifyCFG, it says that it can "Eliminates PHI
nodes for basic blocks with a single predecessor."
I tested this pass with a program that has phi nodes with a single
predecessor and it did not remove it. I also looked in the code and
found nothing to remove it. I'm I missing something, or it does not
remove phis with a single predecessor?
My
2003 Sep 25
1
Diamond graphs, again.
Some time ago I was allowed to discuss "Diamond Graphs", and whether
they would be useful in R, in this mailing list.
The August 2003 issue of The American Statistician has finally arrived
here and I have been able to read the article. A number of points of
interest arise.
1. The article is
"A Diamond-Shaped Equiponderant Graphical Display of the
Effects of Two
2003 Aug 21
3
Diamond graphs
I apologise for starting a new thread, but we had a mail problem and I
don't have the original message to refer to.
Someone mentioned the new "Diamond Graphs" invented at Johns Hopkins.
I haven't see the August 2003 issue of The American Statistician yet,
but I _have_ read the press release.
The press release is a bit of a stunner. I quote:
"Who would have thought we
2008 Jan 18
1
gboxplot (JMP Diamond plot in R?)
I am looking to replicate the functionality of the JMP diamond plot in R. I have found the following enhancement and no other references(see below). I have tried to contact the author via email and I have had no luck.
Does any know if this functionality exists in R? If it does not does anyone know how to contact the author of the enhancement request?
"Hi,
I experimented with a set of S
2012 Dec 24
0
[LLVMdev] Can simplifycfg kill llvm.lifetime intrinsics?
This looks like a bug in simplifycfg. We should preserve lifetime
intrinsics due to the reasons I described.
The code in //lib/Transforms/Utils/Local.cpp:
if (Succ->getSinglePredecessor()) {
// BB is the only predecessor of Succ, so Succ will end up with exactly
// the same predecessors BB had.
// Copy over any phi, debug or lifetime instruction.
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 Jan 16
3
boxplot with diamond shape
Hi,
I haven't found in R a possibility to draw a boxplot with a diamond
shape (means and CI).
Does anyone know how to plot it ?
thanks,
2016 Dec 26
1
Multiple simplifycfg pass make some loop significantly slower
Hi all,
I am noticing a significant degradation in execution performance in loops
with just one backedge than loops with two backedges. Unifying the
backedges into one will also cause the slowdown.
To replicate this problem, I used the C code in
https://gist.github.com/sklam/11f11a410258ca191e6f263262a4ea65 and checked
against clang-3.8 and clang-4.0 nightly. Depending on where I put the