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