[polly] r255776 - ScopInfo: Introduce getNumberOfArrayAccesses

Johannes Doerfert via llvm-commits llvm-commits at lists.llvm.org
Sun Dec 20 15:28:49 PST 2015


On 12/21, Johannes Doerfert via llvm-commits wrote:
> Why do we need to __count__ ArrayKind accesses for one llvm::Instruction?
> I was always assuming each llvm::Instruction causes either 0 or 1
> ArrayKind access, thus we are interested in a boolean predicate not a
> number. If I am wrong please correct me, if not please write something
> that does not return a bool but the ArrayKind access if it exists and
> null otherwise.
Didn't you already implement what I describe above in r255713?


> On 12/16, Tobias Grosser via llvm-commits wrote:
> > Author: grosser
> > Date: Wed Dec 16 10:14:00 2015
> > New Revision: 255776
> > 
> > URL: http://llvm.org/viewvc/llvm-project?rev=255776&view=rev
> > Log:
> > ScopInfo: Introduce getNumberOfArrayAccesses
> > 
> > Use the new function to clarify that we indeed only want to know it at least
> > one array access is associated with an instruction.
> > 
> > Modified:
> >     polly/trunk/include/polly/ScopInfo.h
> >     polly/trunk/lib/Analysis/ScopInfo.cpp
> > 
> > Modified: polly/trunk/include/polly/ScopInfo.h
> > URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/ScopInfo.h?rev=255776&r1=255775&r2=255776&view=diff
> > ==============================================================================
> > --- polly/trunk/include/polly/ScopInfo.h (original)
> > +++ polly/trunk/include/polly/ScopInfo.h Wed Dec 16 10:14:00 2015
> > @@ -992,6 +992,29 @@ public:
> >      return *ArrayAccess;
> >    }
> >  
> > +  /// @brief Get the number of array accesses associated with an instruction.
> > +  ///
> > +  /// @param Inst The instruction for which to obtain the access count.
> > +  /// @returns The number of array accesses associated with this instruction.
> > +  size_t getNumberOfArrayAccessesFor(const Instruction *Inst) const {
> > +    size_t NumAccesses = 0;
> > +    auto It = InstructionToAccess.find(Inst);
> > +    if (It == InstructionToAccess.end())
> > +      return 0;
> > +
> > +    auto *Accesses = It->getSecond();
> > +
> > +    if (!Accesses)
> > +      return 0;
> > +
> > +    for (auto Access : *Accesses) {
> > +      if (Access->isArrayKind())
> > +        NumAccesses++;
> > +    }
> > +
> > +    return NumAccesses;
> > +  }
> > +
> >    /// @brief Return the __first__ (scalar) memory access for @p Inst if any.
> >    MemoryAccess *lookupAccessFor(const Instruction *Inst) const {
> >      auto It = InstructionToAccess.find(Inst);
> > 
> > Modified: polly/trunk/lib/Analysis/ScopInfo.cpp
> > URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopInfo.cpp?rev=255776&r1=255775&r2=255776&view=diff
> > ==============================================================================
> > --- polly/trunk/lib/Analysis/ScopInfo.cpp (original)
> > +++ polly/trunk/lib/Analysis/ScopInfo.cpp Wed Dec 16 10:14:00 2015
> > @@ -2923,7 +2923,7 @@ void Scop::verifyInvariantLoads() {
> >    for (LoadInst *LI : RIL) {
> >      assert(LI && getRegion().contains(LI));
> >      ScopStmt *Stmt = getStmtForBasicBlock(LI->getParent());
> > -    if (Stmt && Stmt->lookupAccessesFor(LI)) {
> > +    if (Stmt && Stmt->getNumberOfArrayAccessesFor(LI) > 0) {
> >        invalidate(INVARIANTLOAD, LI->getDebugLoc());
> >        return;
> >      }
> > 
> > 
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
> 
> -- 
> 
> Johannes Doerfert
> Researcher / PhD Student
> 
> Compiler Design Lab (Prof. Hack)
> Saarland University, Computer Science
> Building E1.3, Room 4.31
> 
> Tel. +49 (0)681 302-57521 : doerfert at cs.uni-saarland.de
> Fax. +49 (0)681 302-3065  : http://www.cdl.uni-saarland.de/people/doerfert



> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


-- 

Johannes Doerfert
Researcher / PhD Student

Compiler Design Lab (Prof. Hack)
Saarland University, Computer Science
Building E1.3, Room 4.31

Tel. +49 (0)681 302-57521 : doerfert at cs.uni-saarland.de
Fax. +49 (0)681 302-3065  : http://www.cdl.uni-saarland.de/people/doerfert
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 213 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151221/2e1c9585/attachment.sig>


More information about the llvm-commits mailing list