[PATCH] Quick look-up for block in loop

Hal Finkel hfinkel at anl.gov
Thu Oct 24 07:40:45 PDT 2013


----- Original Message -----
> ----- Original Message -----
> > How do you think only exposing two write interfaces for block
> > vector
> > (remove block & add block, it is enough); then the DenseSet could
> > be
> > cached and maintained easily.
> 
> I suspect that is sufficient. It looks like the only user of
> getBlocksVector is the Loop Vectorizer. Nadav, Arnold, thoughts?

Actually, it looks like the Loop Vectorizer does not modify the array, so it could use the iterator interface (or a const reference).

 -Hal

> 
>  -Hal
> 
> > 
> > It could introduce some extra performance benefit if the DenseSet
> > needn't be constructed each time.
> > Take 458.sjeng as example, the time in LoopInfo is about ~4%
> > without
> > this patch, now it is ~1% with this patch, so it may introduce ~1%
> > extra performance gain if DenseSet is cached.
> > 
> > Thanks
> > Wan Xiaofei
> > 
> > -----Original Message-----
> > From: Hal Finkel [mailto:hfinkel at anl.gov]
> > Sent: Thursday, October 24, 2013 9:55 PM
> > To:
> > reviews+D2014+public+61410cad53427477 at llvm-reviews.chandlerc.com
> > Cc: llvm-commits at cs.uiuc.edu; atrick at apple.com; Wan, Xiaofei
> > Subject: Re: [PATCH] Quick look-up for block in loop
> > 
> > ----- Original Message -----
> > > 
> > >   Hal:
> > > 
> > >   Thanks for your comments, I don't think the DenseSet could be
> > >   cached since the blocks in loop may be changed.
> > 
> > 
> > I think that, normally, blocks can't be added or removed from a
> > loop
> > without either invalidating the LoopInfo, or updating it (calling
> > LoopInfo::removeBlock, changeLoopFor, etc.). I think that to get a
> > mutable copy of the blocks array directly, getBlocksVector needs to
> > be called (and it could invalidate the cache, and prevent further
> > caching after it is called).
> > 
> > > 
> > >   Finally, when you post patches to llvm-reviews, please generate
> > >   them with -U999999 so that we can see the full context in the
> > >   web
> > >   interface.
> > >   ~~~~What diff tool do you usually use, it seems svn diff has no
> > >   option -U999999, thanks.
> > 
> > http://llvm.org/docs/Phabricator.html says:
> > 
> > svn diff --diff-cmd=diff -x -U999999
> > 
> > Personally, I use git-svn, so it is a bit easier.
> > 
> > Thanks,
> > Hal
> > 
> > > 
> > > 
> > >   Thanks
> > >   Wan Xiaofei
> > > 
> > > http://llvm-reviews.chandlerc.com/D2014
> > > 
> > 
> > --
> > Hal Finkel
> > Assistant Computational Scientist
> > Leadership Computing Facility
> > Argonne National Laboratory
> > 
> 
> --
> Hal Finkel
> Assistant Computational Scientist
> Leadership Computing Facility
> Argonne National Laboratory
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-commits mailing list