search for: loopbody

Displaying 12 results from an estimated 12 matches for "loopbody".

Did you mean: loop_body
2012 Mar 07
4
[LLVMdev] Updating value from PHI
I am splitting a one BB loop into two BB. Basically, the one loop BB has 3 incoming values, one form back edge two from other edges. I want to extract the PHIs from the other two edges out into it's own BB and delete that from the loop, then redirect the backedge to the loopbody (non extracted portion) and create a new PHI coming from the extracted BB and the backedge. I can do this; however, the PHIs following in all the other BBs are not getting updated, neither are the statements in the loopbody. What is the easieset way to propagate these changes downward? ----------...
2012 Mar 08
2
[LLVMdev] Updating value from PHI
...BB loop into two BB. >> >> Basically, the one loop BB has 3 incoming values, one form back edge two >> from other edges. I want to extract the PHIs from the other two edges out >> into it's own BB and delete that from the loop, then redirect the backedge >> to the loopbody (non extracted portion) and create a new PHI coming from >> the extracted BB and the backedge. >> >> I can do this; however, the PHIs following in all the other BBs are not >> getting updated, neither are the statements in the loopbody. >> >> What is the easieset...
2012 Mar 08
0
[LLVMdev] Updating value from PHI
...I am splitting a one BB loop into two BB. > > Basically, the one loop BB has 3 incoming values, one form back edge two > from other edges. I want to extract the PHIs from the other two edges out > into it's own BB and delete that from the loop, then redirect the backedge > to the loopbody (non extracted portion) and create a new PHI coming from > the extracted BB and the backedge. > > I can do this; however, the PHIs following in all the other BBs are not > getting updated, neither are the statements in the loopbody. > > What is the easieset way to propagate these...
2012 Mar 08
0
[LLVMdev] Updating value from PHI
...I am splitting a one BB loop into two BB. > > Basically, the one loop BB has 3 incoming values, one form back edge two > from other edges. I want to extract the PHIs from the other two edges out > into it's own BB and delete that from the loop, then redirect the backedge > to the loopbody (non extracted portion) and create a new PHI coming from > the extracted BB and the backedge. > > I can do this; however, the PHIs following in all the other BBs are not > getting updated, neither are the statements in the loopbody. > > What is the easieset way to propagate these...
2012 Mar 08
0
[LLVMdev] Updating value from PHI
.... >>> >>> Basically, the one loop BB has 3 incoming values, one form back edge two >>> from other edges. I want to extract the PHIs from the other two edges out >>> into it's own BB and delete that from the loop, then redirect the backedge >>> to the loopbody (non extracted portion) and create a new PHI coming from >>> the extracted BB and the backedge. >>> >>> I can do this; however, the PHIs following in all the other BBs are not >>> getting updated, neither are the statements in the loopbody. >>> >>&...
2012 Feb 03
0
[LLVMdev] Issues with the llvm.stackrestore intrinsic - now LoopRotation handling of alloca
...continue; } The above code happily moves an alloca instruction out of the loop, to the new loop header. Shouldn't we also check on !isa<AllocaInst>(Inst) before allowing to move it? The code that breaks because of the moved alloca looks like start: [...] br loopstart loopbody: [use alloc'd mem] call stackrestore(%oldsp) br loopstart loopstart: %oldsp = call stacksave() alloca [...] brcond loopbody, end end: [use alloc'd mem] call stackrestore(%oldsp) Then LoopRotation clones the stacksave from bb3 to bb1 and _moves_ the alloca from...
2012 Feb 03
1
[LLVMdev] Issues with the llvm.stackrestore intrinsic - now LoopRotation handling of alloca
...truction out of the loop, to > the new loop header. Shouldn't we also check on > >   !isa<AllocaInst>(Inst) > > before allowing to move it? > > > The code that breaks because of the moved alloca looks like > > start: >   [...] >   br loopstart > > loopbody: >   [use alloc'd mem] >   call stackrestore(%oldsp) >   br loopstart > > loopstart: >    %oldsp = call stacksave() >   alloca >   [...] >   brcond loopbody, end > > end: >   [use alloc'd mem] >   call stackrestore(%oldsp) > > Then LoopRotation c...
2012 Feb 01
3
[LLVMdev] Issues with the llvm.stackrestore intrinsic
Hi, I have two problems regarding the llvm.stackrestore intrinsic. I'm running on 3.0, but a quick test on trunk also showed the same behavior. First problem: --------------- I have code like: tmp1 = call llvm.stacksave() tmp2 = alloca [do some stuff with tmp2] call llvm.stackrestore(tmp1) [some other stuff] tmp3 = call llvm.stacksave() tmp4 = alloca [do some stuff
2014 Aug 02
2
[LLVMdev] Create "appending" section that can be partially dead stripped
On 01/08/14 19:37, Reid Kleckner wrote: > What happens if you drop appending linkage? I think it will just work, > since you are already using a custom section, which will ensure that all > the data appears contiguously in memory. Thanks for the suggestion, but it still puts everything in a single .section statement. > Although, I do worry about what LLVM's alias analysis will
2014 Aug 05
2
[LLVMdev] Create "appending" section that can be partially dead stripped
...32]* @arrstop to i64 %loopstart = ptrtoint [0 x i32]* @arrstart to i64 %loopcount = sub i64 %loopstop, %loopstart %looparrinit = bitcast [0 x i32]* @arrstart to i32* br label %LoopStart ; sum all elements in the array LoopStart: %looparr = phi i32* [%looparrinit, %Entry], [%looparrnext, %LoopBody] %loopcond = icmp eq i64 %loopcount, 0 br i1 %loopcond, label %LoopEnd, label %LoopBody LoopBody: %val = load i32* %looparr %sum2 = load i32* %sumvar %sum3 = add i32 %val, %sum2 store i32 %sum3, i32* %sumvar %looparrnext = getelementptr i32* %looparr, i64 1 br label %LoopStart ; retu...
2012 Apr 03
0
[LLVMdev] GSoC 2012 Proposal: Automatic GPGPU code generation for llvm
Hi Justin, the non-translatable IR with GPU code replaced by appropriate CUDA Driver > API calls. One of CUDA driver apis (cuLaunch) need a ptx asm string as its input. So if I want to provide a one-touch solution and don't introduce any changes to tools outside polly, I must prepare the ptx string before I can generate the correct non-translatable IR part. As your suggestion, It may
2012 Apr 03
2
[LLVMdev] GSoC 2012 Proposal: Automatic GPGPU code generation for llvm
Hi Justin, 2012/4/3 Justin Holewinski <justin.holewinski at gmail.com> > *Motivation* >> With the broad proliferation of GPU computing, it is very important to >> provide an easy and automatic tool to develop or port the applications to >> GPU for normal developers, especially for those domain experts who want to >> harness the huge computing power of GPU. Polly