Commit Graph

101145 Commits

Author SHA1 Message Date
Paolo Carlini 6769da2ed7 2010-06-25 Paolo Carlini <paolo.carlini@oracle.com>
Reformat last ChangeLog entry.

From-SVN: r161419
2010-06-25 23:04:11 +00:00
Jerry DeLisle 754172c709 re PR testsuite/38946 (gcc trunk 143562 - Testsuite - gfortran failing tests that worked previously)
2010-06-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR testsuite/38946
	* gfortran.dg/array_constructor_23.f: Update test to allow for small
	error in comparing reals.

From-SVN: r161416
2010-06-25 21:32:37 +00:00
Alexandre Oliva e0a80069ba re PR debug/44610 (VTA produces wrong variable location information)
PR debug/44610
* simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
address if the offset is unknown.

From-SVN: r161413
2010-06-25 21:11:32 +00:00
Tobias Burnus 01349049e8 intrinsic.h (gfc_check_selected_real_kind, [...]): Update prototypes.
2010-06-25  Tobias Burnus  <burnus@net-b.de>

        * intrinsic.h (gfc_check_selected_real_kind,
        gfc_simplify_selected_real_kind): Update prototypes.
        * intrinsic.c (add_functions): Add radix support to
        selected_real_kind.
        * check.c (gfc_check_selected_real_kind): Ditto.
        * simplify.c (gfc_simplify_selected_real_kind): Ditto.
        * trans-decl.c (gfc_build_intrinsic_function_decls):
        Change call from selected_real_kind to selected_real_kind2008.
        * intrinsic.texi (SELECTED_REAL_KIND): Update for radix.
        (PRECISION, RANGE, RADIX): Add cross @refs.

2010-06-25  Tobias Burnus  <burnus@net-b.de>

        * intrinsics/selected_real_kind.f90
        (_gfortran_selected_real_kind2008): Add function.
        (_gfortran_selected_real_kind): Stub which calls
        _gfortran_selected_real_kind2008.
        * gfortran.map (GFORTRAN_1.4): Add
        _gfortran_selected_real_kind2008.
        * mk-srk-inc.sh: Save also RADIX.

2010-06-25  Tobias Burnus  <burnus@net-b.de>

        * selected_real_kind_2.f90: New.
        * selected_real_kind_3.f90: New.

