This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Canonical type nodes, or, comptypes considered harmful


Ian Lance Taylor <iant@google.com> writes:

| kenner@vlsi1.ultra.nyu.edu (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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]