Displaying 3 results from an estimated 3 matches for "loopentrybranch".
2012 Feb 03
1
[LLVMdev] Issues with the llvm.stackrestore intrinsic - now LoopRotation handling of alloca
...'t write).
> if (L->hasLoopInvariantOperands(Inst) &&
> !Inst->mayReadFromMemory() && !Inst->mayWriteToMemory() &&
> !isa<TerminatorInst>(Inst) && !isa<DbgInfoIntrinsic>(Inst)) {
> Inst->moveBefore(LoopEntryBranch);
> 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...
2012 Feb 03
0
[LLVMdev] Issues with the llvm.stackrestore intrinsic - now LoopRotation handling of alloca
...t the loop doesn't write).
if (L->hasLoopInvariantOperands(Inst) &&
!Inst->mayReadFromMemory() && !Inst->mayWriteToMemory() &&
!isa<TerminatorInst>(Inst) && !isa<DbgInfoIntrinsic>(Inst)) {
Inst->moveBefore(LoopEntryBranch);
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...
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