Displaying 3 results from an estimated 3 matches for "oldsp".
Did you mean:
oldss
2012 Feb 03
0
[LLVMdev] Issues with the llvm.stackrestore intrinsic - now LoopRotation handling of 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 bb3 to bb1. So the alloca is moved outside the loop i...
2012 Feb 03
1
[LLVMdev] Issues with the llvm.stackrestore intrinsic - now LoopRotation handling of alloca
...9;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
> alloc...
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