- 03 Jan, 2020 3 commits
-
-
re PR rtl-optimization/93088 (Compile time hog on gcc/testsuite/gcc.target/i386/pr56348.c w/ -O3 -funroll-loops -fno-tree-dominator-opts -fno-tree-vrp) PR rtl-optimization/93088 * loop-iv.c (find_single_def_src): Punt after looking through 128 reg copies for regs with single definitions. Move definitions to first uses. * gcc.target/i386/pr93088.c: New test. From-SVN: r279854
Jakub Jelinek committed -
PR fortran/92994 * primary.c (gfc_match_rvalue): Add some flavor checks gfc_matching_procptr_assignment. * resolve.c (resolve_assoc_var): Add more checks for invalid targets. PR fortran/92994 * gfortran.dg/associate_50.f90: Update dg-error. * gfortran.dg/associate_51.f90: New. From-SVN: r279853
Tobias Burnus committed -
From-SVN: r279852
GCC Administrator committed
-
- 02 Jan, 2020 11 commits
-
-
PR fortran/68020 * gfortran.dg/impled_shape_5.f90: Use dg-do compile rather than dg-do run. From-SVN: r279849
Jakub Jelinek committed -
Right now we generate hash functions for all types, just in case they are used as map keys. That's a lot of wasted effort and binary size for types which will never be used as a map key. Instead, generate hash functions only for types that we know are map keys. Just doing that is a bit too simple, since maps with an interface type as a key might have to hash any concrete key type that implements that interface. So for that case, implement hashing of such types at runtime (instead of with generated code). It will be slower, but only for maps with interface types as keys, and maybe only a bit slower as the aeshash time probably dominates the dispatch time. Reorg where we keep the equals and hash functions. Move the hash function from the key type to the map type, saving a field in every non-map type. That leaves only one function in the alg structure, so get rid of that and just keep the equal function in the type descriptor itself. While we're here, reorganize the rtype struct to more closely match the gc version. This is the gofrontend version of https://golang.org/cl/191198. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/212843 From-SVN: r279848
Ian Lance Taylor committed -
Separate the generation of type equality and hash functions, rather than doing them in a single operation. This is almost entirely a pure refactoring in preparation for generating hash functions only for types that are map keys. The only change in generated code is that for types that are the size of numeric types, but not aligned like numeric types, such as [8]byte, now use standard hash functions. They previously used special-purpose hash functions because they required special-purpose equal functions. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/212842 From-SVN: r279847
Ian Lance Taylor committed -
2020-01-02 Andrew Pinski <apinski@marvell.com> * gcc.c-torture/execute/bitfld-8.c: New testcase. * gcc.c-torture/execute/bitfld-9.c: New testcase. From-SVN: r279846
Andrew Pinski committed -
re PR c/90677 (gcc-9.1.0 fails to build __gcc_diag__ souce: error: 'cgraph_node' is not defined as a type) PR c/90677 * cp-objcp-common.c (identifier_global_tag): Return NULL_TREE if name has not been found, rather than error_mark_node. * c-c++-common/pr90677-2.c: New test. From-SVN: r279840
Jakub Jelinek committed -
2020-01-02 Dennis Zhang <dennis.zhang@arm.com> * config/arm/arm-c.c (arm_cpu_builtins): Define __ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC, __ARM_FEATURE_BF16_SCALAR_ARITHMETIC, and __ARM_BF16_FORMAT_ALTERNATIVE when enabled. * config/arm/arm-cpus.in (armv8_6, i8mm, bf16): New features. * config/arm/arm-tables.opt: Regenerated. * config/arm/arm.c (arm_option_reconfigure_globals): Initialize arm_arch_i8mm and arm_arch_bf16 when enabled. * config/arm/arm.h (TARGET_I8MM): New macro. (TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise. * config/arm/t-aprofile: Add matching rules for -march=armv8.6-a. * config/arm/t-arm-elf (all_v8_archs): Add armv8.6-a. * config/arm/t-multilib: Add matching rules for -march=armv8.6-a. (v8_6_a_simd_variants): New. (v8_*_a_simd_variants): Add i8mm and bf16. * doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options. 2020-01-02 Dennis Zhang <dennis.zhang@arm.com> * gcc.target/arm/multilib.exp: Add combination tests for armv8.6-a. From-SVN: r279839
Dennis Zhang committed -
From-SVN: r279837
Dennis Zhang committed -
PR fortran/68020 * array.c (gfc_match_array_spec): Fix implied-type matching for rank > 2. PR fortran/68020 * gfortran.dg/implied_shape_4.f90: New. * gfortran.dg/implied_shape_5.f90: New. From-SVN: r279835
Tobias Burnus committed -
re PR ipa/93087 (Bogus `-Wsuggest-attribute=cold` on function already marked as `__attribute__((cold))`) PR ipa/93087 * predict.c (compute_function_frequency): Don't call warn_function_cold on functions that already have cold attribute. * c-c++-common/cold-1.c: New test. From-SVN: r279829
Jakub Jelinek committed -
PR libfortran/90274 * io/format.c (parse_format_list): Implement the E0 exponent width to provide smallest possible width for exponent fields. Refactor code for correct parsing and better readability of the code. * io/io.h (write_real_w0): Change interface to pass in pointer to fnode. * io/transfer.c: Update all calls to write_real_w0 to use the new interface. * io/write.c ((write_real_w0): Use the new interface with fnode to access both the decimal precision and exponent widths used in build_float_string. * io/write_float.def (build_float_string): Use the passed in exponent width to calculate the used width in the case of E0. From-SVN: r279828
Jerry DeLisle committed -
From-SVN: r279827
GCC Administrator committed
-
- 01 Jan, 2020 11 commits
-
-
PR target/67834 * config/pa/pa.c (pa_elf_select_rtx_section): New. Put references to COMDAT group function labels in .data.rel.ro.local section. * config/pa/pa32-linux.h (TARGET_ASM_SELECT_RTX_SECTION): Define. From-SVN: r279823
John David Anglin committed -
2020-01-01 Andrew Pinski <pinskia@gmail.com> PR libobjc/93099 * objc/objc-decls.h (objc_EXPORT): Define it to extern for DLL_EXPORT define case. From-SVN: r279822
Andrew Pinski committed -
2020-01-01 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/93113 * dependency.c (gfc_dep_resolver): Handle REF_INQUIRY in switch for ref types. 2020-01-01 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/93113 * gfortran.dg/dependency_58.f90: New test. From-SVN: r279821
Thomas Koenig committed -
re PR target/93111 (FAIL: gfortran.fortran-torture/compile/pr32663.f, -O3 -g (internal compiler error)) PR target/93111 * config/pa/pa.md (scc): Use ordered_comparison_operator instead of comparison_operator in B and S integer comparisons. Likewise, use ordered_comparison_operator instead of cmpib_comparison_operator in cmpib patterns. * config/pa/predicates.md (cmpib_comparison_operator): Remove. From-SVN: r279818
John David Anglin committed -
* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update. From-SVN: r279816
John David Anglin committed -
From-SVN: r279813
Jakub Jelinek committed -
* update-copyright.py: Add Mentor Graphics Corporation and Yoshinori Sato as external authors. Skip LICENSE.txt files. From-SVN: r279812
Jakub Jelinek committed -
* gcc.c (process_command): Update copyright notice dates. * gcov-dump.c (print_version): Ditto. * gcov.c (print_version): Ditto. * gcov-tool.c (print_version): Ditto. * gengtype.c (create_file): Ditto. * doc/cpp.texi: Bump @copying's copyright year. * doc/cppinternals.texi: Ditto. * doc/gcc.texi: Ditto. * doc/gccint.texi: Ditto. * doc/gcov.texi: Ditto. * doc/install.texi: Ditto. * doc/invoke.texi: Ditto. gcc/fortran/ * gfortranspec.c (lang_specific_driver): Update copyright notice dates. * gfc-internals.texi: Bump @copying's copyright year. * gfortran.texi: Ditto. * intrinsic.texi: Ditto. * invoke.texi: Ditto. gcc/d/ * gdc.texi: Bump @copyrights-d year. gcc/go/ * gccgo.texi: Bump @copyrights-go year. gcc/ada/ * gnat_ugn.texi: Bump @copying's copyright year. * gnat_rm.texi: Likewise. libitm/ * libitm.texi: Bump @copying's copyright year. libgomp/ * libgomp.texi: Bump @copying's copyright year. libquadmath/ * libquadmath.texi: Bump @copying's copyright year. From-SVN: r279811
Jakub Jelinek committed -
* ipa.c (walk_polymorphic_call_targets): Fix updating of overall summary. From-SVN: r279810
Jan Hubicka committed -
PR tree-optimization/93098 * match.pd (popcount): For shift amounts, use integer_onep or wi::to_widest () == cst instead of tree_to_uhwi () == cst tests. Make sure that precision is power of two larger than or equal to 16. Ensure shift is never negative. Use HOST_WIDE_INT_UC macro instead of ULL suffixed constants. Formatting fixes. * gcc.c-torture/compile/pr93098.c: New test. From-SVN: r279809
Jakub Jelinek committed -
From-SVN: r279808
GCC Administrator committed
-
- 31 Dec, 2019 4 commits
-
-
This code: /* Make sure we don't accidentally use the old condition. */ cond_expr = NULL_TREE; was misplaced, since it triggered even when we needed to force the original unmodified cond_expr into a mask temporary and then invert it. 2019-12-31 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vect-stmts.c (vectorizable_condition): Only nullify cond_expr if we've created a new condition. Don't nullify it if we've decided to keep it and then invert the result. gcc/testsuite/ * gcc.dg/vect/vect-cond-reduc-6.c: New test. From-SVN: r279804
Richard Sandiford committed -
PR libgomp/93065 * oacc-init.c (goacc_runtime_deinitialize): New function. From-SVN: r279803
Ayush Mittal committed -
This patch fixes an awkward corner case in which: (a) we apply if-conversion to a loop; (b) the original scalar loop doesn't have a vdef, and thus doesn't need a virtual phi; (c) the vectorised main loop does need a vdef and a virtual phi (see below); (d) we also vectorise the epilogue; and (e) the vectorised epilogue still needs a scalar epilogue The specific case in which (c) applies is if a read-only loop is vectorised using IFN_LOAD_LANES, which uses clobber statements to mark the lifetime of the temporary array. The vectoriser relies on the SSA renamer to update virtual operands. All would probably be well if it postponed this update until after it had vectorised both the main loop and the epilogue loop. However, when vectorising the epilogue, vect_do_peeling does: create_lcssa_for_virtual_phi (loop); update_ssa (TODO_update_ssa_only_virtuals); (with "loop" in this case being the to-be-vectorised epilogue loop). So the vectoriser puts the virtual operand into SSA form for the vectorised main loop as a separate step, during the early stages of vectorising the epilogue. I wasn't sure at first why that update_ssa was there. It looked initially like it was related to create_lcssa_for_virtual_phi, which seemed strange when create_lcssa_for_virtual_phi keeps the SSA form up-to-date. But before r241099 it had the following comment, which AFAICT is still the reason: /* We might have a queued need to update virtual SSA form. As we delete the update SSA machinery below after doing a regular incremental SSA update during loop copying make sure we don't lose that fact. ??? Needing to update virtual SSA form by renaming is unfortunate but not all of the vectorizer code inserting new loads / stores properly assigns virtual operands to those statements. */ The patch restores that comment since IMO it's helpful. (a), (d) and (e) mean that we copy the original un-if-converted scalar loop to act as the scalar epilogue. The update_ssa above means that this copying needs to cope with any new virtual SSA names in the main loop. The code to do that (reasonably) assumed that one of two things was true: (1) the scalar loop and the vector loops don't have vdefs, and so no virtual operand update is needed. The definition that applies on entry to the loops is the same in all cases. (2) the scalar loop and the vector loops have virtual phis, and so -- after applying create_lcssa_for_virtual_phi on the to-be-vectorised epilogue loop -- the virtual operand update can be handled in the same way as for normal SSA names. But (b) and (c) together mean that the scalar loop and the still-to-be-vectorised epilogue loop have no virtual phi that (2) can use. We'd therefore keep the original vuses when duplicating, rather than updating them to the definition that applies on exit from the epilogue loop. (Since the epilogue is still unvectorised and has no vdefs, the definition that applies on exit is the same as the one that applies on entry.) This patch therefore adds a third case: the scalar loop and to-be-vectorised epilogue have no virtual defs, but the main loop does. 2019-12-31 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Return the incoming virtual operand definition. (vect_do_peeling): When vectorizing an epilogue loop, handle the case in which the main loop has a virtual phi and the epilogue and scalar loops don't. Restore an earlier comment about the update_ssa call. gcc/testsuite/ * gcc.dg/vect/vect-epilogues-2.c: New test. From-SVN: r279802
Richard Sandiford committed -
From-SVN: r279801
GCC Administrator committed
-
- 30 Dec, 2019 11 commits
-
-
From-SVN: r279798
Olivier Hainque committed -
2019-12-20 Olivier Hainque <hainque@adacore.com> * gcc.dg/vect/tree-vect.h: #undef OFFSET. From-SVN: r279797
Olivier Hainque committed -
2019-12-30 Corentin Gay <gay@adacore.com> * acinclude.m4 (vxworks*): New entry. Set ac_has_nanosleep=yes. * configure: Regenerate. From-SVN: r279796
Corentin Gay committed -
gcc/testsuite/gcc.dg/cpp/ucs.c #include <limits.h> and then crafts a definition of WCHAR_MAX depending on __WCHAR_TYPE__. The test fails in VxWorks configurations because WCHAR_MAX is already exposed by the system limits.h. The patch simply guards the tentative definition by a check verifying if the macro is defined already, so we're using the value exposed by limits.h in this case. 2019-12-30 Olivier Hainque <hainque@adacore.com> * testsuite/gcc.dg/cpp/ucs.c: Prevent redefinition of WCHAR_MAX if already exposed by limits.h. From-SVN: r279795
Olivier Hainque committed -
This change adjusts a few scan-tree-dump expressions to allow '$' as well as '.' when matching symbol names, This improves results on VxWorks targets configured with: #undef NO_DOLLAR_IN_LABEL #define NO_DOT_IN_LABEL 2019-12-20 Olivier Hainque <hainque@adacore.com> Jerome Lambourg <lambourg@adacore.com> * c-c++-common/pr56493.c: Allow '$' in addition to '.' scan-tree-dump expressions matching symbol names. * gcc.dg/tree-ssa/sra-17.c: Likewise. * gcc.dg/tree-ssa/sra-18.c: Likewise. Co-Authored-By: Jerome Lambourg <lambourg@adacore.com> From-SVN: r279794
Olivier Hainque committed -
2019-12-16 Joel Brobecker <brobecker@adacore.com> Olivier Hainque <hainque@adacore.com> * gcc.target/aarch64/aapcs64/aapcs64.exp: Guard tests using abitest.S by check_weak_available. Co-Authored-By: Olivier Hainque <hainque@adacore.com> From-SVN: r279793
Joel Brobecker committed -
This change reworks the VxWorks specific os_defines.h internal lisbstdc++ header to help fix build and runtime failures of various kinds in environments from 6.4/6.9 to 7 SR640, based on experiments and observations conducted against real installs of these OSes for different CPU architectures. 2019-12-30 Jerome Lambourg <lambourg@adacore.com> Olivier Hainque <hainque@adacore.com> libstdc++ * config/os/vxworks/os_defines.h (NOMINMAX): Always redefine to 1. (_NO_CPP_INLINES): Likewise. (_GLIBCXX_USE_WEAK_REF): Define to 1 for RTP on VxWorks >= 7, to 0 otherwise. (_GLIBCXX_HAVE_TLS): Define to 1. For VxWorks >= 7: (_GLIBCXX_USE_C99_MATH): Define to 1. (_GLIBCXX_USE_C99_MATH_FP_MACROS_DYNAMIC): Define to 0. (_HAS_TR1_DECLARATIONS): Redefine to 0. For VxWorks < 7, RTP: (_GLIBCXX_INCLUDE_NEXT_C_HEADERS): Define to 1. (_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC): Redefine to 1. (__CORRECT_ISO_CPP11_MATH_H_PROTO_FP): Define. For VxWorks < 7, kernel: #include <vxWorks.h> Co-Authored-By: Olivier Hainque <hainque@adacore.com> From-SVN: r279792
Jerome Lambourg committed -
On Vxworks 7, includers of stdint.h (which we currently "provide") need yvals.h to have been included ahead. Instead of altering the common stdint-gcc.h with unpleasant vxworks specific bits to do that, we arrange to provide stdint-gcc.h on its own along with a stdint.h wrapper which preincludes yvals.h on vx7 then includes stdint-gcc.h. 2019-12-30 Olivier Hainque <hainque@adacore.com> * config/vxworks/stdint.h: New file. Include _yvals.h then stdint-gcc.h. * config/t-vxworks: Arrange to install the stdint.h wrapper. * config.gcc (*-*-vxworks*): Add stdint-gcc.h to $extra_headers so it gets copied. Set use_gcc_stdint to request _not_ crafting stdint.h through the common Makefile rules. From-SVN: r279791
Olivier Hainque committed -
* config/vxworks-c.c: New file. From-SVN: r279790
Olivier Hainque committed -
From-SVN: r279788
Joseph Myers committed -
* config/vxworks/_yvals.h: New file. * config/vxworks/_yvals-wrapper.h: New file. * config/vxworks/math.h: Use it to wrap the VxWorks math.h header. * config/vxworks/complex.h: Likewise. * config/vxworks/setjmp.h: Likewise. * config/vxworks/inttypes.h: Likewise. From-SVN: r279787
Olivier Hainque committed
-