Displaying 20 results from an estimated 32 matches for "tmp21".
Did you mean:
tmp1
2007 Jun 12
3
[LLVMdev] ARM backend problem ?
...* %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:
%tmp25 = load i32* %f
%tmp335 = getelementptr [4 x i8]* @.str1, i32 0, i32 0
%tmp336 = call i32 (i8*, ...)*...
2007 Jun 12
0
[LLVMdev] ARM backend problem ?
...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:
>
> %tmp25 = load i32* %f
>
> %tmp335 = getelementptr [4 x i8]* @.str1, i32 0, i32...
2010 Jun 29
0
[LLVMdev] Confuse on getSCEVAtScope
On Jun 29, 2010, at 7:08 AM, ether zhhb wrote:
>
> why computeSCEVAtScope not try to get the operands in the current
> scope like the function do with SCEVCommutativeExpr, like:
>
> if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(V)) {
> if (!L || !AddRec->getLoop()->contains(L)) {
> ...
> // Then, evaluate the AddRec.
>
2010 Jun 29
2
[LLVMdev] Confuse on getSCEVAtScope
hi all,
i have SCEVAddRec
{{(32 + @edge.8265),+,32}<Loop0>,+,4}<Loop1>
where Loop0 and Loop1 are brothers (loops at the same level of the
loopnest), and Loop0 have a computable backedge taken count.
when i call getSCEVAtScope({{(32 +
@edge.8265),+,32}<Loop0>,+,4}<Loop1> , Loop1), it just give me a
{{(32 + @edge.8265),+,32}<Loop0>,+,4}<Loop1>,
instead of
2013 Oct 27
2
[LLVMdev] Missed optimization opportunity with piecewise load shift-or'd together?
...8, 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
2008 Dec 07
1
[LLVMdev] How to extract loop body into a new function?
...; <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]
%exitcond63 = icmp eq i32 %indvar.next62, 25 ; <i1&g...
2010 Nov 23
1
[LLVMdev] Unrolling loops into constant-time expressions
...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 ; preds = %0
ret i32 0
}
which has no loop, which means that clang -O3 is capable of...
2011 Jul 20
3
[LLVMdev] print the memory address computed by getelementptr
...ing the gep instruction as a parameter.
Surely, I obtain an error for a type mismatch. Can I declare the function as
taking an int64 as parameter and then (somehow) sending the value computed by
getelementptr?
declare void @myFunction ( i64 )
%tmp22 = getelementptr inbounds %struct.linked* %tmp21, i32 0, i32 1
%tmp = convert_tmp22_to_i64_to_get_the_value_of_the_pointer
call void @myFunction(i64 %tmp)
Or could you suggest a better method to get the value computed by getelementptr
?
Thanks,
Alexandra
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <htt...
2008 Jan 12
1
[LLVMdev] Labels
...4
%tmp8 = load i32* @yybuflen, align 4
%tmp9 = load i32* @yypos, align 4
%tmp10 = sub i32 %tmp8, %tmp9
%tmp11 = icmp slt i32 %tmp10, 512
br i1 %tmp11, label %bb, label %bb13
bb13:
%tmp15 = load %struct._IO_FILE** @stdin, align 4
%tmp16 = tail call i32 @_IO_getc( %struct._IO_FILE* %tmp15 )
%tmp21 = icmp eq i32 %tmp16, -1
br i1 %tmp21, label %cond_next, label %cond_true
cond_true:
%tmp24 = load i8** @yybuf, align 4
%tmp25 = load i32* @yypos, align 4
%tmp2627 = trunc i32 %tmp16 to i8
%tmp28 = getelementptr i8* %tmp24, i32 %tmp25
store i8 %tmp2627, i8* %tmp28, align 1
br label %cond_ne...
2006 Mar 06
1
Sort problem in merge()
...order is not the same as
## in tmp1. Reading help page for ?merge did not reveal much about
## sorting. However I did try to see the result of "non-default" -
## help page says that order should be the same as in 'y'. So above
## makes sense
## Now merge - but change x an y
> (tmp21 <- merge(tmp2, tmp1, by.x = "col1", by.y = "col1",
all.y = TRUE, sort = FALSE))
col1 col2
1 C 1
2 C 1
3 A NA
4 A NA
5 0 NA
6 0 NA
## The result is the same. I am stumped here. But looking a bit at these
## object I found so...
2008 Feb 16
2
[LLVMdev] linux/x86-64 codegen support
...;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 problem that is blocking adoption of llvm...
2008 Feb 16
0
[LLVMdev] linux/x86-64 codegen support
...ind 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 problem that is blocking adoption of llvm-gcc
> by people using linux on x8...
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
2006 Oct 08
2
[LLVMdev] How to insert two instructions with the same name?
Hi,
i want to insert a PHI into one basicblock like this:
%s.1 = phi int [ 80, %entry ], [ %tmp21, %bb17 ]
then, insert a cast inst. into another basicblock like this:
%s.1 = cast int %s.1 to uint
But, when i do this, the llvm automatically change the same name into a new
one.
Actually, i found that sometimes, llvm will create bytecode containing two
instructions with same name. So, how can...
2013 Oct 28
0
[LLVMdev] Missed optimization opportunity with piecewise load shift-or'd together?
...; %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?
>
My guess i...
2008 Dec 07
0
[LLVMdev] How to extract loop body into a new function?
Sorry!
It worked with ExtractBasicBlock()
----- Original Message -----
From: "Mrunal J Shah" <mrunal.shah at gatech.edu>
To: "llvmdev" <llvmdev at cs.uiuc.edu>
Sent: Saturday, December 6, 2008 8:30:33 PM GMT -05:00 US/Canada Eastern
Subject: [LLVMdev] How to extract loop body into a new function?
Hi All,
I am having trouble extracting loop body into a new
2010 Sep 29
0
[LLVMdev] spilling & xmm register usage
...3.i = load float addrspace(1)* %arrayidx.i, align 4
> %tmp5.i = fmul float %tmp3.i, 1.000000e+01
> %tmp7.i = fsub float 1.000000e+00, %tmp3.i
> %tmp8.i = fmul float %tmp7.i, 1.000000e+02
> %tmp9.i = fadd float %tmp5.i, %tmp8.i
> %tmp20.i = fmul float %tmp7.i, 1.000000e+01
> %tmp21.i = fadd float %tmp3.i, %tmp20.i
> %tmp23.i = fmul float %tmp3.i, 0x3F847AE140000000
> %tmp26.i = fmul float %tmp7.i, 0x3FA99999A0000000
> %tmp27.i = fadd float %tmp23.i, %tmp26.i
> %tmp32.i = fmul float %tmp7.i, 0x3FB99999A0000000
> %tmp33.i = fadd float %tmp23.i, %tmp32.i
>...
2008 Dec 07
2
[LLVMdev] How to extract loop body into a new function?
Hi All,
I am having trouble extracting loop body into a new function. The ExtractLoop() or ExtractBasicBlock() extracts the entire loop along with the header into a new function. All I want is to extract the body of the loop into a new function(without the header).
Is this possible?
Thanks,
Mrunal
2008 Jun 11
4
[LLVMdev] Query on optimization and tail call.
Hi,
While playing around on the LLVM, I tried this code:
int sum(int n)
{
if (n == 0)
return 0;
else
return n + sum(n-1);
}
and this is what "llvm-gcc -O2" gave me:
define i32 @sum(i32 %n) nounwind {
entry:
%tmp215 = icmp eq i32 %n, 0 ; <i1> [#uses=1]
br i1 %tmp215, label %bb10, label %tailrecurse.bb10_crit_edge
tailrecurse.bb10_crit_edge: ; preds = %entry
%tmp = add i32 %n, -1 ; <i32> [#uses=3]
%tmp17 = mul i32 %tmp, %tmp ; <i32> [#uses=1]
%tmp18 = add i32 %tmp17, %n ; <i32>...
2010 Nov 07
0
[LLVMdev] Hoisting elements of array argument into registers
...* %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.i, %tmp18.i
%tmp19.i = add i32 %tmp...