Displaying 13 results from an estimated 13 matches for "exitingblock".
2012 Feb 08
2
[LLVMdev] BackedgeTakenCount calculation for fortran loops and DragonEgg gfortran-4.6
...; diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp
> index daf7742..b10fab2 100644
> --- a/lib/Analysis/ScalarEvolution.cpp
> +++ b/lib/Analysis/ScalarEvolution.cpp
> @@ -4293,9 +4293,15 @@ ScalarEvolution::ComputeExitLimit(const Loop
> *L, BasicBlock *ExitingBlock) {
> //
> // FIXME: we should be able to handle switch instructions (with a
> single exit)
> BranchInst *ExitBr = dyn_cast<BranchInst>(ExitingBlock->getTerminator());
> +
> if (ExitBr == 0) return getCouldNotCompute();
> assert(ExitBr->isConditional() &...
2012 Feb 08
2
[LLVMdev] BackedgeTakenCount calculation for fortran loops and DragonEgg gfortran-4.6
...ase to the trivial case :
diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp
index daf7742..fcbaffe 100644
--- a/lib/Analysis/ScalarEvolution.cpp
+++ b/lib/Analysis/ScalarEvolution.cpp
@@ -4293,6 +4293,11 @@ ScalarEvolution::ComputeExitLimit(const Loop
*L, BasicBlock *ExitingBlock) {
//
// FIXME: we should be able to handle switch instructions (with a
single exit)
BranchInst *ExitBr = dyn_cast<BranchInst>(ExitingBlock->getTerminator());
+ BranchInst* BrFirstSucc = dyn_cast<BranchInst>(ExitBr->
+ getSucces...
2012 Feb 08
0
[LLVMdev] BackedgeTakenCount calculation for fortran loops and DragonEgg gfortran-4.6
...Evolution
tests in LLVM):
diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp
index daf7742..b10fab2 100644
--- a/lib/Analysis/ScalarEvolution.cpp
+++ b/lib/Analysis/ScalarEvolution.cpp
@@ -4293,9 +4293,15 @@ ScalarEvolution::ComputeExitLimit(const Loop
*L, BasicBlock *ExitingBlock) {
//
// FIXME: we should be able to handle switch instructions (with a
single exit)
BranchInst *ExitBr = dyn_cast<BranchInst>(ExitingBlock->getTerminator());
+
if (ExitBr == 0) return getCouldNotCompute();
assert(ExitBr->isConditional() && "If unconditional,...
2012 Feb 08
2
[LLVMdev] BackedgeTakenCount calculation for fortran loops and DragonEgg gfortran-4.6
...t; b/lib/Analysis/ScalarEvolution.cpp
>> > index daf7742..b10fab2 100644
>> > --- a/lib/Analysis/ScalarEvolution.cpp
>> > +++ b/lib/Analysis/ScalarEvolution.cpp
>> > @@ -4293,9 +4293,15 @@ ScalarEvolution::ComputeExitLimit(const Loop
>> > *L, BasicBlock *ExitingBlock) {
>> > //
>> > // FIXME: we should be able to handle switch instructions (with a
>> > single exit)
>> > BranchInst *ExitBr =
>> > dyn_cast<BranchInst>(ExitingBlock->getTerminator());
>> > +
>> > if (ExitBr == 0) return...
2012 Feb 08
0
[LLVMdev] BackedgeTakenCount calculation for fortran loops and DragonEgg gfortran-4.6
...alarEvolution.cpp
> b/lib/Analysis/ScalarEvolution.cpp
> > index daf7742..b10fab2 100644
> > --- a/lib/Analysis/ScalarEvolution.cpp
> > +++ b/lib/Analysis/ScalarEvolution.cpp
> > @@ -4293,9 +4293,15 @@ ScalarEvolution::ComputeExitLimit(const Loop
> > *L, BasicBlock *ExitingBlock) {
> > //
> > // FIXME: we should be able to handle switch instructions (with a
> > single exit)
> > BranchInst *ExitBr =
> dyn_cast<BranchInst>(ExitingBlock->getTerminator());
> > +
> > if (ExitBr == 0) return getCouldNotCompute();
> >...
2018 Nov 27
2
ScalarEvolution class returns no valid loop exit count
...TargetLibraryInfoImpl TLII(MT);
TargetLibraryInfoWrapperPass TLI =
TargetLibraryInfoWrapperPass(TLII);
LoopInfo LI = LoopInfo(DT);
LI.analyze(DT);
*ScalarEvolution SE = ScalarEvolution(*func, TLI.getTLI(),AC,
DT, LI);*
BasicBlock * exitingblock = L->getUniqueExitBlock();
const SCEV * exitingcount = SE.getExitCount (L,exitblock );
}
}
}
......
Unfortunately I get this result by printing the SCEV exitingcount variable:
***COULDNOTCOMPUTE***
It has been tested that the exitingblock of the loop was calculated
succ...
2012 Feb 09
2
[LLVMdev] BackedgeTakenCount calculation for fortran loops and DragonEgg gfortran-4.6
...; >> > index daf7742..b10fab2 100644
>> >> > --- a/lib/Analysis/ScalarEvolution.cpp
>> >> > +++ b/lib/Analysis/ScalarEvolution.cpp
>> >> > @@ -4293,9 +4293,15 @@ ScalarEvolution::ComputeExitLimit(const Loop
>> >> > *L, BasicBlock *ExitingBlock) {
>> >> > //
>> >> > // FIXME: we should be able to handle switch instructions (with a
>> >> > single exit)
>> >> > BranchInst *ExitBr =
>> >> > dyn_cast<BranchInst>(ExitingBlock->getTerminator());
>> &...
2012 Feb 08
0
[LLVMdev] BackedgeTakenCount calculation for fortran loops and DragonEgg gfortran-4.6
...volution.cpp
> >> > index daf7742..b10fab2 100644
> >> > --- a/lib/Analysis/ScalarEvolution.cpp
> >> > +++ b/lib/Analysis/ScalarEvolution.cpp
> >> > @@ -4293,9 +4293,15 @@ ScalarEvolution::ComputeExitLimit(const Loop
> >> > *L, BasicBlock *ExitingBlock) {
> >> > //
> >> > // FIXME: we should be able to handle switch instructions (with a
> >> > single exit)
> >> > BranchInst *ExitBr =
> >> > dyn_cast<BranchInst>(ExitingBlock->getTerminator());
> >> > +
> >...
2012 Feb 09
0
[LLVMdev] BackedgeTakenCount calculation for fortran loops and DragonEgg gfortran-4.6
...index daf7742..b10fab2 100644
>>> >> > --- a/lib/Analysis/ScalarEvolution.cpp
>>> >> > +++ b/lib/Analysis/ScalarEvolution.cpp
>>> >> > @@ -4293,9 +4293,15 @@ ScalarEvolution::ComputeExitLimit(const Loop
>>> >> > *L, BasicBlock *ExitingBlock) {
>>> >> > //
>>> >> > // FIXME: we should be able to handle switch instructions (with a
>>> >> > single exit)
>>> >> > BranchInst *ExitBr =
>>> >> > dyn_cast<BranchInst>(ExitingBlock->getTermi...
2012 Feb 09
1
[LLVMdev] BackedgeTakenCount calculation for fortran loops and DragonEgg gfortran-4.6
...10fab2 100644
>>>> >> > --- a/lib/Analysis/ScalarEvolution.cpp
>>>> >> > +++ b/lib/Analysis/ScalarEvolution.cpp
>>>> >> > @@ -4293,9 +4293,15 @@ ScalarEvolution::ComputeExitLimit(const Loop
>>>> >> > *L, BasicBlock *ExitingBlock) {
>>>> >> > //
>>>> >> > // FIXME: we should be able to handle switch instructions (with a
>>>> >> > single exit)
>>>> >> > BranchInst *ExitBr =
>>>> >> > dyn_cast<BranchInst>(Exiti...
2012 May 21
1
[LLVMdev] No getSmallConstantTripCount function in current LLVM version
Hi,
I cannot find the getSmallConstantTripCount function in the current LLVM. Can anyone tell me whether there is still such a function to get the trip count in LLVM?
Thank you very much.
Best,
Han
2011 Feb 25
1
[LLVMdev] Live values detection in LLVM
...method isLiveThroughBlock is going
to answer false, whereas the right answer is true. Is it right ?
* To compute the set of blocks where isKilledInBlock is true, we compute
the smallest loop containing both the definition of the variable and all
its use, and isKilledInBlock becomes true in all ExitingBlock of this loop.
An exiting block is a block inside the loop that have successors outside
of the loop.
So, even if isKilledInBlock(v,b)=true, that doesn't mean the value can't
be used anymore: if the exiting block has a successor in the loop, then
the value will be used again.
Do I unders...
2012 Jul 16
3
[LLVMdev] RFC: LLVM incubation, or requirements for committing new backends
...ockT *CurBlock);
> + int loopPatternMatch(BlockT *CurBlock);
> +
> + int loopbreakPatternMatch(LoopT *LoopRep, BlockT *LoopHeader);
> + int loopcontPatternMatch(LoopT *LoopRep, BlockT *LoopHeader);
> + //int loopWithoutBreak(BlockT *);
> +
> + void handleLoopbreak (BlockT *ExitingBlock, LoopT *ExitingLoop,
> + BlockT *ExitBlock, LoopT *exitLoop, BlockT *landBlock);
> + void handleLoopcontBlock(BlockT *ContingBlock, LoopT *contingLoop,
> + BlockT *ContBlock, LoopT *contLoop);
> + bool isSameloopDetachedContbreak(BlockT...