similar to: [LLVMdev] Hoisting constant arguments from recursive functions

Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] Hoisting constant arguments from recursive functions"

2009 Jan 28
0
[LLVMdev] Hoisting constant arguments from recursive functions
On Jan 25, 2009, at 12:21 AM, Jon Harrop wrote: > My question is: will LLVM optimize this back into a function > containing a loop > that runs inside a single stack frame that contains the constants > "a" and "x" > or should my compiler perform this rewrite itself? The easiest way to answer this is to write the moral equivalent in C, and see if it happens
2009 Jan 31
1
[LLVMdev] Hoisting constant arguments from recursive functions
On Wednesday 28 January 2009 07:28:38 Chris Lattner wrote: > On Jan 25, 2009, at 12:21 AM, Jon Harrop wrote: > > My question is: will LLVM optimize this back into a function > > containing a loop > > that runs inside a single stack frame that contains the constants > > "a" and "x" > > or should my compiler perform this rewrite itself? > >
2009 Jan 30
5
[LLVMdev] Performance vs other VMs
The release of a new code generator in Mono 2.2 prompted me to benchmark the performance of various VMs using the SciMark2 benchmark on an 8x 2.1GHz 64-bit Opteron and I have published the results here: http://flyingfrogblog.blogspot.com/2009/01/mono-22.html The LLVM results were generated using llvm-gcc 4.2.1 on the C version of SciMark2 with the following command-line options: llvm-gcc
2009 Jan 31
1
[LLVMdev] -msse3 can degrade performance
On Saturday 31 January 2009 03:42:04 Eli Friedman wrote: > On Fri, Jan 30, 2009 at 5:43 PM, Jon Harrop <jon at ffconsultancy.com> wrote: > > I just remembered an anomalous result that I stumbled upon whilst > > tweaking the command-line options to llvm-gcc. Specifically, the -msse3 > > flag > > The -msse3 flag? Does the -msse2 flag have a similar effect? Yes: $
2009 Feb 01
0
[LLVMdev] Performance vs other VMs
This is not a quite fair comparison. Other virtual machines must be doing garbage collection, while LLVM, as it is using C code, it is taking advantage of memory allocation by hand. On Fri, Jan 30, 2009 at 9:56 PM, Jon Harrop <jon at ffconsultancy.com> wrote: > > The release of a new code generator in Mono 2.2 prompted me to benchmark the > performance of various VMs using the
2009 Jan 31
2
[LLVMdev] -msse3 can degrade performance
I just remembered an anomalous result that I stumbled upon whilst tweaking the command-line options to llvm-gcc. Specifically, the -msse3 flag does a great job improving the performance of floating point intensive code on the SciMark2 benchmark but it also degrades the performance of the int-intensive Monte Carlo part of the test: $ llvm-gcc -Wall -lm -O3 *.c -o scimark2 $ ./scimark2 Using
2009 Jan 31
0
[LLVMdev] -msse3 can degrade performance
On Fri, Jan 30, 2009 at 5:43 PM, Jon Harrop <jon at ffconsultancy.com> wrote: > > I just remembered an anomalous result that I stumbled upon whilst tweaking the > command-line options to llvm-gcc. Specifically, the -msse3 flag The -msse3 flag? Does the -msse2 flag have a similar effect? -Eli
2009 Jan 31
0
[LLVMdev] Performance vs other VMs
----- Original Message ----- From: "Jon Harrop" <jon at ffconsultancy.com> To: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu> Sent: Saturday, January 31, 2009 6:56 AM Subject: [LLVMdev] Performance vs other VMs > > The release of a new code generator in Mono 2.2 prompted me to benchmark > the > performance of various VMs using the SciMark2
2007 Dec 01
4
[LLVMdev] Bounds checking
Does LLVM hoist bounds checks out of inner loops? -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/products/?e
2009 Feb 01
1
[LLVMdev] Aliasing (was Performance vs other VMs)
On Sunday 01 February 2009 05:25:40 Ramón García wrote: > This is not a quite fair comparison. Other virtual machines must be > doing garbage collection, while LLVM, as it is using C code, it is > taking advantage of memory allocation by hand. That is an insignificant advantage in this particular case (SciMark2) because the memory for each test is preallocated and not part of the
2007 Dec 01
0
[LLVMdev] Bounds checking
On Nov 30, 2007, at 20:59, Jon Harrop wrote: > Does LLVM hoist bounds checks out of inner loops? In practice, LLVM is frequently going to have conservative behaviors which will prevent hoisting the explicit bounds checks your front-end must generate. Specifically, LLVM must use alias analysis to disprove the hypothesis that the array length variable is updated by the body of the loop.
2009 Feb 18
1
[LLVMdev] LLVM C bindings
On Mon, 16 Feb 2009 21:18:48 +0000 Jon Harrop <jon at ffconsultancy.com> wrote: > > On Monday 16 February 2009 20:04:38 Paul Melis wrote: > Yes. I similarly found that tail calls, sret and parts of first-class structs > are not usable from OCaml and much of the functionality was not implemented > in the C API in LLVM 2.4. > >> SWIG (www.swig.org) recently added a C
2009 Feb 01
7
[LLVMdev] GEPping GEPs and first-class structs
As I understand it, first-class structs will allow structs to be passed as function arguments and returned as results (i.e. multiple return values) instead of passing pointers to structs. However, the GEP instruction only handles pointer types. So I do not understand how you will be able to extract the fields of a struct when it is received as a value type. Will the GEP instruction be altered
2009 Feb 05
4
[LLVMdev] IR in XML
Is there a tool to spit LLVM's IR out in a more machine-friendly syntax like XML? -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e
2010 Feb 06
2
[LLVMdev] Removing -tailcallopt?
On Feb 5, 2010, at 7:19 PM, Jon Harrop wrote: > On Friday 05 February 2010 23:35:15 Evan Cheng wrote: >> Does anyone actually using it? > > Yes, many LLVM-based projects rely upon TCO to work correctly. Ok, that's all I need to know. > >> I'd prefer to just remove it to clean up the implementation if no one has >> any objections. > > Are you
2009 Jan 04
3
[LLVMdev] HLVM
What happened to the HLVM project? I understand it was intended to be a high-level VM specifically for dynamic languages and this post indicates that it was integrated into the LLVM project last year: http://www.nabble.com/NEWS:-HLVM-merges-with-LLVM-td9627113.html But I cannot find any code in LLVM that looks like it would have come from HLVM. -- Dr Jon Harrop, Flying Frog Consultancy
2010 Feb 24
2
[LLVMdev] C Compiler written in OCaml, Pointers Wanted
On Wednesday 24 February 2010 03:58:03 Jianzhou Zhao wrote: > I think LLVM OCaml bindings do not support JIT too much. Can you elaborate on this? Several major projects are using OCaml's LLVM bindings to execute non-trivial code via JIT. -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e
2009 Nov 25
3
[LLVMdev] Possible bug in TCO?
My compiler is generating a bunch of code including the following line: %57 = call fastcc i32 @aux(%1* %0, %1 %1, %1 %46, i32 0, %4 %2) ; <i32> [#uses=1] ret i32 %57 The program works fine as long as this isn't a tail call. If I compile via a .ll and insert "tail" by hand, the program segfaults. However, if I make it a tail call and return an undef i8* or void instead
2009 Jun 21
2
[LLVMdev] SSE examples
Does anyone have any LLVM IR examples implementing things using the instructions for SSE, like complex arithmetic or 3D vector-matrix stuff? I'd like to have HLVM use them "under the hood" for some things but I cannot see all of the operations that I was expecting (e.g. dot product) and am not sure what works when (e.g. "Not all targets support all types however."). --
2009 Dec 07
3
[LLVMdev] Documentation of malloc/free
On Monday 07 December 2009 17:55:44 Chris Lattner wrote: > On Dec 7, 2009, at 9:49 AM, Garrison Venn wrote: > > So I gather this means that malloc was removed from the IR because > > there are platforms that don't have non-stack allocation semantics? > > No, it was removed because it wasn't necessary, and the malloc > 'instruction' didn't support 64-bit