Displaying 10 results from an estimated 10 matches for "scalarevolutionwrapperpass".
2018 Aug 11
3
ScalarEvolution in a ModulePass
Hey LLVMDev,
I'm working on a ModulePass that uses ScalarEvolution along with several
other analyses. After some debugging, it looks to me like
ScalarEvolutionWrapperPass does not handle memory correctly for this case.
Here's my current understanding of the problem.
ScalarEvolutionWrapperPass maintains a unique_ptr to a ScalarEvolution.
Calling getSE() dereferences this pointer. Meanwhile runOnFunction()
resets the pointer to point to a new ScalarEvolution. A...
2019 Mar 31
2
Unable to find requested analysis info (Interesting Assertion Failture for Specific Target Source Code)
...an interesting assertion failure when implementing my Pass, which is defined with the member functions shown below:
======================My Pass======================================
bool MYPass::runOnModule(Module &M)
{
for (auto &F : M)
{
SE = &getAnalysis<ScalarEvolutionWrapperPass>(F).getSE();
......
}
}
return false;
}
void MYPass::getAnalysisUsage(AnalysisUsage &AU) const
{
AU.setPreservesAll();
AU.addRequired<LoopInfoWrapperPass>();
AU.addRequired<ScalarEvolutionWrapperPass>();
AU.addRequired<LoopAccessLeg...
2019 Jan 31
4
Confusing ERROR with LoopAccessLegacyAnalysis: Pass 'Unnamed pass: implement Pass::getPassName()' is not initialized.
Dear all,
I write a new LoopPass which wants to use passes including LoopInfoWrapperPass, ScalarEvolutionWrapperPass and LoopAccessLegacyAnalysis.
Therefore, I implement the following code based on LLVM 9.0.0:
=====================================================================
bool LoopInformationCollect::runOnLoop(Loop *L, LPPassManager &)
{
auto &SE = getAnalysis<ScalarEvolutionWrapperPas...
2018 Jan 28
4
Polly Dependency Analysis in MyPass
Hello,
I need to analyze dependencies in my llvm ir by using polly. i created a
new pass called mypass there i added polly dependency analysis pass but
when i execute this pass in gdb i get no data.
Why is that so?
My code is follows;
namespace {
struct mypass : public FunctionPass {
static char ID;
mypass() : FunctionPass(ID) {
}
virtual bool runOnFunction(Function &F)
{
2018 Jan 28
0
Polly Dependency Analysis in MyPass
...pDetection> Result2;
//polly::ScopDetection pl;
auto &LI = getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
auto &RI = getAnalysis<RegionInfoPass>().getRegionInfo();
auto &AA = getAnalysis<AAResultsWrapperPass>().getAAResults();
auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
auto &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree();
Result2.reset(new ScopDetection(F, DT, SE, LI, RI, AA));
auto &SD2 = getAnalysis<polly::ScopDetectionWrapperPass>().getSD();
auto &SE2 = getAnalysis<ScalarEvolutionWrapperPass>...
2019 Mar 26
2
On-the-fly passes
...e();
};
auto LoopInfoGetter = [this] (Function &F) -> LoopInfo & {
return this->getAnalysis<LoopInfoWrapperPass>(F).getLoopInfo();
};
auto SCEVGetter = [this] (Function &F) -> ScalarEvolution & {
return this->getAnalysis<ScalarEvolutionWrapperPass>(F).getSE();
};
auto AssumptionCacheGetter = [this] (Function &F) ->
AssumptionCache & {
return
this->getAnalysis<AssumptionCacheTracker>().getAssumptionCache(F);
};
auto OREGetter = [this] (Function &F) -> Optimization...
2018 Jan 28
1
Polly Dependency Analysis in MyPass
...//polly::ScopDetection pl;
>
> auto &LI = getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
> auto &RI = getAnalysis<RegionInfoPass>().getRegionInfo();
> auto &AA = getAnalysis<AAResultsWrapperPass>().getAAResults();
> auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
> auto &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree();
> Result2.reset(new ScopDetection(F, DT, SE, LI, RI, AA));
>
>
>
> auto &SD2 = getAnalysis<polly::ScopDetectionWrapperPass>().getSD();
>
>
>
> auto &SE2 = g...
2018 Jan 29
1
Polly Dependency Analysis in MyPass
...ult;
std::unique_ptr<ScopDetection> Result2;
auto &LI = getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
auto &RI = getAnalysis<RegionInfoPass>().getRegionInfo();
auto &AA = getAnalysis<AAResultsWrapperPass>().getAAResults();
auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
auto &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree();
Result2.reset(new ScopDetection(F, DT, SE, LI, RI, AA));
auto &SD2 = getAnalysis<polly::ScopDetectionWrapperPass>().getSD();
auto &SE2 = getAnalysis<ScalarEvolutionWrapperPass>().ge...
2018 Jan 29
0
Polly Dependency Analysis in MyPass
How do you compile the code? Within the Polly subdirectory using CMake?
How do you run your pass. Using "opt -mypass inputfile.ll"?
Michael
2018-01-28 9:30 GMT-06:00 hameeza ahmed via llvm-dev <llvm-dev at lists.llvm.org>:
> Hello,
>
> I need to analyze dependencies in my llvm ir by using polly. i created a new
> pass called mypass there i added polly dependency
2019 Oct 30
2
How to make ScalarEvolution recompute SCEV values?
Hello all,
I’m pretty new to LLVM.
I'm writing a pass for loop optimization. I clone and rearrange loops, setting the cloned loop as the original loop’s parent. This can be done multiple times, until there is no more work to do. The trouble is, after the first time I do this, the cloned loop's SCEVs become unknown types when they should be AddRecExpr.
If I re-run the whole pass on the