1. 09 May, 2011 16 commits
    • Implement final/override for member functions. · b5da71d4
      gcc/
      	* tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST): Convert to enum.
      	(TYPE_QUAL_VOLATILE, TYPE_QUAL_RESTRICT): Likewise.
      gcc/cp/
      	* class.c (check_for_override): Check for DECL_OVERRIDE_P.
      	* cp-tree.h (DECL_OVERRIDE_P, DECL_FINAL_P): New.
      	(cp_virt_specifiers, enum virt_specifier): New.
      	* decl.c (set_virt_specifiers): New.
      	(grokdeclarator): Use them. Diagnose virt-specifiers on non-fields.
      	* parser.c (make_call_declarator): add virt-specifiers parameter.
      	(cp_parser_lambda_declarator_opt): Adjust.
      	(cp_parser_direct_declarator): Likewise.
      	(cp_parser_virt_specifier_seq_opt): New.
      	* search.c (check_final_overrider): Diagnose attempts to override
      	a final member function.
      
      From-SVN: r173581
      Ville Voutilainen committed
    • predicates.md (const_pow2_1_to_2_operand): Remove. · 51e7f377
      2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
      
      	* config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
      	(const_pow2_1_to_8_operand): Ditto.
      	(const_pow2_1_to_128_operand): Ditto.
      	(const_pow2_1_to_32768_operand): Ditto.
      	* config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
      	const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
      	in insn constraint to check integer value of operand 3.
      	* config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
      
      	(PINSR_MODE): New mode iterator.
      	(sse2p4_1): New mode attribute.
      	(<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
      	sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
      	iterator.  Use const_int_operand instead of
      	const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
      	exact_log2 in insn constraint to check integer value of operand 3.
      
      2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
      
      	* config/i386/sse.md (blendbits): Remove mode attribute.
      	(<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
      	instead of const_0_to_<blendbits>_operand for operand 3 predicate.
      	Check integer value of operand 3 in insn constraint.
      
      From-SVN: r173580
      Uros Bizjak committed
    • lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p for diagnostics. · 0ca8de87
      2011-05-09  Richard Guenther  <rguenther@suse.de>
      
      	* lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
      	for diagnostics.
      	(lto_symtab_merge): Likewise.  Do not register types here.
      	(lto_symtab_merge_decls_2): Likewise.
      	(lto_symtab_merge_decls_1): Likewise.
      	* gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
      	* gimple.c (enum gtc_mode): Declare.
      	(gimple_types_compatible_p): Make static.
      
      From-SVN: r173575
      Richard Guenther committed
    • re PR libstdc++/48933 (Infinite recursion in tr1/cmath functions with complex parameters) · b04fa738
      2011-05-09  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR libstdc++/48933
      	* include/c_global/cmath (acosh, asinh, atanh, cbrt, copysign,
      	erf, erfc, exp2, expm1, fdim, fma, fmax, hypot, ilogb, lgamma,
      	llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
      	nextafter, nexttoward, remainder, remquo, rint, round, scalbln,
      	scalbn, tgamma, trunc): Use __enable_if on the return type.
      	* include/tr1/cmath: Likewise.
      	* testsuite/26_numerics/headers/cmath/overloads_c++0x_neg.cc: New.
      	* testsuite/tr1/8_c_compatibility/cmath/overloads_neg.cc: Likewise.
      
      From-SVN: r173574
      Paolo Carlini committed
    • s390.md (TD/TF mem to reg move splitter): Make the temporary register to match Pmode. · a9e6994a
      2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
      
      	* config/s390/s390.md (TD/TF mem to reg move splitter): Make the
      	temporary register to match Pmode.
      
      From-SVN: r173572
      Andreas Krebbel committed
    • re PR c++/48574 (ICE) · bae14a37
      Fix PR c++/48574
      
      gcc/cp/
      
      	PR c++/48574
      	* class.c (fixed_type_or_null): Use type_dependent_p_push to test
      	if the instance has a dependent initializer.
      
      gcc/testsuite/
      
      	PR c++/48574
      	* g++.dg/template/dependent-expr8.C: New test case.
      
      From-SVN: r173570
      Dodji Seketeli committed
    • sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1 and *vec_concatv4si_1_avx. · fb55d62e
      	* config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
      	and *vec_concatv4si_1_avx.
      
      From-SVN: r173569
      Uros Bizjak committed
    • re PR rtl-optimization/48927 (Issues with "enable" attribute and IRA register preferences) · eb1485a6
      	PR rtl-optimization/48927
      	* ira-conflicts.c (commutative_constraint_p): Use
      	recog_data.alternative_enabled_p to disable alternatives where
      	"enabled" attribute is false.
      	(get_dup_num): Ditto.
      	* ira-lives.c (single_reg_class): Ditto.
      	(ira_implicitly_set_insn_hard_regs): Ditto.
      
      From-SVN: r173568
      Uros Bizjak committed
    • var-tracking.c (find_mem_expr_in_1pdv): Fix thinko. · c46d001a
      	* var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
      	(dataflow_set_preserve_mem_locs): Likewise.
      
      From-SVN: r173565
      Eric Botcazou committed
    • Don't translate syntax example. · 6d9e7c41
      From-SVN: r173564
      Philipp Thomas committed
    • re PR target/48899 (enum conversion initializing global_options_init.x_iq2000_tune) · 61d6def5
      	PR target/48899
      	* config/iq2000/iq2000.opt (iq2000_tune): Initialise to
      	PROCESSOR_DEFAULT.
      
      From-SVN: r173562
      Nick Clifton committed
    • gcc_update (gcc/config/mips/mips-tables.opt): New dependencies. · d371df6f
      contrib:
      	* gcc_update (gcc/config/mips/mips-tables.opt): New dependencies.
      
      gcc:
      	* config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
      	* config/mips/mips-tables.opt: New file (generated).
      	* config.gcc (mips*-*-*): Add mips/mips-tables.opt to
      	extra_options.
      	* config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
      	MIPS_ARCH_OPTION_NATIVE): Define.
      	* config/mips/mips.c (mips_cpu_info_table): Move contents to
      	mips-cpus.def.
      	(mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
      	mips_parse_cpu): Remove.
      	(mips_cpu_info_from_opt, mips_default_arch): New.
      	(mips_handle_option): Don't assert that global structures are in
      	use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
      	(mips_option_override): Use new variables and functions to set
      	state of these options.  Use strcmp to check for individual CPU
      	names.
      	* config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
      	definition.
      	* config/mips/mips.opt (march=): Use ToLower and Enum.
      	(mips): Use ToLower, Enum and Var.
      	(mtune=): Use ToLower and Enum.
      	* config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
      
      From-SVN: r173561
      Joseph Myers committed
    • gimple.c (type_pair_hash, [...]): Arrange type pairs to be UID ordered. · 4fc07af9
      	* gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
      	Arrange type pairs to be UID ordered.
      	(gimple_lookup_type_leader): Make inline.
      
      From-SVN: r173560
      Jan Hubicka committed
    • re PR target/48897 (mn10300.c:extract_bundle’: error: variable ‘s’ set but not used) · 2cf320a8
      	PR target/48897
      	* config/mn10300/mn10300.c (extract_bundle): Remove spurious local
      	variable 's'.
      
      From-SVN: r173559
      Nick Clifton committed
    • configure.ac: Propagate LDFLAGS_FOR_TARGET. · 6f57bdf6
      2011-05-08  Doug Kwan  <dougkwan@google.com>
      
      	* configure.ac: Propagate LDFLAGS_FOR_TARGET.
      	* configure: Regenerated.
      	* Makefile.tpl (LDFLAGS_FOR_TARGET): Use LDFLAGS_FOR_TARGET
      	value from configure.
      	* Makefile.in: Regenerated.
      
      From-SVN: r173558
      Doug Kwan committed
    • Daily bump. · 40a71233
      From-SVN: r173557
      GCC Administrator committed
  2. 08 May, 2011 8 commits
  3. 07 May, 2011 11 commits
    • invoke.texi (-fuse-linker-plugin): Improve grammar. · 7c74e556
      2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
      
      	* doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
      
      From-SVN: r173538
      Jonathan Wakely committed
    • ipa-inline-transform.c (inline_call): Account when program size decreases. · b4c0a884
      
      	* ipa-inline-transform.c (inline_call): Account when program size decreases.
      	* ipa-inline.c (relative_time_benefit): New function.
      	(edge_badness): Reorganize to be power 2 based; fix
      	thinko when computing badness for negative growth; update
      	comments to match reality; better dumps.
      
      From-SVN: r173537
      Jan Hubicka committed
    • langhooks.h (lang_hooks_for_types): Change global_bindings_p's return type to… · c99c0026
      langhooks.h (lang_hooks_for_types): Change global_bindings_p's return type to bool and adjust comment.
      
      2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
      	type to bool and adjust comment.
      	* fold-const.c (fold_range_test): Adjust call to global_bindings_p.
      	(fold_mathfn_compare): Remove calls to global_bindings_p.
      	(fold_inf_compare): Likewise.
      	* stor-layout.c (variable_size): Adjust call to global_bindings_p.
      	* c-tree.h (global_bindings_p): Adjust prototype.
      	* c-decl.c (global_bindings_p): Return bool and simplify.
      ada/
      	* gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
      	* gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
      cp/
      	* name-lookup.h (global_bindings_p): Adjust prototype.
      	* name-lookup.c (global_bindings_p): Return bool.
      fortran/
      	* f95-lang.c (global_bindings_p): Return bool and simplify.
      go/
      	* go-lang.c (global_bindings_p): Return bool and simplify.
      java/
      	* java-tree.h (global_bindings_p): Adjust prototype.
      	* decl.c (global_bindings_p): Return bool.
      lto/
      	* lto-lang.c (global_bindings_p): Return bool.
      
      From-SVN: r173535
      Eric Botcazou committed
    • re PR tree-optimization/48837 (Wrong optimization of recursive function calls) · 1400c8e5
      	PR tree-optimization/48837
      	* tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
      	when accumulator transformation is performed.
      
      	* gcc.dg/pr48837.c: New testcase.
      
      From-SVN: r173534
      Zdenek Dvorak committed
    • i386.h (ix86_tune_indices): Add X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL. · 5d0878e7
      
      	* i386.h (ix86_tune_indices): Add X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
      	(TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macor.
      	* i386.c (initial_ix86_tune_features): Add X86_SOFTARE_PREFETCHING_BENEFICIAL.
      	(software_prefetching_beneficial_p): Remove predicate.
      	(ix86_option_override_internal): Use new macro.
      
      From-SVN: r173533
      Jan Hubicka committed
    • macro.h (_GLIBCXX_DEBUG_VERIFY_AT): New. · f5886803
      2011-05-07  François Dumont  <francois.cppdevs@free.fr>
      
      	* include/debug/macro.h (_GLIBCXX_DEBUG_VERIFY_AT): New.
      	(_GLICXX_DEBUG_VERIFY): Use latter.
      	* include/ext/pb_ds/detail/resize_policy/
      	hash_load_check_resize_trigger_imp.hpp: Emit assertion on the line
      	containing the original assert call.
      	* include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp,
      	find_fn_imps.hpp, insert_fn_imps.hpp, binomial_heap_base_.hpp,
      	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
      	split_join_fn_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/cc_hash_table_map_/
      	erase_store_hash_fn_imps.hpp, insert_no_store_hash_fn_imps.hpp,
      	find_fn_imps.hpp, insert_store_hash_fn_imps.hpp, debug_fn_imps.hpp,
      	debug_no_store_hash_fn_imps.hpp, cc_ht_map_.hpp, resize_fn_imps.hpp,
      	constructor_destructor_fn_imps.hpp, debug_store_hash_fn_imps.hpp,
      	erase_no_store_hash_fn_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp,
      	insert_join_fn_imps.hpp, pat_trie_/head.hpp, debug_fn_imps.hpp,
      	constructors_destructor_fn_imps.hpp, pat_trie_.hpp, split_fn_imps.hpp,
      	leaf.hpp, erase_fn_imps.hpp, node_base.hpp, internal_node.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp,
      	r_erase_fn_imps.hpp, constructors_destructor_fn_imps.hpp,
      	debug_fn_imps.hpp, rotate_fn_imps.hpp, erase_fn_imps.hpp,
      	bin_search_tree_.hpp, insert_fn_imps.hpp, split_join_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/gp_hash_table_map_/
      	erase_store_hash_fn_imps.hpp, insert_no_store_hash_fn_imps.hpp,
      	find_fn_imps.hpp, gp_ht_map_.hpp, insert_store_hash_fn_imps.hpp,
      	debug_fn_imps.hpp, erase_fn_imps.hpp, debug_no_store_hash_fn_imps.hpp,
      	resize_fn_imps.hpp, constructor_destructor_fn_imps.hpp,
      	debug_store_hash_fn_imps.hpp, erase_no_store_hash_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp,
      	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
      	erase_fn_imps.hpp, insert_fn_imps.hpp, binary_heap_.hpp,
      	resize_policy.hpp, split_join_fn_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp,
      	find_fn_imps.hpp, insert_fn_imps.hpp,
      	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
      	pairing_heap_.hpp, split_join_fn_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/binomial_heap_/
      	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
      	binomial_heap_.hpp: Likewise.
      	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/
      	erase_fn_imps.hpp, left_child_next_sibling_heap_.hpp,
      	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp,
      	find_fn_imps.hpp, thin_heap_.hpp, insert_fn_imps.hpp,
      	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
      	split_join_fn_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp,
      	ov_tree_map_.hpp, constructors_destructor_fn_imps.hpp,
      	debug_fn_imps.hpp, split_join_fn_imps.hpp, info_fn_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/debug_map_base.hpp: Likewise.
      	* include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp,
      	find_fn_imps.hpp, insert_fn_imps.hpp,
      	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
      	splay_fn_imps.hpp, split_join_fn_imps.hpp, splay_tree_.hpp: Likewise.
      	* include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp,
      	find_fn_imps.hpp, lu_map_.hpp, constructor_destructor_fn_imps.hpp,
      	insert_fn_imps.hpp, debug_fn_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp,
      	rc_binomial_heap_.hpp, insert_fn_imps.hpp,
      	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp, rc.hpp,
      	split_join_fn_imps.hpp: Likewise.
      	* include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp,
      	insert_fn_imps.hpp, constructors_destructor_fn_imps.hpp,
      	debug_fn_imps.hpp, rb_tree_.hpp, split_join_fn_imps.hpp: Likewise.
      	* include/ext/pb_ds/hash_policy.hpp: Likewise.
      
      From-SVN: r173529
      François Dumont committed
    • re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays]) · 6f4d39bb
      2011-05-07  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/18918
              PR fortran/48919
              * trans.h: Move gfc_init_coarray_decl prototype ...
              * gfortran.h: ... to here.
              * parse.c (translate_all_program_units): Call
              * gfc_init_coarray_decl.
              (gfc_parse_file): Update translate_all_program_units call.
              * trans-decl.c (gfc_init_coarray_decl): Fix variable
              * declaration,
              new argument whether DECL_EXTERNAL should be used.
              (create_main_function): Update gfc_init_coarray_decl call.
              * trans-intrinsic.c (trans_this_image, trans_image_index,
              conv_intrinsic_cobound): Ditto.
      
      From-SVN: r173528
      Tobias Burnus committed
    • Daily bump. · 9142588a
      From-SVN: r173525
      GCC Administrator committed
    • Use backend types for all type conversions. · 5b735706
      From-SVN: r173520
      Ian Lance Taylor committed
  4. 06 May, 2011 5 commits
    • cgraph.c (cgraph_add_thunk): Create real function node instead of alias node... · c47d0034
      
      	* cgraph.c (cgraph_add_thunk): Create real function node instead
      	of alias node; finalize it and mark needed/reachale; arrange visibility
      	to be right and add it into the corresponding same comdat group list.
      	(dump_cgraph_node): Dump thunks.
      	* cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
      	cgraph_function_with_gimple_body_p, cgraph_first_function_with_gimple_body,
      	cgraph_next_function_with_gimple_body): New functions.
      	(FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
      	New macros.
      	* ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
      	(ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
      	* cgraphunit.c (cgraph_finalize_function): Only look into possible
      	devirtualization when optimizing.
      	(verify_cgraph_node): Verify thunks.
      	(cgraph_analyze_function): Analyze thunks.
      	(cgraph_mark_functions_to_output): Output thunks only in combination
      	with function they are assigned to.
      	(assemble_thunk): Turn thunk into non-thunk; don't try to turn
      	alias into normal node.
      	(assemble_thunks): New functoin.
      	(cgraph_expand_function): Use it.
      	* lto-cgraph.c (lto_output_node): Stream thunks.
      	(input_overwrite_node): Stream in thunks.
      	* ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
      	* lto-streamer-out.c (lto_output): Do not try to output thunk's body.
      	* ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
      	* ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
      	(inline_analyze_function): Do not care about thunk jump functions.
      	(inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
      	* ipa-prop.c (ipa_prop_write_jump_functions): Use cgraph_function_with_gimple_body_p.
      	* passes.c (do_per_function_toporder): Use cgraph_function_with_gimple_body_p.
      	(execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
      	(ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
      	(function_called_by_processed_nodes_p): Likewise.
      	* lto.c (lto_materialize_function): Use cgraph_function_with_gimple_body_p.
      	(add_cgraph_node_to_partition): Do not re-add items to partition; handle thunks.
      	(add_varpool_node_to_partition): Do not re-add items to partition.
      
      From-SVN: r173517
      Jan Hubicka committed
    • decl.c (stabilize_save_expr_r): Set *walk_subtrees as appropriate. · e68dde1f
      	* decl.c (stabilize_save_expr_r): Set *walk_subtrees as
      	appropriate.
      
      From-SVN: r173512
      Jason Merrill committed
    • re PR c++/48909 ([C++0x] ICE in cxx_eval_conditional_expression, at cp/semantics.c:6213) · 9e33e321
      	PR c++/48909
      	* semantics.c (cxx_eval_conditional_expression): Check
      	integer_zerop/onep instead.
      
      From-SVN: r173511
      Jason Merrill committed
    • re PR c++/48911 ([C++0x] Error for valid array subscript) · c80e3e02
      	PR c++/48911
      	* semantics.c (cxx_eval_array_reference): Handle implicit
      	initializers.
      
      From-SVN: r173510
      Jason Merrill committed
    • rs6000.opt (rs6000_ieeequad, [...]): Remove TargetVariable entries. · d8f426ec
      	* config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
      	rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
      	entries.
      	(mabi=): Replace with separate entries for mabi=altivec,
      	mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
      	mabi=ieeelongdouble and mabi=ibmlongdouble.
      	* config/rs6000/rs6000.c (rs6000_option_override_internal): Move
      	check for -mabi=spe without SPE ABI support here.
      	(rs6000_handle_option): Replace OPT_mabi_ handling with
      	OPT_mabi_altivec and OPT_mabi_spe handling.
      
      From-SVN: r173509
      Joseph Myers committed