154335 Commits

Author SHA1 Message Date
Richard Earnshaw
867944533b [arm] Rewrite -march and -mcpu options for passing to
The assembler does not understand all the '+' options accepted by the
compiler.  The best solution to this is to simply strip the extensions
and just pass the raw architecture or cpu name through to the
assembler.  We will use .arch and .arch_extension directives anyway to
turn on or off individual features.  We already do something similar
for big.little combinations and this just extends this principle a bit
further.  This patch also fixes a possible bug by ensuring that the
limited string copy is correctly NUL-terminated.

While messing with this code I've also taken the opportunity to clean up
the duplicate definitions of EXTRA_SPEC_FUNCTIONS by moving it outside of
the ifdef wrapper.

	* config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
	(ASM_REWRITE_SPEC_FUNCTIONS): New macro.
	(BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
	(ASM_CPU_SPEC): Rewrite.
	(MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
	(EXTRA_SPEC_FUNCTIONS): Move outside of ifdef.  Use
	MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS.  Remove
	reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
	* common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
	copied string is NUL-terminated.  Also strip any characters prefixed
	by '+'.
	(arm_rewrite_selected_arch): New function.
	(arm_rewrite_march): New function.

From-SVN: r249280
2017-06-16 21:01:29 +00:00
Richard Earnshaw
80448ef602 [arm] Use strings for -march, -mcpu and -mtune options
In order to support more complex specifications for cpus and architectures
we need to move away from using enumerations to represent the set of
permitted options.  This basic change just moves the option parsing
infrastructure over to that, but changes nothing more beyond generating
a hint when the specified option does not match a known target (previously
the help option was able to print out all the permitted values, but we
can no-longer do that.

	* config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
	(x_arm_cpu_string, x_arm_tune_string): Likewise.
	(march, mcpu, mtune): Convert to string-based options.
	* config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
	(arm_parse_arch_cpu_name): New function.
	(arm_configure_build_target): Use arm_parse_arch_cpu_name to
	identify selected architecture or CPU.
	(arm_option_save): New function.
	(TARGET_OPTION_SAVE): Redefine.
	(arm_option_restore): Restore string options.
	(arm_option_print): Print string options.

From-SVN: r249279
2017-06-16 21:01:22 +00:00
Martin Sebor
b3d8d88efa PR tree-optimization/80934 - bzero should be assumed not to escape pointer argument
PR tree-optimization/80934 - bzero should be assumed not to escape pointer argument
PR tree-optimization/80933 - redundant bzero/bcopy calls not eliminated

gcc/ChangeLog:

	PR tree-optimization/80933
	PR tree-optimization/80934
	* builtins.c (fold_builtin_3): Do not handle bcmp here.
	* gimple-fold.c (gimple_fold_builtin_bcmp): New function.
	(gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
	(gimple_fold_builtin): Call them.

gcc/testsuite/ChangeLog:

	PR tree-optimization/80933
	PR tree-optimization/80934
	* gcc.dg/fold-bcopy.c: New test.
	* gcc.dg/tree-ssa/ssa-dse-30.c: Likewise..
	* gcc.dg/tree-ssa/alias-36.c: Likewise.
	* gcc/testsuite/gcc.dg/pr79214.c: Adjust.
	* gcc.dg/tree-prof/val-prof-7.c: Likewise.
	* gcc.dg/Wsizeof-pointer-memaccess1.c: Likewise.
	* gcc.dg/builtins-nonnull.c: Likewise.

From-SVN: r249278
2017-06-16 14:52:03 -06:00
Jan Hubicka
aa11163b18 gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path as unlikely; update profile.
* gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
	as unlikely; update profile.

From-SVN: r249277
2017-06-16 19:02:46 +00:00
Jan Hubicka
8d71d7cd02 predict.c (force_edge_cold): Handle declaring edges impossible more aggresively.
* predict.c (force_edge_cold): Handle declaring edges impossible
	more aggresively.

From-SVN: r249276
2017-06-16 19:02:11 +00:00
Jan Hubicka
8fb0ae8223 tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update profile.
* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
	profile.
	(try_unroll_loop_completely): Fix reporting.

From-SVN: r249275
2017-06-16 19:01:39 +00:00
Jan Hubicka
deca6d6072 * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
From-SVN: r249274
2017-06-16 19:01:01 +00:00
Nathan Sidwell
4086ef7d89 * pt.c (tsubst_baselink): Fix & clarify formatting.
From-SVN: r249273
2017-06-16 18:38:28 +00:00
James Greenhalgh
56960fd6d1 [Patch ARM] Fix PR71778
gcc/

	PR target/71778
	* config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
	if given a non-constant argument for an intrinsic which requires a
	constant.

gcc/testsuite/

	PR target/71778
	* gcc.target/arm/pr71778.c: New.

From-SVN: r249272
2017-06-16 17:29:56 +00:00
Jan Hubicka
ec73e54d0a * gcc.dg/tree-ssa/ssa-lim-11.c: Disable branch prediction.
From-SVN: r249271
2017-06-16 17:19:50 +00:00
Jan Hubicka
28ae04d46e profile.c (compare_freqs): New function.
* profile.c (compare_freqs): New function.
	(branch_prob): Sort edge list.
	(find_spanning_tree): Assume that the list is priority sorted.

From-SVN: r249270
2017-06-16 16:08:36 +00:00
Nathan Sidwell
e249fcad3a cp-tree.h (build_this_parm, [...]): Add FN parm.
gcc/cp/
	* cp-tree.h (build_this_parm, cp_build_parm_decl)
	build_artificial_parm): Add FN parm.
	* decl.c (start_cleanup_fn): Adjust.
	(build_this_parm): Add FN parm, pass it through.
	(grokfndecl): Adjust parm building.
	* decl2.c (cp_build_parm_decl): Add FN parm, set context.
	(build_artificial_parm): Add FN parm, pass through.
	(maybe_retrofit_in_chrg): Adjust parm building.
	(start_static_storage_duration_function): Likwise.
	* lambda.c (maybe_aadd_lambda_conv_op): Likewise.
	* method.c (implicitly_declare_fn): Likewise.
	* parser.c (inject_this_parameter): Likewise.

	libcc1/
	* libcp1plugin.cc (plugin_build_decl): Adjust parm building.
(--This line, and those below, will be ignored--

M    gcc/cp/parser.c
M    gcc/cp/ChangeLog
M    gcc/cp/decl.c
M    gcc/cp/lambda.c
M    gcc/cp/cp-tree.h
M    gcc/cp/method.c
M    gcc/cp/decl2.c
M    libcc1/libcp1plugin.cc
M    libcc1/ChangeLog

From-SVN: r249268
2017-06-16 15:42:33 +00:00
Jonathan Wakely
78a8b676f1 Add std::get_deleter overload with correct signature
* include/bits/shared_ptr.h (get_deleter): Add overload matching
	standard signature.
	* include/bits/shared_ptr_base.h (__shared_ptr): Declare new
	get_deleter overload as a friend.
	* testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.

From-SVN: r249267
2017-06-16 16:20:14 +01:00
Nathan Sidwell
d7b11178c4 Symbol tables are insert only.
* cp-tree.h (default_hash_traits <lang_identifier *>): Don't
	derive from pointer_hash.  Make undeletable.

From-SVN: r249266
2017-06-16 14:54:39 +00:00
Nathan Sidwell
ba27a39d37 class.c (resort_type_method_vec): Avoid potential unsigned overflow.
* class.c (resort_type_method_vec): Avoid potential unsigned
	overflow.

From-SVN: r249265
2017-06-16 14:49:35 +00:00
Nathan Sidwell
0d1dc5862f Don't defer noexcept_deferred_spec.
* cp-tree.h (unevaluated_noexcept_spec): Don't declare.
	* decl.c (cxx_init_decl_processing): Initialize
	noexcept_deferred_spec.
	* except.c (unevaluated_noexcept_spec): Delete.
	* class.c (deduce_noexcept_on_destructor): Use
	noexcept_deferred_spec directly.
	* method.c (implicitly_declare_fn): Likewise.

From-SVN: r249264
2017-06-16 14:43:20 +00:00
Nathan Sidwell
6a2dfd9a66 Make keyed_classes a vector.
* cp-tree.h (CPTI_KEYED_CLASSES, keyed_classes): Delete.
	(keyed_classes): Declare as vector.
	* decl.c (keyed_classes): Define.
	(cxx_init_decl_processing): Allocate it.
	(record_key_method_defined): Use vec_safe_push.
	* class.c (finish_struct_1): Likewise.
	* pt.c (instantiate_class_template_1): Likewise.
	* decl2.c (c_parse_final_cleanups): Reverse iterate keyed_classes.

From-SVN: r249263
2017-06-16 14:33:45 +00:00
Nathan Sidwell
8c1ca7ee3a Fix keyboard flub.
From-SVN: r249262
2017-06-16 14:33:28 +00:00
Jakub Jelinek
fb7a163397 re PR libstdc++/81092 (Missing symbols for new std::wstring constructors)
PR libstdc++/81092
	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.

From-SVN: r249260
2017-06-16 16:29:55 +02:00
Nathan Sidwell
ac9a1c7ec5 Make rtti lazier
Make rtti lazier
	* rtti.c (enum tinfo_kind): Add TK_DERIVED_TYPES,
	TK_VMI_CLASS_TYPES, TK_MAX.  Delete TK_FIXED.
	(tinfo_names): New.
	(typeid_ok_p): Add quotes to error messages.  Use get_tinfo_desc.
	(get_tinfo_decl): Use get_tinfo_desc.
	(get_pseudo_ti_init): Likewise. Adjust VMI construction.
	(create_pseudo_type_info): Delete.
	(get_pseudo_ti_index): Just determine the index.
	(get_tinfo_desc): New.  Create all types lazily.
	(create_tinfo_types): Just allocate the descriptor array.
	(emit_support_tinfos): Use non-inserting type lookup.  Set builtin
	location.

From-SVN: r249258
2017-06-16 14:16:20 +00:00
Jonathan Wakely
bfe8a528aa Fix std::wbuffer_convert::sync()
* include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
	* testsuite/22_locale/conversions/buffer/2.cc: New.

From-SVN: r249255
2017-06-16 14:23:42 +01:00
Richard Biener
01f1c24e42 re PR tree-optimization/81090 ([graphite] ICE in loop_preheader_edge)
2017-06-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/81090
	* passes.def (pass_record_bounds): Remove.
	* tree-pass.h (make_pass_record_bounds): Likewise.
	* tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
	make_pass_record_bounds): Likewise.
	* tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
	not free niter estimates at the beginning but at the end.
	* tree-scalar-evolution.c (scev_finalize): Free niter estimates.

	* gcc.dg/graphite/pr81090.c: New testcase.

From-SVN: r249249
2017-06-16 12:19:24 +00:00
Jonathan Wakely
4317778a9b PR libstdc++/81092 add std::wstring symbols and bump library version
PR libstdc++/81092
	* acinclude.m4: Bump libtool_VERSION.
	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
	* config/abi/pre/gnu.ver: Add wstring constructor symbols to
	GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
	to new GLIBCXX_3.4.25 version.
	* doc/xml/manual/abi.xml: Document new versions.
	* doc/html/*: Regenerate.
	* testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
	constructors to ensure required symbols are exported.
	* testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
	* testsuite/util/testsuite_abi.cc: Add new version.

From-SVN: r249246
2017-06-16 12:54:59 +01:00
Richard Biener
66846c0794 tree-switch-conversion.c (emit_case_bit_tests): Adjust initializer to workaround ICE in host GCC 4.8.
2017-06-16  Richard Biener  <rguenther@suse.de>

	* tree-switch-conversion.c (emit_case_bit_tests): Adjust
	initializer to workaround ICE in host GCC 4.8.

From-SVN: r249245
2017-06-16 11:47:00 +00:00
Jan Hubicka
7d72a77f93 ipa-inline-transform.c (update_noncloned_frequencies): Update also counts.
* ipa-inline-transform.c (update_noncloned_frequencies): Update also
	counts.
	(clone_inlined_nodes): Update.

From-SVN: r249244
2017-06-16 11:41:19 +00:00
Janus Weil
8d94f9324a re PR fortran/80983 ([F03] memory leak when calling procedure-pointer component with allocatable result)
2017-06-16  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/80983
	* gfortran.dg/proc_ptr_comp_51.f90: Repair test case.

From-SVN: r249243
2017-06-16 12:15:42 +02:00
Maxim Kuvyrkov
70c51b5891 Update prefetch tuning parameters for qdf24xx.
* config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
	prefetch settings, and enable prefetching by default at -O3.

Change-Id: I2f0da54a8c262f6fbd0dcfde4584141bb09f1013

From-SVN: r249242
2017-06-16 09:31:00 +00:00
Maxim Kuvyrkov
16b2cafd00 Enable -fprefetch-loop-arrays at given optimization level.
* config/aarch64/aarch64.c (aarch64_override_options_internal):
	Set flag_prefetch_loop_arrays according to tuning data.

Change-Id: Id41411e671e0a55dc7268e0ad0a4e8ff1421c90a

From-SVN: r249241
2017-06-16 09:30:52 +00:00
Maxim Kuvyrkov
9d2c6e2eb7 Add prefetch configuration to aarch64 backend.
* config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
	New tune structure.
	(struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
	[Unrelated to main purpose of the patch] Place the pointer field last
	to enable type checking errors when tune structure are wrongly merged.
	* config/aarch64/aarch64.c (generic_prefetch_tune,)
	(exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
	(thunderx2t99_prefetch_tune): New tune constants.
	(tune_params *_tunings): Update all tunings (no functional change).
	(aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
	PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
	from tunings structures.

Change-Id: I1ddbac1863dcf078a2e5b14dd904debc76a7da94

From-SVN: r249240
2017-06-16 09:30:43 +00:00
Jakub Jelinek
b783399af9 re PR sanitizer/81094 (-fsanitize=object-size does not instrument aggregate call arguments)
PR sanitizer/81094
	* ubsan.c (instrument_null): Add T argument, use it instead
	of computing it based on IS_LHS.
	(instrument_object_size): Likewise.
	(pass_ubsan::execute): Adjust instrument_null and
	instrument_object_size callers to pass gimple_get_lhs or
	gimple_assign_rhs1 result to it.  Use instrument_null instead of
	calling get_base_address and instrument_mem_ref.  Handle
	aggregate call arguments for object-size sanitization.

	* c-c++-common/ubsan/object-size-11.c: New test.

From-SVN: r249239
2017-06-16 11:13:28 +02:00
Jonathan Wakely
6ec3c9c841 Fix missing returns in libstdc++ header and tests
* include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
	return statement.
	* testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
	Return void.
	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
	Likewise.
	* testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
	missing return statements.
	* testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
	Likewise.
	* testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
	Return void.
	* testsuite/special_functions/14_expint/pr68397.cc: Likewise.

From-SVN: r249238
2017-06-16 09:13:37 +01:00
Yury Gribov
32e37414af re PR tree-optimization/81089 (ICE: tree check: expected ssa_name, have integer_cst in register_edge_assert_for_2, at tree-vrp.c:5023)
2017-06-16  Yury Gribov  <tetra2005@gmail.com>

	PR tree-optimization/81089
	* tree-vrp.c (is_masked_range_test): Validate operands of
	subexpression.

From-SVN: r249237
2017-06-16 07:16:34 +00:00
Rainer Orth
0186cacf95 Don't use >& for I/O redirection
* Makefile.am (check-go-tool): Don't use >& for I/O redirection.
	* Makefile.in: Regenerate.

From-SVN: r249236
2017-06-16 06:58:06 +00:00
François Dumont
7d594224c2 stl_bvector.h (__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)): Change signature.
2017-06-16  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/stl_bvector.h
	(__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
	Change signature.
	(std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
	(_Bvector_impl_data): New.
	(_Bvector_impl): Inherits from latter.
	(_Bvector_impl(_Bit_alloc_type&&)): Delete.
	(_Bvector_impl(_Bvector_impl&&)): New, default.
	(_Bvector_base()): Default.
	(_Bvector_base(_Bvector_base&&)): Default.
	(_Bvector_base::_M_move_data(_Bvector_base&&)): New.
	(vector(vector&&, const allocator_type&)): Use latter.
	(vector<bool>::operator=(vector&&)): Likewise.
	(vector<bool>::vector()): Default.
	(vector<bool>::vector(vector&&)): Default.
	(vector<bool>::assign(_InputIterator, _InputIterator)): Use
	_M_assign_aux.
	(vector<bool>::assign(initializer_list<bool>)): Likewise.
	(vector<bool>::_M_initialize_value(bool)): New.
	(vector<bool>(size_type, const bool&, const allocator_type&)): Use
	latter.
	(vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
	Likewise.
	(vector<bool>::_M_fill_assign(size_t, bool)): Likewise.

From-SVN: r249235
2017-06-16 05:28:06 +00:00
Martin Sebor
c3684b7b86 PR c++/80560 - warn on undefined memory operations involving non-trivial types
gcc/c-family/ChangeLog:

	PR c++/80560
	* c.opt (-Wclass-memaccess): New option.

gcc/cp/ChangeLog:

	PR c++/80560
	* call.c (first_non_public_field, maybe_warn_class_memaccess): New
	functions.
	(has_trivial_copy_assign_p, has_trivial_copy_p): Ditto.
	(build_cxx_call): Call maybe_warn_class_memaccess.

gcc/ChangeLog:

	PR c++/80560
	* dumpfile.c (dump_register): Avoid calling memset to initialize
	a class with a default ctor.
	* gcc.c (struct compiler): Remove const qualification.
	* genattrtab.c (gen_insn_reserv): Replace memset with initialization.
	* hash-table.h: Ditto.
	* ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
	  assignment.
	* ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
	* omp-low.c (lower_omp_ordered_clauses): Replace memset with
	default ctor.
	* params.h (struct param_info): Make struct members non-const.
	* tree-switch-conversion.c (emit_case_bit_tests): Replace memset
	with default initialization.
	* vec.h (vec_copy_construct, vec_default_construct): New helper
	functions.
	(vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
	with vec_copy_construct.
	(vect<T>::quick_grow_cleared): Replace memset with default ctor.
	(vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
	* doc/invoke.texi (-Wclass-memaccess): Document.

libcpp/ChangeLog:

	PR c++/80560
	* line-map.c (line_maps::~line_maps): Avoid calling htab_delete
	with a null pointer.
	(linemap_init): Avoid calling memset on an object of a non-trivial
	type.

libitm/ChangeLog:

	PR c++/80560
	* beginend.cc (GTM::gtm_thread::rollback): Avoid calling memset
	on an object of a non-trivial type.
	(GTM::gtm_transaction_cp::commit): Use assignment instead of memcpy
	to copy an object.
	* method-ml.cc (orec_iterator::reinit): Avoid -Wclass-memaccess.

gcc/testsuite/ChangeLog:

	PR c++/80560
	* g++.dg/Wclass-memaccess.C: New test.

From-SVN: r249234
2017-06-15 21:48:59 -06:00
GCC Administrator
6a382041dd Daily bump.
From-SVN: r249233
2017-06-16 00:16:24 +00:00
Nicolas Boulenguez
cb55f77df1 re PR ada/81105 (system-freebsd-x86.ads renamed but referenced by gcc/ada/gcc-interface/Makefile.in)
PR ada/81105
	* gcc-interface/Makefile.in (x86 kfreebsd): Adjust system.ads setting.
	(i[3456]86-pc-gnu): Likewise.
	(x86_64 kfreebsd): Likewise.

From-SVN: r249228
2017-06-15 22:21:56 +00:00
Janus Weil
d0e7a9fdfc re PR fortran/80983 ([F03] memory leak when calling procedure-pointer component with allocatable result)
2017-06-15  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/80983
	* trans-expr.c (gfc_conv_procedure_call): Deallocate the result of
	scalar allocatable procedure-pointer components.


2017-06-15  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/80983
	* gfortran.dg/proc_ptr_comp_51.f90: New test.

From-SVN: r249227
2017-06-15 23:17:48 +02:00
François Dumont
0356a0749b 2017-06-15 François Dumont <fdumont@gcc.gnu.org>
* src/c++98/tree.cc  [!_GLIBCXX_INLINE_VERSION]
	(_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.

From-SVN: r249226
2017-06-15 20:32:09 +00:00
Jan Hubicka
3a849280c7 Revert accidental checkin.
From-SVN: r249225
2017-06-15 18:45:47 +00:00
Jan Hubicka
d1eed638ed re PR lto/69866 (lto1: internal compiler error: in add_symbol_to_partition_1, at lto/lto-partition.c:158)
PR lto/69866
	* lto-symtab.c (lto_symtab_merge_symbols): Drop useless definitions
	that resolved externally.

	* gcc.dg/lto/pr69866_0.c: New test.
	* gcc.dg/lto/pr69866_1.c: Likewise.

From-SVN: r249224
2017-06-15 18:42:10 +00:00
Ramana Radhakrishnan
55dabf65f0 Update comment about is_leaf
crtl->is_leaf has a comment above it referring to "Local Register
Allocation". However this is set by IRA and not LRA since the meaning
of Local Register Allocator in GCC has changed quite drastically since
1999 when this comment was introduced above the variable
current_function_is_leaf. From memory gcc in those days had "local"
and "global" register allocation - however all of this has changed
quite a bit drastically since.

This patch merely updates the comment as I did some head scratching
this morning about how this could be set before Local Register
Allocator especially given the comment in ira.c as below.


 /* Determine if the current function is a leaf before running IRA
     since this can impact optimizations done by the prologue and
     epilogue thus changing register elimination offsets.  */
  crtl->is_leaf = leaf_function_p ();

From-SVN: r249223
2017-06-15 14:17:04 +00:00
Jozef Lawrynowicz
61f5d85294 Fix problems with the MSP430 port's handling of persistent data.
PR target/78818
gcc	* config/msp430/msp430.c (msp430_data_attr): Check that it's possible
	for a variable to have a section before checking if the section has a
	name.
	Set section to.persistent if persistent	attribute is set.
	Warn if .persistent attribute is used on an automatic variable.

tests	* gcc.target/msp430/pr78818-real.c: New template for tests.
	* gcc.target/msp430/pr78818-auto.c: New test.
	* gcc.target/msp430/pr78818-data-region.c: New test.
	* gcc.target/msp430/pr78818-data-sec.c: New test.
	* gcc.target/msp430/pr78818-auto-warn.c: New test.

From-SVN: r249222
2017-06-15 13:38:52 +00:00
Eric Botcazou
0948d23fff re PR rtl-optimization/80474 (ipa-cp wrongly adding LO(symbol) twice)
PR rtl-optimization/80474
	* reorg.c (update_block): Do not ignore instructions in a delay slot.

From-SVN: r249219
2017-06-15 13:24:53 +00:00
Rainer Orth
d12366802a Use pthread effective-target in testsuite
* testsuite: Add dg-require-effective-target pthread to -pthread
	tests.
	Remove explicit target lists from dg-do and dg-options.

	* testsuite/30_threads/async/forced_unwind.cc: Remove explit
	target list from dg-options.
	* testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.

	* 30_threads/shared_mutex/cons/1.cc: Likewise.
	Pass -pthread for all targets.
	* 30_threads/shared_mutex/try_lock/1.cc: Likewise.
	* 30_threads/shared_mutex/try_lock/2.cc: Likewise.
	* 30_threads/shared_mutex/unlock/1.cc: Likewise.

	* testsuite/30_threads/this_thread/57060.cc: Require c++11 via
	dg-require-effective-target.

From-SVN: r249217
2017-06-15 12:18:05 +00:00
Thomas Preud'homme
6820664ac6 [ARM] Make gcc.target/arm/its.c more robust
2017-06-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * gcc.target/arm/its.c: Check that no IT blocks has more than 2
    instructions in it rather than the number of IT blocks being 2.
    Transfer scan directive arm_thumb2 restriction to the whole
    testcase and restrict further to Thumb-only targets.

From-SVN: r249215
2017-06-15 09:31:04 +00:00
Tamar Christina
41c540fc0f sdiv_costs_1.c: Use dg-add-options.
2017-06-15  Tamar Christina  <tamar.christina@arm.com>

	* gcc.target/arm/sdiv_costs_1.c:
	Use dg-add-options.

From-SVN: r249214
2017-06-15 09:23:28 +00:00
Segher Boessenkool
dfc107627c rs6000: Don't use REGNO in the add<mode>3 expander
The argument could be a subreg of reg instead, which means we have to
use reg_or_subregno instead of REGNO.


	* config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
	of REGNO.

From-SVN: r249213
2017-06-15 08:49:17 +02:00
GCC Administrator
0f25124435 Daily bump.
From-SVN: r249212
2017-06-15 00:16:20 +00:00
Ian Lance Taylor
b901cf9dd9 compiler: avoid crash on erroneous type
If there is an error constructing the backend type, the GCC backend
    will report that the size is 1.  That will then cause construction of
    the ptrmask to crash.  Avoid that case by just generating an empty
    ptrmask.
    
    Noticed while compiling a broken package.  The policy I've been
    following is to not commit a test case for a compiler crash on invalid
    code, so no test case.
    
    Reviewed-on: https://go-review.googlesource.com/45775

From-SVN: r249208
2017-06-14 23:42:53 +00:00