- 15 May, 2018 4 commits
-
-
The length in the .debug_addr unit header was calculated using the number of elements in the addr_index_table. This is wrong because the entries in the table are refcounted and only those with a refcount > 0 are actually put in the index. Add a helper function count_index_addrs to get the correct number of addresses in the index. gcc/ChangeLog: * dwarf2out.c (count_index_addrs): New function. (dwarf2out_finish): Use count_index_addrs to calculate addrs_length. From-SVN: r260251
Mark Wielaard committed -
re PR tree-optimization/83648 (missing -Wsuggest-attribute=malloc on a trivial malloc-like function) 2018-05-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> PR tree-optimization/83648 * ipa-pure-const.c (malloc_candidate_p): Allow function with NULL return value as malloc candidate. testsuite/ * gcc.dg/tree-ssa/pr83648.c: New test. * gcc.dg/tree-ssa/pr83648-2.c: Likewise. From-SVN: r260250
Prathamesh Kulkarni committed -
2018-05-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> PR ipa/85734 * ipa-pure-const.c (warn_function_malloc): Pass value of known_finite param as true in call to suggest_attribute. testsuite/ * gcc.dg/ipa/pr85734.c: New test. From-SVN: r260249
Prathamesh Kulkarni committed -
From-SVN: r260248
GCC Administrator committed
-
- 14 May, 2018 17 commits
-
-
PR target/85756 * gnat.dg/opt70.adb: New test. * gnat.dg/opt70_pkg.ad[sb]: New helper. From-SVN: r260239
Eric Botcazou committed -
* tree.c (build_cp_fntype_variant): New. (build_ref_qualified_type, build_exception_variant) (strip_typedefs, cxx_copy_lang_qualifiers): Use it. (cxx_type_hash_eq, cp_check_qualified_type): Check TYPE_HAS_LATE_RETURN_TYPE. (cp_build_type_attribute_variant): Check cxx_type_hash_eq. (cp_build_qualified_type_real): No need to preserve C++ qualifiers. * class.c (build_clone): Use cxx_copy_lang_qualifiers. (adjust_clone_args): Likewise. * decl.c (grokfndecl): Add late_return_type_p parameter. Use build_cp_fntype_variant. (grokdeclarator): Pass late_return_type_p to grokfndecl. (check_function_type): Use cxx_copy_lang_qualifiers. (static_fn_type): Use cxx_copy_lang_qualifiers. * decl2.c (build_memfn_type, maybe_retrofit_in_chrg) (cp_reconstruct_complex_type, coerce_new_type, coerce_delete_type) (change_return_type): Use cxx_copy_lang_qualifiers. * mangle.c (write_type): Use cxx_copy_lang_qualifiers. * parser.c (cp_parser_lambda_declarator_opt): Represent an explicit return type on the declarator like a normal trailing return type. * pt.c (tsubst_function_type): Use build_cp_fntype_variant. (copy_default_args_to_explicit_spec): Use cxx_copy_lang_qualifiers. * typeck.c (merge_types): Use build_cp_fntype_variant. From-SVN: r260238
Jason Merrill committed -
For some reason I made both an @item and an @itemx for -mreadonly-in-sdata. This fixes it. * doc/invoke.texi (RS/6000 and PowerPC Options): Delete @itemx for -mreadonly-in-sdata. From-SVN: r260237
Segher Boessenkool committed -
PR libstdc++/81256 * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow exceptions from _M_terminate_output(). * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any exceptions from close(). * testsuite/27_io/basic_filebuf/close/81256.cc: New. From-SVN: r260236
Jonathan Wakely committed -
When the AESE,AESD and AESMC, AESMC instructions are generated through the appropriate arm_neon.h intrinsics we really want to keep them together when the AESE feeds into an AESMC and fusion is supported by the target CPU. We have macro-fusion hooks and scheduling model forwarding paths defined to facilitate that. It is, however, not always enough. This patch adds another mechanism for doing that. When we can detect during combine that the required dependency is exists (AESE -> AESMC, AESD -> AESIMC) just keep them together with a combine pattern throughout the rest of compilation. We won't ever want to split them. The testcases generate 4 AESE(D) instructions in a block followed by 4 AES(I)MC instructions that consume the corresponding results and it also adds a bunch of computations in-between so that the AESE and AESMC instructions are not trivially back-to-back, thus exercising the compiler's ability to bring them together. With this patch all 4 pairs are fused whereas before a couple of fusions would be missed due to intervening arithmetic and memory instructions. * config/aarch64/aarch64-simd.md (*aarch64_crypto_aese_fused): New pattern. (aarch64_crypto_aesd_fused): Likewise. * gcc.target/aarch64/crypto-fuse-1.c: New test. * gcc.target/aarch64/crypto-fuse-2.c: Likewise. From-SVN: r260234
Kyrylo Tkachov committed -
Remove the remaining uses of '*' from aarch64.md. Using '*' in alternatives is typically incorrect as it tells the register allocator to ignore those alternatives. Also add a missing '?' so we prefer a floating point register for same-size int<->fp conversions. gcc/ * config/aarch64/aarch64.md (mov<mode>): Remove '*' in alternatives. (movsi_aarch64): Likewise. (load_pairsi): Likewise. (load_pairdi): Likewise. (store_pairsi): Likewise. (store_pairdi): Likewise. (load_pairsf): Likewise. (load_pairdf): Likewise. (store_pairsf): Likewise. (store_pairdf): Likewise. (zero_extend): Likewise. (trunc): Swap alternatives. (fcvt_target): Add '?' to prefer w over r. testsuite/ * gcc.target/aarch64/vmov_n_1.c: Update test. * gcc.target/aarch64/vfp-1.c: Update test. From-SVN: r260233
Wilco Dijkstra committed -
From-SVN: r260232
Uros Bizjak committed -
PR target/85756 * config/i386/i386.md: Disallow non-commutative arithmetics in last twpeephole for mem {+,-,&,|,^}= x; mem != 0 after cmpelim optimization. Use COMMUTATIVE_ARITH_P test rather than != MINUS in the peephole2 before it. testsuite/ChangeLog: * gcc.c-torture/execute/pr85756.c: New test. From-SVN: r260231
Jakub Jelinek committed -
* include/bits/valarray_array.h (__valarray_get_memory): Remove. (__valarray_get_storage): Call operator new directly. Remove ignored top-level restrict qualifier and add malloc attribute instead. (_Array<_Tp>::_Array(size_t)): Remove unused constructor. From-SVN: r260230
Jonathan Wakely committed -
PR libstdc++/67554 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>) (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy. From-SVN: r260229
Jonathan Wakely committed -
2018-05-14 Paolo Carlini <paolo.carlini@oracle.com> * cp-tree.h (TYPE_REF_P): New. (TYPE_OBJ_P, TYPE_REF_OBJ_P, TYPE_REFFN_P): Update. * call.c (build_list_conv, build_aggr_conv, standard_conversion, direct_reference_binding, reference_binding, implicit_conversion, add_builtin_candidate, build_user_type_conversion_1, build_op_call_1, build_new_op_1, build_x_va_arg, conv_binds_ref_to_prvalue, build_over_call, perform_implicit_conversion_flags, extend_ref_init_temps, type_has_extended_temps): Use it. * class.c (one_inheriting_sig, check_field_decls, check_bases_and_members, find_flexarrays, finish_struct, fixed_type_or_null): Likewise. * constexpr.c (literal_type_p, cxx_bind_parameters_in_call, non_const_var_error, cxx_eval_constant_expression, potential_constant_expression_1): Likewise. * cp-gimplify.c (omp_var_to_track, omp_cxx_notice_variable, cp_genericize_r, cxx_omp_privatize_by_reference, cxx_omp_const_qual_no_mutable, cxx_omp_finish_clause, cp_fold_maybe_rvalue): Likewise. * cp-ubsan.c (cp_ubsan_maybe_instrument_downcast): Likewise. * cvt.c (build_up_reference, convert_to_reference, convert_from_reference, convert_to_void, noexcept_conv_p, fnptr_conv_p): Likewise. * decl.c (poplevel, check_for_uninitialized_const_var, check_initializer, initialize_local_var, cp_finish_decl, get_tuple_decomp_init, cp_finish_decomp, grokdeclarator, copy_fn_p, move_signature_fn_p, grok_op_properties, finish_function): Likewise. * decl2.c (grok_array_decl, cp_reconstruct_complex_type, decl_maybe_constant_var_p): Likewise. * error.c (dump_type_prefix, dump_expr): Likewise. * except.c (initialize_handler_parm, complete_ptr_ref_or_void_ptr_p, is_admissible_throw_operand_or_catch_parameter): Likewise. * expr.c (mark_use): Likewise. * init.c (build_zero_init_1, build_value_init_noctor, perform_member_init, diagnose_uninitialized_cst_or_ref_member_1, build_new, build_delete): Likewise. * lambda.c (build_lambda_object): Likewise. * mangle.c (write_expression, write_template_arg): Likewise. * method.c (forward_parm, do_build_copy_constructor, do_build_copy_assign, build_stub_object, constructible_expr, walk_field_subobs): Likewise. * parser.c (cp_parser_omp_for_loop_init, cp_parser_omp_declare_reduction_exprs, cp_parser_omp_declare_reduction): Likewise. * pt.c (convert_nontype_argument_function, convert_nontype_argument, convert_template_argument, tsubst_pack_expansion, tsubst_function_decl, tsubst_decl, tsubst, tsubst_copy_and_build, maybe_adjust_types_for_deduction, check_cv_quals_for_unify, unify, more_specialized_fn, invalid_nontype_parm_type_p, dependent_type_p_r, value_dependent_expression_p, build_deduction_guide): Likewise. * semantics.c (finish_handler_parms, finish_non_static_data_member, finish_compound_literal, omp_privatize_field, handle_omp_array_sections_1, handle_omp_array_sections, cp_check_omp_declare_reduction, finish_omp_reduction_clause, finish_omp_declare_simd_methods, cp_finish_omp_clause_depend_sink, finish_omp_clauses, finish_decltype_type, capture_decltype, finish_builtin_launder): Likewise. * tree.c (lvalue_kind, cp_build_reference_type, move, cp_build_qualified_type_real, stabilize_expr, stabilize_init): Likewise. * typeck.c (cxx_safe_arg_type_equiv_p, build_class_member_access_expr, cp_build_indirect_ref_1, convert_arguments, warn_for_null_address, cp_build_addr_expr_1, maybe_warn_about_useless_cast, build_static_cast_1, build_static_cast, build_reinterpret_cast_1, build_const_cast_1, cp_build_c_cast, cp_build_modify_expr, convert_for_initialization, maybe_warn_about_returning_address_of_local, check_return_expr, cp_type_quals, casts_away_constness, non_reference): Likewise. * typeck2.c (cxx_readonly_error, store_init_value, process_init_constructor_record, build_x_arrow, build_functional_cast, add_exception_specifier): Likewise. From-SVN: r260228
Paolo Carlini committed -
* pt.c (tsubst) [ARRAY_TYPE]: Check valid_array_size_p. (tsubst_copy_and_build) [NEW_EXPR]: Clear in_decl. gcc/c-family/ * c-common.c (valid_array_size_p): Add complain parameter. * c-common.h: ...which defaults to true. From-SVN: r260227
Jason Merrill committed -
PR libstdc++/82966 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value instead of type. * testsuite/23_containers/set/modifiers/node_swap.cc: New. From-SVN: r260226
Jonathan Wakely committed -
2018-05-14 Sebastian Peryt <sebastian.peryt@intel.com> gcc/ * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLDEMOTE_SET, OPTION_MASK_ISA_CLDEMOTE_UNSET): New defines. (ix86_handle_option): Handle -mcldemote. * config.gcc: New header. * config/i386/cldemoteintrin.h: New file. * config/i386/cpuid.h (bit_CLDEMOTE): New bit. * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mcldemote. * config/i386/i386-c.c (ix86_target_macros_internal): Handle OPTION_MASK_ISA_CLDEMOTE. * config/i386/i386.c (ix86_target_string): Add -mcldemote. (ix86_valid_target_attribute_inner_p): Ditto. (enum ix86_builtins): Add IX86_BUILTIN_CLDEMOTE. (ix86_init_mmx_sse_builtins): Define __builtin_ia32_cldemote. (ix86_expand_builtin): Expand IX86_BUILTIN_CLDEMOTE. * config/i386/i386.h (TARGET_CLDEMOTE, TARGET_CLDEMOTE_P): New. * config/i386/i386.md (UNSPECV_CLDEMOTE): New. (cldemote): New. * config/i386/i386.opt: Add -mcldemote. * config/i386/x86intrin.h: New header. * doc/invoke.texi: Add -mcldemote. gcc/testsuite/ * gcc.target/i386/cldemote-1.c: New test. From-SVN: r260224
Sebastian Peryt committed -
2018-05-14 Richard Biener <rguenther@suse.de> * doc/match-and-simplify.texi: Adjust :s documentation. From-SVN: r260223
Richard Biener committed -
* sort.cc (REORDER_23): Pass the type for the temporaries instead of intended memcpy size. (REORDER_45): Likewise. From-SVN: r260222
Alexander Monakov committed -
From-SVN: r260221
GCC Administrator committed
-
- 13 May, 2018 10 commits
-
-
* sort.cc: New file. * system.h [!CHECKING_P] (qsort): Redirect to gcc_qsort. * vec.c (qsort_chk): Use gcc_qsort. * Makefile.in (OBJS-libcommon): Add sort.o. (build/sort.o): New target. Use it... (BUILD_RTL): ... here, and... (build/gencfn-macros): ... here, and... (build/genmatch): ... here. From-SVN: r260216
Alexander Monakov committed -
gcc/ * config.gcc (nds32*-*-*): Check that n15 is valid to --with-cpu. * config/nds32/nds32-graywolf.md: New file. * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_GRAYWOLF. * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n15 pipeline. * config/nds32/nds32-protos.h: More declarations for n15 pipeline. * config/nds32/nds32-utils.c: More implementations for n15 pipeline. * config/nds32/nds32.md (pipeline_model): Add graywolf. * config/nds32/nds32.opt (mcpu): Support n15 pipeline cpus. * config/nds32/pipelines.md: Include n15 settings. Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com> From-SVN: r260214
Kito Cheng committed -
2018-05-13 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/63529 * gfortran.texi: Clarify documentation for Cray pointer and assumed-sized array. From-SVN: r260213
Steven G. Kargl committed -
gcc/ * config.gcc (nds32*-*-*): Check that n12/n13 are valid to --with-cpu. * config/nds32/nds32-n13.md: New file. * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N12 and CPU_N13. * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n12/n13 pipeline. * config/nds32/nds32-protos.h: More declarations for n12/n13 pipeline. * config/nds32/nds32.md (pipeline_model): Add n13. * config/nds32/nds32.opt (mcpu): Support n12/n13 pipeline cpus. * config/nds32/pipelines.md: Include n13 settings. Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com> From-SVN: r260212
Kito Cheng committed -
2018-05-13 Paul Thomas <pault@gcc.gnu.org> PR fortran/85742 * trans-types.c (gfc_get_dtype_rank_type): Reorder evaluation of 'size'. If the element type is a pointer use the size of the TREE_TYPE of the type, unless it is VOID_TYPE. In this latter case, set the size to zero. 2018-05-13 Paul Thomas <pault@gcc.gnu.org> PR fortran/85742 * gfortran.dg/assumed_type_9.f90 : New test. From-SVN: r260211
Paul Thomas committed -
2018-05-13 Steven G. Kargl <kargl@gcc.gnu.org> * gfortran.h: Remove prototype. * symbol.c (gfc_new_undo_checkpoint): Remove unused function. From-SVN: r260210
Steven G. Kargl committed -
PR libstdc++/80165 * testsuite/20_util/variant/80165.cc: New. From-SVN: r260209
Ville Voutilainen committed -
gcc/ * config.gcc (nds32*-*-*): Check that n10/d10 are valid to --with-cpu. * config/nds32/nds32-n10.md: New file. * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N10. * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n10 pipeline. * config/nds32/nds32-protos.h: More declarations for n10 pipeline. * config/nds32/nds32-utils.c: More implementations for n10 pipeline. * config/nds32/nds32.md (pipeline_model): Add n10. * config/nds32/nds32.opt (mcpu): Support n10 pipeline cpus. * config/nds32/pipelines.md: Include n10 settings. Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com> From-SVN: r260207
Kito Cheng committed -
gcc/ * config.gcc (nds32be-*-*): Handle --with-ext-dsp. * config/nds32/constants.md (unspec_element, unspec_volatile_element): Add enum values for DSP extension instructions. * config/nds32/constraints.md (Iu06, IU06, CVp5, CVs5, CVs2, CVhi): New constraints. * config/nds32/iterators.md (shifts, shiftrt, sat_plus, all_plus, sat_minus, all_minus, plus_minus, extend, sumax, sumin, sumin_max): New code iterators. (su, zs, uk, opcode, add_rsub, add_sub): New code attributes. * config/nds32/nds32-dspext.md: New file for DSP implementation. * config/nds32/nds32-intrinsic.c: Implementation of DSP extension. * config/nds32/nds32-intrinsic.md: Likewise. * config/nds32/nds32_intrinsic.h: Likewise. * config/nds32/nds32-md-auxiliary.c: Likewise. * config/nds32/nds32-memory-manipulation.c: Consider DSP extension. * config/nds32/nds32-predicates.c (const_vector_to_hwint): New. (nds32_valid_CVp5_p, nds32_valid_CVs5_p): New. (nds32_valid_CVs2_p, nds32_valid_CVhi_p): New. * config/nds32/nds32-protos.h: New declarations for DSP extension. * config/nds32/nds32-utils.c (extract_mac_non_acc_rtx): New case TYPE_DMAC in switch statement. * config/nds32/nds32.c: New checking and implementation for DSP extension instructions. * config/nds32/nds32.h: Likewise. * config/nds32/nds32.md: Likewise. * config/nds32/nds32.opt (mhw-abs, mext-dsp): New options. * config/nds32/predicates.md: Implement new predicates for DSP extension. Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com> Co-Authored-By: Kito Cheng <kito.cheng@gmail.com> From-SVN: r260206
Monk Chiang committed -
From-SVN: r260205
GCC Administrator committed
-
- 12 May, 2018 1 commit
-
-
From-SVN: r260194
GCC Administrator committed
-
- 11 May, 2018 8 commits
-
-
rs6000.md (mov<mode>_softfloat, FMOVE32): Reformat alternatives and attributes so it is easier to identify which... 2018-05-11 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/rs6000.md (mov<mode>_softfloat, FMOVE32): Reformat alternatives and attributes so it is easier to identify which constraints/attributes go with which instruction. (mov<mode>_hardfloat32, FMOVE64): Likewise. (mov<mode>_softfloat32, FMOVE64): Likewise. (mov<mode>_hardfloat64, FMOVE64): Likewise. (mov<mode>_softfloat64, FMOVE64): Likewise. From-SVN: r260190
Michael Meissner committed -
2018-05-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/85542 * expr.c (check_inquiry): Avoid NULL pointer dereference. 2018-05-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/85542 * gfortran.dg/pr85542.f90: New test. From-SVN: r260182
Steven G. Kargl committed -
From-SVN: r260172
Edward Smith-Rowland committed -
* libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions /02_assoc_legendre/check_value.cc From-SVN: r260168
Edward Smith-Rowland committed -
gcc/ChangeLog: 2018-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> * doc/extend.texi (PowerPC Built-in Functions): Rename this subsection. (Basic PowerPC Built-in Functions): The new name of the subsection previously known as "PowerPC Built-in Functions". (Basic PowerPC Built-in Functions Available on all Configurations): New subsubsection. (Basic PowerPC Built-in Functions Available on ISA 2.05): Likewise. (Basic PowerPC Built-in Functions Available on ISA 2.06): Likewise. (Basic PowerPC Built-in Functions Available on ISA 2.07): Likewise. (Basic PowerPC Built-in Functions Available on ISA 3.0): Likewise. From-SVN: r260167
Kelvin Nilsen committed -
2018-05-11 Martin Jambor <mjambor@suse.cz> PR ipa/85655 * ipa-cp.c (intersect_with_plats): Check that the lattice contains single const. testsuite/ * g++.dg/lto/pr85655_0.C: New test. From-SVN: r260165
Martin Jambor committed -
[arm] PR target/85733 Restore be8 linking behaviour for ARMv6-M and products deriving from its capabilities My patch last year to automate passing the be8 flag to the linker had a nasty flaw in that I forgot entirely that the ARMv6-M architecture did not derive its capabilities directly from the ARMv6 capability list, but was a new group of capabilities (since it needs to leave out the ARM -- notm -- feature bit). The feature list defined was thus missing the be8 bit. Furthermore, any product derived from that feature group consequently lacked the be8 feature as well and this included all ARMv7 and ARMv8 parts. The fix is embarrassingly simple... PR target/85733 * config/arm/arm-cpus.in (fgroup ARMv6m): Add be8 feature. From-SVN: r260162
Richard Earnshaw committed -
2018-05-11 Sebastian Peryt <sebastian.peryt@intel.com> gcc/ * common/config/i386/i386-common.c (OPTION_MASK_ISA_WAITPKG_SET, OPTION_MASK_ISA_WAITPKG_UNSET): New defines. (ix86_handle_option): Handle -mwaitpkg. * config.gcc: New header. * config/i386/cpuid.h (bit_WAITPKG): New bit. * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mwaitpkg. * config/i386/i386-builtin-types.def ((UINT8, UNSIGNED, UINT64)): New function type. * config/i386/i386-c.c (ix86_target_macros_internal): Handle OPTION_MASK_ISA_WAITPKG. * config/i386/i386.c (ix86_target_string): Add -mwaitpkg. (ix86_option_override_internal): Add PTA_WAITPKG. (ix86_valid_target_attribute_inner_p): Add -mwaitpkg. (enum ix86_builtins): Add IX86_BUILTIN_UMONITOR, IX86_BUILTIN_UMWAIT, IX86_BUILTIN_TPAUSE. (ix86_init_mmx_sse_builtins): Define __builtin_ia32_umonitor, __builtin_ia32_umwait and __builtin_ia32_tpause. (ix86_expand_builtin): Expand IX86_BUILTIN_UMONITOR, IX86_BUILTIN_UMWAIT, IX86_BUILTIN_TPAUSE. * config/i386/i386.h (TARGET_WAITPKG, TARGET_WAITPKG_P): New. * config/i386/i386.md (UNSPECV_UMWAIT, UNSPECV_UMONITOR, UNSPECV_TPAUSE): New. (umwait, umwait_rex64, umonitor_<mode>, tpause, tpause_rex64): New. * config/i386/i386.opt: Add -mwaitpkg. * config/i386/waitpkgintrin.h: New file. * config/i386/x86intrin.h: New header. * doc/invoke.texi: Add -mwaitpkg. gcc/testsuite/ * gcc.target/i386/tpause-1.c: New test. * gcc.target/i386/umonitor-1.c: New test. From-SVN: r260161
Sebastian Peryt committed
-