[llvm-dev] Polly Dependency Analysis in MyPass
    hameeza ahmed via llvm-dev 
    llvm-dev at lists.llvm.org
       
    Sun Jan 28 09:20:41 PST 2018
    
    
  
I have modified the code as follows; now i am using both scopdetection and
scopinformation before dependency check but i think link is missing...
virtual bool runOnFunction(Function &F)
        {
std::unique_ptr<ScopInfo> Result;
std::unique_ptr<ScopDetection> 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>().getSE();
  auto &LI2 = getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
  auto &AA2 = getAnalysis<AAResultsWrapperPass>().getAAResults();
  auto const &DL2 = F.getParent()->getDataLayout();
  auto &DT2 = getAnalysis<DominatorTreeWrapperPass>().getDomTree();
  auto &AC2 = getAnalysis<AssumptionCacheTracker>().getAssumptionCache(F);
  Result.reset(new ScopInfo{DL2, SD2, SE2, LI2, AA2, DT2, AC2});
polly::DependenceInfoWrapperPass dp;
auto &SI = *getAnalysis<polly::ScopInfoWrapperPass>().getSI();
  for (auto &It : SI) {
    assert(It.second && "Invalid SCoP object!");
    dp.recomputeDependences(It.second.get(), polly::Dependences::AL_Access);
}
return false;
        }
what to do? please help.....
On Sun, Jan 28, 2018 at 8:30 PM, hameeza ahmed <hahmed2305 at gmail.com> wrote:
> 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)
>         {
> polly::DependenceInfoWrapperPass dp;
>
> auto &SI = *getAnalysis<polly::ScopInfoWrapperPass>().getSI();
>
>   for (auto &It : SI) {
>     assert(It.second && "Invalid SCoP object!");
>     dp.recomputeDependences(It.second.get(),
> polly::Dependences::AL_Access); }
> virtual void getAnalysisUsage(AnalysisUsage &AU) const
>         {
>
>   AU.addRequiredTransitive<polly::ScopInfoWrapperPass>();
>  AU.setPreservesAll();
>         }
> };
> }
> char mypass::ID = 0;
> static RegisterPass<mypass> X("mypass", "mypass World Pass", false, false);
>
> please help. i have been trying a lot.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180128/ebc83ab4/attachment.html>
    
    
More information about the llvm-dev
mailing list