- 25 Apr, 2017 12 commits
-
-
We do this already for TImode values but it was missing for vector modes. gcc/ChangeLog: 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com> PR target/80464 * config/s390/vector.md: Split MEM->GPR vector moves for non-s_operand addresses. gcc/testsuite/ChangeLog: 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com> PR target/80464 * gfortran.fortran-torture/compile/pr80464.f90: New test. From-SVN: r247134
Andreas Krebbel committed -
The P constraint letter is supposed to match every constant which is acceptable during reload. However, constraints do not appear to be able to handle const_wide_int yet. It works with predicates so the alternative is modelled with a new predicate now. gcc/ChangeLog: 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com> PR target/79895 * config/s390/predicates.md (reload_const_wide_int_operand): New predicate. * config/s390/s390.md ("movti"): Remove d/P alternative. ("movti_bigconst"): New pattern definition. gcc/testsuite/ChangeLog: 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com> PR target/79895 * gcc.target/s390/pr79895.c: New test. From-SVN: r247133
Andreas Krebbel committed -
The attached patch optimizes the atomic_exchange and atomic_compare patterns on s390 and s390x (mostly limited to SImode and DImode). Among general optimizaation, the changes fix most of the problems reported in PR 80080: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80080 gcc/ChangeLog: 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com> PR target/80080 * s390-protos.h (s390_expand_cs_hqi): Removed. (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes. * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer modes as well as CCZ1mode and CCZmode. (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new signature of s390_emit_compare_and_swap. (s390_expand_cs_hqi): Likewise, make static. (s390_expand_cs_tdsi): Generate an explicit compare before trying compare-and-swap, in some cases. (s390_expand_cs): Wrapper function. (s390_expand_atomic_exchange_tdsi): New backend specific expander for atomic_exchange. (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode. * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the patterns for small and large integers. Forbid symref memory operands. Move expander to s390.c. Require cc register. ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal") ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1") ("*atomic_compare_and_swapdi<CCZZ1:mode>_2") ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid symref memory operands. Remove CC mode and call s390_match_ccmode instead. ("atomic_exchange<mode>"): Allow and implement all integer modes. gcc/testsuite/ChangeLog: 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com> PR target/80080 * gcc.target/s390/md/atomic_compare_exchange-1.c: New test. * gcc.target/s390/md/atomic_compare_exchange-1.inc: New test. * gcc.target/s390/md/atomic_exchange-1.inc: New test. From-SVN: r247132
Dominik Vogt committed -
gcc/ChangeLog: 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com> * config/s390/s390.md (define_peephole2): New peephole to help combining the load-and-test pattern with volatile memory. From-SVN: r247131
Dominik Vogt committed -
gcc/ChangeLog: 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com> * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal with CCZmode for TARGET_Z196. From-SVN: r247130
Dominik Vogt committed -
PR rtl-optimization/80501 * combine.c (make_compound_operation_int): Set subreg_code to SET even for AND with mask of the sign bit of mode. * gcc.c-torture/execute/pr80501.c: New test. From-SVN: r247128
Jakub Jelinek committed -
re PR rtl-optimization/80500 (ICE: internal consistency failure (error: invalid rtl sharing found in the insn)) PR rtl-optimization/80500 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on sum's initial value. * gcc.dg/pr80500.c: New test. From-SVN: r247126
Jakub Jelinek committed -
* config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation. Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@cavium.com> From-SVN: r247125
Julian Brown committed -
* config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation. (thunderx2t99_sha): New Reservation. Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@cavium.com> From-SVN: r247124
Julian Brown committed -
2017-04-25 Marc Glisse <marc.glisse@inria.fr> gcc/ * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME. gcc/testsuite/ * gcc.dg/tree-ssa/cmpmul-1.c: New file. * gcc.dg/Wstrict-overflow-18.c: Xfail. From-SVN: r247123
Marc Glisse committed -
* config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix type for 1-element load. Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@cavium.com> From-SVN: r247122
Julian Brown committed -
From-SVN: r247121
GCC Administrator committed
-
- 24 Apr, 2017 18 commits
-
-
2017-04-22 Janus Weil <janus@gcc.gnu.org> PR fortran/80121 * gfortran.dg/intent_out_9.f90: Remove deprecated cleanup-tree-dump directive. From-SVN: r247115
Janus Weil committed -
gcc/po: * gcc.pot: Regenerate. libcpp/po: * cpplib.pot: Regenerate. From-SVN: r247113
Joseph Myers committed -
gcc_jit_type_get_aligned gcc/jit/ChangeLog: * docs/cp/topics/types.rst (gccjit::type::get_const): Remove comment. (gccjit::type::get_aligned): Add. * docs/topics/compatibility.rst: Add LIBGCCJIT_ABI_7. * docs/topics/types.rst: Add gcc_jit_type_get_aligned. * docs/_build/texinfo/libgccjit.texi: Regenerate. * jit-playback.c (gcc::jit::playback::type::get_aligned): New method. * jit-playback.h (gcc::jit::playback::type::get_aligned): New method. * jit-recording.c: Within namespace gcc::jit::recording... (type::get_aligned): New method. (memento_of_get_aligned::replay_into): New method. (memento_of_get_aligned::make_debug_string): New method. (memento_of_get_aligned::write_reproducer): New method. * jit-recording.h: Within namespace gcc::jit::recording... (type::get_aligned): New method. (type::accepts_writes_from): Strip off qualifications from this when comparing pointer equality. (decorated_type): New subclass of type, subsuming the commonality between memento_of_get_const and memento_of_get_volatile. (memento_of_get_const): Make a subclass of decorated_type, rather than type. (memento_of_get_volatile): Likewise. (memento_of_get_aligned): Likewise. * libgccjit++.h: Within namespace gccjit... (type::get_const): New method. (type::get_aligned): New method. * libgccjit.c (gcc_jit_type_get_aligned): New function. * libgccjit.h (gcc_jit_type_get_aligned): New decl. * libgccjit.map (LIBGCCJIT_ABI_7): New (gcc_jit_type_get_aligned): Add. gcc/testsuite/ChangeLog: * jit.dg/all-non-failing-tests.h: Add test-alignment.c. * jit.dg/test-alignment.c: New test case. * jit.dg/test-alignment.cc: New test case. * jit.dg/test-error-gcc_jit_type_get_aligned-non-power-of-two.c: New test case. From-SVN: r247111
David Malcolm committed -
* decl.c (grokdeclarator): Use %qT instead of %<%T%> in * diagnostics. (start_enum): Likewise. (build_enumerator): Likewise. Use %qE instead of plain %E. * parser.c (cp_parser_mem_initializer_list): Use %qD instead of %<%D%> in diagnostics. (cp_parser_elaborated_type_specifier): Likewise. * pt.c (make_pack_expansion): Use %qT and %qE instead of %<%T%> and %<%E%> in diagnostics. (tsubst_pack_expansion): Likewise. From-SVN: r247110
Volker Reichelt committed -
PR c++/80016 reports an issue with bizarre underlined range for a complicated expression. The root cause for the incorrect *starting* location of that range is that alignof and sizeof expressions currently have start == finish == caret at the opening parenthesis of the expression. This patch fixes this by generating appropriate start and finish locations for alignof and sizeof expressions. gcc/cp/ChangeLog: PR c++/80016 * parser.c (cp_parser_unary_expression): Generate a location range for alignof and sizeof expressions. gcc/testsuite/ChangeLog: PR c++/80016 * g++.dg/plugin/diagnostic-test-expressions-1.C (test_sizeof): New test function. (test_alignof): New test function. From-SVN: r247108
David Malcolm committed -
2017-04-24 Marc Glisse <marc.glisse@inria.fr> gcc/ * match.pd (X/[ex]C CMP Y/[ex]C): New transformation. gcc/testsuite/ * gcc.dg/tree-ssa/cmpexactdiv-2.c: New file. From-SVN: r247107
Marc Glisse committed -
* parser.c (cp_parser_cv_qualifier_seq_opt): Add fix-it info to error message. (cp_parser_virt_specifier_seq_opt): Likewise. (set_and_check_decl_spec_loc): Likewise twice. * g++.dg/diagnostic/duplicate1.C: New test. * g++.dg/cpp0x/duplicate1.C: New test. From-SVN: r247105
Volker Reichelt committed -
2017-04-24 Martin Jambor <mjambor@suse.cz> PR tree-optimization/80293 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make char arrays not totally scalarizable if it is false. (analyze_all_variable_accesses): Pass correct value in the new parameter. Add a statistics counter. testsuite/ * g++.dg/tree-ssa/pr80293.C: New test. From-SVN: r247104
Martin Jambor committed -
PR libstdc++/80506 * include/bits/random.tcc (gamma_distribution::operator()): Fix magic number used in loop condition. From-SVN: r247099
Jonathan Wakely committed -
2017-04-24 Jan Hubicka <hubicka@ucw.cz> PR middle-end/79931 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE. 2017-04-24 Martin Liska <mliska@suse.cz> PR middle-end/79931 * g++.dg/ipa/pr79931.C: New test. From-SVN: r247097
Martin Liska committed -
2017-04-24 Richard Biener <rguenther@suse.de> PR tree-optimization/80494 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail out for complex types. * gfortran.dg/pr80494.f90: New testcase. From-SVN: r247095
Richard Biener committed -
PR libstdc++/80504 * include/bits/refwrap.h (ref, cref): Qualify calls. * testsuite/20_util/reference_wrapper/80504.cc: New test. From-SVN: r247094
Jonathan Wakely committed -
PR libstdc++/80493 * include/experimental/optional (optional::swap): Fix exception specification. From-SVN: r247093
Jonathan Wakely committed -
2017-04-24 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype. * tree-ssa-sccvn.c (print_scc): Print SCC size. (extract_and_process_scc_for_name): Never fail but drop SCC to varying. (DFS): Adjust and never fail. (sccvn_dom_walker::fail): Remove. (sccvn_dom_walker::before_dom_children): Adjust. (run_scc_vn): Likewise and never fail. * tree-ssa-pre.c (pass_pre::execute): Adjust. (pass_fre::execute): Likewise. From-SVN: r247092
Richard Biener committed -
2017-04-24 Richard Biener <rguenther@suse.de> PR tree-optimization/79725 * tree-ssa-sink.c (statement_sink_location): Return whether failure reason was zero uses. Move that check later. (sink_code_in_bb): Deal with zero uses by removing the stmt if possible. * gcc.dg/tree-ssa/ssa-sink-15.c: New testcase. From-SVN: r247091
Richard Biener committed -
re PR c++/2972 (-Wuninitialized could warn about uninitialized member variable usage in constructors) 2017-04-24 Richard Biener <rguenther@suse.de> PR c++/2972 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some pointer-based references. * g++.dg/warn/Wuninitialized-10.C: New testcase. From-SVN: r247090
Richard Biener committed -
re PR bootstrap/79814 (pass-instances.def:36:14: error: ‘*<unknown>.gcc::pass_manager::pass_warn_unused_result_1’ is used uninitialized in this function) 2017-04-24 Richard Biener <rguenther@suse.de> PR bootstrap/79814 * pass_manager.h (pass_manager::operator new): Remove. (pass_manager::operator delete): Likewise. * passes.c (pass_manager::operator new): Remove. (pass_manager::operator delete): Likewise. (pass_manager::pass_manager): Zero individual pass members. From-SVN: r247089
Richard Biener committed -
From-SVN: r247088
GCC Administrator committed
-
- 23 Apr, 2017 4 commits
-
-
2017-04-23 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/80484 * io.c (format_lex): Check for '/' and set token to FMT_SLASH. (check_format): Move FMT_DT checking code to data_desc section. * module.c (gfc_match_use): Include the case of INTERFACE_DTIO. PR fortran/80484 * gfortran.dg/dtio_29.f03: New test. From-SVN: r247084
Jerry DeLisle committed -
2017-04-22 Janus Weil <janus@gcc.gnu.org> PR fortran/80121 * trans-types.c (gfc_conv_procedure_call): Deallocate the components of allocatable intent(out) arguments. 2017-04-22 Janus Weil <janus@gcc.gnu.org> PR fortran/80121 * gfortran.dg/intent_out_9.f90: New test case. From-SVN: r247083
Janus Weil committed -
PR target/70799 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p) <case ASHIFT, case LSHIFTRT>: Also consider variable shifts. Check "XEXP (src, 1)" operand here. <case PLUS, case MINUS, case IOR, case XOR, case AND>: Check "XEXP (src, 1)" operand here. (dimode_scalar_chain::make_vector_copies): Detect count register of a shift instruction. Zero extend count register from QImode to DImode to satisfy vector shift pattern count operand predicate. Substitute vector shift count operand with a DImode copy. (dimode_scalar_chain::convert_reg): Ditto, zero-extend from vector register. testsuite/ChangeLog: PR target/70799 * gcc.target/i186/pr70799-4.c: New test. From-SVN: r247082
Uros Bizjak committed -
From-SVN: r247081
GCC Administrator committed
-
- 22 Apr, 2017 1 commit
-
-
From-SVN: r247075
GCC Administrator committed
-
- 21 Apr, 2017 5 commits
-
-
re PR fortran/80392 ([OOP] ICE with allocatable polymorphic function result in a procedure pointer component) 2017-04-21 Janus Weil <janus@gcc.gnu.org> PR fortran/80392 * trans-types.c (gfc_get_derived_type): Prevent an infinite loop when building a derived type that includes a procedure pointer component with a polymorphic result. 2017-04-21 Janus Weil <janus@gcc.gnu.org> PR fortran/80392 * gfortran.dg/proc_ptr_comp_49.f90: New test case. From-SVN: r247069
Janus Weil committed -
* constexpr.c (verify_ctor_sanity): Handle flexible array members. From-SVN: r247067
Jason Merrill committed -
* config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>. Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern. (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern. (UNSPEC_NOREX_MEM): Remove definition. From-SVN: r247066
Uros Bizjak committed -
* gcc.target/i386/pr79804.c: Add additional dg-error directive. From-SVN: r247065
Uros Bizjak committed -
PR libstdc++/80316 * include/std/future (_State_baseV2::_Setter::operator()): Remove _S_check calls that are done after the pointer to the shared state is already dereferenced. (_State_baseV2::_Setter<_Res, void>): Define specialization for void as partial specialization so it can be defined within the definition of _State_baseV2. (_State_baseV2::__setter): Call _S_check. (_State_baseV2::__setter(promise<void>*)): Add overload for use by promise<void>::set_value and promise<void>::set_value_at_thread_exit. (promise<T>, promise<T&>, promise<void>): Make _State a friend. (_State_baseV2::_Setter<void, void>): Remove explicit specialization. (promise<void>::set_value, promise<void>::set_value_at_thread_exit): Use new __setter overload. * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test. * testsuite/30_threads/promise/members/set_exception.cc: Test promise<T&> and promise<void> specializations. * testsuite/30_threads/promise/members/set_exception2.cc: Likewise. Test for no_state error condition. * testsuite/30_threads/promise/members/set_value2.cc: Likewise. From-SVN: r247064
Jonathan Wakely committed
-