- 07 May, 2019 2 commits
-
-
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-07 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: r270934
Li Jia He committed -
From-SVN: r270933
GCC Administrator committed
-
- 06 May, 2019 27 commits
-
-
This renumbers the registers. It moves the VRs to 64..95, right after the GPRs and the FPRS. This means that the VSRs (which are aliases to the FPRs and the VRs, in that order) are consecutive now. It removes MQ, which has been just a stub for ages (it is a leftover from RIOS, old POWER). It moves the CR fields to 100..107, which is a bit easier to read than the 68..75 is was before. The rest fills the holes. It should be easy to move anything else after this series, so the exact order isn't very important anymore, we aren't stuck with it if we dislike it. Many things still want the GPRs to be at 0..31, and some things want the FPRs at 32..63. I don't think we'll ever want to change that, so I left it be. Small things... It removes DWARF_FRAME_REGISTERS, it used to save 1000 or so words of memory, but it has been just a handful for a while, and now it is one. Some whitespace fixes. Testing showed one or two places where register allocation was different (not worse, not better, just different). * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO) (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO) (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO) (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO) (FRAME_POINTER_REGNUM): Change numbering. * config/rs6000/rs6000.c (rs6000_reg_names): Adjust. (alt_reg_names): Adjust. (rs6000_conditional_register_usage): Don't mark hard register 64 as fixed. * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust. (DWARF_FRAME_REGISTERS): Delete. (DWARF2_FRAME_REG_OUT): Fix whitespace. (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Adjust. (REG_ALLOC_ORDER): Adjust. (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust. (REG_CLASS_CONTENTS): Adjust. (RETURN_ADDR_RTX): Change comment. (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM instead of 67. (REGISTER_NAMES): Adjust. (ADDITIONAL_REGISTER_NAMES): Adjust. * config/rs6000/darwin.h (REGISTER_NAMES): Adjust. From-SVN: r270929
Segher Boessenkool committed -
2019-05-06 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/90290 * match.c (gfc_match_stopcode): Check F2008 condition on stop code. 2019-05-06 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/90290 * gfortran.dg/pr90290.f90: New test. From-SVN: r270928
Steven G. Kargl committed -
We do not need to expose the TM registers in debug info. It isn't actually useful there, because none of the things that can modify these registers (other than explicit moves) are marked. We also do not need the registers for GCC itself internally. This patch deletes them. * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): Delete. * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust. (DWARF_FRAME_REGISTERS): Adjust. (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Adjust. (REG_ALLOC_ORDER): Adjust. (enum reg_class): Delete SPR_REGS. (REG_CLASS_NAMES): Delete SPR_REGS. (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs. (REGISTER_NAMES): Adjust. (ADDITIONAL_REGISTER_NAMES): Adjust. * config/rs6000/darwin.h (REGISTER_NAMES): Adjust. * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust. * config/rs6000/predicates.md (htm_spr_reg_operand): Delete. * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust. (htm_spr_regno): Delete. (htm_expand_builtin): Adjust: the HTM builtins now have one fewer argument. (rs6000_dbx_register_number): Adjust. From-SVN: r270927
Segher Boessenkool committed -
We don't need this. * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete. From-SVN: r270926
Segher Boessenkool committed -
The frame pointer and the argument pointer aren't real registers. MQ was a register on old POWER. All three are still used as arguments to rs6000_dbx_register_number during initialisation. If we handle them explicitly we can do a gcc_unreachable to catch other unexpected registers. * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ). From-SVN: r270925
Segher Boessenkool committed -
PR tree-optimization/88709 PR tree-optimization/90271 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter. * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int variable. (imm_store_chain_info::coalesce_immediate_stores): Punt if the size of the store merging group is larger than PARAM_STORE_MERGING_MAX_SIZE parameter. (split_group): Add bzero_first argument. If set, always emit first the first store which must be = {} of the whole area and then for the rest of the stores consider all zero bytes as paddings. (imm_store_chain_info::output_merged_store): Check if first store is = {} of the whole area and if yes, determine which setting of bzero_first for split_group gives smaller number of stores. Adjust split_group callers. (lhs_valid_for_store_merging_p): Allow decls. (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with no elts. (pass_store_merging::process_store): Likewise. * gcc.dg/store_merging_26.c: New test. * gcc.dg/store_merging_27.c: New test. * gcc.dg/store_merging_28.c: New test. * gcc.dg/store_merging_29.c: New test. From-SVN: r270924
Jakub Jelinek committed -
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 -
* 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 -
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 -
2019-05-06 Martin Liska <mliska@suse.cz> * config.gcc: Append to target_gtfiles and fix indentation. From-SVN: r270913
Martin Liska committed -
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 -
From-SVN: r270910
Li Jia He committed -
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 -
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 -
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 -
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 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 -
libgomp/ * oacc-parallel.c: Add comments to legacy entry points (GCC 5). From-SVN: r270901
Thomas Schwinge committed -
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 -
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 -
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 -
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 -
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 -
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 -
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 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 -
From-SVN: r270892
GCC Administrator committed
-
- 05 May, 2019 2 commits
-
-
2019-05-05 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/90344 * gfortran.dg/pr90344.f90: New test. From-SVN: r270882
Thomas Koenig committed -
From-SVN: r270881
GCC Administrator committed
-
- 04 May, 2019 9 commits
-
-
* include/std/system_error (error_category): Fix comment. From-SVN: r270877
Jonathan Wakely committed -
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 -
* 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 -
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. Add GCC 9 snapshots from the respective branch. From-SVN: r270871
Gerald Pfeifer committed -
From-SVN: r270870
François Dumont committed -
2019-05-04 Roland Illig <roland.illig@gmx.de> * MAINTAINERS (Write After Approval): Add myself. From-SVN: r270869
Roland Illig committed -
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 -
From-SVN: r270867
GCC Administrator committed
-