similar to: [LLVMdev] optimizing access to global

Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] optimizing access to global"

2008 Aug 15
3
[LLVMdev] Problems understanding alias analysis validation logic
I have a problem where I add an Andersens AA pass to the pass manager, but it appears to get invalidated by another pass, and never rerun. My understanding from reading the documentation is that when a pass gets invalidated, it should be rerun before any other passes that requires it. Here is a simple example of the problem I am seeing: PassManager passManager; passManager.add(new
2013 Jan 29
0
[LLVMdev] Running a Local Buildbot
Hello We are migrating from 2.9 to 3.2 Here is some code that does not compile any more llvm::PassManager *pm; llvm::FunctionPassManager *fpm; module = llvm::ParseBitcodeFile(mb,context,&err_str); if (!module) { error() <<"Failed to load module from bitcode file: " <<err_str <<endl; exit(1); } pm = new PassManager();
2011 Nov 04
2
[LLVMdev] Question on JIT optimizations
Hi, If hope this is the right list to post a question like this. If not, my apologies -- please redirect me. Following the Kaledoscope example I am trying to write a simple JIT and compile my own small language using LLVM. Compilation happens using the C++ api by constructing a VM and emitting code using the api (just as the Kaledoscope example). The code in this setup will be optimized
2011 Nov 04
0
[LLVMdev] Question on JIT optimizations
Hi Brent, > The code in this setup will be optimized according to the optimizer pipeline one > sets up as in the code below. I find that if I only use the passes below the > quality of the code is not that good code quality will be dreadful if you don't promote memory accesses to registers right at the start, using eg mem2reg or scalarrepl. (for example inlining is not
2015 Jul 13
2
[LLVMdev] enable globalsmodref-aa by default
Hello I am trying to enable globalsmodref-aa by default. globalmodref-aa is a ModulePass and therefore can be invalidated and need to be rerun. I see globalsmodref-aa is enabled in LTO passmanager by adding the analysis pass explicitly. I wonder whether globalsmodref-aa can be enabled/run based on pass dependencies, i.e. those indicated in getAnalysisUsage(). Thanks, Xin -------------- next
2007 May 29
4
[LLVMdev] Code generation issues
Hi, Today I managed to link ioquake3, but generating a binary does not work yet. 1) On OSX, I get: Error: Code generator does not support intrinsic function 'llvm.ppc.altivec.lvsl'! when I do: llc file.bc -march=c -o file.c 2) On Linux X86, llc does not give any problem, but I get this while compiling the generated .c file: error: unknown register name 'S' in
2012 Feb 20
1
[LLVMdev] ARM opcode format
Hello, So the current JIT will be superseded by the MCJIT completely and no further development should be expected for the current JIT? In any case, I am definitely interested in submitting a patch if you could help me by sending me in the right direction, since I really want this working. I managed to reproduce this behavior in LLVM 3.0 by modifying llc to read my .bc file and try to JIT the
2010 Oct 08
1
[LLVMdev] construction of ExecutionEngine without module
Hi! ExecutionEngine::addModule seems the method I have to use when I want to dynamically load snippets of code (e.g. containing a function) and execute them. I wonder why ExecutionEngine::create is only available with an initial module. I'd like to create an empty ExecutionEngine (i.e. without module) and then later use addModule. Is it possible do add such a method or can the pointer to
2015 Nov 06
2
Repeated application of optimization passes
Within the LLVM pass manager infrastructure, suppose we have two transformation passes, pass A makes some improvements, then pass B does likewise, but this creates opportunities for pass A to create further improvements (e.g. suppose B was function inlining) so it's desirable to run A again. How does the LLVM pass manager currently deal with this? -------------- next part -------------- An
2011 Mar 06
2
[LLVMdev] how to zero-init a global
Hi! I have a module containing a constant e.g. @input = global %0 zeroinitializer, align 16 when I copy the global into another module I use newGlobal->copyAttributesFrom(global); but the new module now has @input = external global %0, align 16 i.e. the zeroinitializer is missing. how do I set it or copy it from the other global? -Jochen
2013 Jul 18
3
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
Andy and I briefly discussed this the other day, we have not yet got chance to list a detailed pass order for the pre- and post- IPO scalar optimizations. This is wish-list in our mind: pre-IPO: based on the ordering he propose, get rid of the inlining (or just inline tiny func), get rid of all loop xforms... post-IPO: get rid of inlining, or maybe we still need it, only
2008 Dec 19
2
[LLVMdev] strange behaviour after extracting optimization pass code
Hi, I am expieriencing strange behaviour of llvm's optimization passes and I don't understand what I am doing wrong. Basically all I've done is extracting code for optimization of a llvm-function in a llvm-module and put it into a separate function for better readability. The original code looks like follows (and works as expected): ----------------------------- std::string
2011 Mar 06
0
[LLVMdev] how to zero-init a global
On Sun, Mar 6, 2011 at 9:52 PM, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote: > I have a module containing a constant e.g. > > @input = global %0 zeroinitializer, align 16 > > when I copy the global into another module I use > newGlobal->copyAttributesFrom(global); > but the new module now has > > @input = external global %0, align 16 > > i.e. the
2013 Jan 28
7
[LLVMdev] Running a Local Buildbot
We're thinking about running our own buildbot against the upstream llvm and clang sources. I'm talking to our build folks and seeing what they can allow. Maybe we can contribute some build slaves to the osuosl buildbot but I'm not sure. If we do end up having to run our own buildbot, what's the best way to integrate that into the upstream web page and status notifier? Basically,
2011 May 17
1
[LLVMdev] which pass for optimizing access to a global struct?
Hi! which pass do you recommend to optimize access to a global struct? for example: struct { int a; int b; } global; void foo(int x) { global.a = x; int y = global.a; // should be replaced by int y = x; } I guess it's one of the alias passes but which one to choose? Thanks, -Jochen
2009 Feb 19
6
[LLVMdev] Improving performance with optimization passes
I'm toying with benchmarks on my HLVM and am unable to get any performance improvement from optimization passes. Moreover, some of my programs generate a lot of redundant code (e.g. alloca a struct, store a struct into it and read only one field without using the rest of the struct) and this does not appear to be optimized away. I simply copied the use of PassManager from the Kaleidoscope
2010 Mar 03
5
[LLVMdev] folding x * 0 = 0
Hi! > sin/cos etc should already be handled by lib/Analysis/ConstantFolding.cpp. > Thanks for the hint and it works! Now I have a new Problem: I have this function: float foo(float a, float b) { float x = a * b * 0.0f; return cos(0.5) * sin(0.5) * x; }; after compiling it with clang (cpp mode) and renaming _ZSt3sinf to sin and _ZSt3cosf to cos I get the following: define
2012 Sep 10
2
[LLVMdev] Dead Store Elimination
Hi, Here is the result of optimization using the following passes: llvm::createBasicAliasAnalysisPass() llvm::createInstructionCombiningPass() llvm::createReassociatePass() llvm::createGVNPass() llvm::createCFGSimplificationPass() The optimized IR seems to contain what look like dead stores on %8 and %9 in basic blocks 7 and haveData. How can I get rid of them? Thanks, Vinayak define
2010 Nov 26
3
[LLVMdev] request for windows unicode support
On 25.11.2010 23:56, Michael Spencer wrote: > On Nov 25, 2010, at 5:01 PM, Jochen Wilhelmy <j.wilhelmy at arcor.de > <mailto:j.wilhelmy at arcor.de>> wrote: > >> Hi! >> >> Of course nobody wants to implement unicode support for windows >> because windows should support an utf8-locale and windows is obsolete >> anyway ;-) >> >> But
2010 Nov 25
2
[LLVMdev] request for windows unicode support
Hi! Of course nobody wants to implement unicode support for windows because windows should support an utf8-locale and windows is obsolete anyway ;-) But there is a simple solution: use boost::filesystem::path everywhere you use file names and paths, for example in clang::FileManager::getFile. With version 3 opening a file is easy: std::fstream file(path.c_str()). Internally