From-SVN: r161411
2010-06-25 21:40:37 +02:00
Stephen M. Webb 849cab7b75 Initial regex implementation.
2010-06-25  Stephen M. Webb  <stephen.webb@bregmasoft.ca>

  Initial regex implementation.

  * include/std/regex: Modified to use bits/regex_* headers.
  * include/bits/regex_compiler.h: New file.
  * include/bits/regex_constants.h: New file.
  * include/bits/regex_cursor.h: New file.
  * include/bits/regex_error.h: New file.
  * include/bits/regex_grep_matcher.h: New file.
  * include/bits/regex_grep_matcher.tcc: New file.
  * include/bits/regex.h: New file.
  * include/bits/regex_nfa.h: New file.
  * include/bits/regex_nfa.tcc: New file.
  * include/Makefile.am: Added above new files.
  * include/Makefile.in: Regenerated.
  * testsuite/28_regex/02_definitions: New file.
  * testsuite/28_regex/03_requirements: New file.
  * testsuite/28_regex/03_requirements/typedefs.cc: New file.
  * testsuite/28_regex/04_header: New file.
  * testsuite/28_regex/04_header/regex: New file.
  * testsuite/28_regex/04_header/regex/std_c++0x_neg.cc: New file.
  * testsuite/28_regex/05_constants: New file.
  * testsuite/28_regex/05_constants/error_type.cc: New file.
  * testsuite/28_regex/05_constants/match_flag_type.cc: New file.
  * testsuite/28_regex/05_constants/syntax_option_type.cc: New file.
  * testsuite/28_regex/06_exception_type: New file.
  * testsuite/28_regex/06_exception_type/regex_error.cc: New file.
  * testsuite/28_regex/07_traits: New file.
  * testsuite/28_regex/07_traits/char: New file.
  * testsuite/28_regex/07_traits/char/ctor.cc: New file.
  * testsuite/28_regex/07_traits/char/isctype.cc: New file.
  * testsuite/28_regex/07_traits/char/length.cc: New file.
  * testsuite/28_regex/07_traits/char/lookup_classname.cc: New file.
  * testsuite/28_regex/07_traits/char/lookup_collatename.cc: New file.
  * testsuite/28_regex/07_traits/char/transform.cc: New file.
  * testsuite/28_regex/07_traits/char/transform_primary.cc: New file.
  * testsuite/28_regex/07_traits/char/translate.cc: New file.
  * testsuite/28_regex/07_traits/char/translate_nocase.cc: New file.
  * testsuite/28_regex/07_traits/char/value.cc: New file.
  * testsuite/28_regex/07_traits/wchar_t: New file.
  * testsuite/28_regex/07_traits/wchar_t/ctor.cc: New file.
  * testsuite/28_regex/07_traits/wchar_t/length.cc: New file.
  * testsuite/28_regex/07_traits/wchar_t/transform.cc: New file.
  * testsuite/28_regex/07_traits/wchar_t/translate.cc: New file.
  * testsuite/28_regex/07_traits/wchar_t/translate_nocase.cc: New file.
  * testsuite/28_regex/07_traits/wchar_t/value.cc: New file.
  * testsuite/28_regex/08_basic_regex: New file.
  * testsuite/28_regex/08_basic_regex/assign: New file.
  * testsuite/28_regex/08_basic_regex/assign/char: New file.
  * testsuite/28_regex/08_basic_regex/assign/char/cstring.cc: New file.
  * testsuite/28_regex/08_basic_regex/assign/char/cstring_op.cc: New file.
  * testsuite/28_regex/08_basic_regex/assign/char/moveable.cc: New file.
  * testsuite/28_regex/08_basic_regex/assign/char/pstring.cc: New file.
  * testsuite/28_regex/08_basic_regex/assign/char/range.cc: New file.
  * testsuite/28_regex/08_basic_regex/assign/char/string.cc: New file.
  * testsuite/28_regex/08_basic_regex/assign/char/string_op.cc: New file.
  * testsuite/28_regex/08_basic_regex/assign/wchar_t: New file.
  * testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring.cc: New file.
  * testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring_op.cc: New file.
  * testsuite/28_regex/08_basic_regex/assign/wchar_t/pstring.cc: New file.
  * testsuite/28_regex/08_basic_regex/assign/wchar_t/range.cc: New file.
  * testsuite/28_regex/08_basic_regex/assign/wchar_t/string.cc: New file.
  * testsuite/28_regex/08_basic_regex/assign/wchar_t/string_op.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors: New file.
  * testsuite/28_regex/08_basic_regex/ctors/basic: New file.
  * testsuite/28_regex/08_basic_regex/ctors/basic/cstring.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/basic/pstring_char.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/basic/pstring_wchar_t.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/basic/string_range_01_02_03.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/char: New file.
  * testsuite/28_regex/08_basic_regex/ctors/char/cstring_awk.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/char/cstring.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/char/cstring_ecma.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/char/cstring_egrep.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/char/cstring_grep.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/char/default.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/char/range.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/copy_char.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/extended: New file.
  * testsuite/28_regex/08_basic_regex/ctors/extended/cstring.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/extended/string_range_01_02_03.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/move_char.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/string_char.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/string_wchar_t.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/wchar_t: New file.
  * testsuite/28_regex/08_basic_regex/ctors/wchar_t/cstring.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/wchar_t/default.cc: New file.
  * testsuite/28_regex/08_basic_regex/ctors/wchar_t/range.cc: New file.
  * testsuite/28_regex/08_basic_regex/regex.cc: New file.
  * testsuite/28_regex/09_sub_match: New file.
  * testsuite/28_regex/09_sub_match/cast_char.cc: New file.
  * testsuite/28_regex/09_sub_match/cast_wchar_t.cc: New file.
  * testsuite/28_regex/09_sub_match/length.cc: New file.
  * testsuite/28_regex/09_sub_match/typedefs.cc: New file.
  * testsuite/28_regex/10_match_results: New file.
  * testsuite/28_regex/10_match_results/ctors: New file.
  * testsuite/28_regex/10_match_results/ctors/char: New file.
  * testsuite/28_regex/10_match_results/ctors/char/default.cc: New file.
  * testsuite/28_regex/10_match_results/ctors/wchar_t: New file.
  * testsuite/28_regex/10_match_results/ctors/wchar_t/default.cc: New file.
  * testsuite/28_regex/10_match_results/typedefs.cc: New file.
  * testsuite/28_regex/11_algorithms: New file.
  * testsuite/28_regex/11_algorithms/02_match: New file.
  * testsuite/28_regex/11_algorithms/02_match/basic: New file.
  * testsuite/28_regex/11_algorithms/02_match/basic/string_01.cc: New file.
  * testsuite/28_regex/11_algorithms/02_match/basic/string_range_00_03.cc: New file.
  * testsuite/28_regex/11_algorithms/02_match/basic/string_range_01_03.cc: New file.
  * testsuite/28_regex/11_algorithms/02_match/basic/string_range_02_03.cc: New file.
  * testsuite/28_regex/11_algorithms/02_match/extended: New file.
  * testsuite/28_regex/11_algorithms/02_match/extended/cstring_plus.cc: New file.
  * testsuite/28_regex/11_algorithms/02_match/extended/cstring_questionmark.cc: New file.
  * testsuite/28_regex/11_algorithms/02_match/extended/string_any.cc: New file.
  * testsuite/28_regex/11_algorithms/02_match/extended/string_range_00_03.cc: New file.
  * testsuite/28_regex/11_algorithms/02_match/extended/string_range_01_03.cc: New file.
  * testsuite/28_regex/11_algorithms/02_match/extended/string_range_02_03.cc: New file.
  * testsuite/28_regex/12_iterators: New file.
  * testsuite/28_regex/12_iterators/regex_iterator: New file.
  * testsuite/28_regex/12_iterators/regex_iterator/ctors: New file.
  * testsuite/28_regex/12_iterators/regex_iterator/ctors/char: New file.
  * testsuite/28_regex/12_iterators/regex_iterator/ctors/char/default.cc: New file.
  * testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t: New file.
  * testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t/default.cc: New file.
  * testsuite/28_regex/12_iterators/regex_iterator/typedefs.cc: New file.
  * testsuite/28_regex/12_iterators/regex_token_iterator: New file.
  * testsuite/28_regex/12_iterators/regex_token_iterator/ctors: New file.
  * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char: New file.
  * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char/default.cc: New file.
  * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t: New file.
  * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t/default.cc: New file.
  * testsuite/28_regex/12_iterators/regex_token_iterator/typedefs.cc: New file.
  * testsuite/28_regex/13_ecmascript: New file.

