1. 05 Sep, 2019 10 commits
    • [C++ PATCH] vtable decl marking · b1019384
      https://gcc.gnu.org/ml/gcc-patches/2019-08/msg02063.html
      	* cp-tree.h (DECL_VTABLE_OR_VTT_P): Forward to DECL_VIRTUAL_P.
      
      From-SVN: r275404
      Nathan Sidwell committed
    • Implement std::span for C++20 · 95e9a761
      2019-09-05  JeanHeyd Meneide  <phdofthehouse@gmail.com>
      
      	* include/Makefile.am: Add <span> header.
      	* include/Makefile.in: Regenerate.
      	* include/bits/range_access.h (__adl_begin, __adl_end, __adl_cbegin)
      	(__adl_cend, __adl_rbegin, __adl_rend, __adl_crbegin, __adl_crend)
      	(__adl_data, __adl_cdata, __adl_size, __adl_empty, __adl_to_address):
      	New functions for performing argument-dependent lookup of range
      	customization points.
      	* include/bits/stl_iterator.h (__normal_iterator): Add
      	_GLIBCXX20_CONSTEXPR to all functions.
      	* include/std/span: New header.
      	* include/std/version (__cpp_lib_span): Define feature test macro.
      	* testsuite/23_containers/span/contiguous_range_neg.cc: New test.
      	* testsuite/23_containers/span/everything.cc: New test.
      	* testsuite/23_containers/span/get_neg.cc: New test.
      	* testsuite/23_containers/span/last_neg.cc: New test.
      	* testsuite/23_containers/span/subspan_neg.cc: New test.
      	* testsuite/23_containers/span/tuple_element_dynamic_neg.cc: New test.
      	* testsuite/23_containers/span/tuple_element_oob_neg.cc: New test.
      	* testsuite/23_containers/span/tuple_size_neg.cc: New test.
      
      From-SVN: r275403
      JeanHeyd Meneide committed
    • [preprocessor/91639] #includes at EOF · 056f95ec
      https://gcc.gnu.org/ml/gcc-patches/2019-09/msg00280.html
      	libcpp/
      	PR preprocessor/91639
      	* directives.c (do_include_common): Tell lexer we're a #include.
      	* files.c (_cpp_stack_file): Lexer will have always incremented.
      	* internal.h (struct cpp_context): Extend in_directive's
      	semantics.
      	* lex.c (_cpp_lex_direct): Increment line for final \n when lexing
      	for an ISO #include.
      	* line-map.c (linemap_line_start): Remember if we overflowed.
      
      	gcc/testsuite/
      	PR preprocessor/91639
      	* c-c++-common/cpp/pr91639.c: New.
      	* c-c++-common/cpp/pr91639-one.h: New.
      	* c-c++-common/cpp/pr91639-two.h: New.
      
      From-SVN: r275402
      Nathan Sidwell committed
    • re PR middle-end/90501 (ICE: address taken, but ADDRESSABLE bit not set) · e7414688
      2019-09-05  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/90501
      	* tree-inline.c (declare_return_variable): Mark the return
      	slot as addressable after building an address of it.
      
      From-SVN: r275401
      Richard Biener committed
    • install.texi: Update and clarify requirements to build GNAT. · 0fd3ee92
      	* doc/install.texi: Update and clarify requirements to build GNAT.
      
      From-SVN: r275400
      Arnaud Charlet committed
    • Force IFN_LOAD/STORE_LANES operands to be memory (PR91577) · 359f25f8
      This patch uses the workaround Richi suggested in the PR: make
      discover_nonconstant_array_refs mark the source of an IFN_LOAD_LANES
      call and the destination of an IFN_STORE_LANES call as addressable,
      so that they don't end up being REG rtxes during expansion.
      
      I had to move the discover_nonconstant_array_refs call outside the
      currently_expanding_to_rtl block since otherwise mark_addressable
      just queues the decision for later.
      
      2019-09-05  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	PR middle-end/91577
      	* cfgexpand.c (discover_nonconstant_array_refs): Force the source
      	of an IFN_LOAD_LANES call and the destination of an IFN_STORE_LANES
      	call to be in memory.
      	(pass_expand::execute): Call discover_nonconstant_array_refs before
      	setting currently_expanding_to_rtl.
      
      gcc/testsuite/
      	PR middle-end/91577
      	* gfortran.dg/pr91577.f90: New test, taken from temporary_1.f90.
      
      From-SVN: r275399
      Richard Sandiford committed
    • Remove broken URL from libstdc++ manual · efd9a01b
      The URL for the "What Are Allocators Good For?" article has been a
      recurring source of problems. It moved from the C/C++ Users Journal
      website to the Dr Dobbs site after CUJ shut down, and the original
      domain changed hands, leaving old links pointing to nefarious sites.
      
      Now the URL to the copy on drdobbs.com no longer works either and I
      can't find a (legal) copy of the article online. The simplest solution
      is to remove the URL.
      
      	* doc/xml/manual/allocator.xml: Remove URL for bibliography entry.
      	* doc/html/*: Regenerate.
      
      From-SVN: r275398
      Jonathan Wakely committed
    • Improve PRNG jumping when using threads · 0eaee4ab
      Currently, when a new thread needs to use the RANDOM_NUMBER intrinsic,
      the per-thread PRNG state is initialized by copying the master state
      and then jumping forwards N*2**128 entries in the stream so that the
      PRNG streams for different threads don't alias each other, where N is
      the number of threads that have so far initialized the PRNG.
      
      With this patch the master state itself is jumped forwards once each
      time a new thread initializes the PRNG, thus obviating the need to
      jump through all the N-1 previous streams. Effectively turning an O(N)
      algorithm into an O(1) one.
      
      Regtested on x86_64-pc-linux-gnu.
      
      libgfortran/ChangeLog:
      
      2019-09-05  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* intrinsics/random.c (master_init): Replace with
      	master_state.init.
      	(njumps): Remove variable.
      	(master_state): Make instance of struct prng_state.
      	(init_rand_state): When jumping, update the master_state once
      	instead of keeping track of how many jumps need to be done.
      	(SZU64): Modify to handle new master_state.
      	(SZ): Likewise.
      	(random_seed_i4): Likewise.
      	(random_seed_i8): Likewise.
      
      From-SVN: r275397
      Janne Blomqvist committed
    • re PR tree-optimization/91663 (split function can be re-inlined, leaving bad stack trace) · f44526e3
      	PR tree-optimization/91663
      	* go-lang.c (go_langhook_post_options): Clear
      	flag_partial_inlining.
      
      From-SVN: r275396
      Ian Lance Taylor committed
    • Daily bump. · 7d394f77
      From-SVN: r275395
      GCC Administrator committed
  2. 04 Sep, 2019 13 commits
    • re PR fortran/91650 (ICE in gfc_conv_constant_to_tree, at fortran/trans-const.c:370) · 4844a5cb
      2019-09-04  Steven G. Kargl  <kargl@gcvc.gnu.org>
      
      	PR fortran/91650
      	* io.c (match_io_element):  An output IO list item cannot be a BOZ.
      
      2019-09-04  Steven G. Kargl  <kargl@gcvc.gnu.org>
      
      	PR fortran/91650
      	* gfortran.dg/pr91650_1.f90: New test.
      	* gfortran.dg/pr91650_2.f90: Ditto.
      
      From-SVN: r275391
      Steven G. Kargl committed
    • PR libstdc++/41861 Add full steady_clock support to condition_variable · ad4d1d21
      The pthread_cond_clockwait function is available in glibc since the 2.30
      release. If this function is available in the C library it can be used
      to fix PR libstdc++/41861 by supporting std::chrono::steady_clock
      properly with std::condition_variable.
      
      This means that code using std::condition_variable::wait_for or
      std::condition_variable::wait_until with std::chrono::steady_clock is no
      longer subject to timing out early or potentially waiting for much
      longer if the system clock is warped at an inopportune moment.
      
      If pthread_cond_clockwait is available then std::chrono::steady_clock is
      deemed to be the "best" clock available which means that it is used for
      the relative wait_for calls and absolute wait_until calls using
      user-defined clocks. Calls explicitly using std::chrono::system_clock
      continue to use CLOCK_REALTIME via __gthread_cond_timedwait.
      
      If pthread_cond_clockwait is not available then
      std::chrono::system_clock is deemed to be the "best" clock available
      which means that the previous suboptimal behaviour remains.
      
      2019-09-04  Mike Crowe  <mac@mcrowe.com>
      
      	PR libstdc++/41861
      	* acinclude.m4 (GLIBCXX_CHECK_PTHREAD_COND_CLOCKWAIT): Check for new
      	pthread_cond_clockwait function.
      	* configure.ac: Use GLIBCXX_CHECK_PTHREAD_COND_CLOCKWAIT.
      	* configure: Regenerate.
      	* config.h.in: Regenerate.
      	* include/std/condition_variable: (condition_variable): Rename
      	__steady_clock_t typedef and add system_clock. Change __clock_t to be
      	a typedef for the preferred clock to convert arbitrary other clocks to.
      	[_GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT] (wait_until): Add a steady_clock
      	overload.
      	(wait_until): Change __clock_t overload to use system_clock.
      	[_GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT] (__wait_until_impl): Add
      	steady_clock overload that calls pthread_cond_clockwait.
      	(__wait_until_impl): Change __clock_t overload to use system_clock.
      	(condition_variable_any) [_GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT]: Use
      	steady_clock for __clock_t if pthread_cond_clockwait is available.
      
      From-SVN: r275390
      Mike Crowe committed
    • Add user-defined clock to libstdc++ condition_variable tests · 76e0dd66
      2019-09-04  Mike Crowe  <mac@mcrowe.com>
      
      	* testsuite/30_threads/condition_variable/members/2.cc (test01):
      	Parameterise so that test can be run against an arbitrary clock.
      	(main): Test using std::chrono::steady_clock and a user-defined
      	clock in addition to the previous std::chrono::system_clock.
      	* testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
      
      From-SVN: r275389
      Mike Crowe committed
    • Disallow -fvtable-verify and -flto to be used together. · 9eb730b8
      Vtable verification currently does not work properly with
      link time optimization.  Until this can be fixed users should
      not be allowed to specify both options together.
      
      2019-09-04  Caroline Tice  <cmtice@google.com>
       
              *  opts.c (finish_options):  Disallow -fvtable-verify and -flto to be
                 specified together.
      
      From-SVN: r275388
      Caroline Tice committed
    • Remove -fdeduce-init-list. · db9d2274
      From-SVN: r275387
      Marek Polacek committed
    • re PR target/32413 (internal compiler error: in reload_cse_simplify_operands, at postreload.c:396) · 0c7800b2
      	PR target/32413
      	* config/i386/i386.c (inline_secondary_memory_needed): Return true
      	for QI and HImode moves between SSE and general registers.
      
      From-SVN: r275377
      Uros Bizjak committed
    • Add warning Wenum-conversion for C and ObjC. · 68e2c199
      The patch enables warning with Wextra due to PR91593 and warnings with
      allmodconfig kernel build. Once these issues are resolved, we could
      consider promoting it to Wall.
      
      2019-09-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      	PR c/78736
      	* doc/invoke.texi: Document -Wenum-conversion.
      
      c-family
      	* c.opt (Wenum-conversion): New option.
      
      c/
      	* c-typeck.c (convert_for_assignment): Handle Wenum-conversion.
      
      testsuite/
      	* gcc.dg/Wenum-conversion.c: New test-case.
      
      From-SVN: r275376
      Prathamesh Kulkarni committed
    • mklog: Do not print changed functions in testsuite · bc7f7ff9
      2019-09-04  Martin Liska  <mliska@suse.cz>
      
      	* mklog: Do not print changed functions for
      	testsuite files.
      
      From-SVN: r275369
      Martin Liska committed
    • mklog: parse PR references from new test files · a45de90e
      2019-09-04  Martin Liska  <mliska@suse.cz>
      
      	* mklog: Parse PR references from newly added
      	test files.
      
      From-SVN: r275368
      Martin Liska committed
    • Use argparse.ArgumentParser for mklog. · e94e92dc
      2019-09-04  Martin Liska  <mliska@suse.cz>
      
      	* mklog: Use argparse instead of getopt.
      
      From-SVN: r275367
      Martin Liska committed
    • re PR middle-end/36262 (Extreme memory usage of VRP compared to older versions) · dc91c653
      2019-09-04  Richard Biener  <rguenther@suse.de>
      
      	PR rtl-optimization/36262
      	* postreload-gcse.c: Include intl.h and gcse.h.
      	(insert_expr_in_table): Insert at the head of cur_expr->avail_occr
      	to avoid linear list walk.
      	(record_last_mem_set_info): Gate off if not computing transparentness.
      	(get_bb_avail_insn): If transparentness isn't computed give up
      	early.
      	(gcse_after_reload_main): Skip compute_transp and extended PRE
      	if gcse_or_cprop_is_too_expensive says so.
      
      From-SVN: r275365
      Richard Biener committed
    • gfortran.texi: Update documentation to catch up with BOZ changes. · f8e36f0a
      2019-09-03  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	* gfortran.texi: Update documentation to catch up with BOZ changes.
      	* invoke.texi: Fix English from previous BOZ changes commit.
      
      From-SVN: r275364
      Steven G. Kargl committed
    • Daily bump. · 48259207
      From-SVN: r275362
      GCC Administrator committed
  3. 03 Sep, 2019 17 commits
    • compiler: only import variable into . if same package · 2974ecda
          
          If we dot-import a package, we should only add an imported variable to
          the package bindings if the variable is in the package being imported.
          A test case for this is the 1.13 os package, in which ErrClosed and
          friends are defined both locally and in the imported internal/oserror package.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/192718
      
      From-SVN: r275358
      Ian Lance Taylor committed
    • MSP430: Use default_elf_select_section to determine sections for data · 64be2b26
      2019-09-03  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config/msp430/msp430.c (msp430_init_sections): Remove handling of the
      	noinit section.
      	(msp430_select_section): Handle decls with the "noinit" attribute with
      	default_elf_select_section.
      	Handle SECCAT_RODATA_MERGE_* section types with
      	default_elf_select_section.
      	Add comments about handling of unsupported section types.
      	(msp430_section_type_flags): Remove handling of the noinit section.
      
      From-SVN: r275357
      Jozef Lawrynowicz committed
    • MSP430: Setup exclusion tables for function and data attributes · f1deee91
      gcc/ChangeLog:
      
      2019-09-03  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config/msp430/msp430.c (msp430_attr): Remove warnings about
      	conflicting msp430-specific attributes.
      	(msp430_section_attr): Likewise.
      	Add warnings about conflicts with generic "noinit" and "section"
      	attributes.
      	Fix grammar in -mlarge error message.
      	(msp430_data_attr): Rename to msp430_persist_attr.
      	Add warnings about conflicts with generic "noinit" and "section"
      	attributes.
      	Add warning for when variable is not initialized.
      	Chain conditionals which prevent the attribute being added.
      	(ATTR_EXCL): New helper.
      	(attr_reent_exclusions): New exclusion table.
      	(attr_naked_exclusions): Likewise.
      	(attr_crit_exclusions): Likewise.
      	(attr_lower_exclusions): Likewise.
      	(attr_upper_exclusions): Likewise.
      	(attr_either_exclusions): Likewise.
      	(attr_persist_exclusions): Likewise.
      	(msp430_attribute_table): Update with exclusion rules.
      	(msp430_output_aligned_decl_common): Don't output common symbol if decl
      	has a section.
      
      gcc/testsuite/ChangeLog:
      
      2019-09-03  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* gcc.target/msp430/data-attributes-2.c: New test.
      	* gcc.target/msp430/function-attributes-4.c: Update dg-warning
      	strings.
      	* gcc.target/msp430/region-attribute-misuse.c: Likewise.
      
      From-SVN: r275356
      Jozef Lawrynowicz committed
    • Implement TARGET_HANDLE_GENERIC_ATTRIBUTE · 7a4418a5
      gcc/ChangeLog:
      
      2019-09-03  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config/msp430/msp430.c (TARGET_HANDLE_GENERIC_ATTRIBUTE): Define.
      	(msp430_handle_generic_attribute): New function.
      	* doc/tm.texi: Regenerate.
      	* doc/tm.texi.in: Add TARGET_HANDLE_GENERIC_ATTRIBUTE.
      	* hooks.c (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
      	* hooks.h (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
      	* target.def: Define new hook TARGET_HANDLE_GENERIC_ATTRIBUTE.
      
      gcc/c-family/ChangeLog:
      
      2019-09-03  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* c-attribs.c (handle_section_attribute): Call the
      	handle_generic_attribute target hook after performing target
      	independent processing.
      	(handle_noinit_attribute): Likewise.
      
      From-SVN: r275355
      Jozef Lawrynowicz committed
    • re PR tree-optimization/91504 (Inlining misses some logical operation folding) · 52792faa
      	PR tree-optimization/91504
      	* match.pd: Add ((~a & b) ^a) --> (a | b).
      
              PR tree-optimization/91504
      	gcc.dg/tree-ssa/pr91504.c: New test.
      
      From-SVN: r275354
      Kamlesh Kumar committed
    • rust-demangle.c (unescape): Remove. · 42bf58bb
      	* rust-demangle.c (unescape): Remove.
      	(parse_lower_hex_nibble): New function.
      	(parse_legacy_escape): New function.
      	(is_prefixed_hash): Use parse_lower_hex_nibble.
      	(looks_like_rust): Use parse_legacy_escape.
      	(rust_demangle_sym): Use parse_legacy_escape.
      	* testsuite/rust-demangle-expected: Add 'llv$u6d$' test.
      
      From-SVN: r275353
      Eduard-Mihai Burtescu committed
    • c-cppbuiltin.c (builtin_define_with_hex_fp_value): Always expand when using -fgo-dump-spec. · 5f76ab15
      	* c-cppbuiltin.c (builtin_define_with_hex_fp_value): Always expand
      	when using -fgo-dump-spec.
      
      From-SVN: r275352
      Ian Lance Taylor committed
    • re PR target/91604 (ICE in extract_insn at recog.c:2310 since r272323) · deeedbad
      	PR target/91604
      	* config/i386/i386-expand.c (split_double_mode): If there is more than
      	one MEM operand and they are rtx_equal_p, reuse lo_half/hi_half from
      	already split matching MEM operand instead of calling adjust_address
      	again.
      
      	* gcc.target/i386/pr91604.c: New test.
      
      From-SVN: r275344
      Jakub Jelinek committed
    • Remove Cell Broadband Engine SPU targets · 2f2aeda9
      From-SVN: r275343
      Ulrich Weigand committed
    • re PR middle-end/91603 (Unaligned access in expand_assignment) · 93439218
      2019-09-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              PR middle-end/91603
              PR middle-end/91612
              PR middle-end/91613
              * expr.c (expand_expr_real_1): Handle unaligned decl_rtl
              and SSA_NAME referring to CONSTANT_P correctly.
      
      testsuite:
      2019-09-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              PR middle-end/91603
              * testsuite/gcc.target/arm/pr91603.c: New test.
      
      From-SVN: r275342
      Bernd Edlinger committed
    • re PR other/79543 (Inappropriate "ld --version" checking) · c6c2d1bc
      2019-09-03  Chung-Lin Tang <cltang@codesourcery.com>
      
      	libatomic/
      	PR other/79543
      	* acinclude.m4 (LIBAT_CHECK_LINKER_FEATURES): Fix GNU ld --version
      	scanning to conform to the GNU Coding Standards.
      	* configure: Regenerate.
      
      	libffi/
      	PR other/79543
      	* acinclude.m4 (LIBAT_CHECK_LINKER_FEATURES): Fix GNU ld --version
      	scanning to conform to the GNU Coding Standards.
      	* configure: Regenerate.
      
      	libgomp/
      	PR other/79543
      	* acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Fix GNU ld --version
      	scanning to conform to the GNU Coding Standards.
      	* configure: Regenerate.
      
      	libitm/
      	PR other/79543
      	* acinclude.m4 (LIBITM_CHECK_LINKER_FEATURES): Fix GNU ld --version
      	scanning to conform to the GNU Coding Standards.
      	* configure: Regenerate.
      
      	libstdc++-v3/
      	PR other/79543
      	* acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Fix GNU ld --version
      	scanning to conform to the GNU Coding Standards.
      	* configure: Regenerate.
      
      From-SVN: r275341
      Chung-Lin Tang committed
    • tree-ssa-sccvn.h (vn_nary_op_lookup): Remove. · c8d34912
      2019-09-03  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-sccvn.h (vn_nary_op_lookup): Remove.
      	(vn_nary_op_insert): Likewise.
      	* tree-ssa-sccvn.c (init_vn_nary_op_from_op): Remove.
      	(vn_nary_op_lookup): Likewise.
      	(vn_nary_op_insert): Likewise.
      
      From-SVN: r275338
      Richard Biener committed
    • S/390: Commit forgotten test for r275336 · 70b766b2
      gcc/testsuite/ChangeLog:
      
      2019-09-03  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* gcc.target/s390/sigfpe-eh.c: Forgotten test.
      
      From-SVN: r275337
      Ilya Leoshkevich committed
    • S/390: Fix failing RTL check in s390_canonicalize_comparison · 837ee1e0
      The new sigfpe-eh.c fails with
      
          internal compiler error: RTL check: expected elt 0 type 'e' or 'u', have 'w' (rtx const_int)
      
      This is most likely due to a typo: XEXP (*op1, 0) was used, when
      XEXP (*op0, 1) was intended.  This did not cause any user-visible
      problems, because reversed_comparison_code_parts ignores the
      respective argument, and the release compiler is built without RTL
      checks.
      
      gcc/ChangeLog:
      
      2019-09-03  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* config/s390/s390.c (s390_canonicalize_comparison): Use XEXP
      	(*op0, 1) instead of XEXP (*op1, 0).
      
      gcc/testsuite/ChangeLog:
      
      2019-09-03  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* gcc.target/s390/sigfpe-eh.c: New test.
      
      From-SVN: r275336
      Ilya Leoshkevich committed
    • [AArch64] Add support for __jcvt intrinsic · e1d5d19e
      This patch implements the __jcvt ACLE intrinsic [1] that maps down to the FJCVTZS [2] instruction from Armv8.3-a.
      No fancy mode iterators or nothing. Just a single builtin, UNSPEC and define_insn and the associate plumbing.
      This patch also defines __ARM_FEATURE_JCVT to indicate when the intrinsic is available.
      
      [1] https://developer.arm.com/docs/101028/latest/data-processing-intrinsics
      [2] https://developer.arm.com/docs/ddi0596/latest/simd-and-floating-point-instructions-alphabetic-order/fjcvtzs-floating-point-javascript-convert-to-signed-fixed-point-rounding-toward-zero
      
      	* config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define.
      	(aarch64_fjcvtzs): New define_insn.
      	* config/aarch64/aarch64.h (TARGET_JSCVT): Define.
      	* config/aarch64/aarch64-builtins.c (aarch64_builtins):
      	Add AARCH64_JSCVT.
      	(aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs.
      	(aarch64_expand_builtin): Handle AARCH64_JSCVT.
      	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
      	__ARM_FEATURE_JCVT where appropriate.
      	* config/aarch64/arm_acle.h (__jcvt): Define.
      
      	* gcc.target/aarch64/acle/jcvt_1.c: New test.
      
      From-SVN: r275335
      Kyrylo Tkachov committed
    • [AArch64] Implement ACLE intrinsics for FRINT[32,64][Z,X] · 10bd1d96
      This patch implements the ACLE intrinsics to access the FRINT[32,64][Z,X] scalar[1] and vector[2][3] instructions
      from Armv8.5-a. These are enabled when the __ARM_FEATURE_FRINT macro is defined.
      
      They're added in a fairly standard way through builtins and unspecs at the RTL level.
      
      	* config/aarch64/aarch64.md ("unspec"): Add UNSPEC_FRINT32Z,
      	UNSPEC_FRINT32X, UNSPEC_FRINT64Z, UNSPEC_FRINT64X.
      	(aarch64_<frintnzs_op><mode>): New define_insn.
      	* config/aarch64/aarch64.h (TARGET_FRINT): Define.
      	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
      	__ARM_FEATURE_FRINT when appropriate.
      	* config/aarch64/aarch64-simd-builtins.def: Add builtins for frint32z,
      	frint32x, frint64z, frint64x.
      	* config/aarch64/arm_acle.h (__rint32zf, __rint32z, __rint64zf,
      	__rint64z, __rint32xf, __rint32x, __rint64xf, __rint64x): Define.
      	* config/aarch64/arm_neon.h (vrnd32z_f32, vrnd32zq_f32, vrnd32z_f64,
      	vrnd32zq_f64, vrnd32x_f32, vrnd32xq_f32, vrnd32x_f64, vrnd32xq_f64,
      	vrnd64z_f32, vrnd64zq_f32, vrnd64z_f64, vrnd64zq_f64, vrnd64x_f32,
      	vrnd64xq_f32, vrnd64x_f64, vrnd64xq_f64): Define.
      	* config/aarch64/iterators.md (VSFDF): Define.
      	(FRINTNZX): Likewise.
      	(frintnzs_op): Likewise.
      
      	* gcc.target/aarch64/acle/rintnzx_1.c: New test.
      	* gcc.target/aarch64/simd/vrndnzx_1.c: Likewise.
      
      From-SVN: r275334
      Kyrylo Tkachov committed
    • [AArch64] Add support for missing CPUs · e0664b7a
      This patch adds '-mcpu' options for following CPUs:
      Cortex-A77, Cortex-A76AE, Cortex-A65, Cortex-A65AE, and Cortex-A34.
      
      Related specifications are as following:
      https://developer.arm.com/ip-products/processors/cortex-a
      
      Bootstraped/regtested for aarch64-none-linux-gnu.
      
      2019-09-03  Dennis Zhang  <dennis.zhang@arm.com>
      
      	* config/aarch64/aarch64-cores.def (AARCH64_CORE): New entries
      	for Cortex-A77, Cortex-A76AE, Cortex-A65, Cortex-A65AE, and
      	Cortex-A34.
      	* config/aarch64/aarch64-tune.md: Regenerated.
      	* doc/invoke.texi: Document the new processors.
      
      From-SVN: r275333
      Dennis Zhang committed