[LLVMdev] Path profiling interface proposal

David Greene dag at cray.com
Fri Jul 10 17:02:48 PDT 2009

On Friday 10 July 2009 18:06, Slobodan Pejic wrote:
> Hello,
> I am planning on contributing path profiling to LLVM by the end of
> August.  I have written a document of what the interface to the path
> profiles would look like at that time.  If someone has any amendments, I
> can incorporate them.

One more comment:

> /* Query for paths in hot to cold order. */
> PathProfileInfo::iterator path = PI.selectPaths(F, blocksRequired.begin(),
> 	blocksRequired.end(), PathProfileInfo::DESC);
> /* Iterating over the first path which is the hottest. */
> for(Path::iterator block = path->begin(); block != path->end(); ++block)
> {
>   cerr << "Traversing basic block: " << block->getName() << "\n";
> }

This seems a bit too cute to me.  There's no reason clients can't iterate
over the returned paths and find the hot one.  Standard C++ algorithms
can do this very easily.  I don't think it's worth the complexity of an
"order" parameter in the query interface and the sorting, etc. that that
implies.  If there's a large number of paths, the client can do the sorting
itself.  A PathCount() interface might be useful.


More information about the llvm-dev mailing list