From-SVN: r161410
2010-06-25 19:27:16 +00:00
Tobias Burnus 58fc89f6b9 decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
2010-06-25  Tobias Burnus  <burnus@net-b.de>

        * decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
        * gfortran.texi (_gfortran_set_options): Update for
        GFC_STD_F2008_OBS addition.
        * libgfortran.h: Add GFC_STD_F2008_OBS.
        * options.c (set_default_std_flags, gfc_handle_option): Handle
        GFC_STD_F2008_OBS.
        io.c (check_format): Fix allow_std check.

2010-06-25  Tobias Burnus  <burnus@net-b.de>

        * runtime/compile_options.c (init_compile_options): Update
        compile_options.allow_std for GFC_STD_F2008_OBS.
        * io/transfer.c (formatted_transfer_scalar_read,
        formatted_transfer_scalar_write): Fix allow_std check.
        * io/list_read.c (nml_parse_qualifier): Ditto.

2010-06-25  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/entry_19.f90: New.

From-SVN: r161409
2010-06-25 21:17:21 +02:00
Tobias Burnus 272001a244 decl.c (gfc_match_entry): Allow END besides END SUBROUTINE/END FUNCTION for contained procedures.
2010-06-25  Tobias Burnus  <burnus@net-b.de>

        * decl.c (gfc_match_entry): Allow END besides
        END SUBROUTINE/END FUNCTION for contained procedures.

2010-06-25  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/end_subroutine_1.f90: New.
        * gfortran.dg/end_subroutine_2.f90: New.
        * gfortran.dg/interface_proc_end.f90: Update.

From-SVN: r161406
2010-06-25 21:02:47 +02:00
Tobias Burnus c6c73c51ca parse.c (next_free, next_fixed): Allow ";" as first character.
2010-06-25  Tobias Burnus  <burnus@net-b.de>

        * parse.c (next_free, next_fixed): Allow ";" as first character.

2010-06-25  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/semicolon_fixed.f: Update.
        * gfortran.dg/semicolon_fixed_2.f: New.
        * gfortran.dg/semicolon_free_2.f90: New.
        * gfortran.dg/semicolon_free.f90: Update.

From-SVN: r161405
2010-06-25 21:01:04 +02:00
Douglas B Rupp 8e7745dce2 dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
* dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
	* dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
	* config/ia64/ia64-protos.h (ia64_start_function): Declare.
	* config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
	to ia64_start_function. Invoke it.
	* config/ia64/ia64.c (ia64_start_function): Call new function
	dwarf2out_vms_debug_main_pointer.

