Ian Lance Taylor <[EMAIL PROTECTED]> writes: | [EMAIL PROTECTED] (Richard Kenner) writes: | | > > My conclusion at the end was, the best speed up possible, isn't to | > > mess with the callers, but rather, to get types canonicalized, then | > > all the work that comptypes would normally do, hopefully, just all | > > goes away. Though, in the long run those quadratic algorithms have to | > > one day die, even if comptypes is fixed. | > | > My confusion here is how can you "canonicalize" types that are different | > (meaning have different names) without messing up debug information. | > If you have: | > | > Foo xyz; | > | > and you display xyz in the debugger, it needs to say it's type "Foo", not | > some similar-but-differently-named type. | > | > Or maybe this is C++-specific and isn't relevant in C, so I'm not going to | > understand it. | | The way to canonicalize them is to have all equivalent types point to | a single canonical type for the equivalence set. The comparison is | one memory dereference and one pointer comparison, not the current | procedure of checking for structural equivalence.
Yes, exactly. -- Gaby