- 23 Sep, 2019 21 commits
-
-
gcc/ChangeLog: 2019-09-23 Carl Love <cel@us.ibm.com> * config/rs6000/vsx.md (xxswapd_v4si, xxswapd_v8hi, xxswapd_v16qi): New define_insn. (vsx_xxpermdi4_le_<mode> for VSX_W, vsx_xxpermdi8_le_V8HI, vsx_xxpermdi16_le_V16QI): Removed define_insn. From-SVN: r276065
Carl Love committed -
/cp 2019-09-23 Paolo Carlini <paolo.carlini@oracle.com> * pt.c (check_explicit_specialization): Use cp_expr_loc_or_input_loc. (process_partial_specialization): Likewise. (convert_nontype_argument_function): Likewise. (invalid_tparm_referent_p): Likewise. (convert_template_argument): Likewise. (check_valid_ptrmem_cst_expr): Tidy. /testsuite 2019-09-23 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp0x/pr68724.C: Check location(s) too. * g++.dg/cpp0x/variadic38.C: Likewise. * g++.dg/cpp1z/nontype2.C: Likewise. * g++.dg/parse/explicit1.C: Likewise. * g++.dg/template/crash11.C: Likewise. * g++.dg/template/non-dependent8.C: Likewise. * g++.dg/template/nontype-array1.C: Likewise. * g++.dg/template/nontype3.C: Likewise. * g++.dg/template/nontype8.C: Likewise. * g++.dg/template/partial5.C: Likewise. * g++.dg/template/spec33.C: Likewise. * g++.old-deja/g++.pt/memtemp64.C: Likewise. * g++.old-deja/g++.pt/spec20.C: Likewise. * g++.old-deja/g++.pt/spec21.C: Likewise. * g++.old-deja/g++.robertl/eb103.C: Likewise. From-SVN: r276064
Paolo Carlini committed -
gcc/testsuite/ * lib/target-supports.exp (check_effective_target_arm_vfp_ok_nocache): New. (check_effective_target_arm_vfp_ok): Rewrite. (add_options_for_arm_vfp): New. (add_options_for_sqrt_insn): Add options for arm. * gcc.target/arm/attr-neon-builtin-fail2.c: Use dg-add-options. * gcc.target/arm/short-vfp-1.c: Likewise. From-SVN: r276063
Sandra Loosemore committed -
decay_conversion converts a bit-field access to its declared type, which isn't what we want here; it even has a comment that the caller is expected to have already used default_conversion to perform integral promotion. This function handles arithmetic promotion differently, but we still don't want to call decay_conversion before that happens. * call.c (convert_arg_to_ellipsis): Don't call decay_conversion for arithmetic arguments. From-SVN: r276059
Jason Merrill committed -
* call.c (reference_related_p): Use similar_type_p instead of same_type_p. (reference_compatible_p): Update implementation to match CWG 2352. * cp-tree.h (similar_type_p): Declare. * typeck.c (similar_type_p): New. * g++.dg/cpp0x/pr33930.C: Add dg-error. * g++.dg/cpp0x/ref-bind1.C: New test. * g++.dg/cpp0x/ref-bind2.C: New test. * g++.dg/cpp0x/ref-bind3.C: New test. * g++.old-deja/g++.pt/spec35.C: Remove dg-error. From-SVN: r276058
Marek Polacek committed -
arm-builtins.o is missing a Makefile dependency on arm_acle_builtins.def which can cause inconsistent rebuilds when adding builtins in there. This patch adds the right Makefile-foo to fix that. * config/arm/t-arm (arm-builtins.o): Add dependency on arm_acle_builtins.def. From-SVN: r276057
Kyrylo Tkachov committed -
If __index_type is a smaller type than size_t, then the result of size_t(__index_type(-1)) is not equal to size_t(-1), but to an incorrect value such as size_t(255) or size_t(65535). The old implementation of variant<T...>::index() uses (size_t(__index_type(_M_index + 1)) - 1) which is always correct, but generates suboptimal code for many common cases. When the __index_type is size_t or valueless variants are not possible we can just return the value directly. When the number of alternatives is sufficiently small the result of converting the _M_index value to the corresponding signed type will be either non-negative or -1. In those cases converting to the signed type and then to size_t will either produce the correct positive value or will sign extend -1 to (size_t)-1 as desired. For the remaining case we keep the existing arithmetic operations to ensure the correct result. PR libstdc++/91788 (partial) * include/std/variant (variant::index()): Improve codegen for cases where conversion to size_t already works correctly. From-SVN: r276056
Jonathan Wakely committed -
The pattern was generating zero-extended rather than sign-extended CONST_INTs. 2019-09-23 Richard Sandiford <richard.sandiford@arm.com> gcc/ PR target/91823 * config/rs6000/altivec.md (altivec_copysign_v4sf3): Generate canonical CONST_INTs. Use gen_rtvec. From-SVN: r276055
Richard Sandiford committed -
2019-09-23 Richard Biener <rguenther@suse.de> * tree-vect-loop.c (get_initial_def_for_reduction): Simplify, avoid adjusting by + 0 or * 1. (vect_create_epilog_for_reduction): Get reduction code only when necessary. Deal with adjustment_def only when necessary. From-SVN: r276054
Richard Biener committed -
* gcc.dg/ucnid-5-utf8.c: Skip unless ucn is supported. From-SVN: r276053
Rainer Orth committed -
Found via an rtx checking failure. 2019-09-23 Richard Sandiford <richard.sandiford@arm.com> gcc/ * config/aarch64/atomics.md (aarch64_store_exclusive_pair): Fix memmodel index. From-SVN: r276052
Richard Sandiford committed -
2019-09-23 Paul Thomas <pault@gcc.gnu.org> PR fortran/91729 * match.c (gfc_match_select_rank): Initialise 'as' to NULL. Check for a symtree in the selector expression before trying to assign a value to 'as'. Revert to gfc_error and go to cleanup after setting a MATCH_ERROR. 2019-09-23 Paul Thomas <pault@gcc.gnu.org> PR fortran/91729 * gfortran.dg/select_rank_2.f90 : Add two more errors in foo2. * gfortran.dg/select_rank_3.f90 : New test. From-SVN: r276051
Paul Thomas committed -
PR ipa/91835 * lto-section-in.c (lto_section_name): Use "ipa_sra" instead of "ipa-sra". From-SVN: r276050
Rainer Orth committed -
gcc/ada: * libgnarl/s-osinte__solaris.ads (sysconf): Declare. (SC_NPROCESSORS_ONLN): Define. * libgnarl/s-tasinf__solaris.ads (Number_Of_Processors): Declare. * libgnarl/s-tasinf__solaris.adb (N_CPU): New variable. (Number_Of_Processors): New function. gcc/testsuite: * gnat.dg/system_info1.adb: Sort dg-do target list. Add *-*-solaris2.*. From-SVN: r276049
Rainer Orth committed -
From-SVN: r276048
Andreas Schwab committed -
* gcc-interface/trans.c (Regular_Loop_to_gnu): Do not rotate the loop if -Og is enabled. (build_return_expr): Do not perform NRV if -Og is enabled. (Subprogram_Body_to_gnu): Likewise. (gnat_to_gnu) <N_Simple_Return_Statement>: Likewise. (Handled_Sequence_Of_Statements_to_gnu): Do not inline finalizers if -Og is enabled. * gcc-interface/utils.c (convert_to_index_type): Return early if -Og is enabled. From-SVN: r276047
Eric Botcazou committed -
From-SVN: r276046
Eric Botcazou committed -
* gcc-interface/trans.c (gnat_compile_time_expr_list): New variable. (Pragma_to_gnu): Rename local variable. Save the (first) expression of pragma Compile_Time_{Error|Warning} for later processing. (Compilation_Unit_to_gnu): Process the expressions saved above. From-SVN: r276045
Eric Botcazou committed -
* gcc-interface/trans.c (Attribute_to_gnu): Test Can_Use_Internal_Rep on the underlying type of the node. (Call_to_gnu): Likewise with the type of the prefix. From-SVN: r276041
Eric Botcazou committed -
* gcc-interface/decl.c (components_to_record): Do not reorder fields in packed record types if they contain fixed-size fields that cannot be laid out in a packed manner. From-SVN: r276036
Eric Botcazou committed -
From-SVN: r276035
GCC Administrator committed
-
- 22 Sep, 2019 3 commits
-
-
Remove dead code for the the TARGET_LINK_STACK which is not applicable to Darwin. Use MACHOPIC_PURE instead of a hard-wired PIC level to determine the stub kind. Merge common code blocks. gcc/ChangeLog: 2019-09-22 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/rs6000.c (machopic_output_stub): Remove dead code. Merge code blocks with common conditionals. Use declared macro instead of a magic number for PIC level. From-SVN: r276030
Iain Sandoe committed -
* call.c (build_new_op_1): Set arg2_type. * g++.dg/other/operator4.C: New test. From-SVN: r276027
Marek Polacek committed -
From-SVN: r276026
GCC Administrator committed
-
- 21 Sep, 2019 7 commits
-
-
PR middle-end/91830 - Bogus -Warray-bounds on strcpy into a member of a subobject compiling binutils gcc/ChangeLog: * gcc/gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): Simplify computation of the offset of the referenced subobject. gcc/testsuite/ChangeLog: * gcc/testsuite/gcc.dg/Warray-bounds-47.c: New test. From-SVN: r276022
Martin Sebor committed -
PR c++/30277 * g++.dg/expr/bitfield14.C (struct S): Use signed long long instead of signed long. (foo): Use long long instead of long. From-SVN: r276021
Jakub Jelinek committed -
Some changes were missed here in the transition to LRA. The Darwin archs are all using LRA now. gcc/ChangeLog: 2019-09-21 Iain Sandoe <iain@sandoe.co.uk> * config/darwin.c (machopic_legitimize_pic_address): Check for lra not reload. From-SVN: r276020
Iain Sandoe committed -
* g++.dg/cpp1z/init-statement10.C: New test. From-SVN: r276019
Marek Polacek committed -
If an insn requires two operands to be tied, and the input operand dies in the insn, IRA acts as though there were a copy from the input to the output with the same execution frequency as the insn. Allocating the same register to the input and the output then saves the cost of a move. If there is no such tie, but an input operand nevertheless dies in the insn, IRA creates a similar move, but with an eighth of the frequency. This helps to ensure that chains of instructions reuse registers in a natural way, rather than using arbitrarily different registers for no reason. This heuristic seems to work well in the vast majority of cases. However, for SVE, the handling of untied operands ends up creating copies between dying predicate registers and vector outputs, even though vector and predicate registers are distinct classes and can never be tied. This is a particular problem because the dying predicate tends to be the loop control predicate, which is used by most instructions in a vector loop and so (rightly) has a very high allocation priority. Any copies involving the loop predicate therefore tend to get processed before copies involving only vector registers. The end result is that we tend to allocate the output of the last vector instruction in a loop ahead of its natural place in the allocation order and don't benefit from chains created between vector registers. This patch tries to avoid the problem by not adding register shuffle copies if there appears to be no chance that the two operands could be allocated to the same register. 2019-09-21 Richard Sandiford <richard.sandiford@arm.com> gcc/ * ira-conflicts.c (can_use_same_reg_p): New function. (process_reg_shuffles): Take an insn parameter. Ignore cases in which input operand op_num could seemingly never be allocated to the same register as the destination. (add_insn_allocno_copies): Update call to process_reg_shuffles. gcc/testsuite/ * gcc.target/aarch64/sve/cond_convert_1.c: Remove XFAILs. * gcc.target/aarch64/sve/cond_convert_4.c: Likewise. * gcc.target/aarch64/sve/cond_unary_2.c: Likewise. From-SVN: r276018
Richard Sandiford committed -
This patch generalises some neg_const_int-based rtx simplifications so that they handle all CONST_SCALAR_INTs and also CONST_POLY_INT. This actually simplifies things a bit, since we no longer have to treat HOST_WIDE_INT_MIN specially. This is tested by later SVE patches. 2019-09-21 Richard Sandiford <richard.sandiford@arm.com> gcc/ * simplify-rtx.c (neg_const_int): Replace with... (neg_poly_int_rtx): ...this new function. (simplify_binary_operation_1): Extend (minus x C) -> (plus X -C) to all CONST_SCALAR_INTs and to CONST_POLY_INT. (simplify_plus_minus): Likewise for constant terms here. From-SVN: r276017
Richard Sandiford committed -
From-SVN: r276015
GCC Administrator committed
-
- 20 Sep, 2019 9 commits
-
-
* config/microblaze/microblaze.h (ASM_OUTPUT_SKIP): Use HOST_WIDE_PRINT_UNSIGNED. From-SVN: r276011
Jonas Pfeil committed -
* config/pa/pa.c (pa_trampoline_init): Remove spurious extended character. From-SVN: r276007
John David Anglin committed -
PR target/86811 * config/vax/vax.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define to speculation_safe_value_not_needed. From-SVN: r276006
Maya Rashish committed -
This fails at m32 because the scan-asm is looking for an absence of "ret". Darwin is generating the correct code for the function but the picbase thunk has a 'ret' insn. Fixed by making the test use -mdynamic-no-pic for m32. gcc/testsuite/ChangeLog: 2019-09-20 Iain Sandoe <iain@sandoe.co.uk> * gcc.target/i386/naked-1.c: Alter options to use non- PIC codegen for m32 Darwin. From-SVN: r276004
Iain Sandoe committed -
2019-09-20 Tobias Burnus <tobias@codesourcery.com> PR fortran/78260 * openmp.c (gfc_resolve_oacc_declare): Reject all non variables but accept function result variables. * trans-openmp.c (gfc_trans_omp_clauses): Handle function-result variables for remaing cases. 2019-09-20 Tobias Burnus <tobias@codesourcery.com> PR fortran/78260 * gfortran.dg/goacc/parameter.f95: Change dg-error as it is now detected earlier. * gfortran.dg/goacc/pr85701.f90: Modify to use a separate result variable. * gfortran.dg/goacc/pr78260.f90: New. * gfortran.dg/goacc/pr78260-2.f90: New. * gfortran.dg/gomp/pr78260.f90: New. * gfortran.dg/gomp/pr78260-2.f90: New. * gfortran.dg/gomp/pr78260-3.f90: New. From-SVN: r276002
Tobias Burnus committed -
This is causing regressions when mixing with user code compiled in ARM mode. 2019-09-20 Christophe Lyon <christophe.lyon@st.com> Revert: 2019-09-10 Christophe Lyon <christophe.lyon@st.com> Mickaël Guêné <mickael.guene@st.com> * config/arm/unwind-arm.c (_Unwind_VRS_Set): Handle thumb-only architecture. From-SVN: r276001
Christophe Lyon committed -
Where it is know to work, still covering the original test intent. From-SVN: r275999
Olivier Hainque committed -
2019-09-20 Richard Biener <rguenther@suse.de> Uros Bizjak <ubizjak@gmail.com> PR target/91814 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): Revert previous change. (general_scalar_chain::convert_op): Force not suitable memory operands to a register. Co-Authored-By: Uros Bizjak <ubizjak@gmail.com> From-SVN: r275998
Richard Biener committed -
2019-09-20 Richard Biener <rguenther@suse.de> PR tree-optimization/91821 * tree-vect-loop.c (check_reduction_path): Check we can compute reduc_idx. (vect_is_simple_reduction): Set STMT_VINFO_REDUC_IDX. * tree-vect-patterns.c (vect_reassociating_reduction_p): Return operands in canonical order. * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize STMT_VINFO_REDUC_IDX. * tree-vectorizer.h (_stmt_vec_info::reduc_idx): New. (STMT_VINFO_REDUC_IDX): Likewise. From-SVN: r275996
Richard Biener committed
-