Benjamin Kosnik [Fri, 13 Apr 2012 00:33:10 +0000 (00:33 +0000)]
unordered_map.h (__unordered_map): Remove.
2012-04-12 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/unordered_map.h (__unordered_map): Remove.
(__unordered_multimap): Remove.
Add aliases for __umap_traits, __umap_hashtable, __ummap_traits,
__ummap_hashtable.
(unordered_map): Derive from __umap_hashtable.
(unordered_multimap): Derive from __ummap_hashtable.
* include/bits/unordered_set.h (__unordered_set): Remove.
(__unordered_multiset): Remove.
Add aliases for __uset_traits, __uset_hashtable, __umset_traits,
__umset_hashtable.
(unordered_set): Derive from __uset_hashtable.
(unordered_multiset): Derive from __umset_hashtable.
* include/bits/hashtable.h (__cache_default): New, consolidated
cache defaults for _Hashtable. Adjust comments for doxygen.
(_Hashtable): Consolidate bool template parameters into new,
_Traits class. Inherited base classes synthesize _Hashtable in
CRTP via original 10 parameters. Prefer using declarations to
typedefs, add __node_type, __bucket_type, etc. Push many nested
types down hierarchy to _Hashtable_base. Add constructors
necessary for top-level unordered_containers. Consolidate insert
member functions and logic in new base class, __detail::_Insert
and __detail::_Insert_base.
(_Hashtable::operator=(initializer_list)): Add.
* include/bits/hashtable_policy.h: Convert to doxygen markup.
(_Hashtable_traits) New. Consolidate bool template parameters here.
(_Insert, _Insert_base): New, consolidated insert member functions.
(_Map_base, _Equality, _Rehash_base): Adjust template parameters,
use base types.
(_Hashtable_base): Move type declarations useful to other base
classes into this class.
* python/libstdcxx/v6/printers.py (Tr1HashtableIterator): Update.
* testsuite/23_containers/unordered_set/instantiation_neg.cc:
Adjust traits, line numbers.
PR target/52828
* config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite with
tie regs on destination of sets. Delete forward declaration.
(rs6000_emit_stack_reset): Update rs6000_emit_stack_tie calls.
(rs6000_emit_prologue): Likewise.
(rs6000_emit_epilogue): Likewise. Use in place of gen_frame_tie
and gen_stack_tie.
(is_mem_ref): Use tie_operand to recognise stack ties.
* config/rs6000/predicates.md (tie_operand): New.
* config/rs6000/rs6000.md (restore_stack_block): Generate new
stack tie rtl.
(restore_stack_nonlocal): Likewise.
(stack_tie): Update.
(frame_tie): Delete.
Fix PR52822 (stable_partition move-assigns object to itself) by scanning for...
Fix PR52822 (stable_partition move-assigns object to itself) by
scanning for the first value that doesn't match the predicate before
starting to rearrange values.
2012-04-03 Jeffrey Yasskin <jyasskin@google.com>
PR libstdc++/52822
* include/bits/stl_algo.h (__find_if_not): Expose in
C++98 mode.
(__find_if_not_n): Like __find_if_not, but works on and updates a
counted range instead of a bounded range.
(stable_partition): Guarantee !__pred(*__first) in call to
__stable_partition_adaptive() or __inplace_stable_partition().
(__stable_partition_adaptive): Use new precondition to avoid
moving/copying objects onto themselves. Guarantee new
precondition to recursive calls.
(__inplace_stable_partition): Use new precondition to simplify
base case, remove __last parameter. Guarantee new precondition to
recursive calls.
* testsuite/25_algorithms/stable_partition/moveable.cc (test02):
Test a sequence that starts with a value matching the predicate.
* testsuite/25_algorithms/stable_partition/pr52822.cc:
Test vectors, which have a destructive self-move-assignment.
re PR target/52932 (AVX2 intrinsic _mm256_permutevar8x32_ps has wrong parameter type)
PR target/52932
* config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
argument type to __m256i. Update call to __builtin_ia32_permvarsf256.
* config/i386/sse.md (UNSPEC_VPERMVAR): New.
(UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove.
(avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
(avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and
avx2_permvarv8si using VI4F_256 mode iterator.
* config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
Update builtin type to V8SF_FTYPE_V8SF_V8SI.
(ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
gen_avx2_permvarv8sf.
(expand_vec_perm_pshufb): Ditto.
testsuite/ChangeLog:
PR target/52932
* gcc.target/i386/avx2-vpermps-1.c (avx2_test): Use __m256i type for
second function argument.
* gcc.target/i386/avx2-vpermps-2.c (init_permps): Update declaration.
(calc_permps): Update declaration. Calculate result correctly.
(avx2_test): Change src2 type to union256i_d.
* gcc.target/i386/avx2-vpermd-2.c (calc_permd): Calculate result
correctly.
Michael Meissner [Thu, 12 Apr 2012 17:10:27 +0000 (17:10 +0000)]
re PR target/52775 (Change default for using FCFID instruction)
[gcc]
2012-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/52775
* config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
the list of options to enable the FCFID instruction.
(TARGET_EXTRA_BUILTINS): Adjust comment.
[gcc/testsuite]
2012-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/52775
* gcc.target/powerpc/pr52775.c: New file.
Bill Schmidt [Thu, 12 Apr 2012 16:15:13 +0000 (16:15 +0000)]
re PR tree-optimization/18589 (could optimize FP multiplies better)
gcc:
2012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR tree-optimization/18589
* tree-ssa-reassoc.c (reassociate_stats): Add two fields.
(operand_entry): Add count field.
(add_repeat_to_ops_vec): New function.
(completely_remove_stmt): Likewise.
(remove_def_if_absorbed_call): Likewise.
(remove_visited_stmt_chain): Remove feeding builtin pow/powi calls.
(acceptable_pow_call): New function.
(linearize_expr_tree): Look for builtin pow/powi calls and add operand
entries with repeat counts when found.
(repeat_factor_d): New struct and associated typedefs.
(repeat_factor_vec): New static vector variable.
(compare_repeat_factors): New function.
(get_reassoc_pow_ssa_name): Likewise.
(attempt_builtin_powi): Likewise.
(reassociate_bb): Call attempt_builtin_powi.
(fini_reassoc): Two new calls to statistics_counter_event.
gcc/testsuite:
2012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* dbgcnt.def (ira_move): New counter.
* ira-int.h (ira_create_new_reg): Declare function.
(first_moveable_pseudo, last_moveable_pseudo): Declare variables.
* ira-emit.c (ira_create_new_reg): Renamed from craete_new_reg and
no longer static. All callers changed.
* ira.c: Include "dbgcnt.h".
(rtx_moveable_p, insn_dominated_by_p, find_moveable_pseudos,
move_unallocated_pseudos): New static functions.
(first_moveable_pseudo, last_moveable_pseudo): New global variables.
(pseudo_replaced_reg, pseudo_move_insn): New static variables.
(ira): Call find_moveable_pseudos and move_unallocated_pseudos.
* ira-costs.c (find_costs_and_classes): Assign a memory cost of zero
to the pseudos generated in find_moveable_pseudos.
* Makefile.in (ira.o): Add $(DBGCNT_H).
Richard Guenther [Thu, 12 Apr 2012 11:38:47 +0000 (11:38 +0000)]
re PR tree-optimization/52943 (likely wrong code bug caused by predictive commoning)
2012-04-12 Richard Guenther <rguenther@suse.de>
PR tree-optimization/52943
* tree-chrec.h (chrec_is_positive): Remove.
* tree-scalar-evolution.c (chrec_is_positive): Move ...
* tree-data-ref.c (chrec_is_positive): ... here. Make static.
Return false for a constant zero instead of negative.
(analyze_siv_subscript_cst_affine): Handle zero difference
in the initial condition explicitely.
Richard Guenther [Thu, 12 Apr 2012 10:13:22 +0000 (10:13 +0000)]
tree-parloops.c (parallelize_loops): Also consult the upper bound for the number of iterations.
2012-04-12 Richard Guenther <rguenther@suse.de>
* tree-parloops.c (parallelize_loops): Also consult the upper
bound for the number of iterations.
* tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
(loop_prefetch_arrays): Likewise.
sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0.
* config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0.
* config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE):
Fix line width.
(dump_table): Use bool type for need_align and have_df variables.
(find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0.
(regs_used): Remove register modifier.
(barrier_align): Move variables slot, credit, jump_to_next
into if block above for loop. Use bool type for jump_to_next.
(sh_function_arg): Use NULL_RTX instead of 0.
re PR c++/52465 (g++ rejects valid code with in-class using declaration)
gcc/testsuite/ChangeLog
2012-04-09 Fabien Chêne <fabien@gcc.gnu.org>
PR c++/52465
* g++.dg/lookup/using52.C: New.
gcc/cp/ChangeLog
2012-04-09 Fabien Chêne <fabien@gcc.gnu.org>
PR c++/52465
* parser.c (cp_parser_class_name): Call strip_using_decl and
return the target decl.
* name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
to be stripped is NULL_TREE.
(qualify_lookup): Call strip_using_decl and perform some checks on
the target decl.
H.J. Lu [Wed, 11 Apr 2012 17:34:08 +0000 (17:34 +0000)]
Check [SUB]SUBTARGET_OVERRIDE_OPTIONS after TARGET_64BIT
* config/i386/i386.c (ix86_option_override_internal): Check
SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS
after TARGET_64BIT is updated.
* config/sh/sh.h (SIDI_OFF): Remove.
* config/sh/sh.md: Use gen_highpart and gen_lowpart to access
DImode subregs instead of gen_rtx_REG or simplifly_gen_subreg
or operand_subword.
Andrew Haley [Wed, 11 Apr 2012 10:47:43 +0000 (10:47 +0000)]
jcf.h (bootstrap_method): New.
2012-04-11 Andrew Haley <aph@redhat.com>
* jcf.h (bootstrap_method): New.
(BootstrapMethods): New.
(JCF): Add BootstrapMethods.
(enum cpool_tag): Add MethodHandle, MethodType, and InvokeDynamic.
* jcf-reader.c (jcf_parse_bootstrap_methods): New.
(jcf_parse_constant_pool): Handlers for MethodHandle, MethodType,
and InvokeDynamic.
(jcf_parse_bootstrap_methods): New.
* javaop.def (invokedynamic): New opcode.
* jcf-parse.c (get_constant): An unknown constant type should not
be an internal error, but a fatal one. Make it so.
* jcf-dump.c (HANDLE_BOOTSTRAP_METHODS_ATTRIBUTE): New.
(HANDLE_END_BOOTSTRAP_METHODS): New.
(print_constant): Handlers for MethodHandle, MethodType, and
InvokeDynamic.
Richard Guenther [Wed, 11 Apr 2012 08:12:33 +0000 (08:12 +0000)]
re PR tree-optimization/52912 (ICE: verify_ssa failed)
2012-04-11 Richard Guenther <rguenther@suse.de>
PR tree-optimization/52912
* tree-ssa-threadupdate.c (thread_block): Tell the cfg
manipulation code we are threading through a loop header
to an exit destination.
Michael Matz [Tue, 10 Apr 2012 16:09:03 +0000 (16:09 +0000)]
tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to grouped_stores.
* tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to
grouped_stores.
(LOOP_VINFO_STRIDED_STORES): Rename to LOOP_VINFO_GROUPED_STORES.
(struce _bb_vec_info.strided_stores): Rename to grouped_stores.
(BB_VINFO_STRIDED_STORES): Rename to BB_VINFO_GROUPED_STORES.
(STMT_VINFO_STRIDED_ACCESS): Rename to STMT_VINFO_GROUPED_ACCESS.
(vect_strided_store_supported): Rename to vect_grouped_store_supported.
(vect_strided_load_supported): Rename to vect_grouped_load_supported.
(vect_transform_strided_load): Rename to vect_transform_grouped_load.
(vect_record_strided_load_vectors): Rename to
vect_record_grouped_load_vectors.
* tree-vect-data-refs.c (vect_update_misalignment_for_peel):
Rename use of above macros.
(vect_verify_datarefs_alignment): Ditto.
(vector_alignment_reachable_p): Ditto.
(vect_peeling_hash_get_lowest_cost): Ditto.
(vect_enhance_data_refs_alignment): Ditto.
(vect_analyze_group_access): Ditto and rename stride to groupsize.
(vect_analyze_data_ref_access): Rename "strided" to "grouped".
(vect_strided_store_supported): Rename to vect_grouped_store_supported.
(vect_strided_load_supported): Rename to vect_grouped_load_supported.
(vect_transform_strided_load): Rename to vect_transform_grouped_load.
(vect_record_strided_load_vectors): Rename to
vect_record_grouped_load_vectors.
* tree-vect-loop.c (new_loop_vec_info): Rename use of above macros.
(destroy_loop_vec_info): Ditto.
(vect_transform_loop): Ditto and rename strided_store to grouped_store.
* tree-vect-slp.c (vect_build_slp_tree): Rename use of above macros.
(vect_analyze_slp): Ditto.
(new_bb_vec_info): Ditto.
(destroy_bb_vec_info): Ditto.
(vect_schedule_slp_instance): Ditto and rename strided_store to
grouped_store.
* tree-vect-stmts.c (vect_cost_strided_group_size): Rename to
vect_cost_group_size.
(vect_model_store_cost): Rename use of above macros and call
to vect_cost_strided_group_size.
(vect_model_load_cost): Ditto.
(vectorizable_store): Ditto, rename strided_store to grouped_store
and calls to renamed tree-vectorizer.h functions.
(vectorizable_load): Ditto.
(vect_transform_stmt): Rename use of above macros and strided_store
to grouped_store.
Jan Hubicka [Tue, 10 Apr 2012 16:03:36 +0000 (18:03 +0200)]
cgraph.h: Remove misledaing comment on ipa-ref.h.
* cgraph.h: Remove misledaing comment on ipa-ref.h.
(symtab_type): New enum.
(symtab_node): New structure.
(cgraph_node, varpool_node): Add symbol base type.
(cgraph, varpool): New accestor functions.
* cgraph.c (cgraph_create_node_1): Set symbol type.
* varpool.c (varpool_node): Set symbol type.
re PR tree-optimization/52870 (ICE during SLP pattern matching)
gcc/
PR tree-optimization/52870
* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
presumed pattern statement is within the same loop or basic block.
gcc/testsuite/
PR tree-optimization/52870
* gcc.dg/vect/pr52870.c: New test.
Richard Guenther [Tue, 10 Apr 2012 08:19:21 +0000 (08:19 +0000)]
tree-pass.h (tree_lowering_passes): Remove.
2012-04-10 Richard Guenther <rguenther@suse.de>
* tree-pass.h (tree_lowering_passes): Remove.
* tree-optimize.c (tree_lowering_passes): Remove.
* cgraph.c (cgraph_add_new_function): Inline relevant parts
of tree_lowering_passes, avoid redundant call of early local
passes.
* cgraphunit.c (cgraph_lower_function): Fold into ...
(cgraph_analyze_function): ... its single caller. Inline
relevant parts of tree_lowering_passes.
Jan Hubicka [Mon, 9 Apr 2012 23:39:11 +0000 (01:39 +0200)]
re PR lto/52722 (ICE in lto_output_varpool_node)
PR lto/52722
PR lto/51765
PR lto/52634
* lto-cgraph.c (compute_ltrans_boundary): When alias is in the boundary,
add its target too.
* lto.c (add_references_to_partition): Add also aliased nodes.
(add_cgraph_node_to_partition,
add_varpool_node_to_partition): Work on nodes, not functions/variables;
when adding alias, add also the aliased object.
* gcc.dg/lto/pr52634_1.c: New testcase.
* gcc.dg/lto/pr52634_0.c: New testcase.
gcc/
* doc/invoke.texi: Clean up Texinfo markup throughout the file.
Use @option markup on command-line options. Use @samp markup on
literal keywords to options. Use @code markup on code fragments.
Use other markup in preference to quotation marks in the text.
Add markup to some passages without any.