Commit Graph

165124 Commits

Author SHA1 Message Date
Hans-Peter Nilsson
63100c5433 re PR libstdc++/54005 (Use __atomic_always_lock_free in libstdc++ is_lock_free instead of __atomic_is_lock_free)
PR libstdc++-v3/54005
	* include/bits/atomic_base.h (__atomic_base<_TTp>::is_lock_free(),
	__atomic_base<_PTp*>::is_lock_free()): Call __atomic_always_lock_free
	with the type-derived _S_alignment instead of __alignof the object.
	* include/std/atomic (atomic<T>::is_lock_free()): Likewise.

From-SVN: r266018
2018-11-11 22:20:19 +00:00
Sandra Loosemore
6157c37500 re PR c/26366 (__builtin_expect needs better documentation)
2018-11-11  Sandra Loosemore  <sandra@codesourcery.com>

	PR c/26366

	gcc/
	* doc/extend.texi (Other Builtins): Document probability associated
	with __builtin_expect.

From-SVN: r266017
2018-11-11 13:39:10 -05:00
Uros Bizjak
bd5d396157 re PR target/87928 (ICE in ix86_compute_frame_layout, at config/i386/i386.c:11161 since r228607)
PR target/87928
	* config/i386/i386.h (STACK_BOUNDARY): Use TARGET_64BIT_MS_ABI
	instead of (TARGET_64BIT && ix86_abi == MS_ABI).
	* config/i386/darwin.h (STACK_BOUNDARY): Ditto.
	* config/i386/cygming.h (STACK_BOUNDARY): Remove.

testsuite /Changelog:

	PR target/87928
	* gcc.target/i386/pr87928.c: New test.

From-SVN: r266016
2018-11-11 18:49:33 +01:00
Xianmiao Qu
6d6fbec5f3 csky-linux-elf.h (CC1_SPEC): Support -profile.
2018-11-11  Xianmiao Qu  <xianmiao_qu@c-sky.com>

	* config/csky/csky-linux-elf.h (CC1_SPEC): Support -profile.

From-SVN: r266013
2018-11-11 14:56:23 +00:00
Xianmiao Qu
917ecacc5b csky.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2018-11-11  Xianmiao Qu  <xianmiao_qu@c-sky.com>

	* config/csky/csky.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.

From-SVN: r266012
2018-11-11 13:44:01 +00:00
Richard Biener
2506b92c56 tree-vrp.h (class value_range_base): New base class for value_range containing all but the m_equiv member.
2018-11-11  Richard Biener  <rguenther@suse.de>

	* tree-vrp.h (class value_range_base): New base class for
	value_range containing all but the m_equiv member.
	(dump_value_range_base): Add.
	(range_includes_zero_p): Work on value_range_base.
	* tree-vrp.c (value_range_base::set): Split out base handling
	from...
	(value_range::set): this.
	(value_range::set_equiv): New.
	(value_range_base::value_range_base): New constructors.
	(value_range_base::check): Split out base handling from...
	(value_range::check): this.
	(value_range::equal_p): Refactor in terms of
	ignore_equivs_equal_p which is now member of the base.
	(value_range_base::set_undefined): New.
	(value_range_base::set_varying): Likewise.
	(value_range_base::dump):Split out base handling from...
	(value_range::dump): this.
	(value_range_base::set_and_canonicalize): Split out base handling
	from...
	(value_range::set_and_canonicalize): this.
	(value_range_base::union_): New.
	* ipa-prop.h (struct ipa_jump_func): Use value_range_base *
	for m_vr.
	* ipa-cp.c (class ipcp_vr_lattice): Use value_range_base
	instead of value_range everywhere.
	(ipcp_vr_lattice::print): Use dump_value_range_base.
	(ipcp_vr_lattice::meet_with): Adjust.
	(ipcp_vr_lattice::meet_with_1): Likewise.
	(ipa_vr_operation_and_type_effects): Likewise.
	(propagate_vr_across_jump_function): Likewise.
	* ipa-prop.c (struct ipa_vr_ggc_hash_traits): Likewise.
	(ipa_get_value_range): Likewise.
	(ipa_set_jfunc_vr): Likewise.
	(ipa_compute_jump_functions_for_edge): Likewise.

From-SVN: r266011
2018-11-11 08:51:34 +00:00
Jonathan Wakely
3d18dc9db0 Implement P0318R1 unwrap_ref_decay and unwrap_reference
Implement P0318R1 unwrap_ref_decay and unwrap_reference
	* include/std/type_traits (unwrap_reference, unwrap_reference_t)
	(unwrap_ref_decay, unwrap_ref_decay_t): New traits and aliases.
	* testsuite/20_util/unwrap_reference/1.cc: New test.
	* testsuite/20_util/unwrap_reference/2.cc: New test.

