[PATCH] Vectorizing Global Structures - Take 2
Arnold Schwaighofer
aschwaighofer at apple.com
Thu Feb 14 22:23:04 PST 2013
On Feb 14, 2013, at 11:49 PM, Arnold Schwaighofer <aschwaighofer at apple.com> wrote:
>
>> In the case of pointer loops that iterate over your example type, it will properly discover that it overruns into the next field, and properly mark it as pointing-to that field as well.
>
>
> So for the following example it will conservatively say arrayidx and arrayidx2 alias?
may-alias to be precise. :)
>
> %struct.anon = type { [256 x i64], i64, [256 x i64] }
>
> define void @foo(i32 %x, i32 %y) {
> %arrayidx = getelementptr inbounds %struct.anon* @Foo, i32 0, i32 0, i32 %x
> %0 = store i64* %arrayidx, align 8
> %arrayidx2 = getelementptr inbounds %struct.anon* @Foo, i32 0, i32 2, i32 %y
> %1 = store i64* %arrayidx2, align 8
> }
More information about the llvm-commits
mailing list