This is the mail archive of the gcc-patches@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: [cxx-conversion] LTO-related hash tables


On 12/3/12, Diego Novillo <dnovillo@google.com> wrote:
> On 2012-12-01 20:40 , Lawrence Crowl wrote:
> > Change LTO-related hash tables from htab_t to hash_table:
> >
> > lto-streamer.h output_block::string_hash_table
> > lto-streamer-in.c file_name_hash_table
> > lto-streamer.c tree_htab
> >
> > The struct string_slot moves from data-streamer.h to
> > lto-streamer.h to resolve compilation dependences.
>
> What compilation dependences?  If it was fine before in
> data-streamer.h why does it need to move to lto-streamer.h?
> I'm missing that connection.

Before the change, lto-streamer.h output_block::string_hash_table was
an htab_t.  The element type was opaque, i.e. implicit in the void*
casting in the hash functions provided at the htab_create call site.

With the change to hash_table, the output_block::string_hash_table
declaration needed string_slot_hasher which in turn needed
string_slot.  But string_slot was defined in data-streamer.h after
output_block in lto-streamer.h.  So, something had to move.

-- 
Lawrence Crowl


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