From-SVN: r161402
2010-06-25 18:49:36 +00:00
Sebastian Pop 5c8b27d7da Do not insert statements computing the true predicate.
2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (insert_gimplified_predicates): Do not insert
	statements computing the true predicate.

From-SVN: r161398
2010-06-25 18:38:25 +00:00
Sebastian Pop 29caa68aa5 Use reset_bb_predicate whenever the predicate of a BB should be reset to true.
2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (init_bb_predicate): Initialize the predicate
	to boolean_true_node.
	(reset_bb_predicate): New.
	(predicate_bbs): Call reset_bb_predicate.

From-SVN: r161397
2010-06-25 18:38:14 +00:00
Sebastian Pop 0f741287d6 Call cleanup_tree_cfg after if-conversion.
2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (combine_blocks): Remove FIXME comment.
	(tree_if_conversion): Returns true when something has been changed.
	(main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
	changed something.

From-SVN: r161396
2010-06-25 18:38:04 +00:00
Sebastian Pop 53aa40a821 Add a debug counter for the tree-ssa level if-conversion.
2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
	* dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
	* tree-if-conv.c: Include dbgcnt.h.
	(tree_if_conversion): Use if_conversion_tree to count the number of
	if-convertible loops.

From-SVN: r161395
2010-06-25 18:37:50 +00:00
Jerry DeLisle ba8607beb2 re PR fortran/44448 (32-bit gfortran.dg/atan2_1.f90 fails on Solaris 1[01]/x86 at -O0)
2010-06-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/44448
	* gfortran.dg/atan2_1.f90: Add -ffloat-store.

From-SVN: r161392
2010-06-25 18:31:33 +00:00
Changpeng Fang 1fbb509aac Enable prefetching at -O3 for AMD cpus.
2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>

	* common.opt (fprefetch-loop-arrays): Re-define
	-fprefetch-loop-arrays as a tri-state option with the initial
	value of -1.
	* tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
	pass only when flag_prefetch_loop_arrays > 0.
	* toplev.c (process_options): Note that, with tri-states,
	flag_prefetch_loop_arrays>0 means prefetching is enabled.
	* config/i386/i386.c (override_options): Enable prefetching at -O3
	for a set of CPUs that sw prefetching is helpful.
	(software_prefetching_beneficial_p): New.  Return TRUE if software
	prefetching is beneficial for the given CPU.

From-SVN: r161391
2010-06-25 18:25:00 +00:00
Paolo Carlini c14420e173 profiler_list_to_slist.h: Remove spurious semicolon; prefer pre-increment.
2010-06-25  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/profile/impl/profiler_list_to_slist.h: Remove spurious
	semicolon; prefer pre-increment.
	* include/profile/impl/profiler_container_size.h: Use everywhere
	qualified std::size_t.
	* include/profile/impl/profiler_trace.h (__trace_base<>::
	__collect_warnings): Tidy loop.
	* include/profile/impl/profiler_vector_to_list.h: Minor formatting
	changes.

From-SVN: r161390
2010-06-25 17:06:06 +00:00
H.J. Lu 97f4308616 Don't search DEBUG_INSNs for removable zero extends.
2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/44326
	* implicit-zee.c (find_removable_zero_extends): Replace
	INSN_P with NONDEBUG_INSN_P.

From-SVN: r161389
2010-06-25 08:33:21 -07:00
Martin Jambor 062c604fc5 ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
2010-06-25  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
	(struct ipa_node_params): Removed the modification_analysis_done flag.
	(ipa_is_param_modified): Removed.
	(ipa_analyze_node): Declare.
	(ipa_compute_jump_functions): Remove declaration.
	(ipa_count_arguments): Likewise.
	(ipa_detect_param_modifications): Likewise.
	(ipa_analyze_params_uses): Likewise.
	* ipa-prop.c (struct param_analysis_info): New type.
	(visit_store_addr_for_mod_analysis): Removed.
	(visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
	moved down in the file.
	(ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
	(ipa_count_arguments): Made static.
	(mark_modified): New function.
	(is_parm_modified_before_call): New function.
	(compute_pass_through_member_ptrs): New parameter parms_info, call
	is_parm_modified_before_call instead of ipa_is_param_modified.
	(ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
	it to compute_pass_through_member_ptrs.
	(ipa_compute_jump_functions): New parameter parms_info, pass it to
	ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
	on the callee if it is analyzed.  Made static.
	(ipa_analyze_indirect_call_uses): New parameter parms_info, call
	is_parm_modified_before_call instead of ipa_is_param_modified.
	(ipa_analyze_call_uses): New parameter parms_info, pass it to
	ipa_analyze_indirect_call_uses.
	(ipa_analyze_stmt_uses): New parameter parms_info, pass it to
	ipa_analyze_call_uses.
	(ipa_analyze_params_uses): New parameter parms_info, pass it to
	ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
	(ipa_analyze_node): New function.
	(ipa_print_node_params): Do not dump the modified flag.
	(ipa_write_node_info): Assert uses_analysis_done rather than streaming
	it.  Do not stream the modified parameter flag.
	(ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
	it.  Do not stream the modified parameter flag.
	* ipa-cp.c (ipcp_analyze_node): Removed.
	(ipcp_init_stage): Iterate only once over the nodes, analyze each one
	with only a call to ipa_analyze_node.
	* ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
	node with only a call to ipa_analyze_node.
	
	* testsuite/g++.dg/ipa/iinline-3.C: New test.
	* testsuite/gcc.dg/ipa/modif-1.c: Removed.

From-SVN: r161384
2010-06-25 16:27:47 +02:00
Manuel López-Ibáñez 212580ffb8 invoke.texi (-Wsuggest-attribute): Add item for noreturn.
2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.

From-SVN: r161383
2010-06-25 13:23:08 +00:00
Jan Hubicka 3e485f6245 tree-pass.h (pass_split_functions): Declare.
* tree-pass.h (pass_split_functions): Declare.
	* opts.c (decode_options): Enable function splitting at -O2
	* timevar.def (TV_IPA_FNSPLIT): New macro.
	* ipa-split.c: New file.
	* common.opt (-fpartial-inlining): New flag.
	* Makefile.in (ipa-split.o): New object file.
	* passes.c (init_optimization_passes): Add ipa-split.
	* params.def (max-inline-insns-auto): Reduce max-inline-insns-auto to 40.
	(partial-inlining-entry-probability): New parameters.
	* doc/invoke.texi (-fpartial-inlining): New.
	
	* testsuite/gcc.dg/tree-ssa/ipa-split.c

From-SVN: r161382
2010-06-25 13:13:31 +00:00
Manuel López-Ibáñez 129473197d re PR middle-end/44665 (typo in comment, incorrect/out-of-date comment)
2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>

       PR 44665
       * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
       * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
       (gimplify_expr): Likewise.

From-SVN: r161380
2010-06-25 13:09:28 +00:00
Martin Jambor 8aa29647d3 ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering statements instead of bailing out on them.
2010-06-25  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
	statements instead of bailing out on them.
	(ipa_analyze_indirect_call_uses): Do not require that loads from the
	parameter are in the same BB as the condition.  Update comments.

	* testsuite/g++.dg/ipa/iinline-2.C: New test.

From-SVN: r161377
2010-06-25 14:46:41 +02:00
Jakub Jelinek 7a2eceff8f re PR middle-end/43866 (wrong code with -fbounds-check -funswitch-loops)
PR middle-end/43866
	* tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
	true or always false, return NULL_TREE.
	(tree_unswitch_single_loop): Optimize conditions even when reaching
	max-unswitch-level parameter.  If num > 0, optimize first all conditions
	using entry checks, then do still reachable block discovery and consider
	only conditions in still reachable basic blocks in the loop.

	* gfortran.dg/pr43866.f90: New test.

From-SVN: r161375
2010-06-25 14:10:42 +02:00
Jakub Jelinek 8ba0479ece re PR tree-optimization/44539 (ICE: verify_ssa failed: type mismatch between an SSA_NAME and its symbol)
PR tree-optimization/44539
	* tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
	the call doesn't have LHS, but has VDEF.

	* gcc.dg/pr44539.c: New test.

From-SVN: r161374
2010-06-25 14:07:00 +02:00
Paolo Carlini 47d660fbcc profiler_list_to_slist.h: Remove spurious semicolon; prefer pre-increment.
2010-06-25  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/profile/impl/profiler_list_to_slist.h: Remove spurious
	semicolon; prefer pre-increment.
	* include/profile/impl/profiler_container_size.h: Use everywhere
	qualified std::size_t.
	* include/profile/impl/profiler_trace.h (__trace_base<>::
	__collect_warnings): Tidy loop.
	* include/profile/impl/profiler_vector_to_list.h: Minor formatting
	changes.

From-SVN: r161373
2010-06-25 11:37:54 +00:00
Joseph Myers d68411092e pa.h (MODIFY_TARGET_NAME): Remove.
* config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
	* doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
	* gcc.c (enum add_del, struct modify_target, modify_target):
	Remove.
	(process_command): Remove code conditional on MODIFY_TARGET_NAME.
	* system.h (MODIFY_TARGET_NAME): Poison.

From-SVN: r161372
2010-06-25 12:12:01 +01:00
Alan Modra 4c9d416e56 invoke.texi: Delete mcmodel=medium from powerpc options.
* doc/invoke.texi: Delete mcmodel=medium from powerpc options.
	* config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
	CMODEL_LARGE as default.
	* config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
	(offsettable_ok_by_alignment): Delete.
	(rs6000_emit_move): Remove mcmodel=medium optimization.

From-SVN: r161371
2010-06-25 20:12:41 +09:30
Paolo Carlini 0b032f38aa profiler_trace.h: Uglify it to __it, use everywhere std::size_t instead of size_t.
2010-06-25  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/profile/impl/profiler_trace.h: Uglify it to __it, use
	everywhere std::size_t instead of size_t.

From-SVN: r161368
2010-06-25 09:43:18 +00:00
Bernd Schmidt 0354c0c70b With large parts from Jim Wilson:
PR target/43902
	* tree-pretty-print.c (dump_generic_node, op_code_prio): Add
	WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
	* optabs.c (optab_for_tree_code): Likewise.
	(expand_widen_pattern_expr): Likewise.
	* tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
	out of execute_optimize_widening_mul.
	(convert_plusminus_to_widen): New function.
	(execute_optimize_widening_mul): Use the two new functions.
	* expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
	Remove code to generate widening multiply-accumulate.  Add support
	for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
	* gimple-pretty-print.c (dump_ternary_rhs): New function.
	(dump_gimple_assign): Call it when appropriate.
	* tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
	* cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
	(expand_gimple_stmt_1): Likewise.
	(expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
	WIDEN_MULT_MINUS_EXPR.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree-inline.c (estimate_operator_cost): Likewise.
	* gimple.c (extract_ops_from_tree_1): Renamed from
	extract_ops_from_tree.  Add new arg for a third operand; fill it.
	(gimple_build_assign_stat): Support operations with three operands.
	(gimple_build_assign_with_ops_stat): Likewise.
	(gimple_assign_set_rhs_from_tree): Likewise.
	(gimple_assign_set_rhs_with_ops_1): Renamed from
	gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
	(get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
	(get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
	WIDEN_MULT_MINUS_EXPR.
	* gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
	(extract_ops_from_tree_1): Adjust declaration.
	(gimple_assign_set_rhs_with_ops_1): Likewise.
	(gimple_build_assign_with_ops): Pass NULL for last operand.
	(gimple_build_assign_with_ops3): New macro.
	(gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
	gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
	functions.
	* tree-cfg.c (verify_gimple_assign_ternary): New static function.
	(verify_gimple_assign): Call it.
	* doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
	(Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
	functions for dealing with three-operand statements.
	* tree.c (commutative_ternary_tree_code): New function.
	* tree.h (commutative_ternary_tree_code): Declare it.
	* tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for ternary
	statements.
	(gimple_assign_nonzero_warnv_p): Likewise.
	* tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
	* tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
	(ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
	* tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
	(struct hashtable_expr): New member ternary in the union.
	(initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
	(hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
	(iterative_hash_hashable_expr): Likewise.
	(print_expr_hash_elt): Handle EXPR_TERNARY.
	* gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
	* tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
	statements.  Handle GIMPLE_TERNARY_RHS.

testsuite/
	PR target/43902
	* gcc.target/mips/madd-9.c: New test.

From-SVN: r161366
2010-06-25 08:56:24 +00:00
Jan Hubicka 38f78b0c69 * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
From-SVN: r161364
2010-06-25 07:56:43 +00:00
Shujing Zhao 09a1e889cc re PR c/44517 (improve diagnostic for mispelled typename in function declaration)
gcc/
2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>

        PR c/44517
        * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
        parameters are not good.
        (c_parser_parameter_declaration): Error unknown type name if the type
        name can't start declaration specifiers.

gcc/testsuite/
2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>

        PR c/44517
        * gcc.dg/noncompile/pr44517.c: New.
        * gcc.dg/noncompile/990416-1.c: Adjust expected error.

From-SVN: r161363
2010-06-25 07:31:49 +00:00
Joseph Myers 418f840c1b gcc.c (translate_options): Don't mention +e in comment.
* gcc.c (translate_options): Don't mention +e in comment.
	(process_command): Don't handle +e specially.

cp:
	* lang-specs.h: Remove +e handling.

objcp:
	* lang-specs.h: Remove +e handling.

From-SVN: r161355
2010-06-25 01:26:24 +01:00
GCC Administrator c504fdd6ca Daily bump.
From-SVN: r161354
2010-06-25 00:18:17 +00:00
Bernd Schmidt b14151b586 ira-int.h (struct live_range, [...]): Renamed from struct ira_allocno_live_range and allocno_live_range_t...
* ira-int.h (struct live_range, live_range_t): Renamed from struct
	ira_allocno_live_range and allocno_live_range_t; all uses changed.
	* ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
	All uses changed.

From-SVN: r161350
2010-06-24 23:30:28 +00:00
Bernd Schmidt 42ce1cc4e1 ira-int.h (SET_MINMAX_SET_BIT, [...]): Renamed from SET_ALLOCNO_SET_BIT...
* ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
	TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
	minmax_set_iter_cond, minmax_set_iter_next,
	FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
	CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
	ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
	ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
	uses changed.

From-SVN: r161349
2010-06-24 23:29:44 +00:00
Bernd Schmidt 6300cb73c2 ira-color.c (assign_hard_reg): Improve formatting of multi-line for statement.
* ira-color.c (assign_hard_reg): Improve formatting of multi-line for
	statement.

From-SVN: r161348
2010-06-24 23:28:35 +00:00
Bernd Schmidt 029da7d4c4 ira-int.h (ira_parent_allocno, [...]): Declare.
* ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
	* ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
	functions.
	(ira_flattening): Use ira_parent_allocno.
	* ira-conflicts.c (process_regs_for_copy, propagate_copies)
	build_allocno_conflicts): Use ira_parent_or_cap_allocno.

From-SVN: r161347
2010-06-24 23:27:58 +00:00
Bernd Schmidt 3c55880a94 ira-build.c (merge_hard_reg_conflicts): New function.
* ira-build.c (merge_hard_reg_conflicts): New function.
	(create_cap_allocno, copy_info_to_removed_store_destinations,
	propagate_some_info_from_allocno, propagate_allocno_info): Use it.
	(move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
	(remove_unnecessary_allocnos, remove_low_level_allocnos)
	copy_nifo_to_removed_store_destination): Use them.
	* ira-lives.c (make_hard_regno_born): New function, split out of
	make_regno_born.
	(make_allocno_born): Likewise.
	(make_hard_regno_dead): New function, split out of make_regno_dead.
	(make_allocno_dead): Likewise.
	(inc_register_pressure): New function, split out of set_allocno_live.
	(dec_register_pressure): New function, split out of clear_allocno_live.
	(mark_pseudo_regno_live): New function, split out of mark_reg_live.
	(mark_hard_reg_live): Likewise.  Use inc_register_pressure.
	(mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
	(mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
	(make_pseudo_conflict): Use mark_pseudo_regno_dead and
	mark_pseudo_regno_live.
	(process_bb_node_lives): Use mark_pseudo_regno_live,
	make_hard_regno_born and make_allocno_dead.
	(make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
	set_allocno_live, clear_allocno_live): Delete functions.

From-SVN: r161346
2010-06-24 23:27:09 +00:00
Bernd Schmidt dd2e0807cc * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
From-SVN: r161345
2010-06-24 23:25:23 +00:00
Richard Earnshaw 8850383b10 thumb2.md (thumb2_tlobits_cbranch): Delete.
* thumb2.md (thumb2_tlobits_cbranch): Delete.
	(peephole2 to convert zero_extract/compare of single bit to
	 lshift/compare): New.

From-SVN: r161344
2010-06-24 22:46:54 +00:00
Steve Ellcey 0dab9071eb Fix type in last checkin. (Added \t that should not have been there.)
From-SVN: r161343
2010-06-24 22:38:15 +00:00
Steve Ellcey 7f58e69fe2 re PR testsuite/43283 (ld: Unsatisfied symbol "start" in file c_lto_20091216-1_0.o)
2010-06-24  Steve Ellcey  <sje@cup.hp.com>

	PR testsuite/43283
	* gcc.dg/lto/20091216-1_0.c: Use newline instead of semicolon
	and add argument to nop for IA64.

From-SVN: r161342
2010-06-24 22:31:23 +00:00
Anatoly Sokolov 43a5d30b9a fold-const.c (const_binop): Remove 'notrunc' argement.
* fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
	recursive call and call to 'int_const_binop'.
	(build_range_check, fold_cond_expr_with_comparison, unextend,
	fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
	multiple_of_p): Adjust call to const_binop.

From-SVN: r161336
2010-06-24 23:11:19 +04:00
Paolo Carlini 9ab1f9c70e profiler_trace.h (__trace_base<>:: __trace_base()): Move inline, simplify; formatting tweaks.
2010-06-24  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/profile/impl/profiler_trace.h (__trace_base<>::
	__trace_base()): Move inline, simplify; formatting tweaks.
	* include/profile/impl/profiler_hash_func.h: Formatting tweaks.

From-SVN: r161334
2010-06-24 18:52:42 +00:00
Paolo Carlini 3f04c1b4bd profiler_trace.h (__trace_base<>:: __trace_base()): Move inline, simplify; formatting tweaks.
2010-06-24  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/profile/impl/profiler_trace.h (__trace_base<>::
	__trace_base()): Move inline, simplify; formatting tweaks.
	* include/profile/impl/profiler_hash_func.h: Formatting tweaks.

From-SVN: r161333
2010-06-24 18:52:31 +00:00
Uros Bizjak b1c6d0185a i386.md (XFmode push splitter): Use GET_MODE_SIZE to determine size of XFmode operand.
* config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
	determine size of XFmode operand.
	(XFmode extended DFmode push splitter): Ditto.
	(XFmode extended SFmode push splitter): Ditto.

From-SVN: r161332
2010-06-24 20:35:52 +02:00
H.J. Lu 969fd17d1e Add missing testcases for PR 44588.
From-SVN: r161330
2010-06-24 11:21:21 -07:00
H.J. Lu da0ae97088 Implement 8bit divmod patterns.
gcc/

2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/44588
	* config/i386/i386.md (extract_code): New.
	(<u>divmodqi4): Likewise.
	(divmodhiqi3): Likewise.
	(udivmodhiqi3): Likewise.
	(<u>divqi3): Remvoved.

gcc/testsuite/

2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/44588
	* gcc.target/i386/mod-1.c: New.
	* gcc.target/i386/umod-1.c: Likewise.
	* gcc.target/i386/umod-2.c: Likewise.
	* gcc.target/i386/umod-3.c: Likewise.

From-SVN: r161329
2010-06-24 11:20:28 -07:00
Jakub Jelinek 54f044ebbb re PR middle-end/44492 (auto-inc-dec pushes PRE_MODIFY/PRE_INC into inline asm operands)
PR middle-end/44492
	* recog.h (struct recog_data): Add is_asm field.
	* recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
	present in constraints of inline-asm operand and memory operand
	contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
	(extract_insn): Initialize recog_data.is_asm.
	* doc/md.texi (Constraints): Document operand side-effect rules.

	* g++.dg/torture/pr44492.C: New test.

From-SVN: r161328
2010-06-24 19:48:16 +02:00
Paolo Carlini c7d42abb94 profiler_trace.h (__warning_data:: __warning_message): Change to std::string...
2010-06-24  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/profile/impl/profiler_trace.h (__warning_data::
	__warning_message): Change to std::string; clean-up includes,
	qualify size_t, fprintf, etc, with std everywhere.
	(struct __warn::operator()): Adjust.
	* include/profile/impl/profiler_list_to_slist.h
	(__list2slist_info::__advice): Change to return a std::string;
	clean-up includes, qualify size_t, fprintf, etc, with std.
	* include/profile/impl/profiler_container_size.h
	(__container_size_info::__advice): Likewise.
	* include/profile/impl/profiler_hash_func.h (__hashfunc_info::
	__advice): Likewise.
	* include/profile/impl/profiler_list_to_vector.h
	(__list2vector_info::__advice): Likewise.
	* include/profile/impl/profiler_vector_to_list.h
	(__vector2list_info::__advice): Likewise.
	* include/profile/impl/profiler_map_to_unordered_map.h
	(__map2umap_info::__advice): Likewise.
	* include/profile/impl/profiler.h: Likewise.
	* include/profile/impl/profiler_hashtable_size.h: Likewise.
	* include/profile/impl/profiler_node.h: Likewise.
	* include/profile/impl/profiler_vector_size.h: Likewise.

	* include/profile/iterator_tracker.h: Formatting and stylistic
	tweaks.
	* include/profile/base.h: Likewise.
	* include/profile/map.h: Likewise.

From-SVN: r161325
2010-06-24 16:17:55 +00:00