search for: exitingblock

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() &amp...
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...