From-SVN: r266010
2018-11-11 05:17:03 +00:00
Jonathan Wakely
37b736f6bd Implement P1007R3 std::assume_aligned
Implement P1007R3 std::assume_aligned
	* include/std/memory (assume_aligned): Implement for C++17.
	* testsuite/20_util/assume_aligned/1.cc: New test.
	* testsuite/20_util/assume_aligned/2_neg.cc: New test.
	* testsuite/20_util/assume_aligned/3.cc: New test.

From-SVN: r266009
2018-11-11 05:16:51 +00:00
Sandra Loosemore
47d591cf00 re PR middle-end/65703 (-fdefer-pop documentation is confusing)
2018-11-10  Sandra Loosemore  <sandra@codesourcery.com>

	PR middle-end/65703

	gcc/
	* doc/invoke.texi (Optimize Options): Add @opindex entries
	for the positive forms of -fno-xxx and -mno-xxx options
	that were lacking them.

From-SVN: r266008
2018-11-10 20:33:53 -05:00
GCC Administrator
9b20345393 Daily bump.
From-SVN: r266007
2018-11-11 00:16:47 +00:00
Segher Boessenkool
16ac6fa5a0 combine: More make_more_copies
This makes make_more_copies do what its documentation says, that is,
only make an intermediate pseudo if copying to a pseudo.

This regressed generated code quality when we didn't keep the original
notes that were on the copy, but since r265582 we do, and only allowing
pseudos now is a win.  It also simplifies the code.


	* combine.c (make_more_copies): Only make an intermediate copy if the
	dest of a move is a pseudo.

From-SVN: r266004
2018-11-11 00:12:48 +01:00
GCC Administrator
babe0c748d Daily bump.
From-SVN: r266001
2018-11-10 00:16:45 +00:00
Martin Sebor
397fd63d80 re PR testsuite/87965 (Test cases c-c++-common/pr60226.c and gcc.dg/pr39323-1.c fail starting with r265977)
gcc/testsuite/ChangeLog:

	PR testsuite/87965
	* c-c++-common/pr60226.c: Adjust text of expected diagnostic.
	* gcc.dg/pr39323-1.c: Ditto.

From-SVN: r265998
2018-11-09 16:15:59 -07:00
Stafford Horne
1dbff00c02 MAINTAINERS: add myself as or1k maintainer
ChangeLog:

yyyy-mm-dd  Stafford Horne  <shorne@gmail.com>

	* MAINTAINERS (CPU Port Maintainers): Add myself for or1k.
	(Write After Approval): Remove myself.

From-SVN: r265996
2018-11-09 21:22:20 +00:00
Paul Koning
4476242b85 Walloca-16.c: Ignore conflicting types for built-in warnings.
* gcc.dg/Walloca-16.c: Ignore conflicting types for built-in
	warnings.
	* gcc.dg/Wrestrict-4.c: Ditto.
	* gcc.dg/Wrestrict-5.c: Ditto.
	* gcc.dg/pr83463.c: Ditto.
	* gcc.dg/torture/pr55890-2.c: Ditto.
	* gcc.dg/torture/pr55890-3.c: Ditto.
	* gcc.dg/torture/pr71816.c: Ditto.

From-SVN: r265995
2018-11-09 16:08:32 -05:00
Maya Rashish
a0f503a0f4 re PR target/87221 (cannot build with -pie)
PR target/87221
	* config/netbsd-elf.h (NETBSD_STARTFILE_SPEC): Use crtbeginS.o for PIE.
	(NETBSD_ENDFILE_SPEC): Use crtendS.o for PIE.

From-SVN: r265994
2018-11-09 13:55:39 -07:00
Sandra Loosemore
e602e1f79b re PR driver/41179 (Documentation for "-fno-toplevel-reorder" is confusing (and wrong))
2018-11-09  Sandra Loosemore  <sandra@codesourcery.com>

	PR driver/41179
	PR middle-end/65703

	gcc/
	* doc/invoke.texi (Optimize Options): Clarify default behavior
	for -fno-toplevel-reorder, -fno-defer-pop, and -fno-branch-count-reg.

From-SVN: r265993
2018-11-09 15:45:06 -05:00
Bernd Edlinger
ab386758ef re PR tree-optimization/87940 (FAIL: gcc.dg/warn-strlen-no-nul.c)
2018-11-09  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR tree-optimization/87940
        * expr.c (string_constant): Don't strip NOPS in subexpressions.
        Fold PLUS_EXPR correctly.

