1. 09 Aug, 2018 4 commits
    • S/390: Fix target attribute tests · be03e785
      These broke after removing G5 and G6 CPUs from the processor
      enumeration.
      
      gcc/testsuite/ChangeLog:
      
      2018-08-09  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/target-attribute/tattr-arch-tune-1.c: Decrement
      	arch and tune numbers by 2.
      	* gcc.target/s390/target-attribute/tattr-arch-tune-2.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-1.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-10.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-11.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-12.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-13.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-14.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-15.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-16.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-17.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-18.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-19.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-2.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-20.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-21.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-22.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-23.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-24.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-25.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-26.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-27.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-28.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-29.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-3.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-30.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-31.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-32.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-4.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-5.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-6.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-7.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-8.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m31-9.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-1.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-10.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-11.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-12.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-13.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-14.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-15.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-16.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-17.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-18.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-19.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-2.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-20.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-21.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-22.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-23.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-24.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-25.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-26.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-27.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-28.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-29.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-3.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-30.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-31.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-32.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-33.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-4.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-5.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-6.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-7.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-8.c: Likewise.
      	* gcc.target/s390/target-attribute/tattr-m64-9.c: Likewise.
      
      From-SVN: r263443
      Andreas Krebbel committed
    • Fix typos in params.def. · 874ffe9e
      2018-08-09  Martin Liska  <mliska@suse.cz>
      
      	* params.def (PARAM_ALIGN_LOOP_ITERATIONS): Remove double dots
              at the end of a line, make first letter capital and end up
              a sentence with a dot.
      	(PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): Likewise.
      	(PARAM_LOOP_BLOCK_TILE_SIZE): Likewise.
      	(PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Likewise.
      	(PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): Likewise.
      	(PARAM_MAX_ISL_OPERATIONS): Likewise.
      	(PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): Likewise.
      	(PARAM_PROFILE_FUNC_INTERNAL_ID): Likewise.
      	(PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
      	(PARAM_SLP_MAX_INSNS_IN_BB): Likewise.
      	(PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
      	(PARAM_IPA_CP_RECURSION_PENALTY): Likewise.
      	(PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
      	(PARAM_IPA_CP_LOOP_HINT_BONUS): Likewise.
      	(PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Likewise.
      	(PARAM_TREE_REASSOC_WIDTH): Likewise.
      	(PARAM_HSA_GEN_DEBUG_STORES): Likewise.
      	(PARAM_MAX_SPECULATIVE_DEVIRT_MAYDEFS): Likewise.
      	(PARAM_MAX_VRP_SWITCH_ASSERTIONS): Likewise.
      
      From-SVN: r263442
      Martin Liska committed
    • S/390: Fix PR84332 ICE with stack clash protection · 0b06c9a6
      Our implementation of the stack probe requires the probe interval to
      be used as displacement in an address operand.  The maximum probe
      interval currently is 64k.  This would exceed short displacements.
      Trim that value down to 4k if that happens.  This might result in too
      many probes being generated only on the oldest supported machine level
      z900.
      
      gcc/ChangeLog:
      
      2018-08-09  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	PR target/84332
      	* config/s390/s390.c (s390_option_override_internal): Reduce the
      	stack-clash-protection-probe-interval param if it would be too big
      	for z900.
      
      gcc/testsuite/ChangeLog:
      
      2018-08-09  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	PR target/84332
      	* gcc.target/s390/pr84332.c: New testcase.
      
      From-SVN: r263441
      Andreas Krebbel committed
    • Daily bump. · a0de11f4
      From-SVN: r263439
      GCC Administrator committed
  2. 08 Aug, 2018 22 commits
    • 2018-08-08 François Dumont <fdumont@gcc.gnu.org> · 29a9c26c
      	* include/bits/stl_algo.h
      	(__rotate(_Ite, _Ite, _Ite, forward_iterator_tag))
      	(__rotate(_Ite, _Ite, _Ite, bidirectional_iterator_tag))
      	(__rotate(_Ite, _Ite, _Ite, random_access_iterator_tag)): Move code duplication...
      	(rotate(_Ite, _Ite, _Ite)): ...here.
      	(__stable_partition_adaptive(_FIt, _FIt, _Pred, _Dist, _Pointer, _Dist)):
      	Simplify rotate call.
      	(__rotate_adaptive(_BIt1, _BIt1, _BIt1, _Dist, _Dist, _Bit2, _Dist)):
      	Likewise.
      	(__merge_without_buffer(_BIt, _BIt, _BIt, _Dist, _Dist, _Comp)):
      	Likewise.
      
      From-SVN: r263433
      François Dumont committed
    • m68k: handle more cases of TLS symbols with offset · ede9446c
      PR target/46179
      * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Don't define.
      * config/m68k/m68k.c (handle_move_double): Don't call
      m68k_final_prescan_insn.
      (m68k_adjust_decorated_operand): Renamed from
      m68k_final_prescan_insn, remove first and third operand and
      simplify.
      (print_operand): Call it.
      (print_operand_address): Call it.
      
      PR target/46179
      * gcc.target/m68k/tls-dimode.c: New file.
      
      From-SVN: r263432
      Andreas Schwab committed
    • [PATCH] line-map include-from representation · f10a9135
      https://gcc.gnu.org/ml/gcc-patches/2018-08/msg00554.html
      	Make linemap::included_from a location
      	libcpp/
      	* include/line-map.h (struct line_map_ordinary): Replace
      	included_from map index with included_at source_location.
      	(ORDINARY_MAP_INCLUDER_FILE_INDEX): Delete.
      	(LAST_SOURCE_LINE_LOCATION): Delete.
      	(LAST_SOURCE_LINE, LAST_SOURCE_COLUMN): Delete.
      	(linemap_included_from): New.
      	(linemap_included_from_linemap): Declare.
      	(MAIN_FILE_P): Adjust.
      	* line-map.c (linemap_included_from_linemap): New.
      	(lonemap_check_files_exited): Use linemap_included_at.
      	(linemap_add): Adjust inclusion setting.
      	(linemap_dump, linemap_dump_location): Adjust.
      	* directives.c (do_linemarker): Use linemap_included_at.
      	gcc/
      	* diagnostic.c (diagnostic_report_current_module): Use
      	linemap_included_from & linemap_included_from_linemap.
      	gcc/c-family/
      	* c-common.c (try_to_locate_new_include_inertion_point): Use
      	linemap_included_from_linemap.
      	* c-lex.c (fe_file_change): Use linemap_included_from.
      	* c-ppoutput.c (pp_file_change): Likewise.
      	gcc/fortran/
      	* cpp.c (cb_file_change): Use linemap_included_from.
      	gcc/testsuite/
      	* c-c++-common/inc-from-1a.h, c-c++-common/inc-from-1b.h,
      	c-c++-common/inc-from-1.c: New
      
      From-SVN: r263429
      Nathan Sidwell committed
    • Prevent internal aligned_alloc clashing with libc version · a8019919
      If configure fails to detect aligned_alloc we will try to define our
      own in new_opa.cc but that could clash with the libcversion in
      <stdlib.h>. Use a namespace to keep them distinct.
      
      	* libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to
      	avoid clashing with an ::aligned_alloc function that was not detected
      	by configure.
      
      From-SVN: r263409
      Jonathan Wakely committed
    • [libgomp, nvptx] Fall back to cuLinkAddData/cuLinkCreate if _v2 not found · 8e09a12f
      Cuda driver api functions cuLinkAddData and cuLinkCreate are available starting
      version 5.5.  In version 6.5, they are remapped onto _v2 versions.
      
      The dlopen interface of the libgomp nvptx plugin uses the _v2 versions, so it
      won't work with a cuda driver with driver api version lower than 6.5.
      
      This patch fixes the problem by testing for the presence of the _v2 versions,
      and falling back to the original versions in case of absence of the _v2
      versions.
      
      Build on x86_64 with nvptx accelerator and reg-tested libgomp, both with and
      without --without-cuda-driver.
      
      2018-08-08  Tom de Vries  <tdevries@suse.de>
      
      	* plugin/cuda-lib.def (cuLinkAddData_v2, cuLinkCreate_v2): Declare using
      	CUDA_ONE_CALL_MAYBE_NULL.
      	* plugin/plugin-nvptx.c (cuLinkAddData, cuLinkCreate): Undef and declare.
      	(cuLinkAddData_v2, cuLinkCreate_v2): Declare.
      	(link_ptx): Fall back to cuLinkAddData/cuLinkCreate if the _v2 versions
      	are not found.
      
      From-SVN: r263408
      Tom de Vries committed
    • [libgomp, nvptx] Allow cuGetErrorString to be NULL · cedd9bd0
      Cuda driver api function cuGetErrorString is available in version 6.0 and
      higher.
      
      Currently, when the driver that is used does not contain this function, the
      libgomp nvptx plugin will not build (PLUGIN_NVPTX_DYNAMIC == 0) or run
      (PLUGIN_NVPTX_DYNAMIC == 1).
      
      This patch fixes this problem by testing for the presence of the function, and
      handling absence.
      
      Build on x86_64 with nvptx accelerator and reg-tested libgomp, both with and
      without --without-cuda-driver.
      
      2018-08-08  Tom de Vries  <tdevries@suse.de>
      
      	* plugin/cuda-lib.def (cuGetErrorString): Use CUDA_ONE_CALL_MAYBE_NULL.
      	* plugin/plugin-nvptx.c (cuda_error): Handle if cuGetErrorString is not
      	present.
      
      From-SVN: r263407
      Tom de Vries committed
    • [libgomp, nvptx] Remove hard-coded const in nvptx_open_device · b113af95
      CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR is defined in cuda driver
      api version 6.0 and higher.
      
      Currently nvptx_open_device uses a hard-coded constant instead.
      
      This patch fixes that by:
      - defining CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR to the hardcoded
        constant at toplevel, if not present in cuda.h, and
      - using CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR in nvptx_open_device
      
      Build on x86_64 with nvptx accelerator and reg-tested libgomp.
      
      2018-08-08  Tom de Vries  <tdevries@suse.de>
      
      	* plugin/plugin-nvptx.c
      	(CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR): Define.
      	(nvptx_open_device): Use
      	CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR.
      
      From-SVN: r263406
      Tom de Vries committed
    • [libgomp, nvptx] Note that cuGetErrorString is in CUDA_VERSION >= 6000 · 94767dac
      Cuda driver api function cuGetErrorString is available in version 6.0 and
      higher.
      
      This patch:
      - removes a comment saying the declaration is not available in cuda.h 6.0
      - fixes the presence test to use CUDA_VERSION < 6000
      - moves the declaration to toplevel
      
      Build on x86_64 with nvptx accelerator and reg-tested libgomp.
      
      2018-08-08  Tom de Vries  <tdevries@suse.de>
      
      	* plugin/plugin-nvptx.c (cuda_error): Move declaration of cuGetErrorString ...
      	(cuGetErrorString): ... here.  Guard with CUDA_VERSION < 6000.
      
      From-SVN: r263405
      Tom de Vries committed
    • [AArch64] Add HXT Phecda core support · dc878fea
      HXT semiconductor's CPU core Phecda, as a variant of Qualcomm qdf24xx,
      reuses the same tuning structure and pipeline with it.
      
      Applied on behalf of: Hongbo Zhang <hongbo.zhang@linaro.org>
      
      	* config/aarch64/aarch64-cores.def: Add phecda core.
      	* config/aarch64/aarch64-tune.md: Regenerate.
      	* doc/invoke.texi: Add phecda core.
      
      From-SVN: r263404
      Hongbo Zhang committed
    • Fix Docbook markup for table entry · 2e9dae04
      	* doc/xml/manual/using.xml: Fix markup for empty table entry.
      	* doc/html/*: Regenerate.
      
      From-SVN: r263401
      Jonathan Wakely committed
    • Add missing <experimental/numeric> header to docs · c0d57e63
      	* doc/xml/manual/using.xml: Add missing header to table and fix typo.
      	* doc/html/*: Regenerate.
      
      From-SVN: r263398
      Jonathan Wakely committed
    • PR libstdc++/86597 directory_entry observers should clear error_code · d3f3c680
      	PR libstdc++/86597
      	* include/bits/fs_dir.h (directory_entry::_M_file_type(error_code&)):
      	Clear error_code when cached type is used.
      	* testsuite/27_io/filesystem/directory_entry/86597.cc: New test.
      
      From-SVN: r263397
      Jonathan Wakely committed
    • S/390: Fix PR85295 · 9f3c21d6
      gcc/ChangeLog:
      
      2018-08-08  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	PR target/85295
      	* config/s390/constraints.md ("NxHD0", "NxSD0"): New constraint
      	definitions.
      	* config/s390/s390.md ("movti"): Add more alternatives for
      	constant to GPR copies.
      
      gcc/testsuite/ChangeLog:
      
      2018-08-08  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	PR target/85295
      	* gcc.target/s390/TI-constants-lra.c: New testcase.
      	* gcc.target/s390/TI-constants-nolra.c: New testcase.
      
      From-SVN: r263396
      Andreas Krebbel committed
    • S/390: Fix whitespace problems in the backend · 0ff3dcd6
      2018-08-08  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390.c: Fix whitespace damage throughout the file.
      	* config/s390/s390.h: Likewise.
      	* config/s390/tpf.h: Likewise.
      
      From-SVN: r263395
      Andreas Krebbel committed
    • S/390: Remove TARGET_CPU_ZARCH · 8cc6307c
      TARGET_CPU_ZARCH allowed to distinguish between g5/g6 and newer
      machines.  Since the former are now gone, we can assume that
      TARGET_CPU_ZARCH is always true.  As a side-effect, branch splitting
      is now completely gone.  Some parts of literal pool splitting are also
      gone, but it's still there: we need to support it because floating
      point and vector instructions still cannot use relative addressing.
      
      gcc/ChangeLog:
      
      2018-08-08  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* config/s390/s390.c (s390_loadrelative_operand_p):
              Remove TARGET_CPU_ZARCH usages.
      	(s390_rtx_costs): Likewise.
      	(s390_legitimate_constant_p): Likewise.
      	(s390_cannot_force_const_mem): Likewise.
      	(legitimate_reload_constant_p): Likewise.
      	(s390_preferred_reload_class): Likewise.
      	(legitimize_pic_address): Likewise.
      	(legitimize_tls_address): Likewise.
      	(s390_split_branches): Removed.
      	(s390_add_execute): Removed.
      	(s390_dump_pool): Remove TARGET_CPU_ZARCH usages.
      	(s390_mainpool_start): Likewise.
      	(s390_mainpool_finish): Likewise.
      	(s390_mainpool_cancel): Removed.
      	(s390_chunkify_start): Remove TARGET_CPU_ZARCH usages.
      	(s390_chunkify_cancel): Likewise.
      	(s390_return_addr_rtx): Likewise.
      	(s390_register_info): Remove split_branches_pending_p uages.
      	(s390_optimize_register_info): Likewise.
      	(s390_init_frame_layout): Remove TARGET_CPU_ZARCH and
              split_branches_pending_p usages.
      	(s390_can_eliminate): Remove TARGET_CPU_ZARCH usages.
      	(s390_load_got): Likewise.
      	(s390_expand_split_stack_prologue): Likewise.
      	(output_asm_nops): Likewise.
      	(s390_function_profiler): Likewise.
      	(s390_emit_call): Likewise.
      	(s390_conditional_register_usage): Likewise.
      	(s390_optimize_prologue): Likewise.
      	(s390_reorg): Remove TARGET_CPU_ZARCH and
              split_branches_pending_p usages.
      	(s390_option_override_internal): Remove TARGET_CPU_ZARCH
              usages.
      	(s390_output_indirect_thunk_function): Likewise.
      	* config/s390/s390.h (TARGET_CPU_ZARCH): Removed.
      	(TARGET_CPU_ZARCH_P): Removed.
      	(struct machine_function): Remove split_branches_pending_p.
      	* config/s390/s390.md: Remove TARGET_CPU_ZARCH usages.
      
      From-SVN: r263394
      Ilya Leoshkevich committed
    • S/390: Remove support for g5 and g6 machines · 52d4aa4f
      g5 and g6 were deprecated since gcc 6.1.0 (commit 3bd8520f).
      
      gcc/ChangeLog:
      
      2018-08-08  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* common/config/s390/s390-common.c (processor_flags_table):
              Remove flags.
      	* config.gcc: Remove with_arch/with_tune support.
      	* config/s390/2064.md: Remove cpu attribute comparisons.
      	* config/s390/driver-native.c (s390_host_detect_local_cpu):
              Remove MTN.
      	* config/s390/linux.h (ASM_SPEC):
              Remove -march support.
      	* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal):
              Use a table to get an arch level.
      	* config/s390/s390-opts.h (enum processor_type):
              Remove enum values.
      	* config/s390/s390.c
              (processor_table): Remove entries, add arch_level values.
              (s390_issue_rate): Remove cases.
              (s390_option_override): Adjust
              s390_option_override_internal() call.
      	(s390_option_override_internal): Remove deprecation warning.
              (s390_valid_target_attribute_tree): Adjust
              s390_option_override_internal() call.
      	* config/s390/s390.h (struct s390_processor):
              Share with s390-c.c, add arch_level field.
      	* config/s390/s390.md:
              Remove occurrences in cpu attribute.
      	* config/s390/s390.opt: Remove -march/-mtune support.
      	* config/s390/tpf.h (ASM_SPEC): Remove -march support.
      	* doc/invoke.texi: Remove deprecation warning.
      
      gcc/testsuite/ChangeLog:
      
      2018-08-08  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* gcc.target/s390/hotpatch-8.c: Remove.
      	* gcc.target/s390/hotpatch-9.c: Remove.
      	* gcc.target/s390/mnop-mcount-m31-fpic.c: Remove.
      	* gcc.target/s390/mnop-mcount-m31.c: Remove.
      
      From-SVN: r263393
      Ilya Leoshkevich committed
    • P0595R1 - is_constant_evaluated · e4082611
      	P0595R1 - is_constant_evaluated
      cp/
      	* cp-tree.h (enum cp_built_in_function): New.
      	(maybe_constant_init): Add pretend_const_required argument.
      	* typeck2.c (store_init_value): Pass true as new argument to
      	maybe_constant_init.
      	* constexpr.c (constexpr_fn_retval): Check also DECL_BUILT_IN_CLASS
      	for BUILT_IN_UNREACHABLE.
      	(struct constexpr_ctx): Add pretend_const_required field.
      	(cxx_eval_builtin_function_call): Use DECL_IS_BUILTIN_CONSTANT_P
      	macro.  Handle CP_BUILT_IN_IS_CONSTANT_EVALUATED.  Check also
      	DECL_BUILT_IN_CLASS for BUILT_IN_UNREACHABLE.
      	(cxx_eval_outermost_constant_expr): Add pretend_const_required
      	argument, initialize pretend_const_required field in ctx.  If the
      	result is TREE_CONSTANT and non_constant_p, retry with
      	pretend_const_required false if it was true.
      	(is_sub_constant_expr): Initialize pretend_const_required_field in
      	ctx.
      	(cxx_constant_value): Pass true as pretend_const_required to
      	cxx_eval_outermost_constant_expr.
      	(maybe_constant_value): Pass false as pretend_const_required to
      	cxx_eval_outermost_constant_expr.
      	(fold_non_dependent_expr): Likewise.
      	(maybe_constant_init_1): Add pretend_const_required argument, pass it
      	down to cxx_eval_outermost_constant_expr.  Pass !allow_non_constant
      	instead of false as strict to cxx_eval_outermost_constant_expr.
      	(maybe_constant_init): Add pretend_const_required argument, pass it
      	down to maybe_constant_init_1.
      	(cxx_constant_init): Pass true as pretend_const_required to
      	maybe_constant_init_1.
      	* cp-gimplify.c (cp_gimplify_expr): Handle CALL_EXPRs to
      	CP_BUILT_IN_IS_CONSTANT_EVALUATED.
      	(cp_fold): Don't fold CP_BUILT_IN_IS_CONSTANT_EVALUATED calls.
      	* decl.c: Include langhooks.h.
      	(cxx_init_decl_processing): Register __builtin_is_constant_evaluated
      	built-in.
      	* tree.c (builtin_valid_in_constant_expr_p): Return true for
      	CP_BUILT_IN_IS_CONSTANT_EVALUATED.
      	* pt.c (declare_integer_pack): Initialize DECL_FUNCTION_CODE.
      testsuite/
      	* g++.dg/cpp2a/is-constant-evaluated1.C: New test.
      
      From-SVN: r263392
      Jakub Jelinek committed
    • re PR c++/86836 (internal compiler error on structured bindings with shadow… · 5e539332
      re PR c++/86836 (internal compiler error on structured bindings with shadow parameter on templated function)
      
      	PR c++/86836
      	* pt.c (tsubst_expr): For structured bindings, call tsubst_decomp_names
      	before tsubst_init, not after it.
      
      	* g++.dg/cpp1z/decomp46.C: New test.
      
      From-SVN: r263391
      Jakub Jelinek committed
    • re PR c++/86738 (gcc 8.2: Internal compiler error memcpy) · bf533db8
      	PR c++/86738
      	* constexpr.c (cxx_eval_binary_expression): For arithmetics involving
      	NULL pointer set *non_constant_p to true.
      	(cxx_eval_component_reference): For dereferencing of a NULL pointer,
      	set *non_constant_p to true and return t.
      
      	* g++.dg/opt/pr86738.C: New test.
      
      From-SVN: r263390
      Jakub Jelinek committed
    • [AArch64, Falkor] Switch to using Falkor-specific vector costs. · e75bc10e
      The adjusted vector costs give Falkor a reasonable boost in performance for FP
      benchmarks (both CPU2017 and CPU2006) and doesn't change INT benchmarks that
      much. There are some regressions that will be investigated as follow on work.
      
      Numbers from the CI run:
      
      CPU2017:
      
      (R) 605.mcf_s: -1.8%
      (R) 620.omnetpp_s: -2%
          623.xalancbmk_s: 2%
          654.roms_s: 7%
      
      (R) INT mean: -0.09%
          FP mean: 0.70%
      
      CPU2006:
      
      (R) 429.mc: -5%
      (R) 471.omnetpp: -9.5% (potentially noise/fluctuations)
          483.xalancbmk: 6.02%
          410.bwaves: 5.03%
          433.milc: 2%
          434.zeusmp: 10.5%
      (R) 436.cactusADM: -12.75%
          437.leslie3d: 5.94%
      (R) 453.povray: -0.82%
          459.GemsFDTD: 16.87%
          465.tonto: 1%
      
      (R) INT mean: -0.79%
          FP mean: 1.54%
      
      gcc/ChangeLog:
      
      2018-08-08  Luis Machado  <luis.machado@linaro.org>
      
      	* config/aarch64/aarch64.c (qdf24xx_vector_cost): New static global.
      	(qdf24xx_tunings): Set vector cost structure to qdf24xx_vector_cost.
      
      From-SVN: r263389
      Luis Machado committed
    • [aarch64] Adjust Falkor's sign extend reg+reg address cost · 31508b39
      Adjust Falkor's register_sextend cost from 4 to 3.  This fixes a testsuite
      failure in gcc.target/aarch64/extend.c:ldr_sxtw where GCC was generating
      a sbfiz instruction rather than a load with sign extension.
      
      No performance changes.
      
      gcc/ChangeLog:
      
      2018-08-08  Luis Machado  <luis.machado@linaro.org>
      
      	* config/aarch64/aarch64.c (qdf24xx_addrcost_table)
      	<register_sextend>: Set to 3.
      
      From-SVN: r263388
      Luis Machado committed
    • Daily bump. · 8a1d7237
      From-SVN: r263387
      GCC Administrator committed
  3. 07 Aug, 2018 14 commits
    • [OpenACC] cleanup trans-stmt.h · 1972d615
      	gcc/fortran/
      	* trans-stmt.h: Remove stale reference to trans-openacc.c.
      
      From-SVN: r263372
      Cesar Philippidis committed
    • [PATCH] Line map table allocation · e81c3c4d
      https://gcc.gnu.org/ml/gcc-patches/2018-08/msg00434.html
      	* line-map.c: (linemap_init): Set default allocator here.
      	(new_linemap): Rather than here.  Refactor allocation logic.
      
      From-SVN: r263366
      Nathan Sidwell committed
    • PR libstdc++/86874 fix std::variant::swap regression · 0ec78a93
      	PR libstdc++/86874
      	* include/std/variant (_Copy_ctor_base::_M_destructive_move): Define
      	here instead of in _Move_assign_base.
      	(_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define.
      	(_Copy_assign_base::operator=): Use _M_destructive_move when changing
      	the contained value to another alternative.
      	(_Move_assign_base::operator=): Likewise.
      	(_Move_assign_base::_M_destructive_move): Remove.
      	* testsuite/20_util/variant/86874.cc: New test.
      
      From-SVN: r263365
      Jonathan Wakely committed
    • runtime: use poll rather than pollset for netpoll on AIX · b7d7c92f
          
          Updates golang/go#26634
          
          Reviewed-on: https://go-review.googlesource.com/126857
      
      From-SVN: r263364
      Ian Lance Taylor committed
    • libgo: uncomment trace.Stop() call in testing package · 9be4d772
          
          Fix up the testing package to insure that execution traces
          work properly (e.g. "-test.trace=<XXX>" command line option). The
          call to stop tracing and emit the output file was stubbed out.
          
          Reviewed-on: https://go-review.googlesource.com/128275
      
      From-SVN: r263363
      Ian Lance Taylor committed
    • [AArch64] Fix -mlow-precision-div (PR 86838) · 4663b943
      The "@" handling broke -mlow-precision-div, because the scalar forms of
      the instruction were provided by a pattern that also provided FRECPX
      (and so were parameterised on an unspec code as well as a mode),
      while the SIMD versions had a dedicated FRECPE pattern.  This patch
      moves the scalar FRECPE handling to the SIMD pattern too (as for FRECPS)
      and uses a separate pattern for FRECPX.
      
      The convention in aarch64-simd-builtins.def seemed to be to add
      comments only if the mapping wasn't obvious (i.e. not just sticking
      "aarch64_" on the beginning and "<mode>" on the end), so the patch
      deletes the reference to the combined pattern instead of rewording it.
      
      There didn't seem to be any coverage of -mlow-precision-div in the
      testsuite, so the patch adds some tests for it.
      
      2018-08-07  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	PR target/86838
      	* config/aarch64/iterators.md (FRECP, frecp_suffix): Delete.
      	* config/aarch64/aarch64-simd.md
      	(aarch64_frecp<FRECP:frecp_suffix><mode>): Fold FRECPE into...
      	(@aarch64_frecpe<mode>): ...here and the move FRECPX to...
      	(aarch64_frecpx<mode>): ...this new pattern.
      	* config/aarch64/aarch64-simd-builtins.def: Remove comment
      	about aarch64_frecp<FRECP:frecp_suffix><mode>.
      
      gcc/testsuite/
      	PR target/86838
      	* gcc.target/aarch64/frecpe_1.c: New test.
      	* gcc.target/aarch64/frecpe_2.c: Likewise.
      
      From-SVN: r263362
      Richard Sandiford committed
    • PR c++/59480, DR 136 · 6429b8e0
      /cp
      2018-08-07  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/59480, DR 136
      	* decl.c (check_no_redeclaration_friend_default_args): New.
      	(duplicate_decls): Use the latter; also check that a friend
      	declaration specifying default arguments is a definition.
      
      /testsuite
      2018-08-07  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/59480, DR 136
      	* g++.dg/other/friend8.C: New.
      	* g++.dg/other/friend9.C: Likewise.
      	* g++.dg/other/friend10.C: Likewise.
      	* g++.dg/other/friend11.C: Likewise.
      	* g++.dg/other/friend12.C: Likewise.
      	* g++.dg/other/friend13.C: Likewise.
      	* g++.dg/other/friend14.C: Likewise.
      	* g++.dg/other/friend15.C: Likewise.
      	* g++.dg/parse/defarg4.C: Compile with -fpermissive -w.
      	* g++.dg/parse/defarg8.C: Likewise.
      
      From-SVN: r263361
      Paolo Carlini committed
    • PR libstdc++/86861 Meet precondition for Solaris memalign · 1d1b7328
      Solaris memalign requires alignment to be at least sizeof(int), so
      increase it as needed.
      
      Also move the check for valid alignments from the fallback
      implementation of aligned_alloc into operator new, as it's required for
      all of aligned_alloc, memalign, posix_memalign and __aligned_malloc.
      This adds a branch to check for undefined behaviour which we could just
      ignore, so the check could just be removed. It should certainly be
      removed if PR 86878 is implemented to issue a warning about calls with
      invalid alignments.
      
      	PR libstdc++/86861
      	* libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc):
      	Replace macro with inline function.
      	[__sun]: Increase alignment to meet memalign precondition.
      	[!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN]
      	(aligned_alloc): Move check for valid alignment to operator new.
      	Remove redundant check for non-zero size, it's enforced by the caller.
      	(operator new): Move check for valid alignment here. Use
      	__builtin_expect on check for zero size.
      
      From-SVN: r263360
      Jonathan Wakely committed
    • Fix PR number for HPPA speculation patch: PR target/86807 -> PR target/86785 · e81c3c1e
      This just fixes the PR number in the ChangeLog.  Nothing we can do
      about the SVN history.
      
      From-SVN: r263358
      Richard Earnshaw committed
    • re PR c++/79133 (lambda capture shadowing parameter & decltype confusion) · 63b48839
      PR c++/79133
      
      gcc/cp/
      
      PR c++/79133
      * name-lookup.c (check_local_shadow): Reject captures and parameters
      with the same name.
      
      testsuite/
      
      PR c++/79133
      * g++.dg/cpp0x/lambda/lambda-shadow3.C: New.
      * g++.dg/cpp1y/lambda-generic-variadic18.C: Likewise.
      
      From-SVN: r263357
      Ville Voutilainen committed
    • Add malloc predictor (PR middle-end/83023). · 806562fd
      2018-08-07  Martin Liska  <mliska@suse.cz>
      
              PR middle-end/83023
      	* predict.c (expr_expected_value_1): Handle DECL_IS_MALLOC,
              BUILT_IN_REALLOC and DECL_IS_OPERATOR_NEW.
      	* predict.def (PRED_MALLOC_NONNULL): New predictor.
      	* doc/extend.texi: Document that malloc attribute adds
              hit to compiler.
      2018-08-07  Martin Liska  <mliska@suse.cz>
      
              PR middle-end/83023
      	* gcc.dg/predict-16.c: New test.
      	* g++.dg/predict-1.C: New test.
      
      From-SVN: r263355
      Martin Liska committed
    • Define monotonic_buffer_resource members out-of-line · ea2329d1
      Move the allocation logic into libstdc++.so so that it can be changed
      without worrying about inlined code in existing binaries.
      
      Leave do_allocate inline so that calls to it can be devirtualized, and
      only the slow path needs to call into the library.
      
      	* config/abi/pre/gnu.ver: Export monotonic_buffer_resource members.
      	* include/std/memory_resource (monotonic_buffer_resource::release):
      	Call _M_release_buffers to free buffers.
      	(monotonic_buffer_resource::do_allocate): Call _M_new_buffer to
      	allocate a new buffer from upstream.
      	(monotonic_buffer_resource::_M_new_buffer): Declare.
      	(monotonic_buffer_resource::_M_release_buffers): Declare.
      	(monotonic_buffer_resource::_Chunk): Replace definition with
      	declaration as opaque type.
      	* src/c++17/memory_resource.cc (monotonic_buffer_resource::_Chunk):
      	Define.
      	(monotonic_buffer_resource::_M_new_buffer): Define.
      	(monotonic_buffer_resource::_M_release_buffers): Define.
      
      From-SVN: r263354
      Jonathan Wakely committed
    • Fix gcc.dg/vect/no-section-anchors-vect-69.c on SPARC etc. (PR tree-optimization/80925) · 4c929126
      2018-08-07  Steve Ellcey  <sellcey@cavium.com>
      	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
      
      	PR tree-optimization/80925
      	* gcc.dg/vect/no-section-anchors-vect-69.c: Expect 3 loops
      	vectorized on !vect_hw_misalign targets.
      
      Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
      
      From-SVN: r263352
      Steve Ellcey committed
    • Add missing gcc-interface/ to 2018-07-31 ChangeLog entry · a6ac1bf6
      From-SVN: r263351
      Alexandre Oliva committed