search for: tmp21

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&gt...
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...