This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: C++: Why do we nreverse CLASSTYPE_TAGS
Mark Mitchell <mark at codesourcery dot com> writes:
| On Mon, 2003-03-24 at 11:56, Matt Austern wrote:
| > On Monday, March 24, 2003, at 11:21 AM, Mark Mitchell wrote:
| >
| > >> OK, I'll experiment with that approach. What threasold would you put
| > >> for "lots"?
| > >
| > > I dunno. Probably 10 or so, to start. With fewer than that, hashing
| > > can't possibly be a win.
| >
| > How expensive is the hash function? Unless it's pretty extreme, I'd be
| > surprised if you needed to get all the way to 10 to get a win.
|
| Well, it's a hash *function*; you get to make an extra function call.
|
| As opposed to roughly:
|
| for (x = TYPE_FIELDS (t); x; x = TREE_CHAIN (x))
| if (DECL_NAME (x) == name)
| break;
Agreed in principle. But, as I pointed out previously, we don't
actually evaluate the hash function: We just re-use the result of the
initial computation (for interning into the identifier hash table).
Anyway, I'll play with replaing CLASSTYPE_TAGS with a hash-table and
report the result.
Thanks,
-- Gaby