- 07 Feb, 2019 9 commits
-
-
We currently return cost 2 for NEON REG to REG moves, which would be incorrect for 64 bit moves. We currently don't have a pattern for this in the neon_move alternatives because this is a bit of a special case. We would almost never want it to use this r -> r pattern unless it really has no choice. As such we add a new neon r -> r move pattern but also hide it from being used to determine register preferences and also disparage it during LRA. gcc/ChangeLog: PR/target 88850 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case. gcc/testsuite/ChangeLog: PR/target 88850 * gcc.target/arm/pr88850.c: New test. From-SVN: r268612
Tamar Christina committed -
For the Dot Product instructions we have the scheduling types neon_dot and neon_dot_q for the 128-bit versions. It seems that we're only using the former though, not assigning the neon_dot_q type anywhere. This patch fixes that by adding the <q> mode attribute suffix to the type, similar to how we do it for other types in neon.md. * config/arm/neon.md (neon_<sup>dot<vsi2qi>): Use neon_dot<q> for type. (neon_<sup>dot_lane<vsi2qi>): Likewise. From-SVN: r268611
Kyrylo Tkachov committed -
For the Dot Product instructions we have the scheduling types neon_dot and neon_dot_q for the 128-bit versions. It seems that we're only using the former though, not assigning the neon_dot_q type anywhere. This patch fixes that by adding the <q> mode attribute suffix to the type, similar to how we do it for other types in aarch64-simd.md. * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): Use neon_dot<q> for type. (aarch64_<sur>dot_lane<vsi2qi>): Likewise. (aarch64_<sur>dot_laneq<vsi2qi>): Likewise. From-SVN: r268610
Kyrylo Tkachov committed -
Because of rank compares, and checks for ck_list, we know that if we see user_conv_p or ck_list in ics1, we'll also see it in ics2. This reasoning does not extend to ck_aggr, however, so we might have ck_aggr conversions starting both ics1 and ics2, which we handle correctly, or either, which we likely handle by crashing on whatever path we take depending on whether ck_aggr is in ics1 or ics2. We crash because, as we search the conversion sequences, we may very well fail to find what we are looking for, and reach the end of the sequence, which is unexpected in all paths. This patch arranges for us to take the same path when ck_aggr is in ics2 only that we would if it was in ics1 (regardless of ics2), and it deals with not finding the kind of conversion we look for there. I've changed the type of the literal constant in the testcase, so as to hopefully make it well-formed. We'd fail to reject the narrowing conversion in the original testcase, but that's a separate bug. for gcc/cp/ChangeLog PR c++/86218 * call.c (compare_ics): Deal with ck_aggr in either cs. for gcc/testsuite/ChangeLog PR c++/86218 * g++.dg/cpp0x/pr86218.C: New. From-SVN: r268606
Alexandre Oliva committed -
Based on patch by Svante Signell. Reviewed-on: https://go-review.googlesource.com/c/161520 From-SVN: r268605
Ian Lance Taylor committed -
Patch by Svante Signell. Reviewed-on: https://go-review.googlesource.com/c/161519 From-SVN: r268604
Ian Lance Taylor committed -
Loosely based on a patch by Svante Signell. Reviewed-on: https://go-review.googlesource.com/c/161518 From-SVN: r268603
Ian Lance Taylor committed -
Patch by Svante Signell. Reviewed-on: https://go-review.googlesource.com/c/161517 From-SVN: r268602
Ian Lance Taylor committed -
From-SVN: r268601
GCC Administrator committed
-
- 06 Feb, 2019 18 commits
-
-
2019-02-06 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/89225 * lra-constaints.c (simplify_operand_subreg): Add subreg mode sizes check. 2019-02-06 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/89225 * gcc.target/powerpc/pr89225.c: New. From-SVN: r268597
Vladimir Makarov committed -
i386.c (ix86_expand_prologue): Emit a memory blockage after restoring registers saved to allocate the frame on... * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage after restoring registers saved to allocate the frame on Windows. From-SVN: r268593
Eric Botcazou committed -
From-SVN: r268592
Joseph Myers committed -
re PR go/89199 (libgo regression in implementation of CompareAndSwap functions resulting in intermittent testcase failures on ppc64le power9 after r268458) PR go/89199 sync/atomic: use strong form of atomic_compare_exchange_n In the recent change to use atomic_compare_exchange_n I thought we could use the weak form, which can spuriously fail. But that is not how it is implemented in the gc library, and it is not what the rest of the library expects. Thanks to Lynn Boger for identifying the problem. Fixes https://gcc.gnu.org/PR89199 Reviewed-on: https://go-review.googlesource.com/c/161359 From-SVN: r268591
Ian Lance Taylor committed -
2019-02-06 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/71860 * gfortran.dg/null_10.f90: New test. From-SVN: r268590
Thomas Koenig committed -
PR c++/71302 reports that g++ shows poor locations for -Wzero-as-null-pointer-constant for pointers in function calls, using the close parenthesis of the call, rather than showing the pertinent argument. This particular case was fixed in GCC 8, but regressed on trunk in r260973. This patch fixes the regression, and adds column numbers to the test cases (where they're correct) to avoid regressing them in the future. There are still various places where the locations aren't correct, but fixing them isn't stage 4 material. gcc/cp/ChangeLog: PR c++/71302 * call.c (get_location_for_expr_unwinding_for_system_header): New function. (conversion_null_warnings): Use it when getting locations for EXPR, effectively adding a call to get_location_for_expr_unwinding_for_system_header for -Wconversion-null and making use of EXPR_LOCATION for -Wzero-as-null-pointer-constant. gcc/testsuite/ChangeLog: PR c++/71302 * g++.dg/cpp0x/Wzero-as-null-pointer-constant-1.C: Add expected column numbers to dg-warning directives where they are correct. * g++.dg/warn/Wzero-as-null-pointer-constant-5.C: Likewise. * g++.dg/warn/Wzero-as-null-pointer-constant-7.C: Likewise. * g++.dg/warn/Wzero-as-null-pointer-constant-8.C: New test. From-SVN: r268589
David Malcolm committed -
PR debug/87451 * gcc.dg/debug/dwarf2/inline5.c: Allow for non-comment before "(DIE (0x[0-9a-f]*) DW_TAG_variable". xfail scan-assembler-not with Solaris as. From-SVN: r268588
Rainer Orth committed -
From-SVN: r268587
Joseph Myers committed -
This is a partial implementation of the revised std::common_type rules from P0435R1. PR libstdc++/89102 (partial) * include/std/type_traits (common_type<>): Define. (common_type<T>): Derive from common_type<T, T>. * testsuite/20_util/common_type/requirements/explicit_instantiation.cc: Test zero-length template argument list. * testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc: Test additional single argument cases. * testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc: Adjust expected error. From-SVN: r268586
Jonathan Wakely committed -
2019-02-06 Bill Seurer <seurer@linux.vnet.ibm.com> * gcc.target/powerpc/vsx-vector-6.p7.c: Update instruction counts and target. * gcc.target/powerpc/vsx-vector-6.p8.c: Update instruction counts and target. * gcc.target/powerpc/vsx-vector-6.p9.c: Update instruction counts and target. From-SVN: r268585
Bill Seurer committed -
Reviewed-on: https://go-review.googlesource.com/c/161338 From-SVN: r268584
Ian Lance Taylor committed -
* libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads From-SVN: r268576
Arnaud Charlet committed -
2019-02-06 Richard Biener <rguenther@suse.de> PR tree-optimization/89182 * graphite.h (cached_scalar_evolution_in_region): Declare. * graphite.c (struct seir_cache_key): New. (struct sese_scev_hash): Likewise. (seir_cache): New global. (cached_scalar_evolution_in_region): New function. (graphite_transform_loops): Allocate and release seir_cache. * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use cached_scalar_evolution_in_region. * graphite-scop-detection.c (scop_detection::can_represent_loop): Simplify. (scop_detection::graphite_can_represent_expr: Use cached_scalar_evolution_in_region. (scop_detection::stmt_simple_for_scop_p): Likewise. (find_params_in_bb): Likewise. (gather_bbs::before_dom_children): Likewise. * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise. (add_loop_constraints): Likewise. * gfortran.dg/graphite/pr89182.f90: New testcase. From-SVN: r268575
Richard Biener committed -
PR c/89211 * c-parser.c (c_parser_declaration_or_fndef): Don't update DECL_ARGUMENTS of d if it has been defined already. Use a single if instead of 3 nested ifs. * gcc.dg/pr89211.c: New test. From-SVN: r268574
Jakub Jelinek committed -
re PR middle-end/89210 (ICE tree check: expected integer_cst, have real_cst in to_wide, at tree.h:5600) PR middle-end/89210 * fold-const-call.c (fold_const_vec_convert): Pass true as last operand to new_unary_operation only if both element types are integral and it isn't a widening conversion. Return NULL_TREE if new_unary_operation failed. * c-c++-common/builtin-convertvector-2.c: New test. From-SVN: r268573
Jakub Jelinek committed -
gcc/go: PR go/89019 * go-gcc.cc (Gcc_backend::placeholder_struct_type): Mark placeholder structs as requiring structural equality. (Gcc_backend::set_placeholder_pointer_type): Propagate the canonical type from the desired pointer type to the placeholder pointer type. gcc/testsuite/: * lib/go-torture.exp: Test compiling with -flto. From-SVN: r268572
Nikhil Benesch committed -
As reported in bug 88584, if you have a file-scope array with external linkage, initialized at file scope, and that array is shadowed at block scope, and is declared again with external linkage and an incomplete type in an inner scope, it is wrongly given a complete type in that inner scope when the correct C semantics give it an incomplete type (only the visible declarations contribute to the type in a given scope). In general, issues with the types of external linkage declarations being different in different scopes were addressed by my fixes for bug 13801, for GCC 4.0. In this case, however, the code in pushdecl dealing with giving declarations the right type in each scope works fine, and the type is subsequently modified by complete_array_type called from finish_decl: finish_decl is trying to complete an array type based on an initializer, but that's only correct for the original initialization at file scope, not for such a declaration in an inner scope (it's harmless but unnecessary in the case where the original declaration is still visible in the inner scope). Thus, this patch changes finish_decl to stop this logic applying for such an external declaration in an inner scope. (An erroneous attempt to include an initializer for an extern variable in an inner scope is diagnosed elsewhere.) This is a regression from GCC 3.4, which properly rejected the code in question (quite likely by accident). Bootstrapped with no regressions on x86_64-pc-linux-gnu. gcc/c: PR c/88584 * c-decl.c (finish_decl): Do not complete array types for arrays with external linkage not at file scope. gcc/testsuite: PR c/88584 * gcc.dg/redecl-18.c: New test. From-SVN: r268571
Joseph Myers committed -
From-SVN: r268570
GCC Administrator committed
-
- 05 Feb, 2019 13 commits
-
-
gcc/po: * be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po, ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po, zh_TW.po: Update. libcpp/po: * be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, fr.po, id.po, ja.po, nl.po, pr_BR.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po, zh_TW.po: Update. From-SVN: r268567
Joseph Myers committed -
PR libstdc++/89128 * include/bits/stl_queue.h (queue, priority_queue): Add deduction guides. * include/bits/stl_stack.h (stack): Likewise. * testsuite/23_containers/priority_queue/deduction.cc: New test. * testsuite/23_containers/queue/deduction.cc: New test. * testsuite/23_containers/stack/deduction.cc: New test. From-SVN: r268566
Jonathan Wakely committed -
PR c++/89187 * optimize.c (maybe_thunk_body): Clear TREE_ADDRESSABLE on PARM_DECLs of the thunk. * lambda.c (maybe_add_lambda_conv_op): Likewise. * g++.dg/opt/pr89187.C: New test. From-SVN: r268564
Jakub Jelinek committed -
gcc/jit/ChangeLog: 2019-02-05 Andrea Corallo <andrea.corallo@arm.com> * docs/topics/compatibility.rst (LIBGCCJIT_ABI_11): New ABI tag. * docs/topics/contexts.rst (Additional driver options): New section. * jit-playback.c (invoke_driver): Add call to append_driver_options. * jit-recording.c: Within namespace gcc::jit... (recording::context::~context): Free the optnames within m_driver_options. (recording::context::add_driver_option): New method. (recording::context::append_driver_options): New method. (recording::context::dump_reproducer_to_file): Add driver options. * jit-recording.h: Within namespace gcc::jit... (recording::context::add_driver_option): New method. (recording::context::append_driver_options): New method. (recording::context::m_driver_options): New field. * libgccjit++.h (gccjit::context::add_driver_option): New method. * libgccjit.c (gcc_jit_context_add_driver_option): New API entrypoint. * libgccjit.h (gcc_jit_context_add_driver_option): New API entrypoint. (LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option): New macro. * libgccjit.map (LIBGCCJIT_ABI_11): New ABI tag. gcc/testsuite/ChangeLog: 2019-02-05 Andrea Corallo <andrea.corallo@arm.com> * jit.dg/add-driver-options-testlib.c: Add support file for test-add-driver-options.c testcase. * jit.dg/all-non-failing-tests.h: Add note about test-add-driver-options.c * jit.dg/jit.exp (jit-dg-test): Update to support add-driver-options-testlib.c compilation. * jit.dg/test-add-driver-options.c: New testcase. From-SVN: r268563
Andrea Corallo committed -
PR rtl-optimization/11304 * gcc.target/i386/call-1.c (set_eax): Add "eax" clobber. * gcc.target/i386/call-2.c: New test. From-SVN: r268562
Jakub Jelinek committed -
* call.c (convert_like_real) <case ck_user>: Call mark_exp_read instead of mark_rvalue_use. * g++.dg/cpp0x/lambda/lambda-89158.C: New test. From-SVN: r268561
Marek Polacek committed -
Fixes golang/go#28186. Reviewed-on: https://go-review.googlesource.com/c/160832 From-SVN: r268554
Ian Lance Taylor committed -
On powerpc64-linux, this testcase complains the ABI for vector args has changed, making the testcase fail (excess output). This patch shuts up that warning. * gcc.dg/vect/pr84711.c: Use -Wno-psabi. From-SVN: r268553
Segher Boessenkool committed -
gcc/ChangeLog: 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com> PR target/88856 * config/s390/s390.md: Remove load and test FP splitter. From-SVN: r268550
Andreas Krebbel committed -
2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com> PR target/89112 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence, expand_compare_loop, expand_block_compare_gpr, expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add #include "profile-count.h" and "predict.h" for types and functions needed to work with REG_BR_PROB notes. From-SVN: r268547
Aaron Sawdey committed -
2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com> PR target/89112 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label for the long branch case. From-SVN: r268546
Aaron Sawdey committed -
* gcc.target/powerpc/vec-extract-sint128-1.c: Require int128 effective target. * gcc.target/powerpc/vec-extract-uint128-1.c: Likewise. From-SVN: r268545
Jakub Jelinek committed -
PR target/89188 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they can throw, non-call exceptions are enabled and we can't delete dead exceptions or alter cfg. Set must_clean if delete_insn_and_edges returns true, don't set it blindly for calls. Assert that delete_unreachable_blocks is called only if can_alter_cfg. * g++.dg/opt/pr89188.C: New test. From-SVN: r268544
Jakub Jelinek committed
-