Displaying 20 results from an estimated 20 matches for "arrayidx8".
Did you mean:
arrayidx
2015 Jan 13
2
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
...e of the changes we talked earlier help.
Find attached the C source code that you can use to reproduce the issue.
clang --target=aarch64-linux-gnu -c -mcpu=cortex-a57 -Ofast -fno-math-errno test.c -S -o test.s -mllvm -debug-only=licm
LICM hoisting to while.body.lr.ph: %21 = load double** %arrayidx8, align 8, !tbaa !5
LICM hoisting to while.body.lr.ph: %arrayidx72 = getelementptr inbounds double* %11, i64 1
LICM hoisting to while.body.lr.ph: %arrayidx81 = getelementptr inbounds double* %11, i64 2
LICM hoisting to for.body.lr.ph: %2 = ptrtoint i32* %Index to i64
clang --target=aarch64-li...
2013 May 30
3
[LLVMdev] Expected behavior of calling bitcasted functions?
...32(i32 %v) noinline nounwind {
entry:
ret i32 %v
}
define void @bitcast_alias_scalar(float* noalias %source, float* noalias %dest) nounwind {
entry:
%arrayidx = getelementptr float* %source, i32 0
%tmp2 = load float* %arrayidx, align 8
%call = call float @alias_f32(float %tmp2) nounwind
%arrayidx8 = getelementptr float* %dest, i32 0
store float %call, float* %arrayidx8, align 8
ret void
}
If you run opt -instcombine on this, this transforms into
define void @bitcast_alias_scalar(float* noalias %source, float* noalias %dest) nounwind {
entry:
%tmp2 = load float* %source, align 8
%0 =...
2015 Jan 14
2
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
...gt;> Find attached the C source code that you can use to reproduce the issue.
>>
>> clang --target=aarch64-linux-gnu -c -mcpu=cortex-a57 -Ofast
>> -fno-math-errno test.c -S -o test.s -mllvm -debug-only=licm
>> LICM hoisting to while.body.lr.ph: %21 = load double** %arrayidx8,
>> align 8, !tbaa !5
>> LICM hoisting to while.body.lr.ph: %arrayidx72 = getelementptr
>> inbounds double* %11, i64 1
>> LICM hoisting to while.body.lr.ph: %arrayidx81 = getelementptr
>> inbounds double* %11, i64 2
>> LICM hoisting to for.body.lr.ph: %2 =...
2015 Jan 14
3
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
...ce code that you can use to reproduce the issue.
>>>>
>>>> clang --target=aarch64-linux-gnu -c -mcpu=cortex-a57 -Ofast
>>>> -fno-math-errno test.c -S -o test.s -mllvm -debug-only=licm
>>>> LICM hoisting to while.body.lr.ph: %21 = load double** %arrayidx8,
>>>> align 8, !tbaa !5
>>>> LICM hoisting to while.body.lr.ph: %arrayidx72 = getelementptr
>>>> inbounds double* %11, i64 1
>>>> LICM hoisting to while.body.lr.ph: %arrayidx81 = getelementptr
>>>> inbounds double* %11, i64 2
>>&...
2015 Jan 14
4
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
...hat you can use to reproduce the issue.
>>>>>>
>>>>>> clang --target=aarch64-linux-gnu -c -mcpu=cortex-a57 -Ofast -fno-math-errno test.c -S -o test.s -mllvm -debug-only=licm
>>>>>> LICM hoisting to while.body.lr.ph: %21 = load double** %arrayidx8, align 8, !tbaa !5
>>>>>> LICM hoisting to while.body.lr.ph: %arrayidx72 = getelementptr inbounds double* %11, i64 1
>>>>>> LICM hoisting to while.body.lr.ph: %arrayidx81 = getelementptr inbounds double* %11, i64 2
>>>>>> LICM hoisting to fo...
2015 Jan 14
3
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
...earlier help.
>
> Find attached the C source code that you can use to reproduce the issue.
>
> clang --target=aarch64-linux-gnu -c -mcpu=cortex-a57 -Ofast
> -fno-math-errno test.c -S -o test.s -mllvm -debug-only=licm
> LICM hoisting to while.body.lr.ph: %21 = load double** %arrayidx8,
> align 8, !tbaa !5
> LICM hoisting to while.body.lr.ph: %arrayidx72 = getelementptr inbounds
> double* %11, i64 1
> LICM hoisting to while.body.lr.ph: %arrayidx81 = getelementptr inbounds
> double* %11, i64 2
> LICM hoisting to for.body.lr.ph: %2 = ptrtoint i32* %Index to...
2014 Sep 18
2
[LLVMdev] [Vectorization] Mis match in code generated
...add nsw i32 %add, %2 %arrayidx4 =
> getelementptr inbounds i32* %a, i32 3 %3 = load i32* %arrayidx4, align 4,
> !tbaa !1 %add5 = add nsw i32 %add3, %3 %arrayidx6 = getelementptr
> inbounds i32* %a, i32 4 %4 = load i32* %arrayidx6, align 4, !tbaa !1
> %add7 = add nsw i32 %add5, %4 %arrayidx8 = getelementptr inbounds i32* %a,
> i32 5 %5 = load i32* %arrayidx8, align 4, !tbaa !1 %add9 = add nsw i32
> %add7, %5 %arrayidx10 = getelementptr inbounds i32* %a, i32 6 %6 = load
> i32* %arrayidx10, align 4, !tbaa !1 %add11 = add nsw i32 %add9, %6
> %arrayidx12 = getelementptr in...
2015 Jan 15
2
[LLVMdev] question about enabling cfl-aa and collecting a57 numbers
...earlier help.
>
> Find attached the C source code that you can use to reproduce the issue.
>
> clang --target=aarch64-linux-gnu -c -mcpu=cortex-a57 -Ofast
> -fno-math-errno test.c -S -o test.s -mllvm -debug-only=licm
> LICM hoisting to while.body.lr.ph: %21 = load double** %arrayidx8,
> align 8, !tbaa !5
> LICM hoisting to while.body.lr.ph: %arrayidx72 = getelementptr inbounds
> double* %11, i64 1
> LICM hoisting to while.body.lr.ph: %arrayidx81 = getelementptr inbounds
> double* %11, i64 2
> LICM hoisting to for.body.lr.ph: %2 = ptrtoint i32* %Index to...
2014 Sep 19
3
[LLVMdev] [Vectorization] Mis match in code generated
...1
%add3 = add nsw i32 %add, %2
%arrayidx4 = getelementptr inbounds i32* %a, i32 3
%3 = load i32* %arrayidx4, align 4, !tbaa !1
%add5 = add nsw i32 %add3, %3
%arrayidx6 = getelementptr inbounds i32* %a, i32 4
%4 = load i32* %arrayidx6, align 4, !tbaa !1
%add7 = add nsw i32 %add5, %4
%arrayidx8 = getelementptr inbounds i32* %a, i32 5
%5 = load i32* %arrayidx8, align 4, !tbaa !1
%add9 = add nsw i32 %add7, %5
%arrayidx10 = getelementptr inbounds i32* %a, i32 6
%6 = load i32* %arrayidx10, align 4, !tbaa !1
%add11 = add nsw i32 %add9, %6
%arrayidx12 = getelementptr inbounds i32* %...
2016 Jul 11
2
extra loads in nested for-loop
...it's
the same situation if they're not unrolled.
Using -O3 to compile, this is the .ll that results (just showing 2
iterations of the unrolled inner loop):
define void @f1([8 x double]* nocapture %c, [8 x double]* nocapture
readonly %a, [8 x double]* nocapture readonly %b) #0 {
entry:
%arrayidx8 = getelementptr inbounds [8 x double]* %c, i64 0, i64 0
%arrayidx12 = getelementptr inbounds [8 x double]* %a, i64 0, i64 0
%0 = load double* %arrayidx8, align 8, !tbaa !1
%1 = load double* %arrayidx12, align 8, !tbaa !1
%arrayidx16 = getelementptr inbounds [8 x double]* %b, i64 0, i64 0...
2014 Sep 18
2
[LLVMdev] [Vectorization] Mis match in code generated
..., !tbaa !1 %add3 = add nsw i32 %add, %2 %arrayidx4 =
getelementptr inbounds i32* %a, i32 3 %3 = load i32* %arrayidx4, align 4,
!tbaa !1 %add5 = add nsw i32 %add3, %3 %arrayidx6 = getelementptr
inbounds i32* %a, i32 4 %4 = load i32* %arrayidx6, align 4, !tbaa !1
%add7 = add nsw i32 %add5, %4 %arrayidx8 = getelementptr inbounds i32* %a,
i32 5 %5 = load i32* %arrayidx8, align 4, !tbaa !1 %add9 = add nsw i32
%add7, %5 %arrayidx10 = getelementptr inbounds i32* %a, i32 6 %6 = load
i32* %arrayidx10, align 4, !tbaa !1 %add11 = add nsw i32 %add9, %6
%arrayidx12 = getelementptr inbounds i32* %a, i32...
2015 Jul 16
4
[LLVMdev] Improving loop vectorizer support for loops with a volatile iteration variable
----- Original Message -----
> From: "Hal Finkel" <hfinkel at anl.gov>
> To: "Chandler Carruth" <chandlerc at google.com>
> Cc: llvmdev at cs.uiuc.edu
> Sent: Thursday, July 16, 2015 1:58:02 AM
> Subject: Re: [LLVMdev] Improving loop vectorizer support for loops
> with a volatile iteration variable
> ----- Original Message -----
> >
2014 Nov 10
2
[LLVMdev] [Vectorization] Mis match in code generated
...> > %3 = load i32* %arrayidx4, align 4, !tbaa !1
> > > %add5 = add nsw i32 %add3, %3
> > > %arrayidx6 = getelementptr inbounds i32* %a, i32 4
> > > %4 = load i32* %arrayidx6, align 4, !tbaa !1
> > > %add7 = add nsw i32 %add5, %4
> > > %arrayidx8 = getelementptr inbounds i32* %a, i32 5
> > > %5 = load i32* %arrayidx8, align 4, !tbaa !1
> > > %add9 = add nsw i32 %add7, %5
> > > %arrayidx10 = getelementptr inbounds i32* %a, i32 6
> > > %6 = load i32* %arrayidx10, align 4, !tbaa !1
> > > %...
2015 Aug 13
2
[LLVMdev] Improving loop vectorizer support for loops with a volatile iteration variable
...at, float* %y, i64 %idxprom,
> !dbg !42 %0 = load float, float* %arrayidx, align 4, !dbg !42, !tbaa
> !44 %arrayidx6 = getelementptr inbounds float, float* %z, i64
> %idxprom, !dbg !48 %1 = load float, float* %arrayidx6, align 4, !dbg
> !48, !tbaa !44 %add = fadd float %0, %1, !dbg !49 %arrayidx8 =
> getelementptr inbounds float, float* %x, i64 %idxprom, !dbg !50
> store float %add, float* %arrayidx8, align 4, !dbg !51, !tbaa !44
> %inc = add nsw i32 %j.0, 1, !dbg !52 tail call void
> @llvm.dbg.value(metadata i32 %inc, i64 0, metadata !18, metadata
> !25), !dbg !53 br label %...
2015 Jun 12
4
[LLVMdev] Loop Vectorization and Store-Load Forwarding issue
...om the debug dump during the LoopAccessAnalysis phase:
LAA: Checking memory dependencies
LAA: Src Scev: {(8 + %y),+,8}<%for.body3>Sink Scev: {(128 + %y),+,8}<nsw><%for.body3>(Induction step: 1)
LAA: Distance for %3 = load i64, i64* %arrayidx6, align 8 to store i64 %add, i64* %arrayidx8, align 8: 120
LAA: Distance 120 that could cause a store-load forwarding conflict
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150612/490fd9fb/attachment.html>
2019 Feb 21
2
If there are some passes in LLVM do the opposite of the SROA(Scalar Replacement of Aggregates) pass
Hi LLVM developers,
We tried to find if there are some passes in LLVM do the opposite of the
SROA(Scalar Replacement of Aggregates) pass, but did not find one. Do we
have this kind of pass to bring back the structure type? Or this is done
separately in any transformation passes?
Thanks,
Lin-Ya
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2013 May 30
0
[LLVMdev] Expected behavior of calling bitcasted functions?
...i32 %v
> }
>
> define void @bitcast_alias_scalar(float* noalias %source, float* noalias
> %dest) nounwind {
> entry:
> %arrayidx = getelementptr float* %source, i32 0
> %tmp2 = load float* %arrayidx, align 8
> %call = call float @alias_f32(float %tmp2) nounwind
> %arrayidx8 = getelementptr float* %dest, i32 0
> store float %call, float* %arrayidx8, align 8
> ret void
> }
>
> If you run opt -instcombine on this, this transforms into
> define void @bitcast_alias_scalar(float* noalias %source, float* noalias
> %dest) nounwind {
> entry:
>...
2009 Jan 30
2
[LLVMdev] Reassociating expressions involving GEPs
...offset loop-invariant.
This is pretty much what you would get from reassociation on algebraic
expressions, except that it's involving a GEP. Basically, we'd
transform this:
; Note: %call and %tmp7 are loop-invariant
%tmp4 = load i32* %arrayidx
%add = add i32 %tmp4, %call
%arrayidx8 = getelementptr float* %tmp7, i32 %add
into this:
%tmp4 = load i32* %arrayidx
%base = getelementptr float* %tmp7, %call
%arrayidx8 = getelementptr float* %base, i32 %tmp4
The computation of %base then becomes loop-invariant and can be lifted
out.
What's the best way to add this o...
2015 Sep 11
5
[RFC] New pass: LoopExitValues
Hi Steve
it seems the general consensus is that the patch feels like a work-around for a problem with LSR (and possibly other loop transformations) that introduces redundant instructions. It is probably best to file a bug and a few of your test cases.
Thanks
Gerolf
> On Sep 10, 2015, at 4:37 PM, Steve King via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> On Thu, Sep 10, 2015
2020 Feb 17
3
Differentiate array access at IR level
Hi LLVM community,
I am trying to differentiate access to different array elements, for example:
for (int i = 1; i < 10; i++) {
a[i] = a[i] + 10;
b[i] = a[i - 1] * 2;
}
If it is possible to tell it loads/stores 3 different array elements: a[i], b[i] and a[i - 1] at IR level?
Thanks for your time in advance!
Best,
Michael
-------------- next part --------------
An HTML