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