From-SVN: r265992
2018-11-09 20:38:07 +00:00
Ilya Leoshkevich
340e0dd664 S/390: Allow relative addressing of literal pool entries
r265490 allowed the compiler to choose in a more flexible way whether to
use load or load-address-relative-long (LARL) instruction.  When it
chose LARL for literal pool references, the latter ones were rewritten
by pass_s390_early_mach to use UNSPEC_LTREF, which assumes base register
usage, which in turn is not compatible with LARL.  The end result was an
ICE because of unrecognizable insn.

UNSPEC_LTREF and friends are necessary in order to communicate the
dependency on the base register to pass_sched2.  When relative
addressing is used, no base register is necessary, so in such cases the
rewrite must be avoided.

gcc/ChangeLog:

2018-11-09  Ilya Leoshkevich  <iii@linux.ibm.com>

	PR target/87762
	* config/s390/s390.c (s390_safe_relative_long_p): New function.
	(annotate_constant_pool_refs): Skip insns which support
	relative addressing.
	(annotate_constant_pool_refs_1): New helper function.
	(find_constant_pool_ref): Skip insns which support relative
	addression.
	(find_constant_pool_ref_1): New helper function.
	(replace_constant_pool_ref): Skip insns which support
	relative addressing.
	(replace_constant_pool_ref_1): New helper function.
	(s390_mainpool_start): Adapt to the new signature.
	(s390_mainpool_finish): Likewise.
	(s390_chunkify_start): Likewise.
	(s390_chunkify_finish): Likewise.
	(pass_s390_early_mach::execute): Likewise.
	(s390_prologue_plus_offset): Likewise.
	(s390_emit_prologue): Likewise.
	(s390_emit_epilogue): Likewise.

From-SVN: r265991
2018-11-09 20:33:19 +00:00
Jakub Jelinek
81a227c605 c-parser.c (c_parser_omp_clause_final): Use c_parser_expr_no_commas...
c/
	* c-parser.c (c_parser_omp_clause_final): Use
	c_parser_expr_no_commas, convert_lvalue_to_rvalue,
	c_objc_common_truthvalue_conversion, c_fully_fold and parentheses
	parsing instead of c_parser_paren_condition.
	(c_parser_omp_clause_if): Use c_parser_expr_no_commas,
	convert_lvalue_to_rvalue, c_objc_common_truthvalue_conversion and
	c_fully_fold instead of c_parser_condition.
	(c_parser_omp_clause_num_threads, c_parser_omp_clause_num_tasks,
	c_parser_omp_clause_grainsize, c_parser_omp_clause_priority,
	c_parser_omp_clause_hint, c_parser_omp_clause_num_teams,
	c_parser_omp_clause_thread_limit, c_parser_omp_clause_linear): Use
	c_parser_expr_no_commas instead of c_parser_expression.
cp/
	* parser.c (cp_parser_omp_clause_final, cp_parser_omp_clause_if): Use
	cp_parser_assignment_expression instead of cp_parser_condition.
	(cp_parser_omp_clause_num_threads, cp_parser_omp_clause_num_tasks,
	cp_parser_omp_clause_grainsize, cp_parser_omp_clause_priority,
	cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit,
	cp_parser_omp_clause_linear, cp_parser_omp_clause_device): Use
	cp_parser_assignment_expression instead of cp_parser_expression.
	(cp_parser_omp_clause_hint): Likewise.  Formatting fix.
testsuite/
	* c-c++-common/gomp/clauses-5.c: New test.

From-SVN: r265990
2018-11-09 21:22:48 +01:00
Jakub Jelinek
98c91c56bb c-parser.c (c_parser_omp_clause_reduction): Call sorry_at on reduction clause with inscan modifier.
* c-parser.c (c_parser_omp_clause_reduction): Call sorry_at on
	reduction clause with inscan modifier.

	* parser.c (cp_parser_omp_clause_reduction): Call sorry_at on
	reduction clause with inscan modifier.

From-SVN: r265989
2018-11-09 21:21:41 +01:00
Jakub Jelinek
3179ebaeac c-parser.c (c_parser_omp_requires): Call sorry_at on requires clauses other than atomic_default_mem_order.
* c-parser.c (c_parser_omp_requires): Call sorry_at on requires
	clauses other than atomic_default_mem_order.

	* parser.c (cp_parser_omp_requires): Call sorry_at on requires
	clauses other than atomic_default_mem_order.

	* c-c++-common/gomp/requires-1.c: Prune not supported yet messages.
	* c-c++-common/gomp/requires-2.c: Likewise.
	* c-c++-common/gomp/requires-4.c: Likewise.

