Commit Graph

163659 Commits

Author SHA1 Message Date
Martin Liska c98c243078 Come up with TARGET_GET_VALID_OPTION_VALUES option hook (PR driver/83193).
2018-09-03  Martin Liska  <mliska@suse.cz>

        PR driver/83193
	* common/common-target.def: Add TARGET_GET_VALID_OPTION_VALUES.
	* common/common-targhooks.c (default_get_valid_option_values):
        New function.
	* common/common-targhooks.h (default_get_valid_option_values):
        Likewise.
	* common/config/i386/i386-common.c: Move processor_target_table
        from i386.c.
	(ix86_get_valid_option_values): New function.
	(TARGET_GET_VALID_OPTION_VALUES): New macro.
	* config/i386/i386.c (struct ptt): Move to i386-common.c.
	(PTA_*): Move all defined masks into i386-common.c.
	(ix86_function_specific_restore): Use new processor_cost_table.
	* config/i386/i386.h (struct ptt): Moved from i386.c.
	(struct pta): Likewise.
	* doc/tm.texi: Document new TARGET_GET_VALID_OPTION_VALUES.
	* doc/tm.texi.in: Likewise.
	* opt-suggestions.c (option_proposer::suggest_option):
        Pass prefix to build_option_suggestions.
	(option_proposer::get_completions): Likewise.
	(option_proposer::build_option_suggestions): Use the new target
        hook.
	* opts.c (struct option_help_tuple): New struct.
	(print_filtered_help): Use the new target hook.
2018-09-03  Martin Liska  <mliska@suse.cz>

        PR driver/83193
	* gcc.dg/completion-4.c: New test.

From-SVN: r264052
2018-09-03 08:16:27 +00:00
Paolo Carlini d1dfeff079 re PR c++/84980 ([concepts] ICE with missing typename in concept)
/cp
2018-09-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84980
	* constraint.cc (finish_shorthand_constraint): Early return if the
	constraint is erroneous.

/testsuite
2018-09-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84980
	* g++.dg/concepts/pr84980.C: New.

From-SVN: r264051
2018-09-03 07:57:33 +00:00
Martin Liska add4cbca8c Make __builtin_expect effective in switch statements (PR middle-end/PR59521).
2018-09-03  Martin Liska  <mliska@suse.cz>

  PR middle-end/59521
	* predict.c (set_even_probabilities): Add likely_edges
        argument and handle cases where we have precisely one
        likely edge.
	(combine_predictions_for_bb): Catch also likely_edges.
	(tree_predict_by_opcode): Handle gswitch statements.
	* tree-cfg.h (find_case_label_for_value): New declaration.
	(find_taken_edge_switch_expr): Likewise.
	* tree-switch-conversion.c (switch_decision_tree::balance_case_nodes):
        Find pivot in decision tree based on probabily, not by number of
        nodes.
2018-09-03  Martin Liska  <mliska@suse.cz>

  PR middle-end/59521
	* c-c++-common/pr59521-1.c: New test.
	* c-c++-common/pr59521-2.c: New test.
	* gcc.dg/tree-prof/pr59521-3.c: New test.

