1. 10 Nov, 2018 2 commits
    • combine: More make_more_copies · 16ac6fa5
      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
      Segher Boessenkool committed
    • Daily bump. · babe0c74
      From-SVN: r266001
      GCC Administrator committed
  2. 09 Nov, 2018 38 commits
    • re PR testsuite/87965 (Test cases c-c++-common/pr60226.c and gcc.dg/pr39323-1.c… · 397fd63d
      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
      Martin Sebor committed
    • MAINTAINERS: add myself as or1k maintainer · 1dbff00c
      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
      Stafford Horne committed
    • Walloca-16.c: Ignore conflicting types for built-in warnings. · 4476242b
      	* 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
      Paul Koning committed
    • re PR target/87221 (cannot build with -pie) · a0f503a0
      	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
      Maya Rashish committed
    • re PR driver/41179 (Documentation for "-fno-toplevel-reorder" is confusing (and wrong)) · e602e1f7
      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
      Sandra Loosemore committed
    • re PR tree-optimization/87940 (FAIL: gcc.dg/warn-strlen-no-nul.c) · ab386758
      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
      Bernd Edlinger committed
    • S/390: Allow relative addressing of literal pool entries · 340e0dd6
      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
      Ilya Leoshkevich committed
    • c-parser.c (c_parser_omp_clause_final): Use c_parser_expr_no_commas... · 81a227c6
      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
      Jakub Jelinek committed
    • c-parser.c (c_parser_omp_clause_reduction): Call sorry_at on reduction clause with inscan modifier. · 98c91c56
      	* 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
      Jakub Jelinek committed
    • c-parser.c (c_parser_omp_requires): Call sorry_at on requires clauses other than… · 3179ebae
      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
      Jakub Jelinek committed
    • gimplify.c (gimplify_scan_omp_clauses): Call sorry_at for valid but unsupported… · 4302dd3d
      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
      Jakub Jelinek committed
    • mips.c (mips_loongson_ext2_prefetch_cookie): Handle unused argument better. · c4c44802
      	* config/mips/mips.c (mips_loongson_ext2_prefetch_cookie): Handle
      	unused argument better.  Add gcc_unreachable to silence warning.
      
      From-SVN: r265986
      Jeff Law committed
    • affinity-fmt.c: Include inttypes.h if HAVE_INTTYPES_H. · 9666c522
      	* 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
      Jakub Jelinek committed
    • PR libstdc++/87787 fix UBsan error in std::vector · 213fd717
      	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
      Jonathan Wakely committed
    • Fix whitespace in ChangeLog · fcc49972
      From-SVN: r265983
      Jonathan Wakely committed
    • gcc.dg/torture/stackalign/builtin-apply-2.c: Skip on v850. · fb9289be
      From-SVN: r265982
      Jeff Law committed
    • cmd/cgo: fix typo in gccgo name mangling recipe · 0d26cdf1
          
          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
      Ian Lance Taylor committed
    • PR middle-end/81824 - Warn for missing attributes with function aliases · 79a2c428
      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
      Martin Sebor committed
    • re PR fortran/78351 (comma not terminating READ of formatted input field - ok in… · 900dab13
      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
      Jerry DeLisle committed
    • arm - minor cleanups for CPU alias support · e82cb042
      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
      Richard Earnshaw committed
    • PR c/87795 - Excessive alignment permitted for functions and labels · 4c7bd361
      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
      Martin Sebor committed
    • xmmintrin.h (_mm_cvtss_si32): Fix incorrect constraints by introducing a new temporary. · 32999d87
      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
      Bill Schmidt committed
    • syscall: change RLIM_INFINITY from 0xffffffffffffffff to -1 · 71caffb7
          
          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
      Ian Lance Taylor committed
    • Update ChangeLog entry · 0b58e8b8
      From-SVN: r265971
      Peter Bergner committed
    • Come up with the flag -fipa-stack-alignment. · 47b840eb
      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
      Martin Liska committed
    • Come up with -fipa-reference-addressable flag. · 2e14744f
      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
      Martin Liska committed
    • json.cc: fix comment · 9ed31860
      gcc/ChangeLog:
      	* json.cc (selftest::test_writing_literals): Fix comment.
      
      From-SVN: r265968
      David Malcolm committed
    • workshare-reduction-1.c: New test. · 207286c3
      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
      Jakub Jelinek committed
    • Remove extra memory allocation of strings. · ff150bc4
      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
      Martin Liska committed
    • re PR c/87953 (asan: stack-buffer-overflow in vectorizable_reduction) · 89939ff8
      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
      Richard Biener committed
    • or1k: gcc: initial support for openrisc · 3965b35f
      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
      Stafford Horne committed
    • or1k: testsuite: initial support for openrisc · 1d6ff150
      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
      Stafford Horne committed
    • or1k: libgcc: initial support for openrisc · d929e137
      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
      Stafford Horne committed
    • arm - use the new CPU alias option to simplify the list of CPUs. · 69104d52
      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
      Richard Earnshaw committed
    • re PR tree-optimization/87621 (outer loop auto-vectorization fails for exponentiation code) · 1dd69902
      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
      Richard Biener committed
    • large-addr-aware for biarch non-w64 mingw32 · 43b01cc1
      for  gcc/ChangeLog
      
      	* config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Adjust
              for non-w64 x86_64 biarch.
      
      From-SVN: r265958
      Alexandre Oliva committed
    • [PR86438] compare-elim: cope with set of in_b · d4920f40
      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
      Alexandre Oliva committed
    • [PR87793] reject non-toplevel unspecs in debug loc exprs on x86 · b759ea28
      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
      Alexandre Oliva committed