On Wed, Oct 3, 2012 at 6:46 PM, Lawrence Crowl <cr...@googlers.com> wrote:
> On 10/2/12, Richard Guenther <rguent...@suse.de> wrote: >> You are changing a hashtable used by fold checking, did you test >> with fold checking enabled? > > One small thinko fixed. Patch passes tests. > >> The cfg.c, dse.c and hash-table.h parts are ok for trunk, I'll >> leave the rest to respective maintainers of the pieces of the >> compiler. > > +cc > java: tro...@redhat.com > c: r...@redhat.com > objc: mikest...@comcast.net > cp: ja...@redhat.com > > ==== > > Change more non-GTY hash tables to use the new type-safe template hash table. > Constify member function parameters that can be const. > Correct a couple of expressions in formerly uninstantiated templates. > > The new code is 0.362% faster in bootstrap, with a 99.5% confidence of > being faster. > > Tested on x86-64. > > Okay for trunk? > > > Index: gcc/java/ChangeLog > > 2012-10-01 Lawrence Crowl <cr...@google.com> > > * Make-lang.in (JAVA_OBJS): Add dependence on hash-table.o. > (JCFDUMP_OBJS): Add dependence on hash-table.o. > (jcf-io.o): Add dependence on hash-table.h. > * jcf-io.c (memoized_class_lookups): Change to use type-safe hash > table. > > Index: gcc/c/ChangeLog > > 2012-10-01 Lawrence Crowl <cr...@google.com> > > * Make-lang.in (c-decl.o): Add dependence on hash-table.h. > * c-decl.c (detect_field_duplicates_hash): Change to new type-safe > hash table. > > Index: gcc/objc/ChangeLog > > 2012-10-01 Lawrence Crowl <cr...@google.com> > > * Make-lang.in (OBJC_OBJS): Add dependence on hash-table.o. > (objc-act.o): Add dependence on hash-table.h. > * objc-act.c (objc_detect_field_duplicates): Change to new type-safe > hash table. > > Index: gcc/ChangeLog > > 2012-10-01 Lawrence Crowl <cr...@google.com> > > * Makefile.in (fold-const.o): Add depencence on hash-table.h. > (dse.o): Likewise. > (cfg.o): Likewise. > * fold-const.c (fold_checksum_tree): Change to new type-safe hash > table. > * (print_fold_checksum): Likewise. > * cfg.c (var bb_original): Likewise. > * (var bb_copy): Likewise. > * (var loop_copy): Likewise. > * hash-table.h (template hash_table): Constify parameters for find... > and remove_elt... member functions. > (hash_table::empty) Correct size expression. > (hash_table::clear_slot) Correct deleted entry assignment. > * dse.c (var rtx_group_table): Change to new type-safe hash table. > > Index: gcc/cp/ChangeLog > > 2012-10-01 Lawrence Crowl <cr...@google.com> > > * Make-lang.in (class.o): Add dependence on hash-table.h. > (tree.o): Likewise. > (semantics.o): Likewise. > * class.c (fixed_type_or_null): Change to new type-safe hash table. > * tree.c (verify_stmt_tree): Likewise. > (verify_stmt_tree_r): Likewise. > * semantics.c (struct nrv_data): Likewise. Given that the changes to the front ends are mechanical and a side-effect of the main hash table changes, I think they should be OK without further review (provided tests pass of course). The changes look fine to me. To be extra safe, let's wait a couple more days to give the FE maintainers a chance to look at the patch. Diego.