1. 24 Oct, 2017 24 commits
    • re PR c++/82466 (Missing warning for re-declaration of built-in function as variable) · ff1ff960
      2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/82466
      	* doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend
      	description.
      
      /cp
      2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/82466
      	* decl.c (duplicate_decls): Warn for built-in functions declared as
      	non-function, use OPT_Wbuiltin_declaration_mismatch.
      
      	* decl.c (duplicate_decls): Avoid redundant '+' in warning_at.
      
      /c
      2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/82466
      	* c-decl.c (diagnose_mismatched_decls): Use
      	OPT_Wbuiltin_declaration_mismatch.
      
      /testsuite
      2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/82466
      	* c-c++-common/Wbuiltin-declaration-mismatch-1.c: New.
      	* c-c++-common/Wno-builtin-declaration-mismatch-1.c: Likewise.
      	* g++.dg/warn/Wbuiltin_declaration_mismatch-1.C: Likewise.
      	* g++.dg/parse/builtin2.C: Adjust.
      	* g++.old-deja/g++.mike/p811.C: Likewise.
      
      From-SVN: r254057
      Paolo Carlini committed
    • Cleanup autopref scheduling · f9f43fb3
      r253236 broke AArch64 bootstrap. Earlier revision r253071 changed scheduling
      behaviour on AArch64 as autopref scheduling no longer checks the base.
      
      This patch fixes the bootstrap failure and cleans up autopref scheduling.
      The code is greatly simplified.  Sort accesses on the offset first, and
      only if the offsets are the same fall back to other comparisons in
      rank_for_schedule.  This doesn't at all restore the original behaviour
      since we no longer compare the base address, but it now defines a total
      sorting order.  More work will be required to improve the sorting so
      that only loads/stores with the same base are affected.
      
          gcc/
      	PR rtl-optimization/82396
      	* gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround.
      	(autopref_multipass_init): Simplify initialization.
      	(autopref_rank_data): Simplify sort order.
      	* gcc/sched-int.h (autopref_multipass_data_): Remove
      	multi_mem_insn_p, min_offset and max_offset.
      
      From-SVN: r254056
      Wilco Dijkstra committed
    • PR60580: Fix frame pointer option magic · acea40ac
      To fix PR60580 simplify the logic in aarch64_override_options_after_change_1 (). 
      If the frame pointer is enabled, set it to a special value that behaves similar
      to frame pointer omission.  If we don't do this all leaf functions will get a
      frame pointer even if flag_omit_leaf_frame_pointer is set.
      
      If flag_omit_frame_pointer has this special value, we must force the frame
      pointer if not in a leaf function.  We also need to force it in a leaf function
      if flag_omit_frame_pointer is not set or if LR is used.
      
      Doing this allows both -fomit-frame-pointer and -fomit-leaf-frame-pointer to be
      independently set and changed in each function with the expected behaviour.
      
          gcc/
      	PR middle-end/60580
      	* config/aarch64/aarch64.c (aarch64_frame_pointer_required)
      	Check special value of flag_omit_frame_pointer.
      	(aarch64_can_eliminate): Likewise.
      	(aarch64_override_options_after_change_1): Simplify handling of
      	-fomit-frame-pointer and -fomit-leaf-frame-pointer.
      
      From-SVN: r254052
      Wilco Dijkstra committed
    • re PR c++/80991 (ICE with __is_trivially_constructible in template) · 02b0c08c
      /cp
      2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/80991
      	* pt.c (value_dependent_expression_p, [TRAIT_EXPR]): Handle
      	a TREE_LIST as TRAIT_EXPR_TYPE2.
      
      /testsuite
      2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/80991
      	* g++.dg/ext/is_trivially_constructible5.C: New.
      
      From-SVN: r254051
      Paolo Carlini committed
    • Fix gcc.target/i386/387-ficom-[12].c on Solaris · 5cc75a43
      	* gcc.target/i386/387-ficom-1.c: Allow for ficomp without s
      	suffix.
      	* gcc.target/i386/387-ficom-2.c: Likewise.
      
      From-SVN: r254050
      Rainer Orth committed
    • Fix gcc.target/i386/cet-sjlj-3.c on Solaris · 2f5124a6
      	* gcc.target/i386/cet-sjlj-3.c: Allow for emtpy user label prefix
      	in setjmp call.
      
      From-SVN: r254049
      Rainer Orth committed
    • re PR tree-optimization/82697 (Wrong optimization with aliasing and "if") · da76b253
      2017-10-24  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82697
      	* tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
      	zero for conditional load and unconditional store.
      
      	* gcc.dg/torture/pr82697.c: New testcase.
      
      From-SVN: r254047
      Richard Biener committed
    • re PR c++/82307 (unscoped enum-base incorrect cast) · eab01c18
      /cp
      2017-10-24  Mukesh Kapoor  <mukesh.kapoor@oracle.com>
      	    Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/82307
      	* cvt.c (type_promotes_to): Implement C++17, 7.6/4, about unscoped
      	enumeration type whose underlying type is fixed.
      
      /testsuite
      2017-10-24  Mukesh Kapoor  <mukesh.kapoor@oracle.com>
      	    Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/82307
      	* g++.dg/cpp0x/enum35.C: New.
      	* g++.dg/cpp0x/enum36.C: Likewise.
      
      Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
      
      From-SVN: r254046
      Mukesh Kapoor committed
    • Avoid -Wattribute-alias warnings for long double compat symbols · d56a3683
      	* config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Ignore
      	-Wattribute-alias warnings.
      	* src/c++11/istream-inst.cc: Likewise.
      	* src/c++11/locale-inst.cc: Likewise.
      	* src/c++11/ostream-inst.cc: Likewise.
      	* src/c++11/wlocale-inst.cc: Likewise.
      	* src/c++98/hash-long-double-tr1-aux.cc: Likewise.
      
      From-SVN: r254045
      Jonathan Wakely committed
    • Refactor std::basic_string_view members and add noexcept · 02e2a7d8
      	* include/bits/string_view.tcc (find_first_of, find_last_of)
      	(find_first_not_of, find_last_not_of): Add noexcept.
      	* include/std/string_view (basic_string_view(const _CharT*))
      	(basic_string_view(const _CharT*, size_type))
      	(front, back, remove_prefix, remove_suffix, find, rfind)
      	(find_first_of, find_first_not_of): Add noexcept.
      	(at(size_type), _S_compare(size_type, size_type)): Replace conditional
      	expressions with if statements.
      	(copy(_CharT*, size_type, size_type), substr(size_type, size_type)):
      	Use _M_check for length checks.
      	(compare(basic_string_view)): Reformat.
      	(_M_check(size_type, const char)): Add noexcept(false).
      	(_M_limit(size_type, size_type)): Use noexcept not _GLIBCXX_NOEXCEPT.
      
      From-SVN: r254044
      Jonathan Wakely committed
    • Add bootstrap-cet.mk to bootstrap GCC with Intel CET · c58a9f35
      Bootstrap GCC with Intel CET by configuring GCC with
      
      --with-build-config="bootstrap-cet bootstrap-debug"
      
      Tested on Linux/i686 and Linux/x86-64.
      
      config/
      
      	* bootstrap-cet.mk: New file.
      
      gcc/
      
      	* doc/install.texi: Document bootstrap-cet.
      
      From-SVN: r254043
      H.J. Lu committed
    • PR82687, g++.dg/asan/default-options-1.C fails with PR82575 fix · 160826fe
      The problem with making discarded symbols hidden is that the
      non-default visibility is sticky.  When symbols other than the
      __gnu_lto ones are discarded that turns out to be a bad idea.
      
      	PR lto/82687
      	PR lto/82575
      	* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
      	Only make __gnu_lto symbols hidden.  Delete outdated comment.
      	Silence ISO C warning.
      
      From-SVN: r254042
      Alan Modra committed
    • PR libstdc++/82685 add 'noexcept' to string_view literals · 6a19d2a2
      	PR libstdc++/82685
      	* include/experimental/string_view (operator""sv): Add noexcept.
      	* include/std/string_view (operator""sv): Likewise.
      
      From-SVN: r254041
      Jonathan Wakely committed
    • i386: Don't insert ENDBR at function entrance when called directly · ec8f7ce6
      There is no need to insert ENDBR instruction at function entrance if
      function is only called directly.
      
      gcc/
      
      	PR target/82659
      	* config/i386/i386.c (rest_of_insert_endbranch): Don't insert
      	ENDBR instruction at function entrance if function is only
      	called directly.
      
      gcc/testsuite/
      
      	PR target/82659
      	* gcc.target/i386/cet-label-2.c: New test.
      	* gcc.target/i386/cet-sjlj-4.c: Likewise.
      	* gcc.target/i386/cet-sjlj-5.c: Likewise.
      	* gcc.target/i386/cet-switch-3.c: Likewise.
      	* gcc.target/i386/pr82659-1.c: Likewise.
      	* gcc.target/i386/pr82659-2.c: Likewise.
      	* gcc.target/i386/pr82659-3.c: Likewise.
      	* gcc.target/i386/pr82659-4.c: Likewise.
      	* gcc.target/i386/pr82659-5.c: Likewise.
      	* gcc.target/i386/pr82659-6.c: Likewise.
      
      From-SVN: r254040
      H.J. Lu committed
    • re PR rtl-optimization/82628 (wrong code at -Os on x86_64-linux-gnu in the 32-bit mode) · b7520068
      	PR target/82628
      	* config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
      	patterns to better describe from which operation the CF is computed.
      	(addcarry<mode>_0, subborrow<mode>_0): New patterns.
      	* config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
      	one LTU with [DT]Imode and another one with [SD]Imode.  If arg0
      	is 0, use _0 suffixed expanders instead of emitting a comparison
      	before it.
      
      From-SVN: r254039
      Jakub Jelinek committed
    • Avoid 512-bit mode MOV for prefer-avx256 option in Intel AVX512 configuration · 585a449d
      gcc/
      	* config/i386/i386.md(*movsf_internal, *movdf_internal):
      	Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.
      
      From-SVN: r254038
      Sergey Shalnov committed
    • re PR middle-end/82569 (failure in 177.mesa cpu2000 test case after r253530) · bc2a7ceb
      	PR middle-end/82569
      	* tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
      	* expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
      	* loop-iv.c (iv_get_reaching_def): Likewise.
      	* cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the 
      	variable is promoted and the partition contains undefined values.
      
      From-SVN: r254037
      Eric Botcazou committed
    • re PR tree-optimization/82672 ([GRAPHITE] ICE in verify_gimple_in_cfg) · d32bc875
      2017-10-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82672
      	* graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
      	Fold the stmt if we propagated into it.
      
      	* gfortran.dg/graphite/pr82672.f90: New testcase.
      
      From-SVN: r254036
      Richard Biener committed
    • cdx-branch.c: Fix broken test. · 57f6a200
      2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/testsuite/
      	* gcc.target/nios2/cdx-branch.c:  Fix broken test.
      	* gcc.target/nios2/lo-addr-bypass.c: New.
      	* gcc.target/nios2/lo-addr-char.c: New.
      	* gcc.target/nios2/lo-addr-int.c: New.
      	* gcc.target/nios2/lo-addr-pic.c: New.
      	* gcc.target/nios2/lo-addr-short.c: New.
      	* gcc.target/nios2/lo-addr-tls.c: New.
      	* gcc.target/nios2/lo-addr-uchar.c: New.
      	* gcc.target/nios2/lo-addr-ushort.c: New.
      	* gcc.target/nios2/lo-addr-volatile.c: New.
      
      From-SVN: r254035
      Sandra Loosemore committed
    • nios2.c (nios2_rtx_costs): Make costs better reflect reality. · efd5897c
      2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2.c (nios2_rtx_costs): Make costs better
      	reflect reality.
      	(nios2_address_cost): Define.
      	(nios2_legitimize_address): Recognize (exp + constant) directly.
      	(TARGET_ADDRESS_COST): Define.
      
      From-SVN: r254034
      Sandra Loosemore committed
    • nios2-protos.h (nios2_large_constant_p): Declare. · 82348675
      2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
      	(nios2_symbolic_memory_operand_p): Declare.
      	(nios2_split_large_constant): Declare.
      	(nios2_split_symbolic_memory_operand): Declare.
      	* config/nios2/nios2.c: Adjust includes.
      	(nios2_symbolic_constant_allowed): New.
      	(nios2_symbolic_constant_p): New.
      	(nios2_plus_symbolic_constant_p): New.
      	(nios2_valid_addr_expr_p): Recognize addresses involving 
      	symbolic constants.
      	(nios2_legitimate_address_p): Likewise, also LO_SUM.
      	(nios2_symbolic_memory_operand_p): New.
      	(nios2_large_constant_p): New.
      	(nios2_split_large_constant): New.
      	(nios2_split_plus_large_constant): New.
      	(nios2_split_symbolic_memory_operand): New.
      	(nios2_legitimize_address): Code refactoring.  Handle addresses
      	involving symbolic constants.
      	(nios2_emit_move_sequence): Likewise.
      	(nios2_print_operand): Improve error output.
      	(nios2_print_operand_address): Handle LO_SUM.
      	(nios2_cdx_narrow_form_p): Likewise.
      	* config/nios2/nios2.md (movqi_internal): Add splitter for memory
      	operands involving symbolic constants.
      	(movhi_internal, movsi_internal): Likewise.
      	(zero_extendhisi2, zero_extendqi<mode>2): Likewise.
      	(extendhisi2, extendqi<mode>2): Likewise.
      
      From-SVN: r254033
      Sandra Loosemore committed
    • tree-pass.h (PROP_rtl_split_insns): Define. · 6642bfb2
      2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/
      	* tree-pass.h (PROP_rtl_split_insns): Define.
      	* recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.
      
      From-SVN: r254032
      Sandra Loosemore committed
    • nios2.c (TARGET_LRA_P): Don't override. · a6d9541d
      2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2.c (TARGET_LRA_P): Don't override.
      
      From-SVN: r254031
      Sandra Loosemore committed
    • Daily bump. · 71818649
      From-SVN: r254030
      GCC Administrator committed
  2. 23 Oct, 2017 16 commits
    • re PR c++/80449 (ICE reporting failed partial class template specialization… · 403226f0
      re PR c++/80449 (ICE reporting failed partial class template specialization class template argument deduction)
      
      /cp
      2017-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/80449
      	* semantics.c (finish_compound_literal): Check do_auto_deduction
      	return value for error_mark_node.
      
      /testsuite
      2017-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/80449
      	* g++.dg/cpp1z/class-deduction46.C: New.
      
      From-SVN: r254026
      Paolo Carlini committed
    • re PR debug/82630 (Bogus DW_AT_GNU_call_site_value) · 6b10f174
      	PR debug/82630
      	* target.def (const_not_ok_for_debug_p): Default to
      	default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
      	* targhooks.h (default_const_not_ok_for_debug_p): New declaration.
      	* targhooks.c (default_const_not_ok_for_debug_p): New function.
      	* dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
      	which targetm.const_not_ok_for_debug_p returned true.
      	* config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
      	for UNSPECs.
      	* config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
      	Likewise.
      	* config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
      	* config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
      	UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
      	if !base_term_p.
      	(ix86_const_not_ok_for_debug_p): New function.
      	(i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
      	(TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
      
      	* g++.dg/guality/pr82630.C: New test.
      
      From-SVN: r254025
      Jakub Jelinek committed
    • Add INCLUDE_UNIQUE_PTR and use it (PR bootstrap/82610) · b367de5d
      gcc/ChangeLog:
      	PR bootstrap/82610
      	* system.h: Conditionally include "unique-ptr.h" if
      	INCLUDE_UNIQUE_PTR is defined.
      	* unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
      	of defining INCLUDE_UNIQUE_PTR before including "system.h".
      
      include/ChangeLog:
      	* unique-ptr.h: Make include of <memory> conditional on C++11 or
      	later.
      
      From-SVN: r254024
      David Malcolm committed
    • PR c++/77369 - wrong noexcept handling in C++14 and below · 802561b2
      	* tree.c (strip_typedefs): Canonicalize TYPE_RAISES_EXCEPTIONS.
      
      From-SVN: r254022
      Jason Merrill committed
    • * g++.dg/opt/pr82577: Fix for C++17. · 52c91d3a
      From-SVN: r254021
      Jason Merrill committed
    • re PR target/82662 (ifcvt is not performed on double-word compare) · 33029fa9
      	PR target/82662
      	* gcc.target/i386/pr82662.c: New test.
      
      From-SVN: r254020
      Uros Bizjak committed
    • rl78.md: New define_expand "subdi3". · 5feee954
      * config/rl78/rl78.md: New define_expand "subdi3".
      * config/rl78/subdi3.S: New assembly file.
      * config/rl78/t-rl78: Added subdi3.S to LIB2ADD.
      
      From-SVN: r254019
      Sebastian Perta committed
    • Forgot to add the new file :-P 2017-10-13 Sebastian Perta <sebastian.perta@renesas.com> · 8cb41ec6
      Forgot to add the new file :-P
      2017-10-13  Sebastian Perta  <sebastian.perta@renesas.com>
      * config/rl78/adddi3.S: New assembly file.
      * config/rl78/t-rl78: Added adddi3.S to LIB2ADD.
      
      From-SVN: r254016
      Sebastian Perta committed
    • re PR c/82681 (c-warn.c:1218: typo in warning message) · d1047465
      	PR c/82681
      	* c-warn.c (warnings_for_convert_and_check): Fix typos.
      
      	* gcc.dg/c90-const-expr-11.c: Fix typos in dg-warning.
      	* gcc.dg/overflow-warn-5.c: Likewise.
      	* gcc.dg/overflow-warn-8.c: Likewise.
      
      From-SVN: r254014
      Marek Polacek committed
    • i386: Skip DF_REF_INSN if DF_REF_INSN_INFO is false · 66f4014d
      We should check DF_REF_INSN_INFO before accessing DF_REF_INSN.
      
      gcc/
      
      	PR target/82673
      	* config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip
      	DF_REF_INSN if DF_REF_INSN_INFO is false.
      
      gcc/testsuite/
      
      	PR target/82673
      	* gcc.target/i386/pr82673.c: New test.
      
      From-SVN: r254013
      H.J. Lu committed
    • i386.c (dimode_scalar_chain::compute_convert_gain): Use xmm_move instead of sse_move. · df41dbaf
      
      	* i386.c (dimode_scalar_chain::compute_convert_gain): Use
      	xmm_move instead of sse_move.
      	(sse_store_index): New function.
      	(ix86_register_move_cost): Be more sensible about mismatch stall;
      	model AVX moves correctly; make difference between sse->integer and
      	integer->sse.
      	(ix86_builtin_vectorization_cost): Model correctly aligned and unaligned
      	moves; make difference between SSE and AVX.
      	* i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move
      	and zmm_move. Increase size of sse load and store tables;
      	add unaligned load and store tables; add ssemmx_to_integer.
      	* x86-tune-costs.h: Update all entries according to real 
      	move latencies from Agner Fog's manual and chip documentation.
      
      From-SVN: r254012
      Jan Hubicka committed
    • re PR rtl-optimization/82628 (wrong code at -Os on x86_64-linux-gnu in the 32-bit mode) · 47a6cc4e
      	PR target/82628
      	* config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
      	* config/i386/constraints.md (Wf): New constraint.
      	* config/i386/i386.md (UNSPEC_SBB): New unspec.
      	(cmp<dwi>_doubleword): Removed.
      	(sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
      	(sub<mode>3_carry_ccgz): Use unspec instead of compare.
      	* config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
      	expand with cmp<dwi>_doubleword.  For LTU and GEU use
      	sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.
      
      From-SVN: r254011
      Jakub Jelinek committed
    • common.opt (gcolumn-info): Enable by default. · 8008dd1c
      	* common.opt (gcolumn-info): Enable by default.
      	* doc/invoke.texi (gcolumn-info): Document new default.
      
      	* lib/scanasm.exp (dg-function-on-line): Accept optional column info.
      	* gcc.dg/debug/dwarf2/pr53948.c: Likewise.
      	* g++.dg/debug/dwarf2/pr77363.C: Likewise.
      	* gcc.dg/debug/dwarf2/asm-line1.c: Add -gno-column-info to dg-options.
      	* gcc.dg/debug/dwarf2/discriminator.c: Likewise.
      	* g++.dg/debug/dwarf2/typedef6.C: Likewise.
      
      From-SVN: r254010
      Jakub Jelinek committed
    • re PR tree-optimization/82672 ([GRAPHITE] ICE in verify_gimple_in_cfg) · ee76c2f9
      2017-10-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82672
      	* graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
      	Fold the stmt if we propagated into it.
      
      	* gfortran.dg/graphite/pr82672.f90: New testcase.
      
      From-SVN: r254009
      Richard Biener committed
    • Implement C++17 Filesystem library · 641cb5a6
      Based on Filesystem TS implementation, with the changes applied by:
      
      - P0219R1 Relative Paths for Filesystem
      - P0317R1 Directory Entry Caching for Filesystem
      - P0492R2 Resolution of C++17 National Body Comments
      
      Where appropriate code is shared between the TS and C++17
      implementations.
      
      	* include/Makefile.am: Add new headers for C++17 filesystem library.
      	* include/Makefile.in: Regenerate.
      	* include/bits/fs_dir.h: New header, based on Filesystem TS code in
      	include/experimental/bits directory.
      	* include/bits/fs_fwd.h: Likewise.
      	* include/bits/fs_ops.h: Likewise.
      	* include/bits/fs_path.h: Likewise.
      	* include/experimental/bits/fs_dir.h: Rename Doxygen group.
      	* include/experimental/bits/fs_fwd.h: Likewise.
      	* include/experimental/bits/fs_ops.h: Likewise.
      	* include/experimental/bits/fs_path.h: Likewise.
      	* include/experimental/filesystem (filesystem_error::_M_gen_what):
      	Remove inline definition.
      	* include/precompiled/stdc++.h: Add <filesystem> to precompiled
      	header.
      	* include/std/filesystem: New header.
      	* python/libstdcxx/v6/printers.py: Enable printer for std::filesystem
      	paths.
      	* src/filesystem/Makefile.am: Add new files. Compile as C++17.
      	* src/filesystem/Makefile.in: Regenerate.
      	* src/filesystem/cow-dir.cc: Update comment.
      	* src/filesystem/cow-ops.cc: Likewise.
      	* src/filesystem/cow-path.cc: Likewise.
      	* src/filesystem/cow-std-dir.cc: New file.
      	* src/filesystem/cow-std-ops.cc: New file.
      	* src/filesystem/cow-std-path.cc: New file.
      	* src/filesystem/dir-common.h (_Dir_base, get_file_type): New header
      	for common code.
      	* src/filesystem/dir.cc (_Dir): Derive from _Dir_base.
      	(open_dir): Move to _Dir_base constructor.
      	(get_file_type): Move to dir-common.h.
      	(recurse): Move to _Dir_base::should_recurse.
      	* src/filesystem/ops-common.h: New header for common code.
      	* src/filesystem/ops.cc (is_set, make_file_type, make_file_status)
      	(is_not_found_errno, file_time, do_copy_file): Move to ops-common.h.
      	* src/filesystem/path.cc (filesystem_error::_M_gen_what): Define.
      	* src/filesystem/std-dir.cc: New file, based on Filesystem TS code.
      	* src/filesystem/std-ops.cc: Likewise.
      	* src/filesystem/std-dir.cc: Likewise.
      	* testsuite/27_io/filesystem/iterators/directory_iterator.cc: New
      	test.
      	* testsuite/27_io/filesystem/iterators/pop.cc: New test.
      	* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
      	New test.
      	* testsuite/27_io/filesystem/operations/absolute.cc: New test.
      	* testsuite/27_io/filesystem/operations/canonical.cc: New test.
      	* testsuite/27_io/filesystem/operations/copy.cc: New test.
      	* testsuite/27_io/filesystem/operations/copy_file.cc: New test.
      	* testsuite/27_io/filesystem/operations/create_directories.cc: New
      	test.
      	* testsuite/27_io/filesystem/operations/create_directory.cc: New test.
      	* testsuite/27_io/filesystem/operations/create_symlink.cc: New test.
      	* testsuite/27_io/filesystem/operations/current_path.cc: New test.
      	* testsuite/27_io/filesystem/operations/equivalent.cc: New test.
      	* testsuite/27_io/filesystem/operations/exists.cc: New test.
      	* testsuite/27_io/filesystem/operations/file_size.cc: New test.
      	* testsuite/27_io/filesystem/operations/is_empty.cc: New test.
      	* testsuite/27_io/filesystem/operations/last_write_time.cc: New test.
      	* testsuite/27_io/filesystem/operations/permissions.cc: New test.
      	* testsuite/27_io/filesystem/operations/proximate.cc: New test.
      	* testsuite/27_io/filesystem/operations/read_symlink.cc: New test.
      	* testsuite/27_io/filesystem/operations/relative.cc: New test.
      	* testsuite/27_io/filesystem/operations/remove_all.cc: New test.
      	* testsuite/27_io/filesystem/operations/space.cc: New test.
      	* testsuite/27_io/filesystem/operations/status.cc: New test.
      	* testsuite/27_io/filesystem/operations/symlink_status.cc: New test.
      	* testsuite/27_io/filesystem/operations/temp_directory_path.cc: New
      	test.
      	* testsuite/27_io/filesystem/operations/weakly_canonical.cc: New test.
      	* testsuite/27_io/filesystem/path/append/path.cc: New test.
      	* testsuite/27_io/filesystem/path/assign/assign.cc: New test.
      	* testsuite/27_io/filesystem/path/assign/copy.cc: New test.
      	* testsuite/27_io/filesystem/path/compare/compare.cc: New test.
      	* testsuite/27_io/filesystem/path/compare/path.cc: New test.
      	* testsuite/27_io/filesystem/path/compare/strings.cc: New test.
      	* testsuite/27_io/filesystem/path/concat/path.cc: New test.
      	* testsuite/27_io/filesystem/path/concat/strings.cc: New test.
      	* testsuite/27_io/filesystem/path/construct/copy.cc: New test.
      	* testsuite/27_io/filesystem/path/construct/default.cc: New test.
      	* testsuite/27_io/filesystem/path/construct/locale.cc: New test.
      	* testsuite/27_io/filesystem/path/construct/range.cc: New test.
      	* testsuite/27_io/filesystem/path/construct/string_view.cc: New test.
      	* testsuite/27_io/filesystem/path/decompose/extension.cc: New test.
      	* testsuite/27_io/filesystem/path/decompose/filename.cc: New test.
      	* testsuite/27_io/filesystem/path/decompose/parent_path.cc: New test.
      	* testsuite/27_io/filesystem/path/decompose/relative_path.cc: New
      	test.
      	* testsuite/27_io/filesystem/path/decompose/root_directory.cc: New
      	test.
      	* testsuite/27_io/filesystem/path/decompose/root_name.cc: New test.
      	* testsuite/27_io/filesystem/path/decompose/root_path.cc: New test.
      	* testsuite/27_io/filesystem/path/decompose/stem.cc: New test.
      	* testsuite/27_io/filesystem/path/generation/normal.cc: New test.
      	* testsuite/27_io/filesystem/path/generation/proximate.cc: New test.
      	* testsuite/27_io/filesystem/path/generation/relative.cc: New test.
      	* testsuite/27_io/filesystem/path/generic/generic_string.cc: New test.
      	* testsuite/27_io/filesystem/path/itr/traversal.cc: New test.
      	* testsuite/27_io/filesystem/path/modifiers/clear.cc: New test.
      	* testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: New
      	test.
      	* testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: New
      	test.
      	* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: New
      	test.
      	* testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: New
      	test.
      	* testsuite/27_io/filesystem/path/modifiers/swap.cc: New test.
      	* testsuite/27_io/filesystem/path/native/string.cc: New test.
      	* testsuite/27_io/filesystem/path/nonmember/hash_value.cc: New test.
      	* testsuite/27_io/filesystem/path/query/empty.cc: New test.
      	* testsuite/27_io/filesystem/path/query/has_extension.cc: New test.
      	* testsuite/27_io/filesystem/path/query/has_filename.cc: New test.
      	* testsuite/27_io/filesystem/path/query/has_parent_path.cc: New test.
      	* testsuite/27_io/filesystem/path/query/has_relative_path.cc: New
      	test.
      	* testsuite/27_io/filesystem/path/query/has_root_directory.cc: New
      	test.
      	* testsuite/27_io/filesystem/path/query/has_root_name.cc: New test.
      	* testsuite/27_io/filesystem/path/query/has_root_path.cc: New test.
      	* testsuite/27_io/filesystem/path/query/has_stem.cc: New test.
      	* testsuite/27_io/filesystem/path/query/is_relative.cc: New test.
      	* testsuite/experimental/filesystem/path/construct/string_view.cc:
      	Define USE_FILESYSTEM_TS.
      	* testsuite/util/testsuite_fs.h: Allow use with C++17 paths as well
      	as Filesystem TS.
      
      From-SVN: r254008
      Jonathan Wakely committed
    • tree-ssa-pre.c (bitmap_remove_from_set): Rename to... · 9c71c00f
      2017-10-23  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-pre.c (bitmap_remove_from_set): Rename to...
      	(bitmap_remove_expr_from_set): ... this.  All callers call this
      	for non-constant values.
      	(bitmap_set_subtract): Rename to...
      	(bitmap_set_subtract_expressions): ... this.  Adjust and
      	optimize.
      	(bitmap_set_contains_value): Remove superfluous check.
      	(bitmap_set_replace_value): Inline into single caller ...
      	(bitmap_value_replace_in_set): ... here and simplify.
      	(dependent_clean): Merge into ...
      	(clean): ... this using an overload.  Adjust.
      	(prune_clobbered_mems): Adjust.
      	(compute_antic_aux): Likewise.
      	(compute_partial_antic_aux): Likewise.
      
      From-SVN: r254007
      Richard Biener committed