Commit Graph

125070 Commits

Author SHA1 Message Date
Paolo Carlini fde6f97e08 PR c++/21682, implement DR 565
/cp
2013-09-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/21682, implement DR 565
	* name-lookup.c (compparms_for_decl_and_using_decl): New.
	(push_overloaded_decl_1, do_nonmember_using_decl): Use it.

/testsuite
2013-09-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/21682, implement DR 565
	* g++.dg/template/using24.C: New.
	* g++.dg/template/using25.C: Likewise.
	* g++.dg/template/using26.C: Likewise.

From-SVN: r202163
2013-09-02 09:42:39 +00:00
Marek Polacek 576016fe96 Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
2013-09-02  Marek Polacek  <polacek@redhat.com>

	* Makefile.in (ubsan.o): Add $(TM_P_H) dependency.

From-SVN: r202159
2013-09-02 07:46:13 +00:00
GCC Administrator 0023084e63 Daily bump.
From-SVN: r202158
2013-09-02 00:16:47 +00:00
Jan Hubicka 08f835dc74 Makefile.in: Add ipa-profile.o
* Makefile.in: Add ipa-profile.o
	(ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
	* cgraph.c (struct cgraph_propagate_frequency_data,
	cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
	ipa-profile.c; replace cgraph_ by ipa_ prefix.
	* cgraph.h (cgraph_propagate_frequency): Remove.
	* ipa-inline-analysis.c: Include ipa-utils.h; drop duplicated cfgloop.h.
	(inline_update_callee_summaries): Update.
	* ipa-profile.c: New file.
	* ipa-utils.h (ipa_propagate_frequency): Declare.
	* ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
	data-streamer.h, value-prof.h
	(symtab_remove_unreachable_nodes): Update profile.
	(struct histogram_entry, histogram, histogram_pool, histogram_hash,
	account_time_size, cmp_counts, dump_histogram,
	ipa_profile_generate_summary, ipa_profile_write_summary,
	ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
	pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
	Move to ipa-profile.c

From-SVN: r202154
2013-09-01 17:47:21 +00:00
Jan Hubicka 0adad9c5b4 * g++.dg/ipa/devirt-15.C: New testcase.
From-SVN: r202153
2013-09-01 17:06:40 +00:00
Eric Botcazou d775b5ea3b re PR ada/58239 (pretty-print.c:789: undefined reference to `operator delete(void*)')
PR ada/58239
gnattools/
	* Makefile.in (CXX_LFLAGS): New.
	(TOOLS_FLAGS_TO_PASS_NATIVE): Pass CXX and CXX_LFLAGS.
	(TOOLS_FLAGS_TO_PASS_RE): Likewise.
	(TOOLS_FLAGS_TO_PASS_CROSS): Pass CXX.
gcc/ada/
	* gcc-interface/Makefile.in (GCC_LINK_FLAGS): Add -static-libstdc++.
	(GCC_LINK): Use CXX instead of CC.
	* gcc-interface/Make-lang.in (CXX_LFLAGS): New.
	(ADA_TOOLS_FLAGS_TO_PASS): Pass CXX, and CXX_LFLAGS for native.

Co-Authored-By: Iain Sandoe <iain@codesourcery.com>

From-SVN: r202150
2013-09-01 16:51:41 +00:00
John David Anglin cec8583c75 pa.md: Allow "const 0" operand 1 in "scc" insns.
* config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.

From-SVN: r202149
2013-09-01 16:35:06 +00:00
Eric Botcazou bb09261075 * gnat.dg/specs/linker_alias.ads: Skip on Darwin.
From-SVN: r202148
2013-09-01 16:33:28 +00:00
Jan Hubicka ca1eedf674 Correct previous commit to the final version of patch.
From-SVN: r202146
2013-09-01 15:27:14 +00:00
Jan Hubicka bbc9396b62 common.opt (fdevirtualize-speculatively): New function.
* common.opt (fdevirtualize-speculatively): New function.
	* invoke.texi (fdevirtualize-speculatively): Document.
	* ipa-devirt.c: Include ipa-inline.h
	(likely_target_p): New function.
	(ipa_devirt): New function.
	(gate_ipa_devirt): New function.
	(pass_data_ipa_devirt): New static var.
	(pass_ipa_devirt): Likewise.
	(make_pass_ipa_devirt): New function.
	* opts.c (default_options): Add OPT_fdevirtualize_speculatively.
	(common_handle_option): Disable devirtualization when
	value range profiling is available.
	* passes.def (pass_ipa_devirt): Add.
	* timever.def (TV_IPA_DEVIRT): New timevar.
	* tree-pass.h (make_pass_ipa_devirt):

From-SVN: r202145
2013-09-01 15:14:24 +00:00
Iain Sandoe 0cea211ebd darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to include sanitize(undefined).
gcc:

        * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
        include sanitize(undefined).

libsanitizer:

        * ubsan/Makefile.am (libubsan_la_LIBADD): Revise to omit
        libinterception.la for Darwin.
        * ubsan/Makefile.in: Regenerate.

From-SVN: r202144
2013-09-01 12:16:07 +00:00
Jan Hubicka 31f1f73b3e lto.c (tree_with_vars): Turn into vector.
* lto.c (tree_with_vars): Turn into vector.
	(MAYBE_REMEMBER_WITH_VARS): Change to...
	(CHECK_VAR): ... this one.
	(CHECK_NO_VAR): New macro.
	(maybe_remember_with_vars_typed): Turn to ...
	(mentions_vars_p_typed): ... this one.
	(maybe_remember_with_vars_common): Turn to ...
	(mentions_vars_p_comon): ... this one.
	(maybe_remember_with_vars_decl_minimal): Turn to ...
	(mentions_vars_p_decl_minmal): ... this one.
	(maybe_remember_with_vars_decl_common): Turn to ...
	(mentions_vars_p_decl_common): ... this one.
	(maybe_remember_with_vars_decl_with_vis): Turn to ...
	(mentions_vars_p_decl_with_vis): ... this one.
	(maybe_remember_with_vars_decl_non_common): Turn to ...
	(mentions_vars_p_decl_non_common): ... this one.
	(maybe_remember_with_vars_function): Turn to ...
	(mentions_vars_p_function): ... this one.
	(maybe_remember_with_vars_field_decl): Turn to ...
	(mentions_vars_p_field_decl): ... this one.
	(maybe_remember_with_vars_type): Turn to ...
	(mentions_vars_p_type): ... this one.
	(maybe_remember_with_vars_binfo): Turn to ...
	(mentions_vars_p_binfo): ... this one.
	(maybe_remember_with_vars_constructor): Turn to ...
	(mentions_vars_p_constructor): ... this one.
	(maybe_remember_with_vars_expr): Turn to ...
	(mentions_vars_p_expr): ... this one.
	(maybe_remember_with_vars): Turn to ...
	(mentions_vars_p): ... this one.
	(lto_read_decls): Update.
	(LTO_SET_PREVAIL): Do not call function for internal decls.
	(lto_fixup_prevailing_decls): Update to match mentions_vars_p;
	check that something was updated.
	(lto_fixup_state): Do not care about internal decls.
	(lto_fixup_decls): Update.
	(read_cgraph_and_symbols): Update.

From-SVN: r202143
2013-09-01 12:00:35 +00:00
Jan Hubicka 63bf9a906c fork-instrumentation.c: New testcase.
* gcc.dg/fork-instrumentation.c: New testcase.
	* builtins.c (expand_builtin): Do not exit early for gcov
	instrumented functions.

From-SVN: r202142
2013-09-01 11:59:27 +00:00
GCC Administrator f5c7238f2e Daily bump.
From-SVN: r202139
2013-09-01 00:16:38 +00:00
Marek Polacek 5c0abd6a25 ubsan.c: Include tm_p.h.
2013-08-31  Marek Polacek  <polacek@redhat.com>

	* ubsan.c: Include tm_p.h.

From-SVN: r202134
2013-08-31 15:31:34 +00:00
Jan Hubicka 8356c89c33 gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused warning.
* gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
	warning.

From-SVN: r202133
2013-08-31 14:20:47 +00:00
Diego Novillo cdc35a2e5b * testsuite-management/x86_64-unknown-linux-gnu.xfail: Update.
From-SVN: r202132
2013-08-31 09:55:10 -04:00
Jan Hubicka 5e5812126c cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
* cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
	* gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
	* tree-cfg.c (verify_gimple_label): ... here.
	* ipa-utils.c: Include lto-streamer.h, ipa-inline.h
	(ipa_merge_profiles): New function.
	* lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
	(lto_input_function_body): Likewise.
	* ipa-utils.h (ipa_merge_profiles): Declare.
	* lto-streamer.h (lto_input_function_body): Update prototype.
	(emit_label_in_global_context_p): Remove.
	* lto-symtab.c: Include ipa-utils.h
	(lto_cgraph_replace_node): Use ipa_merge_profiles.

From-SVN: r202131
2013-08-31 13:47:20 +00:00
Jan Hubicka 4843f03206 cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
* cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
	* gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
	* ipa-utils.c: Include lto-streamer.h, ipa-inline.h
	(ipa_merge_profiles): New function.
	* lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
	(lto_input_function_body): Likewise.

From-SVN: r202130
2013-08-31 13:44:46 +00:00
Jan Hubicka 57292ce9bd * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
From-SVN: r202129
2013-08-31 13:37:48 +00:00
Jan Hubicka b9cbfeeb51 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
From-SVN: r202128
2013-08-31 13:32:31 +00:00
Uros Bizjak 41dedebd87 alpha.c (alpha_emit_conditional_move): Update "cmp" RTX before signed_comparison_operator check to account for "code"...
* config/alpha/alpha.c (alpha_emit_conditional_move): Update
	"cmp" RTX before signed_comparison_operator check to account
	for "code" changes.

From-SVN: r202127
2013-08-31 15:23:36 +02:00
Jan Hubicka 06d6505030 ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
* ipa-prop.c (ipa_set_jf_known_type): Check that we add
	only records.
	(detect_type_change_1): Rename to ...
	(detect_type_change): ... this one; early return on non-polymorphic
	types.
	(detect_type_change_ssa): Add comp_type parameter; update	
	use of detect_type_change.
	(compute_complex_assign_jump_func): Add param_type parameter;
	update use of detect_type_change_ssa.
	(compute_complex_ancestor_jump_func): Likewise.
	(ipa_get_callee_param_type): New function.
	(ipa_compute_jump_functions_for_edge): Compute parameter type;
	update calls to the jump function computation functions.

From-SVN: r202126
2013-08-31 12:26:32 +00:00
Teresa Johnson 600b5b1d5c This patch sanitizes the partitioning to address issues such as edge weight insanities that sometimes occur due to upstream optimizations...
This patch sanitizes the partitioning to address issues such as edge
weight insanities that sometimes occur due to upstream optimizations,
and ensures that hot blocks are not dominated by cold blocks. This
needs to be resanitized after certain cfg optimizations that may
cause hot blocks previously reached via both hot and cold paths to
only be reached by cold paths.

The verification code in sanitize_dominator_hotness was contributed by
Steven Bosscher.

2013-08-29  Teresa Johnson  <tejohnson@google.com>
            Steven Bosscher  <steven@gcc.gnu.org>

	* cfgrtl.c (fixup_new_cold_bb): New routine.
	(commit_edge_insertions): Invoke fixup_partitions.
	(find_partition_fixes): New routine.
	(fixup_partitions): Ditto.
	(verify_hot_cold_block_grouping): Update comments.
	(rtl_verify_edges): Invoke find_partition_fixes.
	(rtl_verify_bb_pointers): Update comments.
	(rtl_verify_bb_layout): Ditto.
	* basic-block.h (probably_never_executed_edge_p): Declare.
        (fixup_partitions): Ditto.
	* cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
	* bb-reorder.c (sanitize_hot_paths): New function.
        (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
        sanitize_hot_paths.
	* predict.c (probably_never_executed_edge_p): New routine.
	* cfg.c (check_bb_profile): Add partition insanity warnings.

Co-Authored-By: Steven Bosscher <steven@gcc.gnu.org>

From-SVN: r202125
2013-08-31 01:43:33 +00:00
GCC Administrator 7b55c620f0 Daily bump.
From-SVN: r202124
2013-08-31 00:16:32 +00:00
François Dumont 32bb816a91 re PR libstdc++/58148 (Fails to insert iterator range into sequence container with -D_GLIBCXX_DEBUG when conversion is needed)
2013-08-30  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/58148
	* include/debug/functions.h (__foreign_iterator_aux4): Use
	sequence const_pointer as common type to compare pointers. Add a
	fallback overload in case pointers cannot be cast to sequence
	const_pointer.
	* testsuite/23_containers/vector/modifiers/insert/58148.cc: New.

From-SVN: r202121
2013-08-30 20:55:37 +00:00
François Dumont 8915a229ad re PR libstdc++/58191 (Can't use boost transform_iterator with _GLIBCXX_DEBUG)
2013-08-30  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/58191
	* include/debug/macros.h (__glibcxx_check_partitioned_lower): Add
	__gnu_debug::__base calls on iterators passed to internal debug
	check.
	(__glibcxx_check_partitioned_lower_pred): Likewise.
	(__glibcxx_check_partitioned_upper): Likewise.
	(__glibcxx_check_partitioned_upper_pred): Likewise.
	(__glibcxx_check_sorted): Likewise.
	(__glibcxx_check_sorted_pred): Likewise.
	(__glibcxx_check_sorted_set): Likewise.
	(__glibcxx_check_sorted_set_pred): Likewise.
	* include/debug/functions.h (__check_partitioned_lower):
	Remove code to detect safe iterators.
	(__check_partitioned_upper): Likewise.
	(__check_sorted): Likewise.

From-SVN: r202119
2013-08-30 20:16:03 +00:00
Bernd Edlinger 3ecee8f77b MAINTAINERS (Write After Approval): Add myself.
2013-08-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>

       * MAINTAINERS (Write After Approval): Add myself.

From-SVN: r202118
2013-08-30 19:34:43 +00:00
Uros Bizjak 98590ca29b mangle33.C (dg-final): Use match count in scan RE.
* g++.dg/abi/mangle33.C (dg-final): Use match count in scan RE.

From-SVN: r202117
2013-08-30 19:43:42 +02:00
Torvald Riegel 6fb471d812 libitm: Fix wrong initialization order introduced with r202101.
* config/posix/rwlock.cc: Fix initialization order.

From-SVN: r202116
2013-08-30 17:13:05 +00:00
Meador Inge 0a6ea5c9c9 tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
gcc/

2013-08-30  Meador Inge  <meadori@codesourcery.com>

	* tree-vrp.c (check_array_ref): Bail out on zero-length arrays.

gcc/testsuite/

2013-08-30  Meador Inge  <meadori@codesourcery.com>

	* gcc.dg/Warray-bounds-11.c: New testcase.

From-SVN: r202115
2013-08-30 16:36:46 +00:00
Marek Polacek de5a5fa139 Merge ubsan into trunk.
From-SVN: r202113
2013-08-30 16:12:58 +00:00
Mike Stump f07f30cfb5 install.texi (Prerequisites): Note regression in Tcl 8.6 with RE patterns.
* doc/install.texi (Prerequisites): Note regression in Tcl 8.6
	with RE patterns.

From-SVN: r202112
2013-08-30 15:45:18 +00:00
Jan Hubicka 8a41354f5b cgraph.c (cgraph_function_body_availability): Handle weakref correctly.
* cgraph.c (cgraph_function_body_availability): Handle weakref
	correctly.
	* passes.def: Remove pass_fixup_cfg.
	* ipa-inline.c (ipa_inline): When not optimizing, do not inline;
	track when we need to remove functions.
	(gate_ipa_inline): Execute inlining always; add comment why.
	(pass_data_ipa_inline): Remove TODO_remove_functions.
	* ipa-inline-analysis.c (inline_generate_summary): When not optimizing
	do not produce summaries.
	* symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
	(symtab_nonoverwritable_alias): Assert we are not called on weakref.
	* varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
	constant pool and vtable.

From-SVN: r202111
2013-08-30 15:41:26 +00:00
Paolo Carlini a624d5fe08 re PR c++/51424 ([C++11] G++ should diagnose self-delegating constructors)
/cp
2013-08-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51424
	* cp-tree.h (LOOKUP_DELEGATING_CONS): Add.
	* init.c (perform_target_ctor): Use it.
	* call.c (build_special_member_call): Diagnose self-delegating
	constructors.

/testsuite
2013-08-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51424
	* g++.dg/cpp0x/dc8.C: New.
	* g++.dg/template/meminit1.C: Adjust.

From-SVN: r202110
2013-08-30 15:39:01 +00:00
Gabriel Dos Reis 8f0e4d72f2 c-pretty-print.h (c_pretty_printer::declaration): Now a virtual member function.
c-family/
	* c-pretty-print.h (c_pretty_printer::declaration): Now a virtual
	member function.
	(c_pretty_printer::declaration_specifiers): Likewise.
	(c_pretty_printer::declarator): Likewise.
	(c_pretty_printer::abstract_declarator): Likewise.
	(c_pretty_printer::direct_abstract_declarator): Likewise.
	(c_pretty_printer::direct_declarator): Likewise.
	(c_pretty_printer::function_specifier): Likewise.
	(pp_declaration): Adjust.
	(pp_declaration_specifiers): Likewise.
	(pp_abstract_declarator): Likewise.
	(pp_direct_declarator): Likewise.
	(pp_function_specifier): Likewise.
	(pp_direct_abstract_declarator): Remove as unused.
	(pp_c_declaration): Remove.
	(pp_c_declaration_specifiers): Likewise.
	(pp_c_declarator): Likewise.
	(pp_c_direct_declarator): Likewise.
	(pp_c_function_specifier): Likewise.
	(pp_c_direct_abstract_declarator): Likewise.
	* c-pretty-print.c (c_pretty_printer::abstract_declarator): Rename
	from pp_c_abstract_declarator.  Adjust.
	(c_pretty_printer::direct_abstract_declarator):  Rename from
	pp_c_direct_abstract_declarator.  Adjust.
	(c_pretty_printer::function_specifier): Rename from
	pp_c_function_specifier.  Adjust.
	(c_pretty_printer::declaration_specifiers): Rename from
	pp_c_declaration_specifiers.  Adjust.
	(c_pretty_printer::direct_declarator): Rename from
	pp_c_direct_declarator.  Adjust.
	(c_pretty_printer::declarator): Rename from pp_c_declarator.  Adjust.
	(c_pretty_printer::declaration): Rename from pp_c_declaration.  Adjust.
	(c_pretty_printer::c_pretty_printer): Do not assign to
	declaration, declaration_specifiers, declarator,
	direct_declarator, direct_abstract_declarator, function_specifier.

cp/
	* cxx-pretty-print.h (cxx_pretty_printer::declaration): Declare as
	overrider.
	(cxx_pretty_printer::declaration_specifiers): Likewise.
	(cxx_pretty_printer::function_specifier): Likewise.
	(cxx_pretty_printer::declarator): Likewise.
	(cxx_pretty_printer::direct_declarator): Likewise.
	(cxx_pretty_printer::abstract_declarator): Likewise.
	(cxx_pretty_printer::direct_abstract_declarator): Likewise.
	(pp_cxx_declaration): Remove.
	* cxx-pretty-print.c (cxx_pretty_printer::function_specifier):
	Rename from pp_cxx_function_specifier.  Adjust.
	(cxx_pretty_printer::declaration_specifiers): Rename from
	pp_cxx_decl_specifier_seq.  Adjust.
	(cxx_pretty_printer::direct_declarator): Rename from
	pp_cxx_direct_declarator.  Adjust.
	(cxx_pretty_printer::declarator): Rename from pp_cxx_declarator.
	Adjust.
	(cxx_pretty_printer::abstract_declarator): Rename from
	pp_cxx_abstract_declarator.  Adjust.
	(cxx_pretty_printer::direct_abstract_declarator): Rename from
	pp_cxx_direct_abstract_declarator.  Adjust.
	(cxx_pretty_printer::declaration): Rename from
	pp_cxx_declaration.  Adjust.
	(cxx_pretty_printer::cxx_pretty_printer): Do not assign to
	declaration, declaration_specifiers, function_specifier,
	declarator, direct_declarator, abstract_declarator,
	direct_abstract_declarator.
	* error.c (dump_decl): Adjust.

From-SVN: r202109
2013-08-30 15:28:51 +00:00
Tejas Belagod dc8d7a0f7b arm_neon.h (__AARCH64_UINT64_C, [...]): New arm_neon.h's internal macros to specify 64-bit constants.
2013-08-30  Tejas Belagod  <tejas.belagod@arm.com>

gcc/
	* config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C): New
	arm_neon.h's internal macros to specify 64-bit constants. Avoid using
	stdint.h's macros.

From-SVN: r202108
2013-08-30 16:04:58 +01:00
Joern Rennecke ac7eacd2f3 recog.c (verify_changes): Verify that changes[i].old is non-zero before applying REG_P.
* recog.c (verify_changes): Verify that changes[i].old is non-zero
        before applying REG_P.

From-SVN: r202107
2013-08-30 15:20:29 +01:00
Teresa Johnson 8f2ea9a3b7 Move testsuite changes to correct ChangeLog, and delete a new
test that should not have been committed.

2013-08-30  Teresa Johnson  <tejohnson@google.com>

	* gcc.dg/inline-dump.c: Delete inadvertant commit.

From-SVN: r202106
2013-08-30 13:17:22 +00:00
Jakub Jelinek 8b29fd4e11 re PR tree-optimization/58277 (wrong code at -O3)
PR tree-optimization/58277
	* tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
	after seeing too many stmts with vdef in between dombb and current
	bb, invalidate everything.

	* gcc.c-torture/execute/pr58277-1.c: New test.
	* gcc.c-torture/execute/pr58277-2.c: New test.

From-SVN: r202104
2013-08-30 14:41:17 +02:00
Richard Biener 26d7570303 fold-const.c (fold_single_bit_test): Fix overflow test.
2013-08-30  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_single_bit_test): Fix overflow test.

From-SVN: r202103
2013-08-30 11:52:15 +00:00
Eric Botcazou f7e088e7de function.c (assign_parm_setup_reg): For a parameter passed by pointer and which can live in a register...
* function.c (assign_parm_setup_reg): For a parameter passed by pointer
	and which can live in a register, always retrieve the value on entry.
	* var-tracking.c (add_stores): Treat the copy on entry for a parameter
	passed by invisible reference specially.
	(emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
	(vt_add_function_parameter): Correctly deal with a parameter passed by
	invisible reference.

From-SVN: r202102
2013-08-30 11:13:20 +00:00
Torvald Riegel bec9ec3fc1 Add custom HTM fast path for RTM on x86_64.
* libitm_i.h (gtm_thread): Assign an asm name to serial_lock.
	(htm_fastpath): Assign an asm name.
	* libitm.h (_ITM_codeProperties): Add non-ABI flags used by custom
	HTM fast paths.
	(_ITM_actions): Likewise.
	* config/x86/target.h (HTM_CUSTOM_FASTPATH): Enable custom fastpath on
	x86_64.
	* config/x86/sjlj.S (_ITM_beginTransaction): Add custom HTM fast path.
	* config/posix/rwlock.h (gtm_rwlock): Update comments.  Move summary
	field to the start of the structure.
	* config/linux/rwlock.h (gtm_rwlock): Update comments.
	* beginend.cc (gtm_thread::begin_transaction): Add retry policy
	handling for custom HTM fast paths.

From-SVN: r202101
2013-08-30 10:33:41 +00:00
Jan Hubicka 8595a07d8d Correct previous patch to not mark terminate as LEAF.
* class.c (build_vtbl_initializer): Drop LEAF
	* decl.c (cxx_init_decl_processing): Likewise.
	(push_throw_library_fn): Likewise.
	* except.c (init_exception_processing): Likewise.
	(do_begin_catch): Likewise.
	(do_end_catch): Likewise.
	(do_allocate_exception): Likewise.

From-SVN: r202100
2013-08-30 09:39:20 +00:00
Jan Hubicka fafa0521c9 class.c (build_vtbl_initializer): Make __cxa_deleted_virtual ECF_NORETURN | ECF_LEAF
* class.c (build_vtbl_initializer): Make __cxa_deleted_virtual
	ECF_NORETURN | ECF_LEAF
	* cp-tree.h (build_library_fn_ptr, build_cp_library_fn_ptr,
	push_library_fn, push_void_library_fn): Update prototype.
	* decl.c (build_library_fn_1): Remove.
	(push_cp_library_fn, build_cp_library_fn): Update to take ECF flags.
	(cxx_init_decl_processing): Update; global_delete_fndecl is ECF_NOTROW;
	__cxa_pure_virtual is ECF_NORETURN | ECF_NORETURN | ECF_LEAF.
	(build_library_fn_1): Add ecf_flags argument; rename to ...
	(build_library_fn): ... this one.
	(build_cp_library_fn): Take ecf_flags; do not copy NOTHROW flag.
	(build_library_fn_ptr): Take ecf_flags.
	(build_cp_library_fn_ptr): Likewise.
	(push_library_fn): Likewise.
	(push_cp_library_fn): Likewise.
	(push_void_library_fn): Likewise.
	(push_throw_library_fn): All throws are ECF_NORETURN.
	(__cxa_atexit, __cxa_thread_atexit): Add ECF_LEAF | ECF_NOTHROW attributes.
	(expand_static_init): __cxa_guard_acquire, __cxa_guard_release,
	__cxa_guard_abort are ECF_NOTHROW | ECF_LEAF.
	* except.c (init_exception_processing): terminate is
	ECF_NOTHROW | ECF_NORETURN | ECF_LEAF.
	(declare_nothrow_library_fn): Add ecf_flags parameter.
	(__cxa_get_exception_ptr): Is ECF_NOTHROW | ECF_PURE | ECF_LEAF |
	ECF_TM_PURE.
	(do_begin_catch): cxa_begin_catch and _ITM_cxa_begin_catch
	are ECF_NOTHROW | ECF_LEAF.
	(do_end_catch): __cxa_end_catch and _ITM_cxa_end_catch is
	ECF_LEAF.
	(do_allocate_exception): _cxa_allocate_exception
	and _ITM_cxa_allocate_exception are ECF_NOTHROW | ECF_MALLOC
	| ECF_LEAF
	(do_free_exception): __cxa_free_exception is
	ECF_NOTHROW | ECF_LEAF.
	* rtti.c (build_dynamic_cast_1): __dynamic_cast
	is ECF_LEAF | ECF_PURE | ECF_NOTHROW.

From-SVN: r202099
2013-08-30 08:14:37 +00:00
Jan Hubicka 47500756e5 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
From-SVN: r202098
2013-08-30 08:11:41 +00:00
Richard Biener 6e8dad054f re PR tree-optimization/58228 (wrong code (with vectorization?) at -O3 on x86_64-linux-gnu)
2013-08-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58228
	* tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
	allow invariant loads in nested loop vectorization.

	* gcc.dg/torture/pr58228.c: New testcase.

From-SVN: r202097
2013-08-30 07:49:54 +00:00
Richard Biener 062ef2c8f9 re PR tree-optimization/58223 (wrong code at -O3 on x86_64-linux-gnu)
2013-08-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58223
	* tree-loop-distribution.c (has_anti_dependence): Rename to ...
	(has_anti_or_output_dependence): ... this and adjust to also
	look for output dependences.
	(mark_nodes_having_upstream_mem_writes): Adjust.
	(rdg_flag_uses): Likewise.

	* gcc.dg/torture/pr58223.c: New testcase.
	* gcc.dg/tree-ssa/ldist-16.c: Flip expected behavior.

From-SVN: r202096
2013-08-30 07:48:53 +00:00
Richard Biener 7a764c608a re PR tree-optimization/58010 (ICE in vect_create_epilog_for_reduction, at tree-vect-loop.c:4378)
2013-08-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58010
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
	assert that we have a loop-closed PHI.

	* gcc.dg/pr58010.c: New testcase.

From-SVN: r202095
2013-08-30 07:47:54 +00:00
Jan Hubicka 82e9d6426c lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
* lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
	* cgraph.c (cgraph_release_function_body): Free decl_in_state.
	* lto-section-in.c (lto_free_function_in_decl_state): New function.
	(lto_free_function_in_decl_state_for_node): New function.

From-SVN: r202094
2013-08-30 07:33:56 +00:00