Commit Graph

125033 Commits

Author SHA1 Message Date
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
Jan Hubicka 256eefa9a9 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.

	* lto.c (read_cgraph_and_symbols): Remove ggc_collect;
	clear section node; add comment why we do not collect.

From-SVN: r202093
2013-08-30 07:33:06 +00:00
GCC Administrator 3f0fdc34ff Daily bump.
From-SVN: r202092
2013-08-30 00:16:44 +00:00
Xinliang David Li 9cc1fb4b07 New vectorizer messages; message format change.
From-SVN: r202088
2013-08-29 21:06:08 +00:00
Adam Butcher 753c498921 Support dumping type bindings and 'mutable' qualifier in lambda diagnostics.
* error.c (dump_lambda_function): New function, dependent on ...
	(dump_substitution): ... this new function, factored out of ...
	(subst_to_string): ... here and ...
	(dump_function_decl): ... here.  Updated to early-out with call to
	dump_lambda_function after determining template bindings.

From-SVN: r202087
2013-08-29 21:54:49 +01:00
Eric Botcazou 440a508212 cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME of the clone from the DECL_NAME of the original function.
* cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
	of the clone from the DECL_NAME of the original function.

From-SVN: r202086
2013-08-29 19:52:33 +00:00
Mike Stump 6e39ee0c0b * gcc_update (configure): Update to handle svn 1.8.1.
From-SVN: r202084
2013-08-29 19:06:33 +00:00
Tim Shen 9222fb6f08 regex.h (basic_regex<>::assign): Don't lose _M_traits.
2013-08-29  Tim Shen  <timshen91@gmail.com>

	* include/bits/regex.h (basic_regex<>::assign): Don't lose _M_traits.
	  (regex_iterator<>::regex_iterator): Return nullptr when regex_search
	     failed.
	  (regex_token_iterator<>::_M_end_of_seq): Should be defined true when
	    _M_result is(not isn't) nullptr.
	* include/bits/regex_compiler.h: Store _Compiler::_M_traits by reference
	  instead of by value.
	* include/bits/regex_executor.h (_DFSExecutor<>::_DFSExecutor): Add
	  _M_traits to _DFSExecutor.
	* include/bits/regex_executor.tcc (__get_executor<>): Pass traits to
	  _DFSExecutor too.
	* testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
	  New.
	* testsuite/28_regex/iterators/regex_token_iterator/wchar_t/
	  wstring_02.cc: New.

From-SVN: r202082
2013-08-29 18:33:07 +00:00
Oleg Endo 3fa3690d3d passes.c (register_pass): Add overload.
* passes.c (register_pass): Add overload.
	* tree-pass.h (register_pass): Forward declare it.  Add comment.

From-SVN: r202081
2013-08-29 18:29:33 +00:00
Jan Hubicka 125b62f62b Revert accidental checkin.
From-SVN: r202080
2013-08-29 16:24:13 +00:00
Jan Hubicka 0170f33ca0 lto.c (compare_tree_sccs_1): Compare DECL_FINAL_P...
* lto.c (compare_tree_sccs_1): Compare  DECL_FINAL_P,
	DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and
	TYPE_FINAL_P.

	* lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P.
	DECL_CXX_CONSTRUCTOR_P. DECL_CXX_DESTRUCTOR_P.
	TYPE_FINAL_P.
	* lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields):
	DECL_FINAL_P. DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
	(unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
	* tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
	Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P
	(pack_ts_type_common_value_fields): Add TYPE_FINAL_P.

From-SVN: r202079
2013-08-29 16:23:40 +00:00
Teresa Johnson 103ff0d65e dumpfile.c (dump_loc): Output column number.
2013-08-29  Teresa Johnson  <tejohnson@google.com>

	* dumpfile.c (dump_loc): Output column number.
	* dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
	* doc/invoke.texi: Document optall -fopt-info flag.
	* profile.c (read_profile_edge_counts): Use new dump framework.
	(compute_branch_probabilities): Ditto.
	* passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
	when pass not in any opt group.
	* pass_manager.h (pass_manager::get_pass_profile): New method.
	* value-prof.c (check_counter): Use new dump framework.
	(check_ic_target): Ditto.
	* coverage.c (get_coverage_counts): Ditto.
	(coverage_init): Setup new dump framework.

	* testsuite/gcc.dg/pr40209.c: Use -fopt-info.
	* testsuite/gcc.dg/pr26570.c: Ditto.
	* testsuite/gcc.dg/pr32773.c: Ditto.
	* testsuite/g++.dg/tree-ssa/dom-invalid.C: Ditto.
	* testsuite/gcc.dg/inline-dump.c: New test.

From-SVN: r202077
2013-08-29 13:51:04 +00:00
Richard Biener 301bbc1662 re PR tree-optimization/58246 (wrong code at -O1 and above)
2013-08-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58246
	* tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
	handle the dominance check inside a basic-block.

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

From-SVN: r202071
2013-08-29 13:04:19 +00:00
Thomas Koenig 4860a46271 re PR fortran/52243 (Avoid reallocation for: array1 = array1 / scalar for performance)
2013-08-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/52243
	* trans-expr.c (is_runtime_conformable):  New function.
	* gfc_trans_assignment_1:  Use it.

2013-08-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/52243
	* gfortran.dg/realloc_on_assign_14.f90:  Remove warning made
	obsolete by patch.
	* gfortran.dg/realloc_on_assign_19.f90:  New test.

From-SVN: r202070
2013-08-29 11:44:41 +00:00
Richard Biener 1b27500048 re PR middle-end/57287 (Bogus uninitialized warning with abnormal control flow)
2013-08-29  Richard Biener  <rguenther@suse.de>

	PR middle-end/57287
	* tree-ssa-copy.c (may_propagate_copy): Allow propagating
	of default defs that appear in abnormal PHI nodes.

	* gcc.dg/pr57287-2.c: New testcase.

From-SVN: r202069
2013-08-29 11:20:16 +00:00
Richard Biener 6b1184bab6 re PR tree-optimization/57685 (GCC stuck in an infinite loop)
2013-08-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/57685
	* tree-vrp.c (register_edge_assert_for_1): Recurse only for
	single-use operands to avoid exponential complexity.

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

From-SVN: r202068
2013-08-29 07:45:59 +00:00
Ian Lance Taylor 2ec974d90f go-gcc.cc (Gcc_backend::immutable_struct): Set TREE_PUBLIC if the struct is not hidden.
* go-gcc.cc (Gcc_backend::immutable_struct): Set TREE_PUBLIC if
	the struct is not hidden.
	(Gcc_backend::immutable_struct_set_init): Don't set TREE_PUBLIC.

From-SVN: r202065
2013-08-29 00:49:36 +00:00
GCC Administrator 652974f2aa Daily bump.
From-SVN: r202064
2013-08-29 00:16:44 +00:00
Paolo Carlini 1ca66f7efe re PR c++/58255 ([C++11] explicit delegating constructor with no arguments wrongly rejected)
/cp
2013-08-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58255
	* init.c (build_aggr_init): When init == void_type_node do not
	set LOOKUP_ONLYCONVERTING.

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

	PR c++/58255
	* g++.dg/cpp0x/dc7.C: New.

From-SVN: r202061
2013-08-28 22:40:34 +00:00
Caroline Tice b208ba4056 Replace fixed size array that was holding vtable pointers with a vector, allowing dynamic resizing.
Replace fixed size array that was holding vtable pointers
with a vector, allowing dynamic resizing.  ALso fix issues with
warning diagnostics.

From-SVN: r202060
2013-08-28 14:06:43 -07:00
Dehao Chen 1b08b73439 ipa-inline.c (edge_badness): Fix integer underflow.
2013-08-28  Dehao Chen  <dehao@google.com>

	* ipa-inline.c (edge_badness): Fix integer underflow.

From-SVN: r202059
2013-08-28 18:11:33 +00:00
Uros Bizjak 48a3fa6902 gtm-builtins.def (_ITM_free): Declare leaf.
* gtm-builtins.def (_ITM_free): Declare leaf.

From-SVN: r202058
2013-08-28 19:42:19 +02:00
Caroline Tice baa2052d62 Apparently I forgot to commit the ChangeLog when I committed the change to libvtv previously.
Apparently I forgot to commit the ChangeLog when I committed
the change to libvtv previously.  Fixing that now.

From-SVN: r202056
2013-08-28 09:36:22 -07:00
Jakub Jelinek 215f73e64f re PR target/58067 (ICE in GFortran recog.c:2158)
PR target/58067
	* config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
	(*tls_local_dynamic_base_64_largepic): Likewise.
	(tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
	Remove predicate from call operand.
	* config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
	return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.

From-SVN: r202055
2013-08-28 18:31:41 +02:00
Jeff Law 34554d1a8f tree-ssa-threadedge.c (thread_around_empty_block): Remove checks for the number of predecessors and successors allowed.
* tree-ssa-threadedge.c (thread_around_empty_block): Remove
        checks for the number of predecessors and successors allowed.
        * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
        which require copying a joiner block if there is a request which
        is a subpath that requires no joiner block copying.

From-SVN: r202054
2013-08-28 09:07:45 -06:00
Jan Hubicka 184799e763 lto-streamer-out.c (DFS_write_tree_body): Drop BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
* lto-streamer-out.c (DFS_write_tree_body): Drop
	BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
	(hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
	BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
	* tree-streamer-in.c (unpack_ts_decl_common_value_fields):
	Do not read DECL_ERROR_ISSUED.
	(unpack_ts_decl_with_vis_value_fields): Do not read
	DECL_DEFER_OUTPUT.
	(lto_input_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
        BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
	* tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
	write DECL_ERROR_ISSUED..
	(pack_ts_decl_with_vis_value_fields): Do not write
	DECL_DEFER_OUTPUT.
	(write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
        BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
	* print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
	* tree.h (tree_decl_common): Update comment.
	(DECL_ERROR_ISSUED): Remove.

From-SVN: r202053
2013-08-28 15:04:15 +00:00
Jan Hubicka c01c111b6f lto.c (compare_tree_sccs_1): Drop DECL_ERROR_ISSUED, DECL_DEFER_OUTPUT and DECL_IN_TEXT_SECTION.
* lto.c (compare_tree_sccs_1): Drop DECL_ERROR_ISSUED,
	DECL_DEFER_OUTPUT and DECL_IN_TEXT_SECTION.
	(unify_scc): Do checking assert.

	* lto-streamer-out.c (DFS_write_tree_body): Drop
	BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
	(hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
	BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
	* tree-streamer-in.c (unpack_ts_decl_common_value_fields):
	Do not read DECL_ERROR_ISSUED.
	(unpack_ts_decl_with_vis_value_fields): Do not read
	DECL_DEFER_OUTPUT.
	(lto_input_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
        BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
	* tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
	write DECL_ERROR_ISSUED..
	(pack_ts_decl_with_vis_value_fields): Do not write
	DECL_DEFER_OUTPUT.
	(write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
        BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
	* print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
	* tree.h (tree_decl_common): Update comment.
	(DECL_ERROR_ISSUED): Remove.

From-SVN: r202052
2013-08-28 15:03:43 +00:00
Jakub Jelinek 9bb6628ec5 PR spam/58261
PR spam/58262
	Fix up ChangeLog entry whitespace.

From-SVN: r202051
2013-08-28 16:41:27 +02:00
Jakub Jelinek 4b128ece06 re PR middle-end/58257 (Bogus warning with OpenMP collapsed loops)
PR middle-end/58257
	* omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.

	* c-c++-common/gomp/pr58257.c: New test.

From-SVN: r202049
2013-08-28 12:08:59 +02:00
Uros Bizjak 12211b99fe ChangeLog: Fix whitespace.
* ChangeLog: Fix whitespace.
	* testsuite/ChangeLog: Ditto.

From-SVN: r202048
2013-08-28 11:34:15 +02:00
Richard Biener 58085fae70 re PR tree-optimization/56933 (Vectorizer missing read-write dependency for interleaved accesses)
2013-08-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56933
	* gcc.dg/vect/pr56933.c: Properly guard runtime with check_vect ().

From-SVN: r202044
2013-08-28 07:51:10 +00:00
Jan Hubicka 9e57846a99 * builtins.def (free): Declare leaf.
From-SVN: r202043
2013-08-28 07:10:47 +00:00
Jan Hubicka 6a49f3c94c lto-partition.c (lto_balanced_map): Always base order on source file order.
* lto-partition.c (lto_balanced_map): Always base order on 
	source file order.

Co-Authored-By: Martin Liska <marxin.liska@gmail.com>

From-SVN: r202041
2013-08-28 06:51:27 +00:00
David Malcolm 8dce4dbc06 Initial version of gdb hooks
* MAINTAINERS (gdbhooks.py): Add myself as maintainer
    
    gcc/
    	* gdbhooks.py: New.
    	* configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
    	* configure: Regenerate.

From-SVN: r202040
2013-08-28 03:01:20 +00:00
GCC Administrator 99236f3ae0 Daily bump.
From-SVN: r202039
2013-08-28 00:16:44 +00:00
Martin Jambor b8f6e610c0 ipa-prop.h (ipa_pass_through_data): New field type_preserved.
2013-08-27  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (ipa_pass_through_data): New field type_preserved.
	(ipa_ancestor_jf_data): Likewise.
	(ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
	(ipa_get_jf_pass_through_type_preserved): New function.
	(ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
	(ipa_get_jf_ancestor_type_preserved): New function.
	* ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved
	flag.
	(ipa_get_jf_ancestor_result): Likewise.
	(propagate_vals_accross_pass_through): Use
	ipa_get_jf_pass_through_result to do all the value mappings.
	* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
	type_preserved flag.
	(ipa_set_jf_cst_copy): New function.
	(ipa_set_jf_simple_pass_through): Set the type_preserved flag.
	(ipa_set_jf_arith_pass_through): Likewise.
	(ipa_set_ancestor_jf): Likewise.
	(compute_complex_assign_jump_func): Set type_preserved instead of
	punting.
	(ipa_compute_jump_functions_for_edge): Likewise.
	(combine_known_type_and_ancestor_jfs): Honor type_preserved.
	(update_jump_functions_after_inlining): Update type_preserved.
	Explicitely create jump functions when combining one with
	pass_through.
	(ipa_write_jump_function): Stream the type_preserved flags.
	(ipa_read_jump_function): Likewise.

From-SVN: r202036
2013-08-27 23:41:15 +02:00
Jakub Jelinek 74bf76ed78 Makefile.in (omp-low.o): Depend on $(TARGET_H).
* Makefile.in (omp-low.o): Depend on $(TARGET_H).
	* cfgloop.h (struct loop): Add safelen, force_vect, simduid.
	* function.h (struct function): Add has_force_vect_loops and
	has_simduid_loops.
	* gimple-pretty-print.c (dump_gimple_omp_for): Handle
	GF_OMP_FOR_KIND*.
	* gimple.c (gimple_build_omp_critical): Add KIND argument and
	handle it.
	* gimple.def: Update CLAUSES comments.
	* gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
	(gimple_build_omp_for): Add argument to prototype.
	(gimple_omp_for_kind): New.
	(gimple_omp_for_set_kind): New.
	* gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
	GOVD_DATA_SHARE_CLASS.
	(enum omp_region_type): Add ORT_SIMD.
	(gimple_add_tmp_var): Handle ORT_SIMD.
	(gimplify_var_or_parm_decl): Same.
	(is_gimple_stmt): Same.
	(omp_firstprivatize_variable): Same.
	(omp_add_variable): Only use splay_tree_insert if lookup failed.
	(omp_notice_variable): Handle ORT_SIMD.
	(omp_is_private): Add SIMD argument and handle it as well as
	ORT_SIMD.
	(omp_check_private): Handle ORT_SIMD.
	(gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
	OMP_CLAUSE_SAFELEN.
	(gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
	Handle OMP_CLAUSE_LASTPRIVATE.
	(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
	OMP_CLAUSE_SAFELEN.
	(gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
	(gimplify_expr): Handle OMP_SIMD.
	* internal-fn.c (expand_GOMP_SIMD_LANE): New.
	(expand_GOMP_SIMD_VF): New.
	(expand_GOMP_SIMD_LAST_LANE): New.
	* internal-fn.def (GOMP_SIMD_LANE): New.
	(GOMP_SIMD_VF): New.
	(GOMP_SIMD_LAST_LANE): New.
	* omp-low.c: Include target.h.
	(extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
	OMP_CLAUSE_SAFELEN.
	(check_omp_nesting_restrictions): Same.
	(omp_max_vf): New.
	(lower_rec_simd_input_clauses): New.
	(lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
	OMP_CLAUSE_LINEAR.
	(lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
	GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
	(expand_omp_build_assign): New.
	(expand_omp_for_init_counts): New.
	(expand_omp_for_init_vars): New.
	(extract_omp_for_update_vars): New.
	(expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
	and rewrite accordingly.
	(expand_omp_simd): New.
	(expand_omp_for): Use expand_omp_simd.
	(lower_omp_for_lastprivate): Unshare vinit when appropriate.
	(lower_omp_for): Do not lower the body.
	* tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
	in their own loops.
	* tree-flow.h (find_omp_clause): Remove prototype.
	* tree-if-conv.c (main_tree_if_conversion): Run if doing if
	conversion, forcing vectorization of the loop, or if
	flag_tree_vectorize.
	(gate_tree_if_conversion): Similarly.
	* tree-inline.c (remap_gimple_stmt): Pass for kind argument to
	gimple_build_omp_for.
	(copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
	* tree-parloops (create_parallel_loop): Pass kind argument to
	gimple_build_omp_for.
	* tree-pretty-print.c (dump_omp_clause): Add cases for
	OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
	OMP_CLAUSE__SIMDUID_.
	(dump_generic_node): Handle OMP_SIMD.
	* tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
	* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
	unroll OMP_SIMD loops here.
	* tree-ssa-loop.c (gate_tree_vectorize): Run if
	has_force_vect_loops.
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
	loop->safelen
	(vect_analyze_data_refs): Handle simd loops.
	* tree-vect-loop.c (vectorizable_live_operation): Handle
	IFN_GOMP_SIMD*.
	* tree-vect-stmts.c (vectorizable_call): Handle
	IFN_GOMP_SIMD_LANE.
	(vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
	(vectorizable_load): Same.
	* tree-vectorizer.c: Include hash-table.h and
	tree-ssa-propagate.h.
	(struct simduid_to_vf): New.
	(simduid_to_vf::hash): New.
	(simduid_to-vf::equal): New.
	(struct simd_array_to_simduid): New.
	(simd_array_to_simduid::hash): New.
	(simd_array_to_simduid::equal): New.
	(adjust_simduid_builtins): New.
	(struct note_simd_array_uses_struct): New.
	(note_simd_array_uses_cb): New.
	(note_simd_array_uses): New.
	(vectorize_loops): Handle simd hints and adjust simd builtins
	accordingly.
	* tree-vectorizer.h (struct _stmt_vec_info): Add
	simd_lane_access_p field.
	(STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
	* tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
	OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
	(omp_clause_code_name): Same.
	(walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
	OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
	* tree.def (OMP_SIMD): New entry.
	* tree.h (enum omp_clause_code): Add entries for
	OMP_CLAUSE_LINEAR, OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
	OMP_CLAUSE__SIMDUID_.
	(OMP_CLAUSE_DECL): Adjust range for new clauses.
	(OMP_CLAUSE_LINEAR_NO_COPYIN): New.
	(OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
	(OMP_CLAUSE_LINEAR_STEP): New.
	(OMP_CLAUSE_SAFELEN_EXPR): New.
	(OMP_CLAUSE__SIMDUID__DECL): New.
	(find_omp_clause): New prototype.
cp/
	* cp-tree.h (CP_OMP_CLAUSE_INFO): Adjust range for new clauses.

Co-Authored-By: Aldy Hernandez <aldyh@redhat.com>

From-SVN: r202029
2013-08-27 18:38:00 +00:00
H.J. Lu d0cf4e841d Update Haswell processor detection
* config/i386/driver-i386.c (host_detect_local_cpu): Update
	Haswell processor detection.

From-SVN: r202028
2013-08-27 11:11:23 -07:00