From-SVN: r265988
2018-11-09 21:20:53 +01:00
Jakub Jelinek
4302dd3dff gimplify.c (gimplify_scan_omp_clauses): Call sorry_at for valid but unsupported lastprivate with conditional modifier.
* gimplify.c (gimplify_scan_omp_clauses): Call sorry_at for valid
	but unsupported lastprivate with conditional modifier.

	* c-c++-common/gomp/lastprivate-conditional-1.c: New test.
	* c-c++-common/gomp/lastprivate-conditional-2.c: New test.

From-SVN: r265987
2018-11-09 21:19:58 +01:00
Jeff Law
c4c44802ab mips.c (mips_loongson_ext2_prefetch_cookie): Handle unused argument better.
* config/mips/mips.c (mips_loongson_ext2_prefetch_cookie): Handle
	unused argument better.  Add gcc_unreachable to silence warning.

From-SVN: r265986
2018-11-09 13:17:52 -07:00
Jakub Jelinek
9666c52203 affinity-fmt.c: Include inttypes.h if HAVE_INTTYPES_H.
* affinity-fmt.c: Include inttypes.h if HAVE_INTTYPES_H.
	(gomp_display_affinity): Use __builtin_choose_expr to handle
	properly handle argument having integral, or pointer or some other
	type.  If inttypes.h is available and PRIx64 is defined, use PRIx64
	with uint64_t type instead of %llx and unsigned long long.

From-SVN: r265985
2018-11-09 21:17:40 +01:00
Jonathan Wakely
213fd71709 PR libstdc++/87787 fix UBsan error in std::vector
PR libstdc++/87787
	* include/bits/stl_uninitialized.h (__relocate_a_1): Do not call
	memmove when there's nothing to copy (and pointers could be null).

From-SVN: r265984
2018-11-09 20:14:07 +00:00
Jonathan Wakely
fcc499722b Fix whitespace in ChangeLog
From-SVN: r265983
2018-11-09 20:13:58 +00:00
Jeff Law
fb9289bed1 gcc.dg/torture/stackalign/builtin-apply-2.c: Skip on v850.
From-SVN: r265982
2018-11-09 13:08:20 -07:00
Ian Lance Taylor
0d26cdf1cf cmd/cgo: fix typo in gccgo name mangling recipe
The code to implement new-style gccgo name mangling had a recipe that
    didn't quite match the one in the compiler (incorrect handling for
    '.'). This showed up as a failure in the gotools cgo test if the
    directory containing the test run included a "." character.
    
    Reviewed-on: https://go-review.googlesource.com/c/147917

From-SVN: r265981
2018-11-09 19:03:59 +00:00
Martin Sebor
79a2c4281c PR middle-end/81824 - Warn for missing attributes with function aliases
gcc/c-family/ChangeLog:

	PR middle-end/81824
	* c-attribs.c (handle_copy_attribute): New function.

gcc/cp/ChangeLog:

	PR middle-end/81824
	* pt.c (warn_spec_missing_attributes): Move code to attribs.c.
	Call decls_mismatched_attributes.

gcc/ChangeLog:

	PR middle-end/81824
	* attribs.c (has_attribute): New helper function.
	(decls_mismatched_attributes, maybe_diag_alias_attributes): Same.
	* attribs.h (decls_mismatched_attributes): Declare.
	* cgraphunit.c (handle_alias_pairs): Call maybe_diag_alias_attributes.
	(maybe_diag_incompatible_alias): Use OPT_Wattribute_alias_.
	* common.opt (-Wattribute-alias): Take an argument.
	(-Wno-attribute-alias): New option.
	* doc/extend.texi (Common Function Attributes): Document copy.
	(Common Variable Attributes): Same.
	* doc/invoke.texi (-Wmissing-attributes): Document enhancement.
	(-Wattribute-alias): Document new option argument.

gcc/testsuite/ChangeLog:

	PR middle-end/81824
	* gcc.dg/Wattribute-alias.c: New test.
	* gcc.dg/Wmissing-attributes.c: New test.
	* gcc.dg/attr-copy.c: New test.
	* gcc.dg/attr-copy-2.c: New test.
	* gcc.dg/attr-copy-3.c: New test.
	* gcc.dg/attr-copy-4.c: New test.

