Displaying 3 results from an estimated 3 matches for "basicaaa".
Did you mean:
basicaa
2015 Dec 10
2
Field sensitive alias analysis?
...i32, i32* %arrayidx2, align 4, !tbaa !1
>>
>
> I'm not entirely sure why TBAA is necessary to disambiguate ps->a from
> ps->b, it looks like basicaa should already be able to say they don't
> overlap.
> Does this not happen?
>
Opps, you are right in my example basicaaa could do it potentially. Correct
example is slightly different:
int foo(struct S *ps, int i) {
ps->a[i] = 1;
ps->b = 2;
return ps->a[i];
}
Here basicaa cannot make sure that 'ps->a[i]' doesn't change after 'ps->b =
2' because if 'i == 10' all 3 memor...
2015 Dec 10
2
Field sensitive alias analysis?
> On Dec 10, 2015, at 8:09 AM, Daniel Berlin via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
>
> Opps, you are right in my example basicaaa could do it potentially. Correct example is slightly different:
> int foo(struct S *ps, int i) {
> ps->a[i] = 1;
> ps->b = 2;
> return ps->a[i];
> }
> Here basicaa cannot make sure that 'ps->a[i]' doesn't change after 'ps->b = 2' because if...
2015 Dec 09
2
Field sensitive alias analysis?
Hi Daniel,
I see your point about LLVM and C/C++ type agnostic. I think TBAA was
invented to partially cover this gap and give optimization opportunities
when LLVM types are not sufficient but C/C++ types have required
information.
What do you think about following example:
struct S {
int a[10];
int b;
};
int foo(struct S *ps, int i) {
ps->a[i] = 1;
ps->b = 2;
return