[clang] Patch for 6037
nathan at acm.org
Fri Jan 16 11:56:22 PST 2015
On 01/14/15 23:16, Richard Smith wrote:
> On Wed, Dec 24, 2014 at 8:46 AM, Nathan Sidwell <nathan at acm.org> wrote:
>> [*] As an aside, I wonder if completing the std:set with the direct bases
>> and keeping it with the RecordDecl would speed up base conversion checks --
>> the base conversion machinery could use it for a quick 'is this even worth
>> figuring out' check.
> It shouldn't be a std::set; node-based containers are particularly bad
> for malloc traffic. Also, for a deep hierarchy, we'd end up storing
> O(N^2) nodes, which seems unfortunate (we already get that as a time
> cost with this patch; it'd be nice to avoid that too).
I'm not sure what your N is here. For a hierarchy I'd expect O(N^M) size, where
N is the mean number of direct bases and M is the mean depth. Anyway, it'd be a
time-space tradeoff -- we're already doing an O(whatever) walk on every
class-related overload argument check. I just don't know how much that costs in
> I wonder if
> there's some relatively compact way of representing this information
> that supports fast query and fast updates...
A pointer hash table would suffice, I'd've thought. We don't care about
ordering, just uniqueness. That'd have O(1) lookup and insertion costs.
More information about the cfe-commits