Displaying 20 results from an estimated 34 matches for "tmp20".
Did you mean:
tmp2
2014 May 22
2
[LLVMdev] RFC: Indexing of structs vs arrays in getelementpointer
...bounds %struct2* %dm, i64 %tmp9, i32 0
br label %bb3
bb2: ; preds = %.lr.ph.i.i
%tmp20 = getelementptr inbounds %struct2* %dm, i64 %tmp9, i32 1
br label %bb3
bb3: ; preds = %bb2, %bb1...
2007 Jul 03
1
[LLVMdev] Question about Constant Expressions
Hi!
Is there a pass that will remove constant expressions from appearing
within other expressions? For instance it would convert the call:
%tmp20 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x
i8]* @.str, i32 0, i32 0), i32 %tmp18 ) ; <i32> [#uses=0]
Into:
%tmpFresh = getelementptr [4 x i8]* @.str, i32 0, i32 0 ; <i8*> [#uses = 1]
%tmp20 = tail call i32 (i8*, ...)* @printf( i8* %tmpFresh, i32
%tmp18 ) ; <...
2008 Feb 16
0
[LLVMdev] linux/x86-64 codegen support
...c:631 turns into:
%tmp16 = tail call i64 @strlen( i8* %to ) nounwind readonly
; <i64> [#uses=1]
%tmp18 = tail call i64 @strlen( i8* %from ) nounwind readonly
; <i64> [#uses=1]
%tmp19 = add i64 %tmp16, 2 ; <i64> [#uses=1]
%tmp20 = add i64 %tmp19, %tmp18 ; <i64> [#uses=1]
%tmp21 = tail call i8* @alloca( i64 %tmp20 ) nounwind
; <i8*> [#uses=5]
other allocas in that file become instructions.
Andrew
On 2/16/08, Chris Lattner <sabre at nondot.org> wrote:
> PR1711 is an x86 codegen proble...
2008 Feb 16
2
[LLVMdev] linux/x86-64 codegen support
PR1711 is an x86 codegen problem that is blocking adoption of llvm-gcc
by people using linux on x86-64 boxes. Could someone with access to
one of these boxes take a look? I'll help try to debug this, but I
don't have access to a machine. I bet it's a small tweak required in
the x86 backend.
Thanks!
-Chris
2011 Oct 06
2
[LLVMdev] A potential bug
...(i32* %tv_sec17) //
intrinsic function call ...
19. %tmp18 = load i32* %tv_sec17.safe_r, align 4, !tbaa !4
20. %tv_usec19 = getelementptr inbounds %struct.timeval* %agg.tmp12, i32 0,
i32 1
21. %tv_usec19.safe_r = call i32* @llvm.guard.load.p0i32(i32* %tv_usec19)
// intrinsic function call
22. %tmp20 = load i32* %tv_usec19.safe_r, align 4, !tbaa !4
23. %call21 = call i32 @delta(i32 %tmp15, i32 %tmp16, i32 %tmp18, i32
%tmp20)
...
It is compiled by clang 2.9. This BB is an end block in a function.
Intrinsic function llvm.guard.load.p0i32 is defined as follows:
let Properties = [IntrNoMem, NoC...
2014 May 23
2
[LLVMdev] RFC: Indexing of structs vs arrays in getelementpointer
...Attrs: ssp uwtable
> define i32 @test1(%struct2* %dm, i1 %tmp4, i64 %tmp9, i64 %tmp19) {
> bb:
> br i1 %tmp4, label %bb1, label %bb2
> bb1: ; preds = %bb5
> %tmp10 = getelementptr inbounds %struct2* %dm, i64 %tmp9, i32 0
> br label %bb3
>
> bb2: ; preds = %.lr.ph.i.i
> %tmp20 = getelementptr inbounds %struct2* %dm, i64 %tmp9, i32 1
> br label %bb3
>
> bb3: ; preds = %bb2, %bb1
> %phi = phi %struct1* [ %tmp10, %bb1 ], [ %tmp20, %bb2 ]
> %tmp24 = getelementptr inbounds %struct1* %phi, i64 0, i32 1
>
> %tmp25 = load i32* %tmp24, align 4
> ret i32...
2007 Jun 12
3
[LLVMdev] ARM backend problem ?
...p6 = icmp sgt i32 %tmp7, %tmp8
br i1 %tmp6, label %then4, label %else12
then4:
%tmp14 = load i32* %i
%tmp16 = load i32* %n
%tmp18 = load i32* %inc
%tmp15 = add i32 %tmp16, %tmp18
%tmp13 = icmp slt i32 %tmp14, %tmp15
br i1 %tmp13, label %then11, label %else12
then11:
%tmp20 = load i32* %f
%tmp22 = alloca i32
store i32 1 , i32* %tmp22
%tmp23 = load i32* %tmp22
%tmp24 = load i32* %i
%tmp21 = add i32 %tmp24, %tmp23
store i32 %tmp21, i32* %i
%tmp19 = mul i32 %tmp20, %tmp21
store i32 %tmp19, i32* %f
br label %then4
else12:...
2011 Oct 06
2
[LLVMdev] A potential bug
...gt; 19. %tmp18 = load i32* %tv_sec17.safe_r, align 4, !tbaa !4
>> 20. %tv_usec19 = getelementptr inbounds %struct.timeval* %agg.tmp12, i32 0,
>> i32 1
>> 21. %tv_usec19.safe_r = call i32* @llvm.guard.load.p0i32(i32* %tv_usec19)
>> // intrinsic function call
>> 22. %tmp20 = load i32* %tv_usec19.safe_r, align 4, !tbaa !4
>> 23. %call21 = call i32 @delta(i32 %tmp15, i32 %tmp16, i32 %tmp18, i32
>> %tmp20)
>> ...
>>
>> It is compiled by clang 2.9. This BB is an end block in a function.
>> Intrinsic function llvm.guard.load.p0i32 is...
2013 Oct 27
2
[LLVMdev] Missed optimization opportunity with piecewise load shift-or'd together?
...32
%tmp9 = shl nuw nsw i32 %tmp8, 16
%tmp10 = or i32 %tmp9, %tmp4
%tmp12 = getelementptr inbounds i8* %x_arg, i64 1
%tmp13 = load i8* %tmp12, align 1
%tmp14 = zext i8 %tmp13 to i32
%tmp15 = shl nuw nsw i32 %tmp14, 8
%tmp16 = or i32 %tmp10, %tmp15
%tmp19 = load i8* %x_arg, align 4
%tmp20 = zext i8 %tmp19 to i32
%tmp21 = or i32 %tmp16, %tmp20
ret i32 %tmp21
}
attributes #0 = { nounwind readonly }
---
Is there a reason why this can't be optimized down to a single i32
load based on the IR semantics, or is this just a missed optimization
opportunity?
Thanks,
David
2011 Oct 06
0
[LLVMdev] A potential bug
...function call ...
> 19. %tmp18 = load i32* %tv_sec17.safe_r, align 4, !tbaa !4
> 20. %tv_usec19 = getelementptr inbounds %struct.timeval* %agg.tmp12, i32 0,
> i32 1
> 21. %tv_usec19.safe_r = call i32* @llvm.guard.load.p0i32(i32* %tv_usec19)
> // intrinsic function call
> 22. %tmp20 = load i32* %tv_usec19.safe_r, align 4, !tbaa !4
> 23. %call21 = call i32 @delta(i32 %tmp15, i32 %tmp16, i32 %tmp18, i32
> %tmp20)
> ...
>
> It is compiled by clang 2.9. This BB is an end block in a function.
> Intrinsic function llvm.guard.load.p0i32 is defined as follows:
>...
2008 Dec 07
1
[LLVMdev] How to extract loop body into a new function?
...%i2.0.reg2mem.0 = phi i32 [ 0, %bb ], [ %indvar.next62, %bb13 ] ; <i32> [#uses=2]
%tmp15 = getelementptr [25 x i32]* %B, i32 0, i32 %i2.0.reg2mem.0 ; <i32*> [#uses=1]
%tmp16 = load i32* %tmp15, align 4 ; <i32> [#uses=2]
%tmp20 = shl i32 %tmp16, 1 ; <i32> [#uses=1]
%tmp21 = getelementptr [25 x i32]* %A, i32 0, i32 %tmp16 ; <i32*> [#uses=1]
store i32 %tmp20, i32* %tmp21, align 4
%indvar.next62 = add i32 %i2.0.reg2mem.0, 1 ; <i32> [#uses=2]...
2007 Jun 12
0
[LLVMdev] ARM backend problem ?
...then4:
>
> %tmp14 = load i32* %i
>
> %tmp16 = load i32* %n
>
> %tmp18 = load i32* %inc
>
> %tmp15 = add i32 %tmp16, %tmp18
>
> %tmp13 = icmp slt i32 %tmp14, %tmp15
>
> br i1 %tmp13, label %then11, label %else12
>
>
>
> then11:
>
> %tmp20 = load i32* %f
>
> %tmp22 = alloca i32
>
> store i32 1 , i32* %tmp22
>
> %tmp23 = load i32* %tmp22
>
> %tmp24 = load i32* %i
>
> %tmp21 = add i32 %tmp24, %tmp23
>
> store i32 %tmp21, i32* %i
>
> %tmp19 = mul i32 %tmp20, %tmp21
>
> stor...
2008 Feb 16
2
[LLVMdev] linux/x86-64 codegen support
...%tmp16 = tail call i64 @strlen( i8* %to ) nounwind readonly
> ; <i64> [#uses=1]
> %tmp18 = tail call i64 @strlen( i8* %from ) nounwind readonly
> ; <i64> [#uses=1]
> %tmp19 = add i64 %tmp16, 2 ; <i64> [#uses=1]
> %tmp20 = add i64 %tmp19, %tmp18 ; <i64> [#uses=1]
> %tmp21 = tail call i8* @alloca( i64 %tmp20 ) nounwind
> ; <i8*> [#uses=5]
>
> other allocas in that file become instructions.
>
> Andrew
>
> On 2/16/08, Chris Lattner <sabre at nondot.org> wrote:...
2011 Jul 17
0
[LLVMdev] Trying to optimize out store/load pair
...compoundliteral, i32 0, i32 8
%.idx.i = getelementptr %struct.AKEKernelContext* %.compoundliteral, i64 0, i32 7
br label %for.cond21.preheader
for.cond21.preheader: ; preds = %for.inc152, %entry
%indvar10 = phi i64 [ %indvar.next11, %for.inc152 ], [ 0, %entry ]
%tmp20 = mul i64 %indvar10, 3840
%tmp2227 = or i64 %tmp20, 1
%tmp2428 = or i64 %tmp20, 2
%tmp26 = trunc i64 %indvar10 to i32
br label %for.body25
for.body25: ; preds = %for.body25, %for.cond21.preheader
%indvar4 = phi i64 [ 0, %for.cond21.preheader ], [ %in...
2010 Nov 23
1
[LLVMdev] Unrolling loops into constant-time expressions
...2
%tmp16 = add i32 %x, -3
%tmp7 = zext i32 %tmp6 to i33
%tmp5 = zext i32 %tmp4 to i33
%tmp17 = zext i32 %tmp16 to i33
%tmp15 = mul i33 %tmp5, %tmp7
%tmp18 = mul i33 %tmp15, %tmp17
%tmp8 = mul i32 %tmp4, %tmp6
%tmp19 = lshr i33 %tmp18, 1
%2 = shl i32 %tmp8, 2
%tmp20 = trunc i33 %tmp19 to i32
%tmp12 = mul i32 %x, 5
%tmp1125 = and i32 %2, -8
%tmp21 = mul i32 %tmp20, 1431655764
%tmp13 = add i32 %tmp1125, %tmp12
%tmp14 = add i32 %tmp13, -4
%tmp22 = sub i32 %tmp14, %tmp21
ret i32 %tmp22
; <label>:3...
2011 Jul 17
0
[LLVMdev] Trying to optimize out store/load pair
...* %.compoundliteral, i32 0, i32 8
%.idx.i = getelementptr %struct.AKEKernelContext* %.compoundliteral, i64 0, i32 7
br label %for.cond21.preheader
for.cond21.preheader: ; preds = %for.inc152, %entry
%indvar10 = phi i64 [ %indvar.next11, %for.inc152 ], [ 0, %entry ]
%tmp20 = mul i64 %indvar10, 3840
%tmp2227 = or i64 %tmp20, 1
%tmp2428 = or i64 %tmp20, 2
%tmp26 = trunc i64 %indvar10 to i32
br label %for.body25
for.body25: ; preds = %for.body25, %for.cond21.preheader
%indvar4 = phi i64 [ 0, %for.cond21.preheader ], [ %indvar....
2014 May 22
4
[LLVMdev] RFC: Indexing of structs vs arrays in getelementpointer
...br label %bb3
bb2:
%tmp20 = getelementptr inbounds %struct2* %tmp1, i64 %tmp19
br label %bb3
bb3:...
2011 Oct 06
0
[LLVMdev] A potential bug
...17.safe_r, align 4, !tbaa !4
> >> 20. %tv_usec19 = getelementptr inbounds %struct.timeval* %agg.tmp12,
> i32 0,
> >> i32 1
> >> 21. %tv_usec19.safe_r = call i32* @llvm.guard.load.p0i32(i32*
> %tv_usec19)
> >> // intrinsic function call
> >> 22. %tmp20 = load i32* %tv_usec19.safe_r, align 4, !tbaa !4
> >> 23. %call21 = call i32 @delta(i32 %tmp15, i32 %tmp16, i32 %tmp18, i32
> >> %tmp20)
> >> ...
> >>
> >> It is compiled by clang 2.9. This BB is an end block in a function.
> >> Intrinsic fun...
2011 Oct 06
1
[LLVMdev] A potential bug
...20. %tv_usec19 = getelementptr inbounds %struct.timeval* %agg.tmp12,
>> >> i32 0,
>> >> i32 1
>> >> 21. %tv_usec19.safe_r = call i32* @llvm.guard.load.p0i32(i32*
>> >> %tv_usec19)
>> >> // intrinsic function call
>> >> 22. %tmp20 = load i32* %tv_usec19.safe_r, align 4, !tbaa !4
>> >> 23. %call21 = call i32 @delta(i32 %tmp15, i32 %tmp16, i32 %tmp18, i32
>> >> %tmp20)
>> >> ...
>> >>
>> >> It is compiled by clang 2.9. This BB is an end block in a function.
>>...
2010 Nov 07
0
[LLVMdev] Hoisting elements of array argument into registers
...ds = %entry
%.promoted1.i = load i32* %1, align 4
%tmp12.i = add i32 %a, -1
%tmp13.i = zext i32 %tmp12.i to i33
%tmp14.i = add i32 %a, -2
%tmp15.i = zext i32 %tmp14.i to i33
%tmp16.i = mul i33 %tmp13.i, %tmp15.i
%tmp17.i = lshr i33 %tmp16.i, 1
%tmp18.i = trunc i33 %tmp17.i to i32
%tmp20.i = mul i32 %.promoted1.i, 5
%tmp21.i = add i32 %tmp20.i, -5
%tmp22.i = mul i32 %tmp21.i, %tmp12.i
%tmp9.i = mul i32 %a, %a
%.promoted2.i = load i32* %2, align 4
%tmp25.i = mul i32 %tmp18.i, 5
%tmp.i = sub i32 %.promoted1.i, %a
%tmp10.i = add i32 %tmp9.i, 1
%tmp11.i = sub i32 %tmp10...