From-SVN: r264050
2018-09-03 07:51:56 +00:00
GCC Administrator 106fd43fee Daily bump.
From-SVN: r264049
2018-09-03 00:16:50 +00:00
Jerry DeLisle 636b78f0a3 io.h: Change declaration of vlist type to gfc_full_array_i4 to eliminate warning for...
2018-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* io/io.h: Change declaration of vlist type to
	gfc_full_array_i4 to eliminate warning for mismatched type.
	* io/format.c ((parse_format_list): Use gfc_full_array_i4.
	* io/io.h: Use gfc_full_array_i4.

From-SVN: r264043
2018-09-02 15:55:51 +00:00
Bernd Edlinger b5764229c1 c-common.c (braced_list_to_string): Remove eval parameter.
* c-common.c (braced_list_to_string): Remove eval parameter.
	Add some more checks.  Always create zero-terminated STRING_CST.
	* c-common.h (braced_list_to_string): Adjust prototype.

	* c-decl.c (finish_decl): Call braced_list_to_string here ...
	* c-parser.c (c_parser_declaration_or_fndef): ... instead of here.

	* decl.c (eval_check_narrowing): Remove.
	(check_initializer): Move call to braced_list_to_string from here ...
	* typeck2.c (store_init_value): ... to here.
	(digest_init_r): Remove handing of signed/unsigned char strings.

	* c-c++-common/array-init.c: New test.
	* g++.dg/init/string2.C: Remove xfail.

From-SVN: r264042
2018-09-02 09:18:30 -06:00
François Dumont b101633fa6 2018-09-02 François Dumont <fdumont@gcc.gnu.org>
* include/debug/safe_iterator.h
	(_Safe_iterator<_It, _Seq, _Cat>::_Self): New.
	(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>::_Self):
	New.
	(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
	::_OtherSelf): New.
	(_GLIBCXX_DEBUG_VERIFY_OPERANDS, _GLIBCXX_DEBUG_VERIFY_EQ_OPERANDS)
	(_GLIBCXX_DEBUG_VERIFY_REL_OPERANDS)
	(_GLIBCXX_DEBUG_VERIFY_DIST_OPERANDS): Define macros.
	(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
	::operator+(difference_type)): Use latters, inline as friend.
	(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
	::operator-(difference_type)): Likewise.
	(operator==(const _Safe_iterator<>&, const _Safe_iterator<>&)):
	Likewise.
	(operator!=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
	Likewise.
	(operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
	(operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
	Likewise.
	(operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
	(operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
	Likewise.
	(operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
	(operator+(difference_type, const _Safe_iterator<>&)): Likewise.
	(operator-(const _Safe_iterator<>&, difference_type)): Likewise.
	* include/debug/safe_iterator.tcc
	(_Safe_iterator<>::_M_can_advance(difference_type)): Take parameter by
	copy.
	* include/debug/safe_local_iterator.h
	(_Safe_local_iterator<_It, _Seq>::_Self): New.
	(_Safe_local_iterator<_It, _Seq>::_OtherSelf): New.
	(_GLIBCXX_DEBUG_VERIFY_OPERANDS): Define macro.
	(operator==(const _Safe_local_iterator<>&,
	const _Safe_local_iterator<>&)): Use latter, inline as friend.
	(operator!=(const _Safe_local_iterator<>&,
	const _Safe_local_iterator<>&)): Likewise.
	* testsuite/util/testsuite_containers.h: Include utility.
	(struct forward_members_unordered<_Tp, bool>): Remove 2nd template
	parameter.
	(forward_members_unordered<>::forward_members_unordered(value_type&)):
	Add using namespace std::rel_ops.
	Add iterator_concept_checks on local_iterator and const_local_iterator.
	Add asserts on comparison between const_local_iterator and
	local_iterator.
	(struct forward_members_unordered<_Tp, false>): Remove partial
	specialization.
	* testsuite/23_containers/forward_list/types/1.cc: New.
	* testsuite/23_containers/list/types/1.cc: New.

From-SVN: r264039
2018-09-02 10:20:57 +00:00
Gerald Pfeifer 2b35b70414 * doc/standards.texi (Standards): Update Objective-C reference.
From-SVN: r264038
2018-09-02 00:31:10 +00:00
GCC Administrator 5db00d2319 Daily bump.
From-SVN: r264037
2018-09-02 00:16:23 +00:00
Gerald Pfeifer 7894fa6142 * doc/install.texi (Prerequisites): Update link for MPC.
From-SVN: r264033
2018-09-01 21:47:58 +00:00
Gerald Pfeifer fab8c69db7 generic.texi (OpenMP): Adjust link to openmp.org.
* doc/generic.texi (OpenMP): Adjust link to openmp.org.
	* doc/invoke.texi (C Dialect Options): Ditto.

From-SVN: r264032
2018-09-01 21:29:16 +00:00
Gerald Pfeifer d1f43ba348 profile_mode.xml: Update three ieeexplore.ieee.org references.
* doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org
	references.

From-SVN: r264031
2018-09-01 21:27:14 +00:00
Michael Matz 395552b520 re PR tree-optimization/87074 (Unroll and jam bug: O3 result differ from O2)
Fix PR87074

	PR tree-optimization/87074
	* gimple-loop-jam.c (unroll_jam_possible_p): Check loop exit
	PHIs for outer-loop uses.

testsuite/
	* gcc.dg/pr87074.c: New test.

From-SVN: r264029
2018-09-01 17:22:05 +00:00
Gerald Pfeifer c8a4f039fc * doc/install.texi (Prerequisites): Adjust link mpfr.org.
From-SVN: r264028
2018-09-01 12:38:04 +00:00
GCC Administrator 70be9b713b Daily bump.
From-SVN: r264026
2018-09-01 00:16:40 +00:00
Sandra Loosemore 6cec3c81a7 10.cc: Add dg-require-fileio.
2018-08-31  Sandra Loosemore  <sandra@codesourcery.com>

	libstdc++-v3/

	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
	Add dg-require-fileio.
	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
	Likewise.
	* testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc:
	Likewise.
	* testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
	Likewise.
	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc: Likewise.
	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc:
	Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc:
	Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc:
	Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc:
	Likewise.
	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc:
	Likewise.
	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc:
	Likewise.
	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc:
	Likewise.
	* testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise.
	* testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc:
	Likewise.
	* testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc:
	Likewise.
	* testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise.
	* testsuite/27_io/basic_istream/getline/wchar_t/5.cc: Likewise.
	* testsuite/27_io/basic_istream/ignore/wchar_t/2.cc: Likewise.
	* testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise.
	* testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc: Likewise.
	* testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc: Likewise.
	* testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc:
	Likewise.
	* testsuite/27_io/objects/wchar_t/10.cc: Likewise.
	* testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise.
	* testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise.
	* testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise.
	* testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise.
	* testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise.
	* testsuite/experimental/string_view/inserters/wchar_t/2.cc:
	Likewise.
	* testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc: Likewise.

From-SVN: r264022
2018-08-31 15:09:47 -04:00
Richard Biener d5481391bc re PR tree-optimization/87168 (ICE on valid code at -Os and above on x86_64-linux-gnu: verify_ssa failed)
2018-08-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87168
	* tree-ssa-sccvn.c (SSA_VAL): Add visited output parameter.
	(rpo_elim::eliminate_avail): When OP was not visited it must
	be available.

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

From-SVN: r264021
2018-08-31 16:50:13 +00:00
David Malcolm 01540df292 tree-vrp: add "const" qualifier to various value_range pointers
gcc/ChangeLog:
	* tree-vrp.c (copy_value_range): Convert param "from" from
	"value_range *" to "const value_range *".
	(range_is_null): Likewise for param "vr".
	(range_int_cst_p): Likewise.
	(range_int_cst_singleton_p): Likewise.
	(symbolic_range_p): Likewise.
	(value_ranges_intersect_p): Likewise for both params.
	(value_range_nonnegative_p): Likewise for param "vr".
	(value_range_constant_singleton): Likewise.
	(vrp_set_zero_nonzero_bits): Likewise for param "ar".
	(extract_range_into_wide_ints): Likewise for param "vr".
	(extract_range_from_multiplicative_op): Likewise for params "vr0"
	and "vr1".
	(vrp_can_optimize_bit_op): Likewise.
	(extract_range_from_binary_expr_1): Likewise for params "vr0_" and
	"vr1_".
	(extract_range_from_unary_expr): Likewise.
	(debug_value_range): Likewise for param "vr".
	(value_range::dump): Add "const" qualifier.
	(vrp_prop::check_array_ref): Convert local "vr" from
	"value_range *" to "const value_range *".
	(vrp_prop::check_mem_ref): Likewise.
	(vrp_prop::visit_stmt): Likewise for local "old_vr".
	(vrp_intersect_ranges_1): Likewise for param "vr_1".
	(vrp_intersect_ranges): Likewise.
	(simplify_stmt_for_jump_threading): Likewise for local "vr".
	(vrp_prop::vrp_finalize): Likewise.
	* tree-vrp.h (value_range::dump): Add "const" qualifier.
	(vrp_intersect_ranges): Add "const" qualifier to params as above.
	(extract_range_from_unary_expr): Likewise.
	(value_range_constant_singleton): Likewise.
	(symbolic_range_p): Likewise.
	(copy_value_range): Likewise.
	(extract_range_from_binary_expr_1): Likewise.
	(range_int_cst_p): Likewise.
	(vrp_set_zero_nonzero_bits): Likewise.
	(range_int_cst_singleton_p): Likewise.

From-SVN: r264020
2018-08-31 16:45:47 +00:00
Vlad Lazar 66da5b5310 [AArch64] Implement new intrinsics vabsd_s64 and vnegd_s64.
gcc/
2018-08-31  Vlad Lazar  <vlad.lazar@arm.com>

	* config/aarch64/arm_neon.h (vabsd_s64): New.
	(vnegd_s64): Likewise.

gcc/testsuite/
2018-08-31  Vlad Lazar  <vlad.lazar@arm.com>

	* gcc.target/aarch64/scalar_intrinsics.c (test_vnegd_s64): New.
	* gcc.target/aarch64/vneg_s.c (RUN_TEST_SCALAR): New.
	(test_vnegd_s64): Likewise.
	* gcc.target/aarch64/vnegd_64.c: New.
	* gcc.target/aarch64/vabsd_64.c: New.
	* gcc.tartget/aarch64/vabs_intrinsic_3.c: New

From-SVN: r264019
2018-08-31 15:00:54 +00:00
Nathan Sidwell 7a4e1f7d63 [PR c++/87155] Anonymous namespace and
https://gcc.gnu.org/ml/gcc-patches/2018-08/msg02031.html
	PR c++/87155
	PR c++/84707
	cp/
	* name-lookup.c (name_lookup::search_namespace): Don't look at
	inlines when searching for NULL names.
	testsuite/
	* g++.dg/cpp0x/pr87155.C: New.
	* g++.dg/cpp0x/inline-ns10.C: Adjust.

From-SVN: r264016
2018-08-31 12:38:00 +00:00
Martin Jambor 5036f628c7 [PATCH] Fix thinko in estimate_local_effects in IPA-CP
2018-08-31  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (estimate_local_effects): Replace wrong MAX with MIN.

From-SVN: r264015
2018-08-31 14:14:37 +02:00
Martin Liska 6c72e55df0 IPA ICF: make type cache a static field sem_item.
2018-08-31  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_item::add_type): Use
	sem_item::m_type_hash_cache.
	* ipa-icf.h: Move the cache from sem_item_optimizer
	to sem_item.

From-SVN: r264014
2018-08-31 11:37:09 +00:00
Nathan Sidwell 5020c88e53 [C++ PATCH] Remove K&R declaration hack.
https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01885.html
	gcc/
	* doc/extend.texi (Backwards Compatibility): Remove implicit
	extern C leeway of () being (...).
	gcc/cp/
	* decl.c (decls_match): Remove SYSTEM_IMPLICIT_EXTERN_C matching
	of return types and parms.
	* parser.c (cp_parser_parameter_declaration_clause): Likewise,
	'()' always means '(void)'.

From-SVN: r264013
2018-08-31 11:19:33 +00:00
Kyrylo Tkachov 553bb25784 [ipa-inline][obvious] Fix typos in comment
* ipa-inline.c (can_inline_edge_by_limits_p): Fix typos in comment.

From-SVN: r264012
2018-08-31 10:36:54 +00:00
Segher Boessenkool ec26512503 rs6000: Make lround<mode>di2 depend on TARGET_FPRND (PR86684)
TARGET_FPRND should be on for everything ISA 2.04 and later, and
TARGET_VSX implies ISA 2.06 or later; but it is possible to disable
TARGET_FPRND (separately via -mno-fprnd, but also implicitly)
currently, and then things fall down.  This patch makes things not
fall down.


	PR target/86684
	PR target/87149
	* config/rs6000/rs6000.md (lround<mode>di2): Gate on TARGET_FPRND.

From-SVN: r264011
2018-08-31 10:52:13 +02:00
Jakub Jelinek 8e7dfe7144 re PR middle-end/87138 (wrong code with TI multiplication with -O -march=k8 -fno-tree-fre -mavx512bw)
PR middle-end/87138
	* expmed.c (expand_mult_const): Use immed_wide_int_const instead of
	gen_int_mode.  Formatting fixes.

	* gcc.target/i386/avx512bw-pr87138.c: New test.

From-SVN: r264009
2018-08-31 09:49:12 +02:00
Paul Thomas 4e227341f6 re PR fortran/86328 (Runtime segfault reading an allocatable class(*) object in allocate statements)
2018-08-31  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/86328
	PR fortran/86760
	* trans-array.c (gfc_conv_scalarized_array_ref): Do not fix
	info->descriptor but pass it directly to gfc_build_array_ref.
	(gfc_conv_array_ref): Likewise for se->expr.
	* trans.c (gfc_build_array_ref): If 'decl' is a COMPONENT_REF
	obtain the span field directly from it.

2018-08-31  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/86328
	PR fortran/86760
	* gfortran.dg/pr86328.f90 : New test.
	in comment 12 of the PR.
	* gfortran.dg/pr86760.f90 : New test.

From-SVN: r264008
2018-08-31 06:51:31 +00:00
Rainer Orth ee3ec8ac28 Fix PR testsuite/86519 reference.
From-SVN: r264007
2018-08-31 06:43:07 +00:00
GCC Administrator 551e6c16a0 Daily bump.
From-SVN: r264006
2018-08-31 00:16:48 +00:00
Sandra Loosemore 24ce3d9485 noexcept30.C: Make dependence on -fdelete-null-pointer-checks explicit.
2018-08-30  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/testsuite/
	* g++.dg/cpp0x/noexcept30.C: Make dependence on
	-fdelete-null-pointer-checks explicit.
	* g++.dg/cpp1y/constexpr-82218.C: Likewise.
	* g++.dg/expr/pmf-3.C: Likewise.
	* g++.dg/ext/attr-returns-nonnull.C: Likewise.
	* g++.dg/tree-ssa/lifetime-dse1.C: Likewise.
	* g++.dg/tree-ssa/pr61034.C: Likewise.
	* gcc.dg/addr_equal-1.c: Likewise.
	* gcc.dg/ipa/pr85734.c: Likewise.
	* gcc.dg/ipa/propmalloc-1.c: Likewise.
	* gcc.dg/ipa/propmalloc-2.c: Likewise.
	* gcc.dg/ipa/propmalloc-3.c: Likewise.
	* gcc.dg/tree-ssa/pr78154.c: Likewise.
	* gcc.dg/tree-ssa/pr83648.c: Likewise.

	libstdc++-v3/
	* testsuite/experimental/propagate_const/observers/1.cc: Make
	dependence on -fdelete-null-pointer-checks explicit.

From-SVN: r264001
2018-08-30 17:27:44 -04:00
Martin Sebor e602b1e353 PR testsuite/87158 - FAIL gcc.c-torture/execute/memchr-1.c on big endian targets
gcc/testsuite/ChangeLog:
	* gcc.c-torture/execute/memchr-1.c: Correct big-endian expectations.

From-SVN: r264000
2018-08-30 15:25:10 -06:00
Sandra Loosemore 92b6df436d target.def (custom_function_descriptors): Improve documentation.
2018-08-30  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* target.def (custom_function_descriptors): Improve documentation.
	* doc/tm.texi.in (Trampolines): Expand discussion of function
	descriptors and move TARGET_CUSTOM_FUNCTION_DESCRIPTORS to the
	beginning of the section.
	* doc/tm.texi: Regenerated.

From-SVN: r263999
2018-08-30 17:02:37 -04:00
Jose E. Marchesi 429331b676 cfg.h (class auto_edge_flag): Spell out the template-id of the base class in the initializer list.
gcc:

2018-08-30  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* cfg.h (class auto_edge_flag): Spell out the template-id of the
	base class in the initializer list.  This is a workaround for
	building with older GCC.
	(class auto_bb_flag): Likewise.

From-SVN: r263997
2018-08-30 22:28:31 +02:00
Aaron Sawdey 9d36bd3b17 altivec.md (altivec_eq<mode>): Remove star.
2018-08-30  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/altivec.md (altivec_eq<mode>): Remove star.
	(altivec_vcmpequ<VI_char>_p): Remove star.
	* config/rs6000/rs6000-string.c (do_load_for_compare): Support
	vector load modes.
	(expand_strncmp_vec_sequence): New function.
	(emit_final_str_compare_vec): New function.
	(expand_strn_compare): Add support for vector strncmp.
	* config/rs6000/rs6000.opt (-mstring-compare-inline-limit): Change
	length specification to bytes.
	* config/rs6000/vsx.md (vsx_ld_elemrev_v16qi_internal): Remove star.
	(vcmpnezb_p): New pattern.
	* doc/invoke.texi (RS/6000 and PowerPC Options): Update documentation
	for option -mstring-compare-inline-limit.

From-SVN: r263991
2018-08-30 13:17:00 -05:00
Thiago Macieira a73e818148 x86: Move AESNI generation to Skylake and Goldmont
The instruction set first appeared with Westmere, but not all processors
in that and the next few generations have the instructions. According to
Wikipedia[1], the first generation in which all SKUs have AES
instructions are Skylake and Goldmont. I can't find any Skylake,
Kabylake, Kabylake-R or Cannon Lake currently listed at
https://ark.intel.com that says "Intel® AES New Instructions" "No".

[1] https://en.wikipedia.org/wiki/AES_instruction_set

2018-08-30  Thiago Macieira  <thiago.macieira@intel.com>

	* config/i386/i386.c (PTA_WESTMERE): Remove PTA_AES.
	(PTA_SKYLAKE): Add PTA_AES.
	(PTA_GOLDMONT): Likewise.

From-SVN: r263989
2018-08-30 08:59:41 -07:00
Jan Hubicka 4e6a938029 re PR lto/86517 (relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object with LTO)
PR lto/86517
	* lto-opts.c (lto_write_options): Always stream PIC/PIE mode.
	* lto-wrapper.c (merge_and_complain): Fix merging of PIC/PIE.

From-SVN: r263988
2018-08-30 15:50:39 +00:00
Nathan Sidwell 24c35f687a [libcpp] fix some line map comments
https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01978.html
	* include/line-map.h (enum lc_reason): Comment each member
	separately.
	(struct line_maps): Fix reallocator comment.

From-SVN: r263987
2018-08-30 15:16:21 +00:00
Jonathan Wakely 2fb17d2d90 Avoid undefined shifts in ceil2 operations
For values where the result cannot be represented the shift width would
be equal to the width of the type, which is undefined. Perform two
well-defined shifts instead of one possible undefined shift.

	* include/bits/hashtable_policy.h (__clp2): Fix calculation for LLP64
	targets where sizeof(size_t) > sizeof(long). Avoid undefined shifts
	of the number of bits in the type.
	* include/std/bit (__ceil2): Avoid undefined shifts.
	* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Test values with
	the most signifiant bit set.

From-SVN: r263986
2018-08-30 16:07:35 +01:00
Jan Hubicka 2ebbdb6ca3 lto-streamer-out.c (DFS::DFS_write_tree_body): Do not follow TYPE_STUB_DECL.
* lto-streamer-out.c (DFS::DFS_write_tree_body): Do not follow
	TYPE_STUB_DECL.
	(hash_tree): Do not visit TYPE_STUB_DECL.
	* tree-streamer-out.c (write_ts_type_common_tree_pointers): Do not
	stream TYPE_STUB_DECL.
	* tree-streamer-in.c (lto_input_ts_type_common_tree_pointers): Likewise.
	* ipa-utils.h (type_with_linkage_p): Do not rely on TYPE_STUB_DECL
	after free_lang_data.
	(type_in_anonymous_namespace_p): Likewise.

From-SVN: r263985
2018-08-30 15:05:38 +00:00
Qing Zhao 21592ebe9d Move strcmpopt_6.c from gcc.dg to gcc.target/aarch64 and gcc.target/i386.
From-SVN: r263983
2018-08-30 14:46:53 +00:00
Alexander Monakov 22eea6b2f4 gimplefe: expose MULT_HIGHPART_EXPR
* gimple-parser.c (c_parser_gimple_binary_expression): Accept infix
	"__MULT_HIGHPART" for MULT_HIGHPART_EXPR.

From-SVN: r263982
2018-08-30 16:47:59 +03:00
Jan Hubicka a5f4d3d6a1 sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary comment that it has to be even number.
* sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary
	comment that it has to be even number.
	(class sreal): Change m_sig type to int32_t.
	* sreal.c (sreal::dump, sreal::to_int, opreator+, operator-): Use
	int64_t for temporary calculations.
	(sreal_verify_basics): Drop one bit from minimum and maximum.

From-SVN: r263981
2018-08-30 12:58:42 +00:00
Richard Biener b1d5f64492 re PR tree-optimization/87147 (GCC miscompiles at -O3 on valid code)
2018-08-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87147
	* tree-ssa-sccvn.c (SSA_VISITED): New function.
	(visit_phi): When the degenerate result is from the backedge and
	we didn't visit its definition yet drop to VARYING.
	(do_rpo_vn): Properly mark blocks with incoming backedges as executable.

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

From-SVN: r263980
2018-08-30 12:37:10 +00:00
Jan Hubicka 28428506aa lto-streamer-out.c (DFS::DFS_write_tree_body): Do not walk DECL_VINDEX.
* lto-streamer-out.c (DFS::DFS_write_tree_body): Do not walk
	DECL_VINDEX.
	(hash_tree): Likewise.

From-SVN: r263979
2018-08-30 12:36:24 +00:00
Jan Hubicka 7ee6e37a8e tree.c (find_decls_types_r): Walk also TYPE_NEXT_PTR_TO and TYPE_NEXT_REF_TO.
* tree.c (find_decls_types_r): Walk also TYPE_NEXT_PTR_TO
	and TYPE_NEXT_REF_TO.

From-SVN: r263978
2018-08-30 12:32:45 +00:00
Jonathan Wakely 0c05d45624 Fix undefined references seen with mingw-w64
* config/abi/pre/gnu.ver: Add missing exports for mingw.

From-SVN: r263977
2018-08-30 13:28:53 +01:00
Jonathan Wakely 4a559e91b1 Fix __gnu_cxx::_Pointer_adapter for long long arithmetic
* include/ext/pointer.h (_Pointer_adapter): Define operators for
	pointer arithmetic using long long offsets.
	* testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using
	long long values.

From-SVN: r263976
2018-08-30 13:24:06 +01:00
Tamar Christina f7e1d19d58 Limit movmem copies to TImode on AArch64
On AArch64 we have integer modes larger than TImode, and while we can generate
moves for these they're not as efficient.

So instead make sure we limit the maximum we can copy to TImode.  This means
copying a 16 byte struct will issue 1 TImode copy, which will be done using a
single STP as we expect but an CImode sized copy won't issue CImode operations.

I am also moving the residual code inside the if since smallest_mode_for_int may
trap if the mode doesn't exist.  And the only time we know the mode to exist for
sure is when the condition of the if is true.  This also saves repeated calls to
the iterator.

gcc/
2018-08-30  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_movmem): Set TImode max.

gcc/testsuite/
2018-08-30  Tamar Christina  <tamar.christina@arm.com>

 	* gcc.target/aarch64/large_struct_copy_2.c: New.

From-SVN: r263974
2018-08-30 10:40:07 +00:00
Vlad Lazar c729951e9c Enable underflow check in canonicalize_comparison. (PR86995)
gcc/
2018-08-30  Vlad Lazar  <vlad.lazar@arm.com>

	PR middle-end/86995
	* expmed.c (canonicalize_comparison): Use wi::sub instead of wi::add
	if to_add is negative.

From-SVN: r263973
2018-08-30 09:30:49 +00:00
GCC Administrator d0eaed46ce Daily bump.
From-SVN: r263972
2018-08-30 00:17:02 +00:00