1. 26 Oct, 2017 16 commits
    • Introduce emit_frame_chain · 204d2c03
      The current frame code combines the separate concepts of a frame chain
      (saving old FP,LR in a record and pointing new FP to it) and a frame
      pointer used to access locals.  Add emit_frame_chain to the aarch64_frame
      descriptor and use it in the prolog and epilog code.  For now just
      initialize it as before, so generated code is identical.
      
      Also correctly set EXIT_IGNORE_STACK.  The current AArch64 epilog code 
      restores SP from FP if alloca is used.  If a frame pointer is used but
      there is no alloca, SP must remain valid for the epilog to work correctly.
      
          gcc/
      	* config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used.
      	(aarch64_frame): Add emit_frame_chain boolean.
      	* config/aarch64/aarch64.c (aarch64_frame_pointer_required)
      	Move eh_return case to aarch64_layout_frame.
      	(aarch64_layout_frame): Initialize emit_frame_chain.
      	(aarch64_expand_prologue): Use emit_frame_chain.
      
      From-SVN: r254114
      Wilco Dijkstra committed
    • Deduction guides for associative containers, debug mode deduction guide fixes. · 957f5fea
      * include/bits/stl_iterator.h (__iter_key_t)
      (__iter_val_t, __iter_to_alloc_t): New.
      * include/bits/stl_map.h: Add deduction guides.
      * include/bits/stl_multimap.h: Likewise.
      * include/bits/stl_multiset.h: Likewise.
      * include/bits/stl_set.h: Likewise.
      * include/bits/unordered_map.h: Likewise.
      * include/bits/unordered_set.h: Likewise.
      * include/debug/deque: Likewise.
      * include/debug/forward_list: Likewise.
      * include/debug/list: Likewise.
      * include/debug/map.h: Likewise.
      * include/debug/multimap.h: Likewise.
      * include/debug/multiset.h: Likewise.
      * include/debug/set.h: Likewise.
      * include/debug/unordered_map: Likewise.
      * include/debug/unordered_set: Likewise.
      * include/debug/vector: Likewise.
      * testsuite/23_containers/map/cons/deduction.cc: New.
      * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
      * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
      * testsuite/23_containers/set/cons/deduction.cc: Likewise.
      * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
      * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
      Likewise.
      * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
      Likewise.
      * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
      
      From-SVN: r254113
      Ville Voutilainen committed
    • Simplify frame layout for stack probing · 1f7bffd0
      This patch makes some changes to the frame layout in order to simplify
      stack probing.  We want to use the save of LR as a probe in any non-leaf
      function.  With shrinkwrapping we may only save LR before a call, so it
      is useful to define a fixed location in the callee-saves. So force LR at
      the bottom of the callee-saves even with -fomit-frame-pointer.
      
      Also remove a rarely used frame layout that saves the callee-saves first
      with -fomit-frame-pointer.  Doing so allows the store of LR to be used as
      a valid stack probe in all frames.
      
          gcc/
      	* config/aarch64/aarch64.c (aarch64_layout_frame):
              Ensure LR is always stored at the bottom of the callee-saves.
              Remove rarely used frame layout which saves callee-saves at top of
              frame, so the store of LR can be used as a valid probe in all cases.
      
      From-SVN: r254112
      Wilco Dijkstra committed
    • Improve addressing of TI/TFmode · 37e4d57b
      In https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01125.html Jiong
      pointed out some addressing inefficiencies due to a recent change in
      regcprop (https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00775.html).
      
      This patch improves aarch64_legitimize_address_displacement to split
      unaligned offsets of TImode and TFmode accesses.  The resulting code
      is better and no longer relies on the original regcprop optimization.
      
      For the test we now produce:
      
      	add	x1, sp, 4
      	stp	xzr, xzr, [x1, 24]
      
      rather than:
      
              mov     x1, sp
              add     x1, x1, 28
              stp     xzr, xzr, [x1]
      
          gcc/
      	* config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
      	Improve unaligned TImode/TFmode base/offset split.
      
          testsuite/
      	* gcc.target/aarch64/ldp_stp_unaligned_2.c: New file.
      
      From-SVN: r254111
      Wilco Dijkstra committed
    • Make more use of df_read_modify_subreg_p · 9eaf97d6
      This patch uses df_read_modify_subreg_p to check whether writing
      to a subreg would preserve some of the existing contents.
      
      This has the effect of putting more emphasis on the
      REGMODE_NATURAL_SIZE-based definition of whether something can be
      partially modified, instead of using UNITS_PER_WORD unconditionally.
      This becomes important for SVE, where UNITS_PER_WORD has no
      significance for subregs of multi-register LD2/ST2, LD3/ST3 and
      LD4/ST4 tuples.
      
      2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* caller-save.c (mark_referenced_regs):  Use read_modify_subreg_p.
      	* combine.c (find_single_use_1): Likewise.
      	(expand_field_assignment): Likewise.
      	(move_deaths): Likewise.
      	* lra-constraints.c (simplify_operand_subreg): Likewise.
      	(curr_insn_transform): Likewise.
      	* lra.c (collect_non_operand_hard_regs): Likewise.
      	(add_regs_to_insn_regno_info): Likewise.
      	* rtlanal.c (reg_referenced_p): Likewise.
      	(covers_regno_no_parallel_p): Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r254110
      Richard Sandiford committed
    • Stop print_hex from printing bits above the precision · 7984457f
      2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* wide-int-print.cc (print_hex): Loop based on extract_uhwi.
      	Don't print any bits outside the precision of the value.
      	* wide-int.cc (test_printing): Add some new tests.
      
      From-SVN: r254109
      Richard Sandiford committed
    • [obvious][arm testsuite] Fixup expected location in require-pic-register-loc.c · 18b27971
      After r254010 we now add -gcolumn-info by default, that means the tests
      in gcc.target/arm/require-pic-register-loc.c need adjusting to not expect
      to see column zero.
      
      gcc/testsuite/
      
      	* gcc.target/arm/require-pic-register-loc.c: Use wider regex for
      	column information.
      
      From-SVN: r254106
      James Greenhalgh committed
    • [C++ PATCH] Kill IDENTIFIER_LABEL_VALUE · 75bafecb
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01935.html
      	* decl.c (sort_labels): Restore function.
      	(pop_labels): Sort labels
      	(identify_goto): Add translation markup.
      
      From-SVN: r254104
      Nathan Sidwell committed
    • Use -xbrace_comment=no with recent Solaris/x86 as · 8c2e5ecf
      	* configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
      	supports -xbrace_comment option.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      	* config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
      	(ASM_CPU_SPEC): Use it.
      
      From-SVN: r254103
      Rainer Orth committed
    • This patch adds a new hook that gives the preferred alignment for a static rtx... · f073de07
      TARGET_STATIC_RTX_ALIGNMENT
      
      This patch adds a new hook that gives the preferred alignment for
      a static rtx, so that we don't need to query the front end in
      force_const_mem.
      
      2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* target.def (static_rtx_alignment): New hook.
      	* targhooks.h (default_static_rtx_alignment): Declare.
      	* targhooks.c (default_static_rtx_alignment): New function.
      	* doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook.
      	* doc/tm.texi: Regenerate.
      	* varasm.c (force_const_mem): Use targetm.static_rtx_alignment
      	instead of targetm.constant_alignment.  Remove call to
      	set_mem_attributes.
      	* config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
      	(cris_preferred_mininum_alignment): New function, split out from...
      	(cris_constant_alignment): ...here.
      	(cris_static_rtx_alignment): New function.
      	* config/i386/i386.c (ix86_static_rtx_alignment): New function,
      	split out from...
      	(ix86_constant_alignment): ...here.
      	(TARGET_STATIC_RTX_ALIGNMENT): Redefine.
      	* config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
      	(mmix_static_rtx_alignment): New function.
      	* config/spu/spu.c (spu_static_rtx_alignment): New function.
      	(TARGET_STATIC_RTX_ALIGNMENT): Redefine.
      
      From-SVN: r254102
      Richard Sandiford committed
    • 2017-10-26 Tamar Christina <tamar.christina@arm.com> · 4bc19a3b
      	* gcc.dg/vect/vect-reduc-dot-s8a.c
      	(dg-additional-options, dg-require-effective-target): Add +dotprod.
      	* gcc.dg/vect/vect-reduc-dot-u8a.c
      	(dg-additional-options, dg-require-effective-target): Add +dotprod.
      
      From-SVN: r254101
      Tamar Christina committed
    • 2017-10-26 Tamar Christina <tamar.christina@arm.com> · 2b5de014
      	* lib/target-supports.exp
      	(check_effective_target_arm_v8_2a_dotprod_neon_ok_nocache): New.
      	(check_effective_target_arm_v8_2a_dotprod_neon_ok): New.
      	(add_options_for_arm_v8_2a_dotprod_neon): New.
      	(check_effective_target_arm_v8_2a_dotprod_neon_hw): New.
      	(check_effective_target_vect_sdot_qi): Add ARM && AArch64.
      	(check_effective_target_vect_udot_qi): Likewise.
      	* gcc.target/arm/simd/vdot-exec.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vdot-exec.c: New.
      	* gcc/doc/sourcebuild.texi: Document arm_v8_2a_dotprod_neon.
      
      From-SVN: r254100
      Tamar Christina committed
    • vect-multitypes-1.c: Correct target selector. · c5a92111
      2017-10-26  Tamar Christina  <tamar.christina@arm.com>
      
      	* gcc.dg/vect/vect-multitypes-1.c: Correct target selector.
      
      From-SVN: r254099
      Tamar Christina committed
    • re PR target/81800 (On aarch64 ilp32 lrint should not be inlined as two instructions) · 1013465f
      2017-10-26  Tamar Christina  <tamar.christina@arm.com>
      
      	PR target/81800
      	* config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): Add flag_trapping_math
      	and flag_fp_int_builtin_inexact.
      
      gcc/testsuite/
      2017-10-26  Tamar Christina  <tamar.christina@arm.com>
      
      	* gcc.target/aarch64/inline-lrint_2.c (dg-options): Add -fno-trapping-math.
      
      From-SVN: r254098
      Tamar Christina committed
    • vect-dot-qi.h: New. · c3ef5fda
      2017-10-26  Tamar Christina  <tamar.christina@arm.com>
      
      	* gcc.target/aarch64/advsimd-intrinsics/vect-dot-qi.h: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vdot-compile.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vect-dot-s8.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vect-dot-u8.c: New.
      
      From-SVN: r254097
      Tamar Christina committed
    • Daily bump. · 62fb4acb
      From-SVN: r254096
      GCC Administrator committed
  2. 25 Oct, 2017 21 commits
    • C: detect more missing semicolons (PR c/7356) · 1a59ccf2
      c_parser_declaration_or_fndef has logic for parsing what might be
      either a declaration or a function definition.
      
      This patch adds a test to detect cases where a semicolon would have
      terminated the decls as a declaration, where the token that follows
      would start a new declaration specifier, and updates the error message
      accordingly, with a fix-it hint.
      
      This addresses PR c/7356, fixing the case of a stray token before a
      #include that previously gave inscrutable output, and improving e.g.:
      
        int i
        int j;
      
      from:
      
        t.c:2:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int'
         int j;
         ^~~
      
      to:
      
        t.c:1:6: error: expected ';' before 'int'
         int i
              ^
              ;
         int j;
         ~~~
      
      gcc.dg/noncompile/920923-1.c needs a slight update, as the output for
      the first line changes from:
      
        920923-1.c:2:14: error: expected '=', ',', ';', 'asm' or
        '__attribute__' before 'unsigned'
         typedef BYTE unsigned char; /* { dg-error "expected" } */
                      ^~~~~~~~
      
      to:
        920923-1.c:2:13: error: expected ';' before 'unsigned'
         typedef BYTE unsigned char; /* { dg-error "expected" } */
                     ^~~~~~~~~
                     ;
        920923-1.c:2:1: warning: useless type name in empty declaration
         typedef BYTE unsigned char; /* { dg-error "expected" } */
         ^~~~~~~
      
      The patch also adds a test for PR c/44515 as a baseline.
      
      gcc/c/ChangeLog:
      	PR c/7356
      	* c-parser.c (c_parser_declaration_or_fndef): Detect missing
      	semicolons.
      
      gcc/testsuite/ChangeLog:
      	PR c/7356
      	PR c/44515
      	* c-c++-common/pr44515.c: New test case.
      	* gcc.dg/pr7356-2.c: New test case.
      	* gcc.dg/pr7356.c: New test case.
      	* gcc.dg/spellcheck-typenames.c: Update the "singed" char "TODO"
      	case to reflect changes to output.
      	* gcc.dg/noncompile/920923-1.c: Add dg-warning to reflect changes
      	to output.
      
      From-SVN: r254093
      David Malcolm committed
    • RISC-V: Add Sign/Zero extend patterns for PIC loads · 0b661358
      Loads on RISC-V are sign-extending by default, but we weren't telling
      GCC this in our PIC load patterns.  This corrects the problem, and adds
      a zero-extending pattern as well.
      
      gcc/ChangeLog
      
      2017-10-25  Palmer Dabbelt  <palmer@dabbelt.com>
      
             * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
             * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
             mark as a sign-extending load.
             (local_pic_load_u): Define.
      
      From-SVN: r254092
      Palmer Dabbelt committed
    • Makefile.am (check-go-tool): Output colon after ${fl}. · 4273ea23
      	* Makefile.am (check-go-tool): Output colon after ${fl}.
      	(check-runtime, check-cgo-test, check-carchive-test): Likewise.
      	* Makefile.in: Rebuild.
      
      From-SVN: r254090
      Ian Lance Taylor committed
    • re PR middle-end/82062 (simple conditional expressions no longer folded) · c0b24017
      	PR middle-end/82062
      	* fold-const.c (operand_equal_for_comparison_p): Also return true
      	if ARG0 is a simple variant of ARG1 with narrower precision.
      	(fold_ternary_loc): Always pass unstripped operands to the predicate.
      
      From-SVN: r254089
      Eric Botcazou committed
    • [C++ PATCH] Kill IDENTIFIER_LABEL_VALUE · a2af967e
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01854.html
      	Kill IDENTIFIER_LABEL_VALUE.
      	* cp-tree.h (lang_identifier): Delete label_value slot.
      	(IDENTIFIER_LABEL_VALUE, SET_IDENTIFIER_LABEL_VALUE): Delete.
      	(struct named_label_hasher): Rename to ...
      	(struct named_label_hash): ... here.  Reimplement.
      	(struct language_function): Adjust x_named_labels.
      	* name-lookup.h (struct cp_label_binding): Delete.
      	(struct cp_binding_level): Delete shadowed_labels slot.
      	* decl.c (struct named_label_entry): Add name and outer slots.
      	(pop_label): Rename to ...
      	(check_label_used): ... here.  Don't pop.
      	(note_label, sort_labels): Delete.
      	(pop_labels, pop_local_label): Reimplement.
      	(poplevel): Pop local labels as any other decl. Remove
      	shadowed_labels handling.
      	(named_label_hash::hash, named_label_hash::equal): New.
      	(make_label_decl): Absorb into ...
      	(lookup_label_1): ... here.  Add making_local_p arg, reimplement.
      	(lookup_label, declare_local_label): Adjust.
      	(check_goto, define_label): Adjust.
      	* lex.c (make_conv_op_name): Don't clear IDENTIFIER_LABEL_VALUE.
      	* ptree.c (cxx_print_identifier): Don't print identifier binding.
      
      From-SVN: r254087
      Nathan Sidwell committed
    • [C++ PATCH] Label checking cleanups · 733ba9b9
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01847.html
      	* decl.c (identifier_goto): Reduce duplication.
      	(check_previous_goto_1): Likewise.
      	(check_goto): Move var decls to initialization.
      	(check_omp_return, define_label_1, define_label): Likewise.
      
      From-SVN: r254086
      Nathan Sidwell committed
    • i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather cost correctly. · a4fe6139
      
      	* i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather
      	cost correctly.
      	* i386.h (processor_costs): Add gather_static, gather_per_elt,
      	scatter_static, scatter_per_elt.
      	* x86-tune-costs.h: Add new cost entries.
      
      From-SVN: r254083
      Jan Hubicka committed
    • match.c (gfc_match_type_is): Fix typo in error message · d185db14
      2017-10-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
      
      	* match.c (gfc_match_type_is): Fix typo in error message.
      
      From-SVN: r254082
      Bernhard Reutner-Fischer committed
    • Update C++17 library status documentation · 5fdbeb16
      	* doc/xml/manual/status_cxx2017.xml: Update C++17 status, and
      	information on feature-test macros.
      	* doc/html/*: Regenerate.
      
      From-SVN: r254078
      Jonathan Wakely committed
    • PR libstdc++/82716 avoid stupid -Wmismatched-tags warnings · 30e0aed1
      	PR libstdc++/82716
      	* include/std/array (tuple_size, tuple_element): Change class-key
      	from class to struct, to avoid annoying Clang warnings.
      
      From-SVN: r254077
      Jonathan Wakely committed
    • PR libstdc++/79283 fix filesystem::read_symlink for /proc · 220645d0
      	PR libstdc++/79283
      	* src/filesystem/ops.cc (read_symlink): Handle st_size being zero.
      	* src/filesystem/std-ops.cc (read_symlink): Likewise.
      	(do_copy_file) [!NEED_DO_COPY_FILE]: Avoid multiple definitions.
      
      From-SVN: r254076
      Jonathan Wakely committed
    • Fix filesystem::path::lexically_normal algorithm · eeb517d3
      	* src/filesystem/std-path.cc (path::lexically_normal): Add missing
      	step to algorithm, for removing dot-dot elements after root-directory.
      	* testsuite/27_io/filesystem/operations/canonical.cc: Use
      	compare_paths for more exhaustive checks.
      	* testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
      	* testsuite/27_io/filesystem/path/append/path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/concat/strings.cc: Fix comment.
      	* testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
      	* testsuite/27_io/filesystem/path/decompose/root_directory.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/path/generation/normal.cc: Use
      	compare_paths for more exhaustive checks. Add extra testcases.
      	* testsuite/27_io/filesystem/path/generation/proximate.cc: Use
      	compare_paths for more exhaustive checks.
      	* testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
      	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Remove
      	unused header.
      	* testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: Fix
      	comment.
      	* testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: Use
      	compare_paths for more exhaustive checks.
      	* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
      	Likewise.
      	* testsuite/util/testsuite_fs.h (compare_paths): Also compare native
      	strings.
      
      From-SVN: r254075
      Jonathan Wakely committed
    • tree-ssa-sccvn.h (vn_eliminate): Declare. · 5de583cc
      2017-10-25  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-sccvn.h (vn_eliminate): Declare.
      	* tree-ssa-pre.c (class eliminate_dom_walker, eliminate,
      	class pass_fre): Move to ...
      	* tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate,
      	class pass_fre): ... here and adjust for statistics.
      
      From-SVN: r254074
      Richard Biener committed
    • re PR tree-optimization/82436 (465.tonto ICE in vect_get_slp_vect_defs, at tree-vect-slp.c:3410) · a596f497
      2017-10-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82436
      	* gcc.dg/torture/pr82436-2.c: New testcase.
      
      From-SVN: r254073
      Richard Biener committed
    • re PR c++/71820 (ICE on valid C++ code: in arg_assoc_type, at cp/name-lookup.c:5583) · 7e252d9b
      2017-10-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/71820
      	* g++.dg/ext/typeof12.C: New.
      
      From-SVN: r254072
      Paolo Carlini committed
    • Fix scan-assembler in tree-ssa/loop-1.c for nvptx · 7e65575a
      2017-10-25  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/tree-ssa/loop-1.c: Add xfail for nvptx in scan-assembler-times
      	line, and add nvptx-specific version.
      
      From-SVN: r254071
      Tom de Vries committed
    • Fix gcc.target/i386/cet-sjlj-5.c on Solaris · 5dd9af49
      	* gcc.target/i386/cet-sjlj-5.c: Allow for emtpy user label prefix
      	in setjmp call.
      
      From-SVN: r254070
      Rainer Orth committed
    • re PR libstdc++/81706 (std::sin vectorization bug) · bc1a75dd
      	PR libstdc++/81706
      	* attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal
      	for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}.
      	(duplicate_one_attribute, copy_attributes_to_builtin): New functions.
      	* attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New
      	declarations.
      
      	* c-decl.c (merge_decls): Copy "omp declare simd" attributes from
      	newdecl to corresponding __builtin_ if any.
      
      	* decl.c (duplicate_decls): Copy "omp declare simd" attributes from
      	newdecl to corresponding __builtin_ if any.
      
      	* gcc.target/i386/pr81706.c: New test.
      	* g++.dg/ext/pr81706.C: New test.
      
      From-SVN: r254069
      Jakub Jelinek committed
    • tree-ssa-pre.c (need_eh_cleanup, [...]): Move inside... · 57904e87
      2017-10-25  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove,
      	el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail,
      	eliminate_push_avail, eliminate_insert): Move inside...
      	(class eliminate_dom_walker): ... this class in preparation
      	of move.
      	(fini_eliminate): Remove by merging with ...
      	(eliminate): ... this function.  Adjust for class changes.
      	(pass_pre::execute): Remove fini_eliminate call.
      	(pass_fre::execute): Likewise.
      
      From-SVN: r254068
      Richard Biener committed
    • PR libstdc++/82706 fix test for case where operations succeed · e921c7e5
      	PR libstdc++/82706
      	* testsuite/27_io/filesystem/operations/permissions.cc: Fix test.
      
      From-SVN: r254067
      Jonathan Wakely committed
    • Daily bump. · 03ca5c55
      From-SVN: r254066
      GCC Administrator committed
  3. 24 Oct, 2017 3 commits
    • libstdc++.exp (check_v3_target_normal_mode): Add c++config.h include. · 8468bfe8
      2017-10-24  François Dumont  <fdumont@gcc.gnu.org>
      
      	* testsuite/lib/libstdc++.exp (check_v3_target_normal_mode): Add
      	c++config.h include.
      	(check_v3_target_normal_namespace): New.
      	* testsuite/lib/dg-options.exp (dg-require-normal-namespace): New.
      	* testsuite/18_support/headers/limits/synopsis.cc: Add latter.
      	* testsuite/20_util/from_chars/requirements.cc: Likewise.
      	* testsuite/20_util/headers/functional/synopsis.cc: Likewise.
      	* testsuite/20_util/headers/memory/synopsis.cc: Likewise.
      	* testsuite/20_util/headers/utility/synopsis.cc: Likewise.
      	* testsuite/20_util/to_chars/requirements.cc: Likewise.
      	* testsuite/21_strings/headers/string/synopsis.cc: Likewise.
      	* testsuite/22_locale/headers/locale/synopsis.cc: Likewise.
      	* testsuite/23_containers/headers/bitset/synopsis.cc: Likewise.
      	* testsuite/23_containers/headers/deque/synopsis.cc: Likewise.
      	* testsuite/23_containers/headers/forward_list/synopsis.cc: Likewise.
      	* testsuite/23_containers/headers/list/synopsis.cc: Likewise.
      	* testsuite/23_containers/headers/map/synopsis.cc: Likewise.
      	* testsuite/23_containers/headers/queue/synopsis.cc: Likewise.
      	* testsuite/23_containers/headers/set/synopsis.cc: Likewise.
      	* testsuite/23_containers/headers/stack/synopsis.cc: Likewise.
      	* testsuite/23_containers/headers/vector/synopsis.cc: Likewise.
      	* testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Likewise.
      	* testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: Likewise.
      	* testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: Likewise.
      	* testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise.
      	* testsuite/24_iterators/headers/iterator/synopsis.cc: Likewise.
      	* testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: Likewise.
      	* testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: Likewise.
      	* testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Likewise.
      	* testsuite/26_numerics/complex/abi_tag.cc: Likewise.
      	* testsuite/26_numerics/headers/complex/synopsis.cc: Likewise.
      	* testsuite/26_numerics/headers/valarray/synopsis.cc: Likewise.
      	* testsuite/27_io/headers/fstream/synopsis.cc: Likewise.
      	* testsuite/27_io/headers/ios/synopsis.cc: Likewise.
      	* testsuite/27_io/headers/istream/synopsis.cc: Likewise.
      	* testsuite/27_io/headers/ostream/synopsis.cc: Likewise.
      	* testsuite/27_io/headers/sstream/synopsis.cc: Likewise.
      	* testsuite/27_io/headers/streambuf/synopsis.cc: Likewise.
      
      From-SVN: r254060
      François Dumont committed
    • re PR target/82460 (AVX512: choose between vpermi2d and vpermt2d to save mov… · 6ab5a6f3
      re PR target/82460 (AVX512: choose between vpermi2d and vpermt2d to save mov instructions.  Also, fails to optimize away shifts before shuffle)
      
      	PR target/82460
      	* config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove.
      	(VPERMI2, VPERMI2I): New mode iterators.
      	(<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns.
      	(<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn
      	patterns.
      	(<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2
      	mode iterator.  Remove 3 old define_insn patterns.
      	(*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns.
      	(<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use
      	VPERMI2 mode iterator, remove the other two expanders.
      	(<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn
      	to use VPERMI2 mode iterator, add another alternative for vpermi2*
      	instructions, remove the other two patterns.
      	(<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2
      	mode iterator, remove the other two patterns.
      	* config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ...
      	(ix86_expand_vec_perm_vpermt2): ... this.  Swap mask and op0
      	arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2*
      	and adjust argument order accordingly.
      	(ix86_expand_vec_perm): Adjust caller.
      	(expand_vec_perm_1): Likewise.
      	(expand_vec_perm_vpermi2_vpshub2): Rename to ...
      	(expand_vec_perm_vpermt2_vpshub2): ... this.
      	(ix86_expand_vec_perm_const_1): Adjust caller.
      	(ix86_vectorize_vec_perm_const_ok): Adjust comments.
      
      	* gcc.target/i386/pr82460-1.c: New test.
      	* gcc.target/i386/pr82460-2.c: New test.
      	* gcc.target/i386/avx512f-vpermt2pd-1.c: Adjust scan-assembler*
      	regexps to allow vpermt2* to vpermi2* replacement or vice versa
      	where possible.
      	* gcc.target/i386/avx512vl-vpermt2pd-1.c: Likewise.
      	* gcc.target/i386/avx512f-vpermt2d-1.c: Likewise.
      	* gcc.target/i386/vect-pack-trunc-2.c: Likewise.
      	* gcc.target/i386/avx512vl-vpermt2ps-1.c: Likewise.
      	* gcc.target/i386/avx512vl-vpermt2q-1.c: Likewise.
      	* gcc.target/i386/avx512f-vpermt2ps-1.c: Likewise.
      	* gcc.target/i386/avx512vl-vpermt2d-1.c: Likewise.
      	* gcc.target/i386/avx512bw-vpermt2w-1.c: Likewise.
      	* gcc.target/i386/avx512vbmi-vpermt2b-1.c: Likewise.
      	* gcc.target/i386/avx512f-vpermt2q-1.c: Likewise.
      
      From-SVN: r254059
      Jakub Jelinek committed
    • re PR target/82370 (AVX512 can use a memory operand for immediate-count vpsrlw, but gcc doesn't.) · 5c0331f6
      	PR target/82370
      	* config/i386/sse.md (VIMAX_AVX2): Remove V4TImode.
      	(VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators.
      	(vec_shl_<mode>): Remove unused expander.
      	(avx512bw_<shift_insn><mode>3): New define_insn.
      	(<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ...
      	(<sse2_avx2>_<shift_insn><mode>3): ... this.  New define_insn.
      
      	* gcc.target/i386/pr82370.c: New test.
      
      From-SVN: r254058
      Jakub Jelinek committed