[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