similar to: [LLVMdev] Runtime optimizer

Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] Runtime optimizer"

2013 Nov 03
3
[LLVMdev] loop vectorizer issue
Actually what I meant in my original loop, that there is a dependency between every two consecutive iterations. So, how the loop vectorizer says 'we can vectorize this loop'? for(int k=20;k<50;k++) dataY[k] = dataY[k-1]; From: Henrique Santos [mailto:henrique.nazare.santos at gmail.com] Sent: Sunday, November 03, 2013 4:28 PM To: Sara Elshobaky Cc: <llvmdev at
2013 Nov 03
0
[LLVMdev] loop vectorizer issue
Hi Sarah, the loop vectorizer runs not on the C code but on LLVM IR this c code was lowered to. Before the loop vectorizer runs many other optimization change the shape of this IR. You can see in the LLVM IR you referenced below, a preceding LLVM IR transformation has change your loop from: > for(int k=20;k<50;k++) > dataY[k] = dataY[k-1]; to > int a = d[19]; >
2013 Nov 03
0
[LLVMdev] loop vectorizer issue
Notice that the code you provided, for globals and stack allocations, at least, is semantically equivalent to: int a = d[19]; for(int k = 20; k < 50; k++) dataY[k] = a; Like so, the load you see missing was redundant, probably hoisted by GVN/PRE and replaced with "%.pre". H. On Sun, Nov 3, 2013 at 11:26 AM, Sara Elshobaky <sara.elshobaky at gmail.com>wrote: >
2013 Oct 07
1
[LLVMdev] llvm jit
So, what is the use of the profile passes in LLVM? Also, does llvm detect hot blocks of code for recompilation? On Mon, Oct 7, 2013 at 4:44 PM, Amara Emerson <amara.emerson at arm.com> wrote: > No, the JIT does not do any profile guided optimizations for any > architecture. It just uses the static compilation components before loading > the object into memory and running its own
2013 Nov 03
2
[LLVMdev] loop vectorizer issue
Hello, I was trying to trace the Loop vectorizer of the LLVM, I wrote a simple loop with a clear dependency. But found that the debug shows that 'we can vectorize this loop' Here you are my loop with dependency: for(int k=20;k<50;k++) dataY[k] = dataY[k-1]; And the debug prints: LV: Checking a loop in "main" LV: Found a loop: for.body4 LV: Found an
2014 Sep 01
2
[LLVMdev] Modify a module at runtime in MCJIT
Hello, I'm using MCJIT to run some loops on my ARM processor. I was trying to perform some runtime optimizations on some function, and this requires recompiling the function at runtime. I know that this feature is not available yet in MCJIT , and to modify a function I have to create a new module with the newly optimized code. My questions are: - The newly created module can be
2014 Jan 26
3
[LLVMdev] Number of instructions executed
Hello, I'm executing my byte code program by the lli tool using mcjit. I need a way to find statistics about the number of instructions executed for my program. The -stats option does not include this value, are there any other way to know? I need this information to compare different versions of my bytecode program. Please advice Thanks in advance Sara Elsohbaky --------------
2010 Oct 14
1
[LLVMdev] print machine code using llvm c++ api
Hi, I know using llc i can print machine code (-print-machineinstrs). How can i print machine code using llvm c++ api.. i looked into llc code but not able to find it.. Thanks & Regards, Pachauri
2014 Feb 25
2
[LLVMdev] noinline attribute problem
Hello, I have the following simple C code below. It should return '8' as a result. But the returned result is false as it returns '1'. When I remove the line of '__attribute__((noinline))' , the returned results are correct '8'. Any idea? Please advice as I need to get the assembly code of the 'getTexSize' function alone. Note: I compile using the
2013 Oct 07
1
[LLVMdev] llvm jit
hello, I have a question about the llvm jit. Does it use the profile information generated during runtime to enhance the generated code for arm processor? according to 'LLVM: A Compilation Framework for Lifelong Program Analysis **<http://llvm.org/pubs/2004-01-30-CGO-LLVM.html>' it is available but can't find it in the current source code. I really appreciate any help. Thanks in
2009 Sep 15
2
[LLVMdev] Registering a MachineFunctionPass to JIT codegen
Hi all, I can't find a way to add a MachineFunctionPass to the common codegen passes (LLVMTargetMachine::addPassesToEmitMachineCode) while JITting (the pass manager is associated with the jitstate of the JIT and I can't access it because it's private). Have I missed something? Or adding a MachineFunctionPass to codegen requires to change the
2013 Sep 04
1
[LLVMdev] opengl es 2
Hello, Can LLVM execute OpenGL ES 2.0 programs safely? As I tried a simple code, and I get some crashes while using lli example LLVM ERROR: Program used external function '__dso_handle' which could not be resolved! Thanks in advance Sara Une messagerie gratuite, garantie à vie et des services en plus, ça vous tente ? Je crée ma boîte mail www.laposte.net -------------- next part
2011 Aug 26
1
[LLVMdev] Build breaks in lib/CodeGen
I checked recent revisions 138624 and 138620 and both produce this log with gcc-4.6.0 on FreeBSD-8.2-STABLE amd64: gmake[2]: Entering directory `/usr/home/yuri/llvm-svn/llvm-objects/lib/CodeGen' llvm[2]: Compiling LLVMTargetMachine.cpp for Release build /usr/home/yuri/llvm-svn/llvm/lib/CodeGen/LLVMTargetMachine.cpp:253:3: error: ‘AsmStreamer’ does not name a type
2011 Sep 19
1
[LLVMdev] Seg Fault when creating an execution engine
I am creating an ExecutionEngine using the LLVMCreateExecutionEngineForModule function from the C API. I am get a set fault with the following backtrace. Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000120 0x0000000107c06643 in llvm::LLVMTargetMachine::addCommonCodeGenPasses () (gdb) bt #0 0x0000000107c06643 in
2010 Jul 20
2
[LLVMdev] MC-JIT
New patch taking Eli's comments into account. Olivier. On Tue, Jul 20, 2010 at 11:09 PM, Eli Friedman <eli.friedman at gmail.com> wrote: > On Tue, Jul 20, 2010 at 1:36 PM, Olivier Meurant > <meurant.olivier at gmail.com> wrote: >>> Seems reasonable, but I haven't looked at the code yet. I would >>> suggest trying to split your work up into separate
2016 Jan 22
6
[GlobalISel][RFC] Contract between LLVM IR and the backends for ISel
Hi, I would like your opinions on the contract we have between the LLVM IR and the backends. * Context * Right now, the backends are supposed to be able to perform instruction selection on any valid LLVM IR. Although this is *not* something I want to change for GlobalISel, I thought I brought that up on the mailing list to discuss the implications. In particular, in the past, some people
2016 Jan 22
2
[GlobalISel][RFC] Contract between LLVM IR and the backends for ISel
> On Jan 22, 2016, at 3:17 PM, Matthias Braun <matze at braunis.de> wrote: > > >> On Jan 22, 2016, at 2:36 PM, Quentin Colombet via llvm-dev <llvm-dev at lists.llvm.org> wrote: >> >> Hi, >> >> I would like your opinions on the contract we have between the LLVM IR and the backends. >> >> >> * Context * >> >>
2010 Jul 21
0
[LLVMdev] MC-JIT
On Tue, Jul 20, 2010 at 3:41 PM, Olivier Meurant <meurant.olivier at gmail.com> wrote: > New patch taking Eli's comments into account. Comments inline. If you have commit access, I'd fire away. If not, I can. diff --git include/llvm/MC/MCAssembler.h include/llvm/MC/MCAssembler.h index 07ca070..afff96e 100644 --- include/llvm/MC/MCAssembler.h +++ include/llvm/MC/MCAssembler.h
2007 Jul 15
2
[LLVMdev] JIT Leaks?
First, I'm not sure if deleting the ExecutionEngine is all I need to clean-up... so I started with a minimal test just to check int main( int argc, char **argv ){ while( true ){ Module *M = new Module("M"); Function *F = cast<Function>(M->getOrInsertFunction("F", Type::Int32Ty, (Type*)0)); BasicBlock *BB = new
2011 Aug 10
1
[LLVMdev] How to emit a simple stream of machine code.
Hi, I am working on an LLVM backend for GPUs, and I would like to be able to emit a very simple byte stream of machine code, so that it can be fed directly into the GPU. I don't need anything fancy, just the raw machine code, one instruction after another. I think I've already implemented everything in the backend that is required to do this, but I'm not sure how to get a pointer to