search for: n_addr

Displaying 11 results from an estimated 11 matches for "n_addr".

Did you mean: __addr
2017 Aug 10
4
sinking in LICM
...the check in isNotUsedInLoop() which returns false when a PHI node use is hooked from a block inside the loop. I'm not sure if we really need to have this check even when the PHI is outside the loop? define i32 @test7(i32 %N, i32 %N2, i1 %C) { Entry: br label %Loop Loop: %N_addr.0.pn = phi i32 [ %dec, %ContLoop ], [ %N, %Entry ] %tmp.6 = mul i32 %N, %N_addr.0.pn %tmp.7 = sub i32 %tmp.6, %N %tmp.8 = sub i32 %tmp.6, %N2 %dec = add i32 %N_addr.0.pn, -1 br i1 %C, label %ContLoop, label %Out12 ContLoop: %tmp.1 = icmp ne i32...
2011 Sep 14
1
[LLVMdev] Fwd: LLVM IR Branchs
...%4. 2011/9/14 Rafael Baldiati Parizi <parizi.computacao at gmail.com> > Hello, > I created a new block for execution to continue, but I got the case in > which a statement defined in a block is used in another, not dominate all > uses. > For example: > > entry: > %n_addr = alloca i32, align 4 > %retval = alloca i32 > %"alloca point" = bitcast i32 0 to i32 > store i32 %n, i32* %n_addr > %0 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds > ([20 x i8]* @.str, i32 0, i32 0)) nounwind > %1 = load i32* %n_addr,...
2011 Sep 14
0
[LLVMdev] Fwd: LLVM IR Branchs
Hello, I created a new block for execution to continue, but I got the case in which a statement defined in a block is used in another, not dominate all uses. For example: entry: %n_addr = alloca i32, align 4 %retval = alloca i32 %"alloca point" = bitcast i32 0 to i32 store i32 %n, i32* %n_addr %0 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([20 x i8]* @.str, i32 0, i32 0)) nounwind %1 = load i32* %n_addr, align 4 %2 = and i32 %1, 1...
2011 Sep 06
2
[LLVMdev] Fwd: LLVM IR Branchs
Ok! I do understand. Thanks by help! 2011/9/5 Justin Holewinski <justin.holewinski at gmail.com> > On Mon, Sep 5, 2011 at 8:37 PM, Rafael Baldiati Parizi < > parizi.computacao at gmail.com> wrote: > >> Yes, that's how I'm doing now ... create a new block where the execution >> flow will continue after the shift, following the basics of basic blocks.
2008 Sep 02
0
[LLVMdev] CloneBasicBlock and Unnamed Temporaries
Hi, I was trying to use CloneBasicBlock() (in Cloning.h) to clone basic blocks in one of my transform passes. For example, when I have a basic block like: bb1: ; preds = %bb load i32* %i, align 4 ; <i32>:11 [#uses=2] load i32* %n_addr, align 4 ; <i32>:12 [#uses=2] icmp slt i32 %11, %12 ; <i1>:13 [#uses=2] cloning it gives something like: bb1_clone: ; preds = %entry load i32* %i, align 4 ; <i32>:28 [#uses=0] load i32* %n_addr, align 4 ; <i32>:29 [#uses=0] icmp slt i32 %11, %12 ; <i1>:30...
2005 Feb 22
0
[LLVMdev] Area for improvement
...<bool> [#uses=1] br bool %tmp.15, label %return, label %no_exit no_exit: ; preds = %no_exit, %entry %P_addr.0.0 = phi "complex long double"* [ %inc, %no_exit ], [ %P, %entry ] ; <"complex long double"*> [#uses=3] %N_addr.0.0 = phi uint [ %dec, %no_exit ], [ %N, %entry ] ; <uint> [#uses=1] %inc = getelementptr "complex long double"* %P_addr.0.0, int 1 ; <"complex long double"*> [#uses=1] %tmp.4 = getelementptr "complex long double"* %...
2005 Feb 22
2
[LLVMdev] Area for improvement
...> br bool %tmp.15, label %return, label %no_exit > no_exit: ; preds = %no_exit, %entry > %P_addr.0.0 = phi "complex long double"* [ %inc, %no_exit ], [ > %P, %entry ] ; <"complex long double"*> [#uses=3] > %N_addr.0.0 = phi uint [ %dec, %no_exit ], [ %N, %entry > ] ; <uint> [#uses=1] > %inc = getelementptr "complex long double"* %P_addr.0.0, int > 1 ; <"complex long double"*> [#uses=1] > %tmp.4 = getelementptr "complex...
2005 Feb 22
0
[LLVMdev] Area for improvement
...bool %tmp.15, label %return, label %no_exit >> no_exit: ; preds = %no_exit, %entry >> %P_addr.0.0 = phi "complex long double"* [ %inc, %no_exit ], [ %P, >> %entry ] ; <"complex long double"*> [#uses=3] >> %N_addr.0.0 = phi uint [ %dec, %no_exit ], [ %N, %entry ] >> ; <uint> [#uses=1] >> %inc = getelementptr "complex long double"* %P_addr.0.0, int 1 >> ; <"complex long double"*> [#uses=1] >> %tmp.4 = getelementptr "complex long do...
2005 Feb 22
5
[LLVMdev] Area for improvement
I noticed that fourinarow is one of the programs in which LLVM is much slower than GCC, so I decided to take a look and see why that is so. The program has many loops that look like this: #define ROWS 6 #define COLS 7 void init_board(char b[COLS][ROWS+1]) { int i,j; for (i=0;i<COLS;i++) for (j=0;j<ROWS;j++) b[i][j]='.';
2011 Jul 06
2
[LLVMdev] First steps with LLVM and partial evaluation
...lo", "Hello World Pass", false, false); } ------------------------------------------------------------------------------------------------------ The resulting error message from the verification step is: Stored value type does not match pointer operand type! store i32 3, i32* %n_addr i32Broken module found, compilation aborted! Stack dump: 0. Program arguments: opt --load obj/pass/ce_opt_pass.so -hello power.ir 1. Running pass 'Function Pass Manager' on module 'power.ir'. 2. Running pass 'Module Verifier' on function '@mypower_s...
2008 Jun 10
3
[LLVMdev] DejaGNU test fixes
...3-06-VarSizeInStruct1.c' target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32" target triple = "i386-pc-linux-gnu" %struct..0f = type { i8, i8 } define i8* @p(i32 %n) nounwind { entry: %n_addr = alloca i32 ; <i32*> [#uses=2] %retval = alloca i8* ; <i8**> [#uses=2] %saved_stack.9 = alloca i8* ; <i8**> [#uses=2] %tmp = alloca i8* ; <i8**> [#uses=2] %F.8 = alloca %struct..0f* ; <%struct..0f**> [#uses=3] %n.0 = alloca i32 ; <i32*> [#uses=9] %&q...