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
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
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
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
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
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
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 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
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
2011 May 25
1
[LLVMdev] ms vc 10 warnings
Hi!
when compiling projects using llvm 2.9 and ms vc 10 I get these warnings:
1>e:\Jochen\Lib\lib\include\llvm/Use.h(218): warning C4624:
'llvm::AugmentedUse' : destructor could not be generated because a base
class destructor is inaccessible
1>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\stdint.h(72): warning C4005: 'INT8_MIN' : macro redefinition
2010 Nov 25
0
[LLVMdev] request for windows unicode support
On Nov 25, 2010, at 5:01 PM, Jochen Wilhelmy <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 there is a simple solution: use boost::filesystem::path everywhere you
> use file names and paths, for example in
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
2010 Jul 20
2
[LLVMdev] [cfe-dev] conditional operator
Hello Jochen-
Your expectation is incorrect, I'm afraid. Typically this would be expanded
to something like this:
…
%cmp = …
br i1 %cmp, label %ternary.true, label %ternary.false
ternary.true:
%truevalue = …
br label %ternary.end
ternary.false:
%falsevalue = …
br label %ternary.end
ternary.end:
%value = phi %type [%truevalue, %ternary.true], [%falsevalue,
2010 Nov 26
2
[LLVMdev] request for windows unicode support
On Fri, 26 Nov 2010 09:28:17 -0500
Michael Spencer <bigcheesegs at gmail.com> wrote:
> On Fri, Nov 26, 2010 at 4:00 AM, Jochen Wilhelmy
> <j.wilhelmy at arcor.de> wrote:
> > No, this post was prompted since I switched to boost::filesystem
> > version 3 in my own code and llvm/clang 2.8
> > was the only lib with no unicode support on windows.
> > Will your
2010 Nov 26
0
[LLVMdev] request for windows unicode support
On Fri, Nov 26, 2010 at 4:00 AM, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote:
> No, this post was prompted since I switched to boost::filesystem version 3
> in my own code and llvm/clang 2.8
> was the only lib with no unicode support on windows.
> Will your code be api compatible to boost::filesystem?
No. boost::filesystem makes extensive use of exceptions, which LLVM is
2010 Mar 03
0
[LLVMdev] folding x * 0 = 0
On 3 March 2010 11:56, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote:
>
> the sin and cos calls are folded, but not the mul by zero.
>
Is x*0 => 0 true if isnan(x)?
And cos(x)*sin(x) makes me desperately want to fold it to sin(2*x)/2,
but I suppose that's not allowed either.
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
2011 Dec 29
0
[LLVMdev] InstCombine "pessimizes" trunc i8 to i1?
I think Chris is saying that the and is necessary because with your i1
trunc you're ignoring all of the high bits. The and implements that. If
you don't want this behavior, don't generate the trunc in the first place
and just compare the full width to zero.
Reid
On Wed, Dec 28, 2011 at 6:45 AM, Jochen Wilhelmy <j.wilhelmy at arcor.de>wrote:
>
> >> Hi!
>
2011 Dec 30
3
[LLVMdev] InstCombine "pessimizes" trunc i8 to i1?
Am 29.12.2011 19:52, schrieb Reid Kleckner:
> I think Chris is saying that the and is necessary because with your i1
> trunc you're ignoring all of the high bits. The and implements that.
> If you don't want this behavior, don't generate the trunc in the
> first place and just compare the full width to zero.
But if a backend sees trunc from i8 to i1 it should know
2012 Mar 02
0
[LLVMdev] replace hardcoded function names by intrinsics
On Fri, 02 Mar 2012 13:55:18 +0100
Jochen Wilhelmy <jochen.wilhelmy at googlemail.com> wrote:
> Hi!
>
> in the llvm code there are several places with hardcoded function
> names for e.g. sin, sinf, sqrt, sqrtf etc., namely
> ConstantFolding.cpp
> InlineCost.cpp
> SelectionDAGBuilder.cpp
> IntrinsicLowering.cpp
> TargetLowering.cpp
>
> my question is: