Displaying 20 results from an estimated 10000 matches similar to: "Alias analysis results"
2015 Jan 16
3
[LLVMdev] Alias Analysis pass ordering in LLVM (and Clang)
(sorry for the wide distribution, but this impacts Clang users quite a bit)
It's come up a few times in reviews of CFL-AA (a new alias analysis for
LLVM), so I wanted to write down what I think the current state actually is
for AA pass ordering, why, and how it should look eventually. I may have
some bugs here, so please correct me if I miss anything. And I'd love
thoughts about the end
2012 Nov 09
3
[LLVMdev] inttoptr and basicaa
Hi,
I am observing some incorrect behavior in basicaa, wherein two pointers that
basicaa should determine to be MustAlias are ending up NoAlias - the other
extreme :(
I am blaming this on basicaa not handling inttoptr. Here is the relevant IR
snippet.
--------------------
%sunkaddr36 = ptrtoint %struct.BitParams* %bs to i32
%sunkaddr37 = add i32 %sunkaddr36, 16
%sunkaddr38 = inttoptr i32
2012 Jan 28
0
[LLVMdev] tbaa differences in llvm 3.0
On Jan 27, 2012, at 4:15 PM, Maurice Marks wrote:
> Our application generates IR that is used to generate X86_64 code for a Jit. We noticed that code generated with llvm 3.0 is worse in some circumstances that it was with 2.9. I traced the differences to alias analysis differences. Our IR references data structures that have lots of derived pointers and we use extensive tbaa metadata to
2012 Jan 28
3
[LLVMdev] tbaa differences in llvm 3.0
Our application generates IR that is used to generate X86_64 code for a
Jit. We noticed that code generated with llvm 3.0 is worse in some
circumstances that it was with 2.9. I traced the differences to alias
analysis differences. Our IR references data structures that have lots of
derived pointers and we use extensive tbaa metadata to indicate which
pointers dont alias. Some of this seemed to be
2015 Jan 20
4
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
So, I can make all these testcases work, but it's a little tricky (it
involves tracking some things, like GEP byte range, and then checking bases
and using getObjectSize, much like BasicAA does).
Because i really don't want to put that much "not well tested" code in a
bugfix, and honestly, i'm not sure we will catch any cases here that
BasicAA does not, i've attached a
2012 Jan 31
3
[LLVMdev] tbaa differences in llvm 3.0
On Fri, 2012-01-27 at 16:46 -0800, Dan Gohman wrote:
> On Jan 27, 2012, at 4:15 PM, Maurice Marks wrote:
>
> > Our application generates IR that is used to generate X86_64 code for a Jit. We noticed that code generated with llvm 3.0 is worse in some circumstances that it was with 2.9. I traced the differences to alias analysis differences. Our IR references data structures that have
2012 Jan 28
2
[LLVMdev] tbaa differences in llvm 3.0
Many of our pointers point into a structure where they could be considered
as having the same base address. We use tbaa to indicate which ones could
or could not alias because they are pointing into different substructures.
This is exactly the sort of requirement that invoked the need for the
restrict modifier in g++, c++0x etc. If I understand you correctly that
cannot be expressed in llvm ir
2015 Jan 21
2
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
Updated testcases to have MayAlias/note issues as FIXME.
On Tue Jan 20 2015 at 3:54:10 PM Hal Finkel <hfinkel at anl.gov> wrote:
> ----- Original Message -----
> > From: "Daniel Berlin" <dberlin at dberlin.org>
> > To: "Hal Finkel" <hfinkel at anl.gov>
> > Cc: "Jiangning Liu" <Jiangning.Liu at arm.com>, "George
2015 Jan 17
2
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
----- Original Message -----
> From: "Daniel Berlin" <dberlin at dberlin.org>
> To: "Hal Finkel" <hfinkel at anl.gov>
> Cc: "Jiangning Liu" <Jiangning.Liu at arm.com>, "George Burgess IV" <george.burgess.iv at gmail.com>, "LLVM Developers
> Mailing List" <llvmdev at cs.uiuc.edu>, "Nick Lewycky"
2015 Jan 14
4
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
Inline
- George
> On Jan 14, 2015, at 10:49 AM, Daniel Berlin <dberlin at dberlin.org> wrote:
>
>
>
>> On Tue, Jan 13, 2015 at 11:26 PM, Nick Lewycky <nlewycky at google.com> wrote:
>>> On 13 January 2015 at 22:11, Daniel Berlin <dberlin at dberlin.org> wrote:
>>> This is caused by CFLAA returning PartialAlias for a query that BasicAA can
2015 Jan 14
2
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
Can you send me actual LLVM IR or a preprocessed source from using -E?
I don't have a machine handy that has headers that target that arch.
On Tue Jan 13 2015 at 4:33:29 PM Daniel Berlin <dberlin at dberlin.org> wrote:
> Anything other than noalias or mustalias should be getting passed down the
> stack, so either that is not happening or CFL aa is giving better answers
> and
2015 Jan 23
2
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
Works for me
On Thu, Jan 22, 2015 at 8:27 PM, Daniel Berlin <dberlin at dberlin.org> wrote:
> We should use graph edges, so we can do something better at set build time
> :)
>
>
> On Thu Jan 22 2015 at 5:20:46 PM George Burgess IV <
> george.burgess.iv at gmail.com> wrote:
>
>> > Should we be added an edge from the inttoptr to all other pointer
>>
2015 Jan 14
3
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
Oh, sorry, i didn't rebase it when i changed the fix, you would have had to
apply the first on top of the second.
Here is one against HEAD
On Wed, Jan 14, 2015 at 12:32 PM, Ana Pazos <apazos at codeaurora.org> wrote:
> Daniel, your patch does not apply cleanly. Are you on the tip?
>
> The code I see there is no line if (QueryResult == MayAlias|| QueryResult == PartialAlias)
2015 Jan 14
3
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
On 13 January 2015 at 22:11, Daniel Berlin <dberlin at dberlin.org> wrote:
> This is caused by CFLAA returning PartialAlias for a query that BasicAA
> can prove is NoAlias.
>
One of them is wrong. Which one?
I'm not sure from your description that this is a chaining issue.
PartialAlias doesn't chain and isn't supposed to, it's a final answer just
like NoAlias and
2015 Jan 16
3
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
I'm pretty sure I had the ordering of the passes backwards. The previous
ordering is correct. Sorry for the confusion.
The last alias analysis created is the first one queried. It delegates to
the previous alias analysis created. At least, that is my reading of this
(very confusing) code.
The most frustrating aspect of this is that it means the delegation
behavior of CFL shouldn't have
2015 Jan 21
2
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
On Wed Jan 21 2015 at 12:30:50 PM Hal Finkel <hfinkel at anl.gov> wrote:
> ----- Original Message -----
> > From: "Daniel Berlin" <dberlin at dberlin.org>
> > To: "Hal Finkel" <hfinkel at anl.gov>
> > Cc: "Jiangning Liu" <Jiangning.Liu at arm.com>, "George Burgess IV" <
> george.burgess.iv at gmail.com>,
2015 Jan 23
2
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
Without the patch is also returns the wrong answer for all of these, it
just doesn't cause LICM to promote because it returns PartialAlias (which
is still wrong).
We return may-alias instead, and now suddenly it's happy to promote them.
The broken noalias results exist both before and after my patch:
===== Alias Analysis Evaluator Report =====
521 Total Alias Queries Performed
2015 Jan 23
2
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
> Should we be added an edge from the inttoptr to all other pointer values?
Is there a better way?
We can add a special "Unknown" StratifiedAttr and query it before anything
else, i.e:
// in CFLAliasAnalysis::query, as the first potential return
if (AttrsA[AttrUnknown] || AttrsB[AttrUnknown])
return MayAlias;
The only *potential* issue with this approach would be that in the
2015 Jan 24
2
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
No, i mean the actual store instruction looks like "store i16 %conv22, i16*
getelementptr inbounds ([16 x i16]* @pA, i64 0, i64 12), align 2, !tbaa !1"
Not that the pointer operand comes from a GEP, but it is a constantexpr,
whose opcode is GEP.
It sucks that there is such a complex thing to be handled as a store
operand directly , but such is life ...
CFL-AA *should* treat this
2015 Jan 15
2
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
Yes.
I've attached an updated patch that does the following:
1. Fixes the partialalias of globals/arguments
2. Enables partialalias for cases where nothing has been unified to a
global/argument
3. Fixes that select was unifying the condition to the other pieces (the
condition does not need to be processed :P). This was causing unnecessary
aliasing.
4. Adds a regression test to