From-SVN: r265980
2018-11-09 10:32:52 -07:00
Jerry DeLisle
900dab1338 re PR fortran/78351 (comma not terminating READ of formatted input field - ok in 4.1.7, not 4.4.7- maybe related to 25419?)
2018-11-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/78351
	* io/transfer.c (read_sf_internal): Delete leftover
	debug code.

From-SVN: r265979
2018-11-09 17:29:33 +00:00
Richard Earnshaw
e82cb04297 arm - minor cleanups for CPU alias support
A couple of very minor issues with the new support for CPU
aliases.

	* config/arm/parsecpu.awk (/alias/): Tighten invisible alias
	matching criteria.  Remove unused array initializer.

From-SVN: r265978
2018-11-09 17:28:57 +00:00
Martin Sebor
4c7bd36194 PR c/87795 - Excessive alignment permitted for functions and labels
gcc/c-family/ChangeLog:

	PR c/87795
	* c-common.c (check_user_alignment): Use MAX_OFILE_ALIGNMENT.

gcc/testsuite/ChangeLog:

	PR c/87795
	* gcc.dg/attr-aligned.c: New test.

From-SVN: r265977
2018-11-09 10:17:47 -07:00
Bill Schmidt
32999d87d6 xmmintrin.h (_mm_cvtss_si32): Fix incorrect constraints by introducing a new temporary.
2018-11-09  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Jinsong Ji  <jji@us.ibm.com>

	* config/rs6000/xmmintrin.h (_mm_cvtss_si32): Fix incorrect
	constraints by introducing a new temporary.
	(_mm_cvtss_si64): Likewise.


Co-Authored-By: Jinsong Ji <jji@us.ibm.com>

From-SVN: r265975
2018-11-09 16:35:23 +00:00
Ian Lance Taylor
71caffb725 syscall: change RLIM_INFINITY from 0xffffffffffffffff to -1
For compatibility with the gc toolchain's syscall package.
    
    Fixes golang/go#28665
    
    Reviewed-on: https://go-review.googlesource.com/c/148697

From-SVN: r265974
2018-11-09 15:30:51 +00:00
Peter Bergner
0b58e8b8ce Update ChangeLog entry
From-SVN: r265971
2018-11-09 09:17:46 -06:00
Martin Liska
47b840eb39 Come up with the flag -fipa-stack-alignment.
2018-11-09  Martin Liska  <mliska@suse.cz>

	* common.opt: Add -fipa-stack-alignment flag.
	* doc/invoke.texi: Document it.
	* final.c (rest_of_clean_state): Guard stack
	shrinking with flag.
2018-11-09  Martin Liska  <mliska@suse.cz>

	* gcc.target/i386/ipa-stack-alignment.c: New test.

From-SVN: r265970
2018-11-09 15:05:40 +00:00
Martin Liska
2e14744fcd Come up with -fipa-reference-addressable flag.
2018-11-09  Martin Liska  <mliska@suse.cz>

	* cgraph.h (ipa_discover_readonly_nonaddressable_vars): Rename
	to ...
	(ipa_discover_variable_flags): ... this.
	* common.opt: Come up with new flag -fipa-reference-addressable.
	* doc/invoke.texi: Document it.
	* ipa-reference.c (propagate): Call the renamed fn.
	* ipa-visibility.c (whole_program_function_and_variable_visibility):
	Likewise.
	* ipa.c (ipa_discover_readonly_nonaddressable_vars): Renamed to
	...
	(ipa_discover_variable_flags): ... this.  Discover
	non-addressable variables only with the newly added flag.
	* opts.c: Enable the newly added flag with -O1 and higher
	optimization level.
2018-11-09  Martin Liska  <mliska@suse.cz>

	* gcc.dg/tree-ssa/writeonly-2.c: New test.

From-SVN: r265969
2018-11-09 15:04:52 +00:00
David Malcolm
9ed3186036 json.cc: fix comment
gcc/ChangeLog:
	* json.cc (selftest::test_writing_literals): Fix comment.

