Displaying 20 results from an estimated 4000 matches similar to: "[LLVMdev] alias analysis"
2009 Aug 27
2
[LLVMdev] andersen's alias analysis
On Aug 26, 2009, at 6:40 PM, Max Stonebraker wrote:
> Hello,
>
> Does the LLVM Andersens alias analysis handle function pointers
> precisely? I ran it and it looks like it says every function points
> points to the universal set. Is this what I should expect?
Hi Max,
I don't know the answer offhand but please keep in mind that the
current andersen's pass has many
2009 Aug 28
0
[LLVMdev] andersen's alias analysis
Might I suggest the following patch, because this issue has bite me
too? You're lured in by the initial good results from the Andersens
alias analysis, only to discover the bugs later on.
Robert Zeh
On Aug 26, 2009, at 9:11 PM, Chris Lattner wrote:
> On Aug 26, 2009, at 6:40 PM, Max Stonebraker wrote:
>> Hello,
>>
>> Does the LLVM Andersens alias analysis handle
2009 Aug 27
0
[LLVMdev] andersen's alias analysis
At one point it handled function pointers.
As chris says, it's buggy and probably broken.
Some function pointers also do point to the universal set (like global
function pointers).
On Wed, Aug 26, 2009 at 10:11 PM, Chris Lattner<clattner at apple.com> wrote:
> On Aug 26, 2009, at 6:40 PM, Max Stonebraker wrote:
>> Hello,
>>
>> Does the LLVM Andersens alias analysis
2009 Aug 27
1
[LLVMdev] andersen's alias analysis
Thanks for the reply.
Would you happen to know whether there a global alias analysis written for
LLVM that is more robust? Is the Steensgaard pass any more reliable?
Max
On Thu, Aug 27, 2009 at 10:01 AM, Daniel Berlin <dberlin at dberlin.org> wrote:
> At one point it handled function pointers.
> As chris says, it's buggy and probably broken.
> Some function pointers also do
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
2007 Aug 09
3
[LLVMdev] Choosing Alias Analysis
On Thursday 09 August 2007 17:27, Chris Lattner wrote:
> > So what's the right way to do this? There's the regalloc way, which
> > invents a whole new class just to register register allocators and
> > provide an option for picking one. But alias analysis already uses
> > AnalysisGroup so a new class to register alias analysis passes isn't
> >
2012 Feb 20
2
[LLVMdev] Bringing back Andersen-like alias analysis
Hello,
I am researching a more efficient approach to subset-based alias analysis
in the style of Andersen's algorithm, and I noticed that there used to be
an implementation of that for LLVM back in 2.6 (-anders-aa) which was
removed because it was "not being actively maintained and had substantial
problems". I'd be interested in knowing what was wrong with it (other than
2007 Aug 10
0
[LLVMdev] Choosing Alias Analysis
On Thu, 9 Aug 2007, David Greene wrote:
>> intentionally does not publish all of the llvm options through cc1. We
>> can add new options, but that has to be an explicit design decision. We
>> do allow you to use some options through -mllvm -foo, but that won't help
>> in this case.
> Alias analysis is just the closest example of what I really need to do:
>
2007 Aug 10
3
[LLVMdev] Choosing Alias Analysis
On Thursday 09 August 2007 19:21, Chris Lattner wrote:
> Interesting question, I don't have an answer to this. To make things more
> complicated, you can have multiple instances of an analysis group and may
> want different things at different times:
>
> -basicaa -licm -something_that_invalidates_aa -andersaa -licm -whatever
Some questions about that:
How does this
2007 Aug 10
0
[LLVMdev] Choosing Alias Analysis
On Aug 10, 2007, at 10:15 AM, David Greene wrote:
> However, what happens when alias analysis information gets
> invalidated?
> Is Andersen's still "available" in the sense analysis groups use it?
>
> If not, it seems it would be tough to make sure Andersen's is always
> used everywhere that AliasAnalysis is asked for because there are
> passes
> llvm
2007 Aug 09
2
[LLVMdev] Choosing Alias Analysis
Ok, here's a potentialy stupid question: how do I choose the various flavors
of alias analysis on the command line? I followed the alias analysis design
in its use of AnalysisGroup when I did the register coalescing refactoring and
alternative implentations. But I can't figure out how to actually invoke the
different versions. There's no cl_opt for the various alias analysis flavors
2007 Aug 09
0
[LLVMdev] Choosing Alias Analysis
On Aug 9, 2007, at 1:52 PM, David Greene wrote:
> So how do I get opt to use Andersens instead of basicaa, for example?
Following uses basic alias analysis
$ opt -licm foo.bc -disable-output -debug-pass=Structure
where as
$ opt -anders-aa -licm foo.bc -disable-output -debug-pass=Structure
uses Andersens analysis algorithm implementation.
-
Devang
2008 Aug 05
2
[LLVMdev] Anderson's analysis, getresult instruction on x86_64
Thanks for the replies, Daniel and Matthijs. I added some code to generate
the copy constraint, which I think (in the present form) is wrong (or at
best not field sensitive):
+void Andersens::visitGetResultInst(GetResultInst &GR) {
+ if (isa<PointerType>(GR.getType()))
+ {
+ // P1 = getresult P2 --> <Copy/P1/P2>
+
2007 Aug 09
0
[LLVMdev] Choosing Alias Analysis
On Thu, 9 Aug 2007, David Greene wrote:
>> As you've figured out, not all options are exposed by llvm-gcc. You'll
>> have to update llvm-gcc.
>
> So what's the right way to do this? There's the regalloc way, which invents
> a whole new class just to register register allocators and provide an option
> for picking one. But alias analysis already uses
2008 Jan 25
1
[LLVMdev] Something about the andersens pass
I may have found a bug in the andersends pass, but before I try to
strip the code down to something reasonable I'd like to make sure I'm
not misunderstanding anything. This is against the current SVN head,
on my Mac OS 10.5 box.
1) I'm compiling a bunch of C++ code with llvm-g++ (4.0.1). The
compiled code includes the gcc 4.0.1 implementation for dynamic_cast
(so it can be
2010 Jul 13
1
[LLVMdev] Where is Andersen Alias Analysis in LLVM-2.7?
Hi,
I was working on alias analysis using LLVM-2.6 previously. But I just
downloaded LLVM-2.7 and found AndersenAA is not there. What happened for
andersen's IPA alias analysis? Has it been deleted for some reason?
Thanks.
Lei
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2008 Aug 05
0
[LLVMdev] Anderson's analysis, getresult instruction on x86_64
Hi Prakash,
I think this is highly related to PR2527 [1] and PR2451 [2]. I assume you are
using LLVM 2.3, since current svn automatically replaces getresult with
extractvalue instructions (but doesn't help for Andersen's).
In either case, it seems that Andersen's currently has no ready made way to
indicate a part of a first-class aggregate (or vector), which is the essence
of the
2007 Sep 24
2
[LLVMdev] Compilation Failure
Hi all,
Did someone forget to check-in a patch? I'm getting this error during
compilation on PPC:
/Volumes/SandBox/Clean/llvm-9999-01.roots/llvm-9999-01~obj/src/llvm/lib/Analysis/IPA/Andersens.cpp:
In function 'void dumpToDOUT(llvm::SparseBitVector<128u>*)':
/Volumes/SandBox/Clean/llvm-9999-01.roots/llvm-9999-01~obj/src/llvm/lib/Analysis/IPA/Andersens.cpp:1189:
error: no
2008 Aug 15
0
[LLVMdev] Problems understanding alias analysis validation logic
Hi Damien,
I think the problem is that when the passmanager sees an Alias Analysis
available, it will use that, but when none is available, it will always run
the default implementation (BasicAA), regardless of any alias analysis's run
before. This means you should insert Andersen's before any pass that needs it.
I suspect (not sure though) that the passmanager will not rerun
2009 May 15
1
[LLVMdev] alias analysis results
Hi Eli, thanks for the answers helping out.
I tried to understand further - got another example:
void test()
{
int *jj, *kk;
int aa = 100;
jj = &aa;
*jj = 300;
kk = jj;
*kk = 400;
}
int main()
{
test();
return 0;
}
bc looks like the following (only test() part)
define void @test() nounwind {
entry:
%aa = alloca i32 ; <i32*> [#uses=2]
%kk =