1. 06 May, 2019 21 commits
    • re PR target/89424 (__builtin_vec_ext_v1ti (v, i) results in ICE with variable i (RS6000)) · 839c480a
      gcc/ChangeLog:
      
      2019-05-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	PR target/89424
      	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
      	handling of V1TImode.
      
      gcc/testsuite/ChangeLog:
      
      2019-05-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	PR target/89424
      	* gcc.target/powerpc/pr89424-0.c: New test.
      	* gcc.target/powerpc/vsx-builtin-13a.c: Define macro PR89424 to
      	enable testing of newly patched capability.
      	* gcc.target/powerpc/vsx-builtin-13b.c: Likewise.
      	* gcc.target/powerpc/vsx-builtin-20a.c: Likewise.
      	* gcc.target/powerpc/vsx-builtin-20b.c: Likewise.
      
      From-SVN: r270918
      Kelvin Nilsen committed
    • PR c++/90265 - ICE with generic lambda. · cd0a831c
      	* pt.c (tsubst_copy_and_build): Use a dedicated variable for the last
      	element in the vector.
      
      	* g++.dg/cpp1y/lambda-generic-90265.C: New test.
      
      From-SVN: r270917
      Marek Polacek committed
    • re PR target/89221 (--enable-frame-pointer does not work as intended) · fd661a34
      	PR target/89221
      	* config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
      	and enable_frame_pointer ...
      	* configure.ac: ... here.  Update help strings for
      	--enable-frame-pointer.
      	* configure: Regenerate.
      	* config/i386/i386-options.c (ix86_option_override_internal): Remove
      	USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
      	* config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
      	(USE_X86_64_FRAME_POINTER): Ditto.
      
      From-SVN: r270914
      Uros Bizjak committed
    • Append to target_gtfiles in order to fix Darwin bootstrap. · 7c0b7150
      2019-05-06  Martin Liska  <mliska@suse.cz>
      
      	* config.gcc: Append to target_gtfiles and fix indentation.
      
      From-SVN: r270913
      Martin Liska committed
    • re PR tree-optimization/90358 (526.blender_r train run does not finish after r270847 on znver1) · 89875850
      2019-05-06  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/90358
      	* tree-vect-stmts.c (get_group_load_store_type): Properly
      	detect unused upper half of load.
      	(vectorizable_load): Likewise.
      
      	* gcc.target/i386/pr90358.c: New testcase.
      
      From-SVN: r270911
      Richard Biener committed
    • re PR tree-optimization/88828 (Inefficient update of the first element of vector registers) · 3bc104bd
      2019-05-06  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/88828
      	* tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
      	(simplify_vector_constructor): ...here.  Handle constants in
      	the constructor.
      
      	* gcc.target/i386/pr88828-0.c: New testcase.
      
      From-SVN: r270908
      Richard Biener committed
    • re PR tree-optimization/90328 (Wrong loop distribution with aliasing) · 1d0b81c6
      2019-05-06  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/90328
      	* tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
      	* tree-data-ref.c (dr_may_alias_p): Check whether the clique
      	is valid in the loop nest before using it.
      	(initialize_data_dependence_relation): Adjust.
      	* graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
      	loop as loop-nest to dr_may_alias_p.
      
      	* gcc.dg/torture/pr90328.c: New testcase.
      
      From-SVN: r270906
      Richard Biener committed
    • [libcpp] struct deps renaming · b744fc85
      https://gcc.gnu.org/ml/gcc-patches/2019-05/msg00199.html
      	libcpp/
      	* include/mkdeps.h: Rename struct deps to struct mkdeps.
      	* mkdeps.c: Likewise.
      	* include/cpplib.h (cpp_get_deps): Rename return type..
      	* directives.c (cpp_get_deps): Likewise.
      	* internal.h (struct cpp_reader): Rename deps field type.
      
      	gcc/c-family/
      	* c-opts.c (handle_defered_opts): Rename struct deps to struc mkdeps.
      
      From-SVN: r270905
      Nathan Sidwell committed
    • dwarf2out.c (mem_loc_descriptor): Initialize int_mode. · 1b5e2d7b
      2019-05-06  Richard Biener  <rguenther@suse.de>
      
      	* dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
      
      From-SVN: r270903
      Richard Biener committed
    • re PR tree-optimization/90316 (large compile time increase in opt / alias stmt… · f5b73599
      re PR tree-optimization/90316 (large compile time increase in opt / alias stmt walking for Go example)
      
      2019-05-06  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/90316
      	* tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
      	compute target on demand.
      	(get_continuation_for_phi): Remove code walking stmts to
      	get to a target virtual operand which could end up being
      	quadratic.
      
      From-SVN: r270902
      Richard Biener committed
    • Clean up libgomp GCC 5 legacy support · 2bbbfa4e
      	libgomp/
      	* oacc-parallel.c: Add comments to legacy entry points (GCC 5).
      
      From-SVN: r270901
      Thomas Schwinge committed
    • re PR testsuite/90331 (New test case gcc.dg/pr87314-1.c fails) · 33a0bfcd
      2019-05-06  Richard Biener  <rguenther@suse.de>
      
      	PR testsuite/90331
      	* gcc.dg/pr87314-1.c: Align the substring to open up
      	string merging for targets aligning strings to 8 bytes.
      
      From-SVN: r270900
      Richard Biener committed
    • Error only when a non-default -mabi is used with sanitizers (PR sanitizer/90312). · 080629d3
      2019-05-06  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/90312
      	* config/i386/i386-options.c (ix86_option_override_internal): Error only
      	when -mabi is selected to a non-default version.
      2019-05-06  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/90312
      	* gcc.dg/asan/pr87930.c: Run the test only on *linux or *gnu
      	systems.
      	* gcc.dg/tsan/pr88017.c: Likewise.
      
      From-SVN: r270899
      Martin Liska committed
    • Fix GNU coding style in lto-common.c. · ee7a003f
      2019-05-06  Martin Liska  <mliska@suse.cz>
      
      	* lto-common.c: Update coding style.
      	* lto.c (materialize_cgraph): Likewise.
      
      From-SVN: r270898
      Martin Liska committed
    • Add lto-dump tool. · 66d62d9f
      2019-05-06  Hrishikesh Kulkarni  <hrishikeshparag@gmail.com>
      	    Martin Liska  <mliska@suse.cz>
      
      	* Makefile.in: Add lto-dump.texi.
      	* cgraph.h: Add new functions get_visibility_string and
      	get_symtab_type_string.
      	* doc/gcc.texi: Include lto-dump section.
      	* doc/lto-dump.texi: New file.
      	* dumpfile.c (dump_switch_p_1): Use parse_dump_option.
      	(parse_dump_option): Factor out this function.
      	* dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
      	(parse_dump_option): Export the function.
      	* symtab.c (symtab_node::get_visibility_string): New function.
      	(symtab_node::get_symtab_type_string): Likewise.
      2019-05-06  Hrishikesh Kulkarni  <hrishikeshparag@gmail.com>
      	    Martin Liska  <mliska@suse.cz>
      
      	* Make-lang.in: Add lto_dump-related definition.
      	* config-lang.in: Likewise.
      	* lang.opt: Add new language LTODump and options related
      	to LTO dump tool.
      	* lto-common.c (lto_read_decls): Support type statistics dump.
      	(lto_file_read): Likewise for object files.
      	* lto-dump.c: New file.
      	* lto-lang.c (lto_option_lang_mask): Move from ..
      	* lto.c (lto_option_lang_mask): .. here.
      	* lto.h (lto_option_lang_mask): New declaration.
      
      Co-Authored-By: Martin Liska <mliska@suse.cz>
      
      From-SVN: r270897
      Hrishikesh Kulkarni committed
    • Split part of functionality from lto.c to lto-common.c. · a79420f9
      2019-05-06  Martin Liska  <mliska@suse.cz>
      	    Hrishikesh Kulkarni  <hrishikeshparag@gmail.com>
      
      	* Make-lang.in: Add lto-common.o.
      	* config-lang.in: Likewise for gtfiles.
      	* lto-common.c: New file.
      	* lto-common.h: New file.
      	* lto-lang.c: Include lto-common.h.
      	* lto.c: Move most of the functionality
      	into lto-common.c file.
      
      Co-Authored-By: Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
      
      From-SVN: r270896
      Martin Liska committed
    • Split i386.c. · 2bf6d935
      2019-05-06  Martin Liska  <mliska@suse.cz>
      
      	* config/i386/i386-builtins.c: New file.
      	* config/i386/i386-builtins.h: New file.
      	* config/i386/i386-expand.c: New file.
      	* config/i386/i386-expand.h: New file.
      	* config/i386/i386-features.c: New file.
      	* config/i386/i386-features.h: New file.
      	* config/i386/i386-options.c: New file.
      	* config/i386/i386-options.h: New file.
      	* config.gcc: Add new files into extra_objs and
      	target_gtfiles.
      	* config/i386/i386.c: Split content of the file
      	into newly introduced files.
      	* config/i386/i386.h: Declare common variables
      	and macros.
      	* config/i386/t-i386: Define dependencies for new files.
      
      From-SVN: r270895
      Martin Liska committed
    • Fix a typo in two_value_replacement function · 94adc935
      GCC revision 267634 implemented two_value_replacement function.
      However, a typo occurred during the parameter check, which caused
      us to miss some optimizations.
      
      The intent of the code might be to check that the input parameters
      are const int and their difference is one.  However, when I read
      the code, I found that it is wrong to detect whether an input data
      plus one is equal to itself.  This could be a typo.
      
      2019-05-06  Li Jia He  <helijia@linux.ibm.com>
      
      	* tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
      	detection.
      	* gcc.dg/tree-ssa/pr37508.c: Add the no-ssa-phiopt option to skip phi
      	optimization.
      	* gcc.dg/tree-ssa/pr88676-2.c: New testcase.
      
      From-SVN: r270894
      Li Jia He committed
    • printers.py (add_one_template_type_printer): Add type printer for container… · 3997383b
      printers.py (add_one_template_type_printer): Add type printer for container types in std::__debug namespace.
      
      2019-05-06  François Dumont  <fdumont@gcc.gnu.org>
      
      	* python/libstdcxx/v6/printers.py (add_one_template_type_printer):
      	Add type printer for container types in std::__debug namespace.
      	* testsuite/lib/gdb-test.exp (whatis-regexp-test): New.
      	(gdb-tests): Use distinct parameters for the type of test and use of
      	regex.
      	(gdb-test): Check for regex test even if 'whatis' test.
      	* testsuite/libstdc++-prettyprinters/80276.cc: Adapt for _GLIBCXX_DEBUG
      	mode.
      	* testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
      	* testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
      	* testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
      	* testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
      	* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
      	* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
      	* testsuite/libstdc++-prettyprinters/whatis2.cc: Likewise.
      
      From-SVN: r270893
      François Dumont committed
    • Daily bump. · 95ae8efb
      From-SVN: r270892
      GCC Administrator committed
  2. 05 May, 2019 2 commits
  3. 04 May, 2019 9 commits
    • Fix reference to wrong class in comment · 5b503252
              * include/std/system_error (error_category): Fix comment.
      
      From-SVN: r270877
      Jonathan Wakely committed
    • PR libstdc++/90299 make filesystem::absolute overloads consistent · 854a5c77
      In this implementation it is an error to pass the empty path to absolute,
      because the empty path doesn't represent any file in the filesystem so
      the function cannot meet its postcondition.
      
      Currently the absolute(const path&, error_code&) overload reports an
      error for the empty path, but using errc::no_such_file_or_directory, and
      the other overload does not report an error. This patch makes them
      consistntly report an errc::invalid_argument error for the empty path.
      
      	PR libstdc++/90299
      	* src/c++17/fs_ops.cc (absolute(const path&)): Report an error if the
      	argument is an empty path.
      	(absolute(const path&, error_code&)): Use invalid_argument as error
      	code instead of no_such_file_or_directory.
      	* testsuite/27_io/filesystem/operations/absolute.cc: Check handling
      	of non-existent paths and empty paths with both overloads of absolute.
      
      From-SVN: r270874
      Jonathan Wakely committed
    • Improve API docs for <system_error> header · 2f7f1aca
      	* include/std/system_error (error_category, error_code)
      	(error_condition): Improve docs.
      	* libsupc++/exception: Add missing @addtogroup Doxygen command.
      	* libsupc++/exception_ptr.h (exception_ptr): Link equality operators
      	to class documentation. Suppress documentation for implementation
      	details.
      	* libsupc++/nested_exception.h (throw_with_nested, rethrow_if_nested):
      	Suppress documentation for implementation details.
      
      From-SVN: r270873
      Jonathan Wakely committed
    • Fix std::hash<std::error_condition> · fe6fb0d1
      The hash value should be based on the identity (i.e. address) of the
      error_category member, not its object representation (i.e. underlying
      bytes).
      
      	* include/std/system_error (error_code): Remove friend declaration
      	for hash<error_code>.
      	(hash<error_code>::operator()): Use public member functions to access
      	value and category.
      	(hash<error_condition>::operator()): Use address of category, not
      	its object representation.
      	* src/c++11/compatibility-c++0x.cc (hash<error_code>::operator()):
      	Use public member functions to access value and category.
      	* testsuite/19_diagnostics/error_condition/hash.cc: New test.
      
      From-SVN: r270872
      Jonathan Wakely committed
    • crontab: Snapshots from trunk are now GCC 10 related. · 34d9c2c2
      	* crontab: Snapshots from trunk are now GCC 10 related.
      	Add GCC 9 snapshots from the respective branch.
      
      From-SVN: r270871
      Gerald Pfeifer committed
    • Add missing PR libstdc++/90277 reference. · 9db3f73d
      From-SVN: r270870
      François Dumont committed
    • Add myself to MAINTAINERS. · d1b65077
      2019-05-04  Roland Illig  <roland.illig@gmx.de>
      
      	* MAINTAINERS (Write After Approval): Add myself.
      
      From-SVN: r270869
      Roland Illig committed
    • hashtable.h (_Hashtable<>::rehash): Review comment. · de6f5f57
      2019-05-04  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/hashtable.h (_Hashtable<>::rehash): Review comment.
      	* include/bits/hashtable_policy.h
      	(_Prime_rehash_policy::_M_bkt_for_elements): Use __builtin_ceill.
      	(_Power2_rehash_policy::_M_bkt_for_elements): Likewise.
      	(_Power2_rehash_policy::_M_next_bkt): Enforce returning a result not
      	smaller than input value rather than always greater. Preserve
      	_M_next_resize if called with 0 input. Use __builtin_floorl.
      	(_Power2_rehash_policy::_M_need_rehash): Rehash only if number of
      	elements + number of insertions is greater than _M_next_resize. Start
      	with 11 buckets if not told otherwise. Use __builtin_floorl.
      	(_Rehash_base<>::reserve): Use rehash policy _M_bkt_for_elements.
      	* src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
      	Preserve _M_next_resize if called with 0 input. Use __builtin_floorl.
      	(_Prime_rehash_policy::_M_need_rehash): Start with 11 buckets if not
      	told otherwise. Use __builtin_floorl.
      	* testsuite/23_containers/unordered_set/hash_policy/71181.cc: Adapt test
      	to also validate _Power2_rehash_policy.
      	* testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
      	Adapt.
      
      From-SVN: r270868
      François Dumont committed
    • Daily bump. · a3871acd
      From-SVN: r270867
      GCC Administrator committed
  4. 03 May, 2019 8 commits
    • compiler: recognize and optimize array range clear · 08c8a26e
          
          Recognize
          
                  for i := range a { a[i] = zero }
          
          for array or slice a, and rewrite it to call memclr, as the gc
          compiler does.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/169398
      
      From-SVN: r270862
      Ian Lance Taylor committed
    • Fix new testcase to not require std::copysign · e339291f
      Use __builtin_copysign{,f,l} when std::copysign isn't available.
      
      	PR libstdc++/61761
      	* testsuite/26_numerics/complex/proj.cc: Don't assume <cmath> defines
      	std::copysign.
      
      From-SVN: r270859
      Jonathan Wakely committed
    • Avoid -Woverflow warning in __numeric_limits_integer · 56e5b093
      This is the same fix as was done for std::numeric_limits in r183905.
      
      	PR libstdc++/52119
      	* include/ext/numeric_traits.h (__glibcxx_min): Avoid integer
      	overflow warning with -Wpedantic -Wsystem-headers.
      
      From-SVN: r270858
      Jonathan Wakely committed
    • os/user: disable TestGroupIds for AIX · 16df7038
          
          The corresponding Go Toolchain patch is CL 164039
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/175079
      
      From-SVN: r270857
      Ian Lance Taylor committed
    • [arm] PR target/89400 fix thumb1 unaligned access expansion · 38fa938b
      Armv6 has support for unaligned accesses to memory.  However, the
      thumb1 code patterns were trying to use the 32-bit code constraints.
      One failure mode from this was that the patterns are designed to be
      compatible with conditional execution and this was then causing an
      assert in the compiler.
      
      The unaligned_loadhis pattern is only used for expanding extv, which
      in turn is only enabled for systems supporting thumb2.  Given that
      there is no simple expansion for a thumb1 sign-extending load (the
      instruction has no immediate offset form and requires two registers in
      the address) it seems simpler to just disable this for thumb1.
      
      Fixed thusly:
      
      	PR target/89400
      	* config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
      	Restrict 'all' variant to 32-bit configurations.
      	(unaligned_loadhiu): Likewise.
      	(unaligned_storehi): Likewise.
      	(unaligned_storesi): Likewise.
      	(unaligned_loadhis): Disable when compiling for thumb1.
      
      From-SVN: r270853
      Richard Earnshaw committed
    • Let ldist ignore clobbers · 051ef623
      2019-05-03  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR tree-optimization/90269
      gcc/
      	* tree-loop-distribution.c (find_seed_stmts_for_distribution):
      	Ignore clobbers.
      
      gcc/testsuite/
      	* g++.dg/tree-ssa/ldist-1.C: New file.
      
      From-SVN: r270852
      Marc Glisse committed
    • Come up with is_empty for hash_{table,map,set}. · b119c055
      2019-05-03  Martin Liska  <mliska@suse.cz>
      
      	* hash-map.h: Add is_empty function.
      	* hash-set.h: Likewise.
      	* hash-table.h: Likewise.
      	* dwarf2out.c (dwarf2out_finish): Use is_empty instead of
      	elements () == 0 (and similar usages).
      	* gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
      	* gimplify.c (gimplify_bind_expr): Likewise.
      	(gimplify_switch_expr): Likewise.
      	* hash-map-tests.c (test_map_of_strings_to_int): Likewise.
      	* ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
      	* postreload-gcse.c (dump_hash_table): Likewise.
      	(gcse_after_reload_main): Likewise.
      	* predict.c (combine_predictions_for_bb): Likewise.
      	* tree-parloops.c (reduction_phi): Likewise.
      	(separate_decls_in_region): Likewise.
      	(transform_to_exit_first_loop): Likewise.
      	(gen_parallel_loop): Likewise.
      	(gather_scalar_reductions): Likewise.
      	(try_create_reduction_list): Likewise.
      	* var-tracking.c (dump_vars): Likewise.
      	(emit_notes_for_changes): Likewise.
      	(vt_emit_notes): Likewise.
      2019-05-03  Martin Liska  <mliska@suse.cz>
      
      	* call.c (build_aggr_conv): Use is_empty instead of
      	elements () == 0 (and similar usages).
      	* parser.c (cp_parser_lambda_introducer): Likewise.
      
      From-SVN: r270851
      Martin Liska committed
    • re PR tree-optimization/90316 (large compile time increase in opt / alias stmt… · 3353ebf0
      re PR tree-optimization/90316 (large compile time increase in opt / alias stmt walking for Go example)
      
      2019-05-03  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/90316
      	* tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
      	before running VN.
      
      From-SVN: r270848
      Richard Biener committed