From-SVN: r265968
2018-11-09 13:25:33 +00:00
Jakub Jelinek
207286c314 workshare-reduction-1.c: New test.
2018-11-09  Jakub Jelinek  <jakub@redhat.com>

	* gcc.dg/gomp/workshare-reduction-1.c: New test.
	* gcc.dg/gomp/workshare-reduction-2.c: New test.
	* gcc.dg/gomp/workshare-reduction-3.c: New test.
	* gcc.dg/gomp/workshare-reduction-4.c: New test.
	* gcc.dg/gomp/workshare-reduction-5.c: New test.
	* gcc.dg/gomp/workshare-reduction-6.c: New test.
	* gcc.dg/gomp/workshare-reduction-7.c: New test.
	* gcc.dg/gomp/workshare-reduction-8.c: New test.
	* gcc.dg/gomp/workshare-reduction-9.c: New test.
	* gcc.dg/gomp/workshare-reduction-10.c: New test.
	* gcc.dg/gomp/workshare-reduction-11.c: New test.
	* gcc.dg/gomp/workshare-reduction-12.c: New test.
	* gcc.dg/gomp/workshare-reduction-13.c: New test.
	* gcc.dg/gomp/workshare-reduction-14.c: New test.
	* gcc.dg/gomp/workshare-reduction-15.c: New test.
	* gcc.dg/gomp/workshare-reduction-16.c: New test.
	* gcc.dg/gomp/workshare-reduction-17.c: New test.
	* gcc.dg/gomp/workshare-reduction-18.c: New test.
	* gcc.dg/gomp/workshare-reduction-19.c: New test.
	* gcc.dg/gomp/workshare-reduction-20.c: New test.
	* gcc.dg/gomp/workshare-reduction-21.c: New test.
	* gcc.dg/gomp/workshare-reduction-22.c: New test.
	* gcc.dg/gomp/workshare-reduction-23.c: New test.
	* gcc.dg/gomp/workshare-reduction-24.c: New test.
	* gcc.dg/gomp/workshare-reduction-25.c: New test.
	* gcc.dg/gomp/workshare-reduction-26.c: New test.
	* gcc.dg/gomp/workshare-reduction-27.c: New test.
	* gcc.dg/gomp/workshare-reduction-28.c: New test.
	* gcc.dg/gomp/workshare-reduction-29.c: New test.
	* gcc.dg/gomp/workshare-reduction-30.c: New test.
	* gcc.dg/gomp/workshare-reduction-31.c: New test.
	* gcc.dg/gomp/workshare-reduction-32.c: New test.
	* gcc.dg/gomp/workshare-reduction-33.c: New test.
	* gcc.dg/gomp/workshare-reduction-34.c: New test.
	* gcc.dg/gomp/workshare-reduction-35.c: New test.
	* gcc.dg/gomp/workshare-reduction-36.c: New test.
	* gcc.dg/gomp/workshare-reduction-37.c: New test.
	* gcc.dg/gomp/workshare-reduction-38.c: New test.
	* gcc.dg/gomp/workshare-reduction-39.c: New test.
	* gcc.dg/gomp/workshare-reduction-40.c: New test.
	* gcc.dg/gomp/workshare-reduction-41.c: New test.
	* gcc.dg/gomp/workshare-reduction-42.c: New test.
	* gcc.dg/gomp/workshare-reduction-43.c: New test.
	* gcc.dg/gomp/workshare-reduction-44.c: New test.
	* gcc.dg/gomp/workshare-reduction-45.c: New test.
	* gcc.dg/gomp/workshare-reduction-46.c: New test.
	* gcc.dg/gomp/workshare-reduction-47.c: New test.
	* gcc.dg/gomp/workshare-reduction-48.c: New test.
	* gcc.dg/gomp/workshare-reduction-49.c: New test.
	* gcc.dg/gomp/workshare-reduction-50.c: New test.
	* gcc.dg/gomp/workshare-reduction-51.c: New test.
	* gcc.dg/gomp/workshare-reduction-52.c: New test.
	* gcc.dg/gomp/workshare-reduction-53.c: New test.
	* gcc.dg/gomp/workshare-reduction-54.c: New test.
	* gcc.dg/gomp/workshare-reduction-55.c: New test.
	* gcc.dg/gomp/workshare-reduction-56.c: New test.
	* gcc.dg/gomp/workshare-reduction-57.c: New test.
	* gcc.dg/gomp/workshare-reduction-58.c: New test.
libgomp/
	* testsuite/libgomp.c-c++-common/task-reduction-13.c: New test.
	* testsuite/libgomp.c-c++-common/task-reduction-14.c: New test.

From-SVN: r265967
2018-11-09 14:02:50 +01:00
Martin Liska
ff150bc478 Remove extra memory allocation of strings.
2018-11-09  Martin Liska  <mliska@suse.cz>

	* config/aarch64/aarch64.c (aarch64_parse_arch): Do not copy
	string to a stack buffer.
	(aarch64_parse_cpu): Likewise.
	(aarch64_parse_tune): Likewise.

