[llvm-commits] [llvm] r93400 - in /llvm/trunk: include/llvm/Metadata.h lib/VMCore/Metadata.cpp

Victor Hernandez vhernandez at apple.com
Thu Jan 14 12:15:42 PST 2010


On Jan 14, 2010, at 10:20 AM, Victor Hernandez wrote:

> 
> On Jan 14, 2010, at 9:39 AM, Devang Patel wrote:
> 
>> On Wed, Jan 13, 2010 at 5:45 PM, Victor Hernandez <vhernandez at apple.com> wrote:
>>> Author: hernande
>>> Date: Wed Jan 13 19:45:14 2010
>>> New Revision: 93400
>>> 
>>> URL: http://llvm.org/viewvc/llvm-project?rev=93400&view=rev
>>> Log:
>>> Add MDNode::getFunction(), which figures out the metadata's function, if it has function that it is local to.
>> 
>> so will this replace isFunctionLocal() ?
> 
> No, I don't think it should replace isFunctionLocal().  getFunction() is an expensive operation that should not be used in performance-critical tasks (currently it is only used when printing out ll files).  isFunctionLocal() is fast and will very rarely give a false positive (when a metadata is created function-local, but then the operands are modified later).

After our discussion, I am more amenable to replacing isFunctionLocal() with getFunction().  I just committed a debug version of getFunction() that asserts that function-local metadata has only 1 parent function.

I agree that avoiding the traversal of the MD operands at metadata-creation time helps performance.  I need to make sure that none of the users of isFunctionLocal() are performance-critical or called alot.

>> -
>> Devang
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list