1. 12 Sep, 2017 29 commits
    • [Mechanical Patch ARM/AArch64 1/2] Rename load/store scheduling types to encode data size · 89b2133e
      In the AArch64 backend and scheduling models there is some confusion as to
      what the load1/load2 etc. scheduling types refer to. This leads to us using
      load1/load2 in two contexts - for a variety of 32-bit, 64-bit and 128-bit
      loads in AArch32 and 128-bit loads in AArch64. That leads to an undesirable
      confusion in scheduling.
      
      Fixing it is easy, but mechanical and boring. Essentially,
      
        s/load1/load_4/
        s/load2/load_8/
        s/load3/load_12/
        s/load4/load_16/
        s/store1/store_4/
        s/store2/store_8/
        s/store3/store_12/
        s/store4/store_16/
      
      Across all sorts of pipeline models, and the two backends.
      
      I have intentionally not modified any of the patterns which now look obviously
      incorrect. I'll be doing a second pass over the AArch64 back-end in patch
      2/2 which will fix these bugs.
      
      ---
      gcc/
      
      	* config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
      	and store1/2/3/4 to store_4/8/12/16.
      	* config/aarch64/aarch64.md: Update for rename.
      	* config/arm/arm.md: Likewise.: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/arm/thumb1.md: Likewise.
      	* config/arm/thumb2.md: Likewise.
      	* config/arm/vfp.md: Likewise.
      	* config/arm/arm-generic.md: Likewise.
      	* config/arm/arm1020e.md: Likewise.
      	* config/arm/arm1026ejs.md: Likewise.
      	* config/arm/arm1136jfs.md: Likewise.
      	* config/arm/arm926ejs.md: Likewise.
      	* config/arm/cortex-a15.md: Likewise.
      	* config/arm/cortex-a17.md: Likewise.
      	* config/arm/cortex-a5.md: Likewise.
      	* config/arm/cortex-a53.md: Likewise.
      	* config/arm/cortex-a57.md: Likewise.
      	* config/arm/cortex-a7.md: Likewise.
      	* config/arm/cortex-a8.md: Likewise.
      	* config/arm/cortex-a9.md: Likewise.
      	* config/arm/cortex-m4.md: Likewise.
      	* config/arm/cortex-m7.md: Likewise.
      	* config/arm/cortex-r4.md: Likewise.
      	* config/arm/exynos-m1.md: Likewise.
      	* config/arm/fa526.md: Likewise.
      	* config/arm/fa606te.md: Likewise.
      	* config/arm/fa626te.md: Likewise.
      	* config/arm/fa726te.md: Likewise.
      	* config/arm/fmp626.md: Likewise.
      	* config/arm/iwmmxt.md: Likewise.
      	* config/arm/ldmstm.md: Likewise.
      	* config/arm/marvell-pj4.md: Likewise.
      	* config/arm/xgene1.md: Likewise.
      	* config/aarch64/thunderx.md: Likewise.
      	* config/aarch64/thunderx2t99.md: Likewise.
      	* config/aarch64/falkor.md: Likewise.
      
      From-SVN: r252025
      James Greenhalgh committed
    • Fix GIMPLE FE test (PR testsuite/82114) · 5f33b353
      2017-09-12  Martin Liska  <mliska@suse.cz>
      
      	PR testsuite/82114
      	* gcc.dg/gimplefe-14.c (main): Add handling of case 0.
      
      From-SVN: r252024
      Martin Liska committed
    • c-common.c (field_decl_cmp, [...]): Move to c/c-decl.c. · 6836632e
      	c-family/
      	* c-common.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
      	resort_sorted_fields): Move to c/c-decl.c.
      	* c-common.h (field_decl_cmp, resort_sorted_fields): Delete.
      	(struct sorted_fields_type): Move to c/c-lang.h.
      
      	c/
      	* c-decl.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
      	resort_sorted_fields): Moved from c-family/c-common.c.
      	* c-lang.h (struct sorted_fields_type): Moved from c-family/c-common.h.
      
      From-SVN: r252023
      Nathan Sidwell committed
    • Reduce lookup_attribute memory footprint. · 13bdca74
      2017-09-12  Martin Liska  <mliska@suse.cz>
      
      	* attribs.c (private_lookup_attribute): New function.
      	* attribs.h (private_lookup_attribute): Declared here.
      	(lookup_attribute): Called from this place.
      
      From-SVN: r252022
      Martin Liska committed
    • re PR tree-optimization/82157 (ICE on valid code at -O2 and -O3: cannot update SSA form) · 29545149
      2017-09-12  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82157
      	* tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
      	stmts with side-effects.
      
      	* gcc.dg/torture/pr82157.c: New testcase.
      
      From-SVN: r252020
      Richard Biener committed
    • PR libstdc++/79433 no #error for including TS headers with wrong -std · d681026d
      	PR libstdc++/79433
      	* include/Makefile.am: Remove <bits/c++14_warning.h>.
      	* include/Makefile.in: Regenerate.
      	* include/bits/c++14_warning.h: Remove.
      	* include/experimental/algorithm: Do not include <c++14_warning.h>.
      	* include/experimental/any: Likewise.
      	* include/experimental/array: Likewise.
      	* include/experimental/bits/erase_if.h: Likewise.
      	* include/experimental/bits/lfts_config.h: Likewise.
      	* include/experimental/bits/shared_ptr.h: Likewise.
      	* include/experimental/bits/string_view.tcc: Likewise.
      	* include/experimental/chrono: Likewise.
      	* include/experimental/deque: Likewise.
      	* include/experimental/filesystem: Do not include <c++0x_warning.h>.
      	* include/experimental/forward_list: Do not include <c++14_warning.h>.
      	* include/experimental/functional: Likewise.
      	* include/experimental/iterator: Likewise.
      	* include/experimental/list: Likewise.
      	* include/experimental/map: Likewise.
      	* include/experimental/memory: Likewise.
      	* include/experimental/numeric: Likewise.
      	* include/experimental/optional: Likewise.
      	* include/experimental/propagate_const: Likewise.
      	* include/experimental/ratio: Likewise.
      	* include/experimental/regex: Likewise.
      	* include/experimental/set: Likewise.
      	* include/experimental/string: Likewise.
      	* include/experimental/string_view: Likewise.
      	* include/experimental/system_error: Likewise.
      	* include/experimental/tuple: Likewise.
      	* include/experimental/type_traits: Likewise.
      	* include/experimental/unordered_map: Likewise.
      	* include/experimental/unordered_set: Likewise.
      	* include/experimental/vector: Likewise.
      	* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error
      	line number.
      	* testsuite/experimental/array/neg.cc: Likewise.
      	* testsuite/experimental/propagate_const/assignment/move_neg.cc:
      	Likewise.
      	* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
      	* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
      	* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
      	* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
      	* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
      
      From-SVN: r252019
      Jonathan Wakely committed
    • PR libstdc++/79433 no #error for including headers with wrong -std · c6888c62
      	PR libstdc++/79433
      	* doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
      	* doc/html/*: Regenerate.
      	* include/Makefile.am: Remove <bits/c++17_warning.h>.
      	* include/Makefile.in: Regenerate.
      	* include/bits/c++17_warning.h: Remove.
      	* include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
      	for pre-C++17 modes.
      	* include/std/any: Likewise.
      	(__cpp_lib_any): Define.
      	* include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
      	SD-6 draft.
      	* include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
      	draft.
      	* include/std/optional: Do not include <bits/c++17_warning.h>.
      	(__cpp_lib_optional): Define.
      	* include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
      	* include/std/string_view: Do not include <bits/c++17_warning.h>.
      	(__cpp_lib_string_view): Define.
      	* include/std/variant: Do not include <bits/c++17_warning.h>.
      	(__cpp_lib_variant): Define.
      	* testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
      	numbers.
      	* testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
      	* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
      	numbers.
      	* testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
      	* testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
      	numbers.
      	* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
      	expected value of __cpp_lib_scoped_lock.
      
      From-SVN: r252018
      Jonathan Wakely committed
    • PR libstdc++/70483 make std::experimental::string_view fully constexpr · 2be7a166
      	PR libstdc++/70483
      	* include/experimental/bits/string_view.tcc (basic_string_view::find)
      	(basic_string_view::rfind, basic_string_view::find_first_of)
      	(basic_string_view::find_last_of, basic_string_view::find_first_not_of)
      	(basic_string_view::find_last_not_of): Add constexpr specifier.
      	* include/experimental/string_view (basic_string_view::remove_prefix)
      	(basic_string_view::remove_suffix, basic_string_view::swap)
      	(basic_string_view::compare, basic_string_view::find)
      	(basic_string_view::rfind, basic_string_view::find_first_of)
      	(basic_string_view::find_last_of, basic_string_view::find_first_not_of)
      	(basic_string_view::find_last_not_of, operator==, operator!=)
      	(operator<, operator>, operator<=, operator>=): Likewise.
      	* testsuite/experimental/string_view/operations/compare/char/70483.cc:
      	New.
      
      From-SVN: r252017
      Jonathan Wakely committed
    • Turn HARD_REGNO_NREGS into a target hook · c43f4279
      2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood <david.sherwood@arm.com>
      
      gcc/
      	* target.def (hard_regno_nregs): New hook.
      	(class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
      	* targhooks.h (default_hard_regno_nregs): Declare.
      	* targhooks.c (default_hard_regno_nregs): New function.
      	* doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
      	(TARGET_HARD_REGNO_NREGS): ...this hook.
      	(HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
      	(CLASS_MAX_NREGS): Likewise.
      	* doc/tm.texi: Regenerate.
      	* reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
      	instead of HARD_REGNO_NREGS.
      	* rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
      	HARD_REGNO_NREGS in the comment.
      	* config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
      	* config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
      	* config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
      	Return an unsigned int.
      	(TARGET_HARD_REGNO_NREGS): Redefine.
      	* config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
      	* config/arc/arc.h (HARD_REGNO_NREGS): Delete.
      	* config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	(arc_hard_regno_nregs): New function.
      	* config/arm/arm.h (HARD_REGNO_NREGS): Delete.
      	* config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	(arm_hard_regno_nregs): New function.
      	* config/avr/avr.h (HARD_REGNO_NREGS): Delete.
      	* config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
      	* config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
      	(TARGET_HARD_REGNO_NREGS): Redefine.
      	* config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
      	* config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
      	(HARD_REGNO_NREGS): Delete.
      	* config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	(cr16_hard_regno_nregs): New function.
      	(cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
      	* config/cris/cris.h (HARD_REGNO_NREGS): Delete.
      	* config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	(cris_hard_regno_nregs): New function.
      	* config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
      	* config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
      	(CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
      	* config/frv/frv.h (HARD_REGNO_NREGS): Delete.
      	(CLASS_MAX_NREGS): Remove outdated copy of documentation.
      	* config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
      	* config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	(frv_hard_regno_nregs): Make static.  Take and return an
      	unsigned int.
      	(frv_class_max_nregs): Remove outdated copy of documentation.
      	* config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
      	* config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
      	* config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
      	* config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
      	* config/i386/i386.h (HARD_REGNO_NREGS): Delete.
      	* config/i386/i386.c (ix86_hard_regno_nregs): New function.
      	(TARGET_HARD_REGNO_NREGS): Redefine.
      	* config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
      	(CLASS_MAX_NREGS): Update comment.
      	* config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	(ia64_hard_regno_nregs): New function.
      	* config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
      	* config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
      	* config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
      	* config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
      	* config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
      	an unsigned int.
      	(m32c_hard_regno_nregs): Likewise.  Make static.
      	(TARGET_HARD_REGNO_NREGS): Redefine.
      	* config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
      	* config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
      	* config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	(m68k_hard_regno_nregs): New function.
      	* config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
      	* config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
      	* config/mips/mips.h (HARD_REGNO_NREGS): Delete.
      	* config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
      	* config/mips/mips.c (mips_hard_regno_nregs): Make static.
      	Take and return an unsigned int.
      	(TARGET_HARD_REGNO_NREGS): Redefine.
      	* config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
      	(CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
      	* config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
      	* config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
      	* config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
      	* config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
      	* config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	(msp430_hard_regno_nregs): Make static.  Take and return an
      	unsigned int.
      	* config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
      	* config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
      	* config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
      	(nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
      	* config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
      	* config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
      	* config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
      	(TARGET_HARD_REGNO_NREGS): Redefine.
      	* config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
      	(PA_HARD_REGNO_NREGS): ...this.
      	* config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
      	(PA_HARD_REGNO_NREGS): ...this.
      	* config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	(pa_hard_regno_nregs): New function.
      	* config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
      	* config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	(pdp11_hard_regno_nregs): New function.
      	* config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
      	* config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	(rs6000_hard_regno_nregs_hook): New function.
      	* config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
      	* config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
      	* config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
      	Take and return an unsigned int.  Move earlier in file.
      	(TARGET_HARD_REGNO_NREGS): Redefine.
      	* config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
      	* config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
      	* config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
      	(rl78_hard_regno_nregs): Make static.  Take and return an
      	unsigned int.
      	* config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
      	* config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	(rs6000_hard_regno_nregs_hook): New function.
      	* config/rx/rx.h (HARD_REGNO_NREGS): Delete.
      	* config/rx/rx.c (rx_hard_regno_nregs): New function.
      	(TARGET_HARD_REGNO_NREGS): Redefine.
      	* config/s390/s390.h (HARD_REGNO_NREGS): Delete.
      	* config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
      	instead of HARD_REGNO_NREGS.
      	(s390_hard_regno_nregs): New function.
      	(s390_hard_regno_mode_ok): Add comment from s390.h.
      	(TARGET_HARD_REGNO_NREGS): Redefine.
      	* config/sh/sh.h (HARD_REGNO_NREGS): Delete.
      	* config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	(sh_hard_regno_nregs): New function.
      	(sh_pass_in_reg_p): Use it.
      	* config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
      	* config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	(sparc_hard_regno_nregs): New function.
      	* config/spu/spu.h (HARD_REGNO_NREGS): Delete.
      	* config/spu/spu.c (spu_hard_regno_nregs): New function.
      	(spu_function_arg_advance): Use it, supplying a valid register number.
      	(TARGET_HARD_REGNO_NREGS): Redefine.
      	* config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
      	* config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
      	* config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
      	* config/v850/v850.h (HARD_REGNO_NREGS): Delete.
      	* config/vax/vax.h (HARD_REGNO_NREGS): Delete.
      	* config/visium/visium.h (HARD_REGNO_NREGS): Delete.
      	(CLASS_MAX_NREGS): Remove copy of old documentation.
      	* config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	(visium_hard_regno_nregs): New function.
      	(visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
      	* config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
      	* config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
      	xtensa_hard_regno_nregs): New function.
      	* system.h (HARD_REGNO_NREGS): Poison.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r252016
      Richard Sandiford committed
    • Use hard_regno_nregs instead of HARD_REGNO_NREGS · a93072ca
      This patch converts some places that use HARD_REGNO_NREGS to use
      hard_regno_nregs, in places where the initialisation has obviously
      already taken place.
      
      2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
      	hard_regno_nregs instead of HARD_REGNO_NREGS.
      	(THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
      	* config/c6x/c6x.c (c6x_expand_prologue): Likewise.
      	(c6x_expand_epilogue): Likewise.
      	* config/frv/frv.c (frv_alloc_temp_reg): Likewise.
      	(frv_read_iacc_argument): Likewise.
      	* config/sh/sh.c: Include regs.h.
      	(sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
      	(regs_used): Likewise.
      	(output_stack_adjust): Likewise.
      	* config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
      	* expmed.c: Include regs.h.
      	(store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
      	* ree.c: Include regs.h.
      	(combine_reaching_defs): Use hard_regno_nregs instead of
      	HARD_REGNO_NREGS.
      	(add_removable_extension): Likewise.
      
      From-SVN: r252015
      Richard Sandiford committed
    • Convert hard_regno_nregs to a function · ad474626
      This patch converts hard_regno_nregs into an inline function, which
      in turn allows hard_regno_nregs to be used as the name of a targetm
      field.  This is just a mechanical change.
      
      2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* regs.h (hard_regno_nregs): Turn into a function.
      	(end_hard_regno): Update accordingly.
      	* caller-save.c (setup_save_areas): Likewise.
      	(save_call_clobbered_regs): Likewise.
      	(replace_reg_with_saved_mem): Likewise.
      	(insert_restore): Likewise.
      	(insert_save): Likewise.
      	* combine.c (can_change_dest_mode): Likewise.
      	(move_deaths): Likewise.
      	(distribute_notes): Likewise.
      	* config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
      	* config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
      	(rs6000_split_multireg_move): Likewise.
      	(rs6000_register_move_cost): Likewise.
      	(rs6000_memory_move_cost): Likewise.
      	* config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
      	(rs6000_split_multireg_move): Likewise.
      	(rs6000_register_move_cost): Likewise.
      	(rs6000_memory_move_cost): Likewise.
      	* cselib.c (cselib_reset_table): Likewise.
      	(cselib_lookup_1): Likewise.
      	* emit-rtl.c (set_mode_and_regno): Likewise.
      	* function.c (aggregate_value_p): Likewise.
      	* ira-color.c (setup_profitable_hard_regs): Likewise.
      	(check_hard_reg_p): Likewise.
      	(calculate_saved_nregs): Likewise.
      	(assign_hard_reg): Likewise.
      	(improve_allocation): Likewise.
      	(calculate_spill_cost): Likewise.
      	* ira-emit.c (modify_move_list): Likewise.
      	* ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
      	(ira_hard_reg_in_set_p): Likewise.
      	* ira.c (setup_reg_mode_hard_regset): Likewise.
      	(clarify_prohibited_class_mode_regs): Likewise.
      	(check_allocation): Likewise.
      	* lra-assigns.c (find_hard_regno_for_1): Likewise.
      	(lra_setup_reg_renumber): Likewise.
      	(setup_try_hard_regno_pseudos): Likewise.
      	(spill_for): Likewise.
      	(assign_hard_regno): Likewise.
      	(setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
      	* lra-constraints.c (in_class_p): Likewise.
      	(lra_constraint_offset): Likewise.
      	(simplify_operand_subreg): Likewise.
      	(lra_constraints): Likewise.
      	(split_reg): Likewise.
      	(split_if_necessary): Likewise.
      	(invariant_p): Likewise.
      	(inherit_in_ebb): Likewise.
      	* lra-lives.c (process_bb_lives): Likewise.
      	* lra-remat.c (reg_overlap_for_remat_p): Likewise.
      	(get_hard_regs): Likewise.
      	(do_remat): Likewise.
      	* lra-spills.c (assign_spill_hard_regs): Likewise.
      	* mode-switching.c (create_pre_exit): Likewise.
      	* postreload.c (reload_combine_recognize_pattern): Likewise.
      	* recog.c (peep2_find_free_register): Likewise.
      	* regcprop.c (kill_value_regno): Likewise.
      	(set_value_regno): Likewise.
      	(copy_value): Likewise.
      	(maybe_mode_change): Likewise.
      	(find_oldest_value_reg): Likewise.
      	(copyprop_hardreg_forward_1): Likewise.
      	* regrename.c (check_new_reg_p): Likewise.
      	(regrename_do_replace): Likewise.
      	* reload.c (push_reload): Likewise.
      	(combine_reloads): Likewise.
      	(find_dummy_reload): Likewise.
      	(operands_match_p): Likewise.
      	(find_reloads): Likewise.
      	(find_equiv_reg): Likewise.
      	(reload_adjust_reg_for_mode): Likewise.
      	* reload1.c (count_pseudo): Likewise.
      	(count_spilled_pseudo): Likewise.
      	(find_reg): Likewise.
      	(clear_reload_reg_in_use): Likewise.
      	(free_for_value_p): Likewise.
      	(allocate_reload_reg): Likewise.
      	(choose_reload_regs): Likewise.
      	(reload_adjust_reg_for_temp): Likewise.
      	(emit_reload_insns): Likewise.
      	(delete_output_reload): Likewise.
      	* rtlanal.c (subreg_get_info): Likewise.
      	* sched-deps.c (sched_analyze_reg): Likewise.
      	* sel-sched.c (init_regs_for_mode): Likewise.
      	(mark_unavailable_hard_regs): Likewise.
      	(choose_best_reg_1): Likewise.
      	(verify_target_availability): Likewise.
      	* valtrack.c (dead_debug_insert_temp): Likewise.
      	* var-tracking.c (track_loc_p): Likewise.
      	(emit_note_insn_var_location): Likewise.
      	* varasm.c (make_decl_rtl): Likewise.
      	* reginfo.c (choose_hard_reg_mode): Likewise.
      	(init_reg_modes_target): Refer directly to
      	this_target_regs->x_hard_regno_nregs.
      
      From-SVN: r252014
      Richard Sandiford committed
    • Make more use of in_hard_reg_set_p · c1b52c0e
      An upcoming patch will convert hard_regno_nregs into an inline
      function, which in turn allows hard_regno_nregs to be used as the
      name of a targetm field.  This patch rewrites a use that can use
      in_hard_reg_set_p instead.
      
      2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
      	instead of hard_regno_nregs.
      
      From-SVN: r252013
      Richard Sandiford committed
    • Make more use of end_hard_regno · 4edd6298
      An upcoming patch will convert hard_regno_nregs into an inline
      function, which in turn allows hard_regno_nregs to be used as the
      name of a targetm field.  This patch rewrites uses that can use
      end_hard_regno instead.
      
      2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
      	end_hard_regno instead of hard_regno_nregs.
      	* config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
      	* config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
      	* config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
      	* ira-color.c (improve_allocation): Likewise.
      	* lra-assigns.c (find_hard_regno_for_1): Likewise.
      	* lra-lives.c (mark_regno_live): Likewise.
      	(mark_regno_dead): Likewise.
      	* lra-remat.c (operand_to_remat): Likewise.
      	* lra.c (collect_non_operand_hard_regs): Likewise.
      	* postreload.c (reload_combine_note_store): Likewise.
      	(move2add_valid_value_p): Likewise.
      	* reload.c (regno_clobbered_p): Likewise.
      
      From-SVN: r252012
      Richard Sandiford committed
    • Make more use of END_REGNO · 036620db
      An upcoming patch will convert hard_regno_nregs into an inline
      function, which in turn allows hard_regno_nregs to be used as the
      name of a targetm field.  This patch rewrites uses that are more
      easily (and efficiently) written as END_REGNO.
      
      2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
      	hard_regno_nregs.
      	* config/v850/v850.c (v850_reorg): Likewise.
      	* reload.c (refers_to_regno_for_reload_p): Likewise.
      	(find_equiv_reg): Likewise.
      	* reload1.c (reload_reg_reaches_end_p): Likewise.
      
      From-SVN: r252011
      Richard Sandiford committed
    • Make more use of REG_NREGS · 462a99aa
      An upcoming patch will convert hard_regno_nregs into an inline
      function, which in turn allows hard_regno_nregs to be used as the
      name of a targetm field.  This patch rewrites uses that are more
      easily (and efficiently) written as REG_NREGS.
      
      2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* caller-save.c (add_used_regs): Use REG_NREGS instead of
      	hard_regno_nregs.
      	* config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
      	* config/arm/arm.c (output_move_neon): Likewise.
      	(arm_attr_length_move_neon): Likewise.
      	(neon_split_vcombine): Likewise.
      	* config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
      	(c6x_mark_reg_written): Likewise.
      	(c6x_dwarf_register_span): Likewise.
      	* config/i386/i386.c (ix86_save_reg): Likewise.
      	* config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
      	(rws_access_reg): Likewise.
      	* config/s390/s390.c (s390_call_saved_register_used): Likewise.
      	* mode-switching.c (create_pre_exit): Likewise.
      	* ree.c (combine_reaching_defs): Likewise.
      	(add_removable_extension): Likewise.
      	* regcprop.c (find_oldest_value_reg): Likewise.
      	(copyprop_hardreg_forward_1): Likewise.
      	* reload.c (reload_inner_reg_of_subreg): Likewise.
      	(push_reload): Likewise.
      	(combine_reloads): Likewise.
      	(find_dummy_reload): Likewise.
      	(reload_adjust_reg_for_mode): Likewise.
      	* reload1.c (find_reload_regs): Likewise.
      	(forget_old_reloads_1): Likewise.
      	(reload_reg_free_for_value_p): Likewise.
      	(reload_adjust_reg_for_temp): Likewise.
      	(emit_reload_insns): Likewise.
      	(delete_output_reload): Likewise.
      	* sel-sched.c (choose_best_reg_1): Likewise.
      	(choose_best_pseudo_reg): Likewise.
      
      From-SVN: r252010
      Richard Sandiford committed
    • Turn SLOW_UNALIGNED_ACCESS into a target hook · e0bd6c9f
      2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood <david.sherwood@arm.com>
      
      gcc/
      	* defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
      	* target.def (slow_unaligned_access): New hook.
      	* targhooks.h (default_slow_unaligned_access): Declare.
      	* targhooks.c (default_slow_unaligned_access): New function.
      	* doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
      	(TARGET_SLOW_UNALIGNED_ACCESS): ...this.
      	* doc/tm.texi: Regenerate.
      	* config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
      	* config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
      	* config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
      	definition.
      	* config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
      	* config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
      	Redefine.
      	(rs6000_slow_unaligned_access): New function.
      	(rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
      	(expand_block_compare): Likewise.
      	(expand_strn_compare): Likewise.
      	(rs6000_rtx_costs): Likewise.
      	* config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
      	(riscv_slow_unaligned_access): Likewise.
      	* config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
      	(riscv_slow_unaligned_access_p): ...this and make static.
      	(riscv_option_override): Update accordingly.
      	(riscv_slow_unaligned_access): New function.
      	(TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
      	* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
      	* config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
      	(rs6000_slow_unaligned_access): New function.
      	(rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
      	(rs6000_rtx_costs): Likewise.
      	* config/rs6000/rs6000-string.c (expand_block_compare)
      	(expand_strn_compare): Use targetm.slow_unaligned_access instead
      	of SLOW_UNALIGNED_ACCESS.
      	* config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
      	* config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
      	* calls.c (expand_call): Use targetm.slow_unaligned_access instead
      	of SLOW_UNALIGNED_ACCESS.
      	* expmed.c (simple_mem_bitfield_p): Likewise.
      	* expr.c (alignment_for_piecewise_move): Likewise.
      	(emit_group_load_1): Likewise.
      	(emit_group_store): Likewise.
      	(copy_blkmode_from_reg): Likewise.
      	(emit_push_insn): Likewise.
      	(expand_assignment): Likewise.
      	(store_field): Likewise.
      	(expand_expr_real_1): Likewise.
      	* gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
      	* lra-constraints.c (simplify_operand_subreg): Likewise.
      	* stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
      	* gimple-ssa-store-merging.c: Likewise in block comment at start
      	of file.
      	* tree-ssa-strlen.c: Include target.h.
      	(handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
      	of SLOW_UNALIGNED_ACCESS.
      	* system.h (SLOW_UNALIGNED_ACCESS): Poison.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r252009
      Richard Sandiford committed
    • PR81285: Fix uninitialised variable in emit_store_flag_int · 41defab3
      2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	PR rtl-optimization/82185
      	* expmed.c (emit_store_flag_int): Only test tem if it has been
      	initialized.
      
      From-SVN: r252008
      Richard Sandiford committed
    • re PR middle-end/82149 (match.pd: 2919: bad if test ?) · c651dca2
      2017-09-12  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/82149
      	* match.pd ((FTYPE) N CMP CST): Fix typo.
      
      From-SVN: r252007
      Richard Biener committed
    • Add short_call function attribute for MIPS · 8101ec85
      gcc/
      	* config/mips/mips.c (mips_attribute_table): Add 'short_call'
      	attribute.
      	(mips_near_type_p): Add 'short_call' attribute as a synonym
      	for 'near'.
      	* doc/extend.texi (short_call): Document new function attribute.
      
      gcc/testsuite
      
      	* gcc.target/mips/near-far-1.c: Add check for 'short_call'
      	attribute.
      	* gcc.target/mips/near-far-2.c: Likewise.
      	* gcc.target/mips/near-far-3.c: Likewise.
      	* gcc.target/mips/near-far-4.c: Likewise.
      
      From-SVN: r252006
      Simon Atanasyan committed
    • Kill CLASSTYPE_SORTED_FIELDS. · 45e3a33d
      	* cp-tree.h (struct lang_type): Lose sorted_fields member.
      	(CLASSTYPE_SORTED_FIELDS): Delete.
      	* name-lookup.h (set_class_bindings): Add EXTRA arg.
      	* name-lookup.c (fields_linear_search): New, broken out of ...
      	(lookup_field_1): ... here.  Delete remainder of function.
      	(get_class_binding_direct): Reimplement without sorted_fields.
      	(get_class_binding): Rename TYPE arg to KLASS, for consistency.
      	(get_method_slot): Call set_class_binding when creating method_vec
      	on complete type.
      	(method_name_cmp): Order identically named slots.
      	(sorted_fields_type_new): Delete.
      	(field_vc_append_class_fields): Rename to ...
      	(method_vec_append_class_fields): ... here.  Adjust.
      	(field_vec_append_enum_values): Renme to ...
      	(method_vec_append_enum_values): ... here. Adjust.
      	(method_vec_dedup): New.
      	(set_class_bindings): Reimplement.
      	(insert_late_enum_def_bindings): Reimplement.
      
      From-SVN: r252005
      Nathan Sidwell committed
    • name-lookup.c (get_class_binding): Rename TYPE arg to KLASS for consistency. · 20614c86
      	* name-lookup.c (get_class_binding): Rename TYPE arg to KLASS for
      	consistency.
      	(restort_data): Move later.
      	(method_name_cmp, resort_method_name_cmp): Simplify.
      	(resort_type_method_vec): Reformat.
      
      From-SVN: r252004
      Nathan Sidwell committed
    • re PR target/82112 (internal compiler error: in fold_convert_loc, at fold-const.c:2262) · ec33aebb
      	PR target/82112
      	* c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
      	assertion check that in the condition.
      	(get_atomic_generic_size): Likewise.  Before testing if parameter
      	has pointer type, if it has array type, call for C++
      	default_conversion to perform array-to-pointer conversion.
      
      	* c-c++-common/pr82112.c: New test.
      	* gcc.dg/pr82112.c: New test.
      
      From-SVN: r252003
      Jakub Jelinek committed
    • tree-vect-generic.c (expand_vector_operations_1): Do nothing for operations we cannot scalarize. · dee6fc2b
      2017-09-12  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-generic.c (expand_vector_operations_1): Do nothing
      	for operations we cannot scalarize.
      
      From-SVN: r252002
      Richard Biener committed
    • [multiple changes] · b7051481
      2017-09-12  Bob Duff  <duff@adacore.com>
      
      	* sem_warn.adb: Minor comment.
      
      2017-09-12  Bob Duff  <duff@adacore.com>
      
      	* libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
      	libgnat/a-cbmutr.adb, libgnat/a-cborma.adb: Rename New_Item to
      	be Default_Initialized_Item, and apply pragma Unmodified to it,
      	to suppress the warning.
      
      2017-09-12  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Add early return
      	for access types.
      
      2017-09-12  Yannick Moy  <moy@adacore.com>
      
      	* gnat1drv.adb (Adjust_Global_Switches): Consider Refined_Global
      	together with Global when ignoring one in CodePeer mode.
      
      2017-09-12  Javier Miranda  <miranda@adacore.com>
      
      	* sem_ch3.adb (Analyze_Declarations): In nested
      	package declarations that have a private part enable missing check
      	of the RM rule 13.1.1(11/3): usage names in aspect definitions are
      	resolved at the end of the immediately enclosing declaration list.
      
      From-SVN: r252001
      Arnaud Charlet committed
    • [multiple changes] · fb69239a
      2017-09-12  Bob Duff  <duff@adacore.com>
      
      	* sem_ch6.adb (Analyze_Expression_Function): Initialize Def_Id to
      	Empty.
      
      2017-09-12  Georges-Axel Jaloyan  <jaloyan@adacore.com>
      
      	* debug.adb: Reserving flag -gnatdF for safe pointer checking.
      	* gnat1drv.adb (gnat1drv): Adding the call to the analysis on
      	dF flag.
      	* sem_spark.adb, sem_spark.ads: Implementation of the analysis,
      	in preparation for the evolution of the SPARK language that
      	includes a pointer analysis for checking non-aliasing of access
      	types. The Check_Safe_Pointers function is the entry point, and
      	will traverse the AST and raise compile-time errors everytime
      	it detects non-begign aliasing.  Detailed comments are present
      	in the sem_spark.ads file.
      	* sem_util.adb, sem_util.ads (First_Global, Next_Global): New
      	functions to iterate over the list of globals of a subprogram.
      	* libgnat/system.ads: Add restriction No_Finalization.
      	* gcc-interface/Make-lang.in: Add new file sem_spark.adb and
      	dependency on g-dynhta.adb.
      
      From-SVN: r252000
      Arnaud Charlet committed
    • sem_ch6.adb (Analyze_Expression_Function): Call Check_Dynamically_Tagged_Expression. · 7f9fcce8
      2017-09-12  Bob Duff  <duff@adacore.com>
      
      	* sem_ch6.adb (Analyze_Expression_Function): Call
      	Check_Dynamically_Tagged_Expression.
      	* sem_util.adb (Check_Dynamically_Tagged_Expression): Remove
      	"and then Is_Tagged_Type (Typ)" because there is an earlier
      	"Assert (Is_Tagged_Type (Typ))".
      
      From-SVN: r251999
      Bob Duff committed
    • tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC vectors heap vectors. · cff44c10
      	* tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
      	vectors heap vectors.  Clean up comments.
      	Make visited_bbs a reference.
      	(profitable_jump_thread_path): Make GC
      	vectors heap vectors.  Clean up comments.
      	Misc cleanups.
      	(convert_and_register_jump_thread_path): Make GC vectors heap
      	vectors.
      	(check_subpath_and_update_thread_path): Same.  Clean up comments.
      	Make visited_bbs a reference.
      	(handle_phi): Abstract common code to to
      	register_jump_thread_path_if_profitable.
      	Rename VAR_BB to DEF_BB.
      	Update comments.
      	Make GC vectors heap vectors.
      	Make visited_bbs a reference.
      	(handle_assignment): Same.
      	(register_jump_thread_path_if_profitable): New.
      	(fsm_find_control_statement_thread_paths): Rename VAR_BB to
      	DEF_BB.
      	Make GC	vectors heap vectors.  Clean up comments.
      	Make visited_bbs a reference.
      	(find_jump_threads_backwards): Make visited_bbs live in the stack.
      	* tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
      	comment.
      
      From-SVN: r251998
      Aldy Hernandez committed
    • Daily bump. · ff3e3d99
      From-SVN: r251996
      GCC Administrator committed
  2. 11 Sep, 2017 11 commits
    • PR libstdc++/70483 make std::string_view fully constexpr · c5ae1a27
      	PR libstdc++/70483
      	* include/bits/string_view.tcc (basic_string_view::find)
      	(basic_string_view::rfind, basic_string_view::find_first_of)
      	(basic_string_view::find_last_of, basic_string_view::find_first_not_of)
      	(basic_string_view::find_last_not_of): Add constexpr specifier.
      	* include/std/string_view (basic_string_view::operator=)
      	(basic_string_view::rbegin, basic_string_view::rend)
      	(basic_string_view::crbegin, basic_string_view::crend)
      	(basic_string_view::remove_prefix, basic_string_view::remove_suffix)
      	(basic_string_view::swap, basic_string_view::compare)
      	(basic_string_view::find, basic_string_view::rfind)
      	(basic_string_view::find_first_of, basic_string_view::find_last_of)
      	(basic_string_view::find_first_not_of)
      	(basic_string_view::find_last_not_of, basic_string_view::_M_check)
      	(basic_string_view::_M_limit, operator==, operator!=, operator<)
      	(operator>, operator<=, operator>=): Likewise.
      	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
      	char/1.cc: Repeat tests in constexpr context.
      	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
      	wchar_t/1.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
      	char/1.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
      	wchar_t/1.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operators/char/2.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test
      	cbegin, cend, rbegin, rend, crbegin and crend.
      	* testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
      	Remove trailing whitespace.
      	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
      	1.cc: Likewise.
      	* testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
      	New.
      	* testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
      	New.
      	* testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
      	New.
      	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
      	2.cc: New.
      
      From-SVN: r251988
      Jonathan Wakely committed
    • xtensa: fix PR target/82181 · 738ae6ee
      2017-09-11  Max Filippov  <jcmvbkbc@gmail.com>
      gcc/
      	* config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
      	words of E_DImode object are reachable by xtensa_uimm8x4 access.
      
      From-SVN: r251986
      Max Filippov committed
    • re PR libstdc++/71500 (regex::icase only works on first character in a range) · 3366a474
      	PR libstdc++/71500
      	* include/bits/regex_executor.tcc: Support icase in regex_tratis<...>
      	for back reference matches.
      	* testsuite/28_regex/regression.cc: Test case.
      
      From-SVN: r251982
      Tim Shen committed
    • Adjust test to pass with old std::string · 47d7966a
      	* testsuite/21_strings/basic_string/lwg2946.cc: Adjust for
      	compatibility with old COW std::string.
      
      From-SVN: r251981
      Jonathan Wakely committed
    • 2017-09-11 Vidya Praveen <vidyapraveen@arm.com> · eaddd128
      	Revert r251800 and r251799.
      
      From-SVN: r251980
      Vidya Praveen committed
    • Add myself as ARM port maintainer · 1328002a
      2017-09-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
      
      	* MAINTAINERS (Reviewers): Move myself from here...
      	(CPU Port Maintainers): ... to here.
      
      From-SVN: r251979
      Kyrylo Tkachov committed
    • [multiple changes] · a83d0680
      2017-09-11  Arnaud Charlet  <charlet@adacore.com>
      
      	* doc/gnat_ugn/the_gnat_compilation_model.rst: Fix sphinx warning.
      	* doc/gnat_ugn/platform_specific_information.rst: Remove doc
      	for no longer supported platforms.
      	* doc/gnat_ugn/gnat_and_program_execution.rst: Added detailed
      	description of the semantics for dimensionality analysis.
      	* gnat_ugn.texi: Regenerated.
      
      2017-09-11  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* freeze.adb (Has_Incomplete_Compoent): Delete.
      	(Freeze_Profile):
      	Do not inhibit the freezing of the profile of an expression
      	function here.
      	(Freeze_Subprogram): Do not re-create extra formals.
      	* sem_ch6.adb (Analyze_Expression_Function): Always
      	pre-analyze the expression if the function is not a completion.
      	(Analyze_Subprogram_Body_Helper): For the body generated
      	from an expression function that is not a completion, do
      	not freeze the profile and temporary mask the types declared
      	outside the expression that are not yet frozen.
      	* sem_res.adb (Rewrite_Renamed_Operator): Also bail out if invoked
      	during the pre-analysis of an expression function.
      
      From-SVN: r251978
      Arnaud Charlet committed
    • Removed, no longer used. · c65e7627
      From-SVN: r251977
      Arnaud Charlet committed
    • Removed, no longer used. · f9e9e713
      From-SVN: r251976
      Arnaud Charlet committed
    • gigi.h (enum standard_datatypes): Minor tweak. · ab3dd4ab
      	* gcc-interface/gigi.h (enum standard_datatypes): Minor tweak.
      	(gigi): Likewise.
      
      From-SVN: r251974
      Eric Botcazou committed
    • Restored, removed by mistake. · e6a096d1
      From-SVN: r251973
      Arnaud Charlet committed