From-SVN: r265966
2018-11-09 13:01:19 +00:00
Richard Biener
89939ff85a re PR c/87953 (asan: stack-buffer-overflow in vectorizable_reduction)
2018-11-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87953
	* tree-vect-loop.c (vectorizable_reduction): For analysis
	always pass ops[0] to vectorizable_condition.

From-SVN: r265964
2018-11-09 12:29:51 +00:00
Stafford Horne
3965b35f34 or1k: gcc: initial support for openrisc
2018-11-09  Stafford Horne  <shorne@gmail.com>
	    Richard Henderson  <rth@twiddle.net>
	    Joel Sherrill  <joel@rtems.org>

	* common/config/or1k/or1k-common.c: New file.
	* config/or1k/*: New.
	* config.gcc (or1k*-*-*): New.
	* configure.ac (or1k*-*-*): New test for openrisc tls.
	* configure: Regenerated.
	* doc/install.texi: Document OpenRISC triplets.
	* doc/invoke.texi: Document OpenRISC arguments.
	* doc/md.texi: Document OpenRISC.


Co-Authored-By: Joel Sherrill <joel@rtems.org>
Co-Authored-By: Richard Henderson <rth@twiddle.net>

From-SVN: r265963
2018-11-09 12:16:14 +00:00
Stafford Horne
1d6ff15057 or1k: testsuite: initial support for openrisc
gcc/testsuite/ChangeLog:

2018-11-09  Stafford Horne  <shorne@gmail.com>
	    Richard Henderson  <rth@twiddle.net>

	* gcc.c-torture/execute/20101011-1.c: Adjust for OpenRISC.
	* gcc.dg/20020312-2.c: Likewise.
	* gcc.dg/attr-alloc_size-11.c: Likewise.
	* gcc.dg/builtin-apply2.c: Likewise.
	* gcc.dg/nop.h: Likewise.
	* gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise.
	* gcc.dg/tree-ssa/20040204-1.c: Likewise.
	* gcc.dg/tree-ssa/reassoc-33.c: Likewise.
	* gcc.dg/tree-ssa/reassoc-34.c: Likewise.
	* gcc.dg/tree-ssa/reassoc-35.c: Likewise.
	* gcc.dg/tree-ssa/reassoc-36.c: Likewise.
	* lib/target-supports.exp
	(check_effective_target_logical_op_short_circuit): Add or1k*-*-*.
	* gcc.target/or1k/*: New.


Co-Authored-By: Richard Henderson <rth@twiddle.net>

From-SVN: r265962
2018-11-09 12:12:56 +00:00
Stafford Horne
d929e137f8 or1k: libgcc: initial support for openrisc
libgcc/ChangeLog:

2018-11-09  Stafford Horne  <shorne@gmail.com>
	    Richard Henderson  <rth@twiddle.net>

	* config.host: Add OpenRISC support.
	* config/or1k/*: New.


Co-Authored-By: Richard Henderson <rth@twiddle.net>

From-SVN: r265961
2018-11-09 12:09:15 +00:00
Richard Earnshaw
69104d52dd arm - use the new CPU alias option to simplify the list of CPUs.
This patch simplifies the table of CPUs supported in GCC by making
use of the new alias feature.  Most of the changes are fairly
straight-forward:
- arm7tdmi and arm7tdmi-s are the same thing.
- arm710t, arm720t and arm740t differ only in features external to the core
- arm920 and arm920t are the same thing; arm922t and arm940t differ from
  arm920t only in features external to the core; ep9312 is an arm920t-derived
  core that we continue to recognize for legacy reasons.
- arm10tdmi and arm1020t differ only in features external to the core.
- arm9e, arm946te-s, arm966e-s and arm968e-s differ only in features external
  to the core.
- arm10e, arm1020e and arm1022e differ only in features external to the core.

The arm10e/arm1020e/arm1022e change is the only one which changes
behaviour of the compiler slightly.  Previously, and for no reason
that I can remember, the scheduler for arm1020e/arm1022e was not used
for arm10e: this was probably an oversight.  The unification means
that the same scheduler is now used for all three cores.

	* config/arm/arm-cpus.in (arm7tdmi): Add an alias for arm7tdmi-s.
	(arm7tdmi-s): Delete CPU.
	(arm710t): Add aliases for arm720t and arm740t.
	(arm720t, arm740t): Delete CPUs.
	(arm920t): Add aliases for arm920, arm922t and arm940t.
	(arm920, arm922t, arm940t): Delete CPUs.
	(arm10tdmi): Add alias for arm1020t.
	(arm1020t): Delete CPU.
	(arm9e): Add aliases for arm946e-s, arm966e-s and arm968e-s.
	(arm946e-s, arm966e-s, arm968e-s): Delete CPUs.
	(arm10e): Add aliases for arm1020e and arm1022e.
	(arm1020e, arm1022e): Delete CPU.
	* config/arm/arm.md (generic_sched): Remove entries that are now
	handled by aliases.
	(generic_vfp): Likewise.
	* config/arm/arm1020e.md: Simplify tuning selection based on alias
	changes.
	* config/arm/arm-tune.md: Regenerated.
	* config/arm/arm-tables.opt: Regenerated.

From-SVN: r265960
2018-11-09 10:58:59 +00:00
Richard Biener
1dd6990226 re PR tree-optimization/87621 (outer loop auto-vectorization fails for exponentiation code)
2018-11-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87621
	* tree-vect-loop.c (vectorizable_reduction): Handle reduction
	op with only phi inputs.
	* tree-ssa-loop-ch.c: Include tree-ssa-sccvn.h.
	(ch_base::copy_headers): Run CSE on copied loop headers.
	(pass_ch_vect::process_loop_p): Simplify.

	* g++.dg/vect/pr87621.cc: New testcase.

From-SVN: r265959
2018-11-09 10:53:31 +00:00
Alexandre Oliva
43b01cc12d large-addr-aware for biarch non-w64 mingw32
for  gcc/ChangeLog

	* config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Adjust
        for non-w64 x86_64 biarch.

From-SVN: r265958
2018-11-09 10:49:47 +00:00
Alexandre Oliva
d4920f402a [PR86438] compare-elim: cope with set of in_b
When in_a resolves to a register set in the prev_clobber insn, we may
use the SET_SRC for the compare instead.  However, when in_b so
resolves, we proceed to use the reg with its earlier value.  When both
resolve to the same register and prev_clobber is an insn that modifies
the register, this arrangement may cause the compare to match (when it
shouldn't) and the elimination of the compare to incorrectly succeed.

(set (reg 1) (plus (reg 1) (const_int N)))
(set (reg 2) (reg 1))
(set (reg flags) (compare (reg 1) (reg 2)))

in_a: (reg 1)            --> (plus (reg 1) (const_int N))
in_b: (reg 2) -> (reg 1) -/> oops

(parallel [
 (set (reg flags) (compare (plus (reg 1) (const_int N))
                           (reg 1))) ;; should be (plus...)
 (set (reg 1) (plus (reg 1) (const_int N)))])
(set (reg 2) (reg 1))

This patch arranges for in_b to also undergo SET_SRC substitution
when appropriate, with a shortcut for when in_a and in_b are the same
rtx.


for  gcc/ChangeLog

	PR rtl-optimization/86438
	* compare-elim.c (try_eliminate_compare): Use SET_SRC instead
	of in_b for the compare if in_b is SET_DEST.

for  gcc/testsuite/ChangeLog

	PR rtl-optimization/86438
	* gcc.dg/torture/pr86438.c: New.

From-SVN: r265957
2018-11-09 10:16:09 +00:00
Alexandre Oliva
b759ea2847 [PR87793] reject non-toplevel unspecs in debug loc exprs on x86
Before revision 254025, we'd reject UNSPECs in debug loc exprs.
TARGET_CONST_NOT_OK_FOR_DEBUG_P still rejects that by default, on all
ports that override it, except for x86, that accepts @gotoff unspecs.
We can indeed accept them in top-level expressions, but not as
subexpressions: the assembler rejects the difference between two
@gotoff symbols, for example.

We could simplify such a difference and drop the @gotoffs, provided
that the symbols are in the same section; we could also accept
@gotoffs plus literal constants.  However, accepting those but
rejecting such combinations as subexpressions would be ugly, and most
likely not worth the trouble: sym@gotoff+litconst hardly makes sense
as a standalone expression, and the difference between @gotoffs should
be avoided to begin with, as follows.

Ideally, the debug loc exprs would use the symbolic data in
REG_EQUIV/REG_EQUAL notes, or delegitimized addresses, instead of
simplifying the difference between two legitimized addresses so that
the occurrences of the GOT register cancel each other.  That would
require some more elaborate surgery in var-tracking and cselib than
would be appropriate at this stage.

for  gcc/ChangeLog

	PR target/87793
	* config/i386/i386.c (ix86_const_not_ok_for_debug_p): Reject
	non-toplevel UNSPEC.

for  gcc/testsuite/ChangeLog

	PR target/87793
	* gcc.dg/pr87793.c: New.

From-SVN: r265956
2018-11-09 10:15:46 +00:00