- 02 Dec, 2016 7 commits
-
-
gcc/ChangeLog: 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/vector.md (vec_halfhalf): New mode iterator. ("vec_pack_trunc_<mode>", "vec_pack_ssat_<mode>") ("vec_pack_usat_<mode>", "vec_unpacks_hi_v16qi") ("vec_unpacks_low_v16qi", "vec_unpacku_hi_v16qi") ("vec_unpacku_low_v16qi", "vec_unpacks_hi_v8hi") ("vec_unpacks_lo_v8hi", "vec_unpacku_hi_v8hi") ("vec_unpacku_lo_v8hi", "vec_unpacks_hi_v4si") ("vec_unpacks_lo_v4si", "vec_unpacku_hi_v4si") ("vec_unpacku_lo_v4si"): New pattern definitions. * config/s390/vx-builtins.md: Move VI_HW_HSD mode iterator to vector.md. From-SVN: r243157
Andreas Krebbel committed -
gcc/testsuite/ChangeLog: 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * gcc.target/s390/zvector/vec-cmp-2.c: New test. From-SVN: r243156
Andreas Krebbel committed -
With this patch EQ and NE compares on CC mode reader patterns are folded. This allows using the result of the vec_all_* and vec_any_* builtins directly in a conditional jump instruction as in the attached testcase. gcc/ChangeLog: 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/s390-protos.h (s390_reverse_condition): New prototype. * config/s390/s390.c (s390_canonicalize_comparison): Fold compares of CC mode values. (s390_reverse_condition): New function. * config/s390/s390.h (REVERSE_CC_MODE, REVERSE_CONDITION): Define target macros. gcc/testsuite/ChangeLog: 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * gcc.target/s390/zvector/vec-cmp-2.c: New test. From-SVN: r243155
Andreas Krebbel committed -
This fixes a problem with the vector compares producing CC mode results. The instructions produce condition code modes which can be either interpreted to check an ALL elements or an ANY element result. As the modes where used before they could not be inverted by the middle-end by inverting the comparison code (e.g. eq to ne). The result usually was just wrong. In fact inverting a comparison code on an CCVALL mode would require to also change the mode to CCVANY but this cannot be done easily in the middle-end. With this patch the meaning of an ALL cc mode only refers to the not-inverted comparison code (e.g. eq, gt, ge). With that change inverting the comparison code matches a not operation on the condition code mask again. Bootstrapped and regression tested on s390 and s390x. Bye, -Andreas- gcc/testsuite/ChangeLog: 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * gcc.target/s390/vector/vec-scalar-cmp-1.c: Fix and harden the pattern checks. * gcc.target/s390/zvector/vec-cmp-1.c: New test. gcc/ChangeLog: 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/s390-modes.def (CCVEQANY, CCVH, CCVHANY, CCVHU) (CCVHUANY): Remove modes. (CCVIH, CCVIHU, CCVIALL, CCVIANY, CCVFALL, CCVFANY): Add modes and documentation. * config/s390/s390.c (s390_match_ccmode_set): Rename cc modes. (s390_expand_vec_compare_scalar): Pick one of the cc consumer modes. (s390_branch_condition_mask): Adjust to use the new cc consumer modes. The new modes allow for proper reversal in the middle-end. (s390_expand_vec_compare_cc): Determine the proper cc producer and consumer modes for a comparison. * config/s390/s390.md: Rename CCVH to CCVIH and CCVHU to CCVIHU throughout the file. * config/s390/vx-builtins.md: Likewise. From-SVN: r243154
Andreas Krebbel committed -
config/ * bootstrap-asan.mk: Replace LSAN_OPTIONS=detect_leaks=0 with ASAN_OPTIONS=detect_leaks=0:use_odr_indicator=1. gcc/ * asan.c (asan_global_struct): Refactor. (create_odr_indicator): New function. (asan_needs_odr_indicator_p): Likewise. (is_odr_indicator): Likewise. (asan_add_global): Introduce odr_indicator_ptr. Pass it into global's constructor. (asan_protect_global): Do not protect odr indicators. gcc/c-family/ * c-attribs.c (asan odr indicator): New attribute. (handle_asan_odr_indicator_attribute): New function. gcc/testsuite/ * c-c++-common/asan/no-redundant-odr-indicators-1.c: New test. From-SVN: r243153
Maxim Ostapenko committed -
(record_temporary_equivalences_from_stmts_at_dest): Avoid temporary propagation of operands if there are no operands. From-SVN: r243152
Jeff Law committed -
From-SVN: r243150
GCC Administrator committed
-
- 01 Dec, 2016 33 commits
-
-
PR tree-optimization/78586 * gimple-ssa-sprintf.c (format_integer): Don't handle NOP_EXPR, CONVERT_EXPR or COMPONENT_REF here. Formatting fix. For SSA_NAME_DEF_STMT with NOP_EXPR only change argtype if the rhs1's type is INTEGER_TYPE or POINTER_TYPE. From-SVN: r243145
Jakub Jelinek committed -
2016-12-01 Elizebeth Punnoose <elizebeth.punnoose@hpe.com> PR fortran/77505 * trans-array.c (trans_array_constructor): Treat negative character length as LEN = 0. 2016-12-01 Elizebeth Punnoose <elizebeth.punnoose@hpe.com> PR fortran/77505 * gfortran.dg/char_length_20.f90: New test. * gfortran.dg/char_length_21.f90: Ditto. From-SVN: r243143
Elizebeth Punnoose committed -
* config/acx.m4: Change "tail +16c" to "tail -c +17". * configure: Regenerated. From-SVN: r243142
Ma Jiang committed -
re PR target/78577 (Fix define_insn operand types for vexturhlx, vexturhrx, vextuwlx, and vextuwrx patterns) gcc/ChangeLog: 2016-12-01 Kelvin Nilsen <kelvin@gcc.gnu.org> PR target/78577 * config/rs6000/vsx.md (vextuhlx): Revise mode of operand 2. (vextuhrx): Likewise. (vextuwlx): Likewise. (vextuwrx): Likewise. From-SVN: r243141
Kelvin Nilsen committed -
From-SVN: r243139
Joseph Myers committed -
* call.c (add_function_candidate): Exclude inherited copy/move ctors. From-SVN: r243138
Jason Merrill committed -
From-SVN: r243137
Jason Merrill committed -
All of the jit testcases that generate debuginfo appear to have been failing since r240228 on their 2nd in-process iteration on this assertion in set_early_dwarf's ctor: gcc_assert (! early_dwarf_finished); Root cause is that the global is never reset at the end of compilation, which this patch fixes in the obvious way. gcc/ChangeLog: * dwarf2out.c (dwarf2out_c_finalize): Reset early_dwarf and early_dwarf_finished. From-SVN: r243136
David Malcolm committed -
* config/sparc/sparc.opt (mlra): New target option. * config/sparc/sparc.c (TARGET_LRA_P): Define to... (sparc_lra_p): ...this. New function. (D_MODES, DF_MODES): Add missing cast. * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not provide these insns when flag_pic. (sethi_di_medlow, losum_di_medlow, seth44, setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi, embmedany_losum, embmedany_brsum, embmedany_textuhi, embmedany_texthi, embmedany_textulo, embmedany_textlo): Likewise. (sethi_di_medlow_embmedany_pic): Provide it only when flag_pic. Co-Authored-By: David S. Miller <davem@davemloft.net> From-SVN: r243135
Eric Botcazou committed -
2016-12-01 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/78279 * dependency.c (identical_array_ref): Convert gcc_assert to conditional and gfc_internal_error. 2016-12-01 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/78279 * gfortran.dg/pr78279.f90: New test. From-SVN: r243131
Steven G. Kargl committed -
As of https://golang.org/cl/32917 we can put slice initializers in the .data section. The program can still change the values in those slices. That means that if the slice elements can contain pointers, we need to register the entire initializer as a GC root. This would be straightforward except that we only have a Bexpression for the slice initializer, not an Expression. So introduce a Backend_expression type that wraps a Bexpression as an Expression. The test case for this is https://golang.org/cl/33790. Reviewed-on: https://go-review.googlesource.com/33792 From-SVN: r243129
Ian Lance Taylor committed -
From-SVN: r243127
David Edelsohn committed -
re PR debug/66149 (ICE: tree check: expected field_decl, have template_decl in int_bit_position, at tree.h:5012 with -std=c++14 -gstabs) PR debug/66419 PR c++/78235 * dbxout.c (dbxout_type_fields): Skip TEMPLATE_DECLs. From-SVN: r243126
David Edelsohn committed -
2016-12-01 Richard Biener <rguenther@suse.de> Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> * vec.h (vec<T, A, vl_embed>::quick_grow_cleared): Guard call to memset if len-oldlen != 0. (vec<T, va_heap, vl_ptr>::safe_grow_cleared): Likewise. Co-Authored-By: Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> From-SVN: r243125
Richard Biener committed -
From-SVN: r243124
David Edelsohn committed -
* config/i386/i386.md (*andndi3_doubleword): Depend on TARGET_SSE2. From-SVN: r243121
Uros Bizjak committed -
Swapping non-swappable types and LWG 2749, swappable traits for variants. * include/bits/move.h (swap(_Tp&, _Tp&)): Constrain with __is_tuple_like. * include/bits/stl_pair.h (swap(pair<_T1, _T2>&, pair<_T1, _T2>&)): Add a deleted overload. * include/bits/unique_ptr.h (swap(unique_ptr<_Tp, _Dp>&, unique_ptr<_Tp, _Dp>&)): Likewise. * include/std/array (swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&)): Likewise. * include/std/optional (swap(optional<_Tp>&, optional<_Tp>&)): Likewise. * include/std/tuple (__is_tuple_like_impl, __is_tuple_like): Move to type_traits. (swap(tuple<_Elements...>&, tuple<_Elements...>&)): Add a deleted overload. * include/std/type_traits (__is_tuple_like_impl, __is_tuple_like): New. (swap(_Tp&, _Tp&)): Constrain with __is_tuple_like. * include/std/utility (__is_tuple_like_impl): Move to type_traits. * include/std/variant (swap(variant<_Types...>&, variant<_Types...>&)): Add a deleted overload. * testsuite/20_util/optional/swap/2.cc: Add tests for disabled swaps. * testsuite/20_util/pair/swap_cxx17.cc: New. * testsuite/20_util/tuple/swap_cxx17.cc: Likewise. * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc: Likewise. * testsuite/20_util/variant/compile.cc: Add tests for disabled swaps. * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc: New. * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust. * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc: Likewise. From-SVN: r243120
Ville Voutilainen committed -
* config/avr/avr.c: Fix coding rule glitches. From-SVN: r243118
Georg-Johann Lay committed -
gcc/testsuite/ * gcc.dg/pr78582.c (main): Call setjmp, not sigsetjmp. From-SVN: r243116
James Greenhalgh committed -
Fix PR tree-optimization/78598 - tree-ssa-loop-prefetch.c:835:16: runtime error: signed integer overflow Using bootstrap-ubsan gcc to build mplayer shows: tree-ssa-loop-prefetch.c:835:16: runtime error: signed integer overflow: 288230376151711743 * 64 cannot be represented in type 'long int' Here signed und unsigned integers are mixed in a division resulting in bogus values: (-83 + 64ULL -1) / 64ULL) == 288230376151711743 Fixed by casting the unsigned parameter to signed. PR tree-optimization/78598 * tree-ssa-loop-prefetch.c (ddown): Cast to signed to avoid overflows. From-SVN: r243113
Markus Trippelsdorf committed -
PR target/68945 Merge from upstream, version 2.0.4467.0. Fix typo in git URL. * aclocal.m4, configure, Makefile.in: Regenerate. From-SVN: r243112
Rainer Orth committed -
PR rtl-optimization/78596 * combine.c (simplify_comparison): Cast to unsigned to avoid left shifting of negative value. From-SVN: r243111
Markus Trippelsdorf committed -
From-SVN: r243110
David Edelsohn committed -
<toplevel> * configure.ac: Don't use pkg-config to check for bdw-gc. * configure: Regenerate. config/ * pkg.m4: Remove. libobjc/ * configure.ac: Don't use pkg-config to check for bdw-gc. * configure: Regenerate. gcc/ * doc/install.texi: Don't use pkg-config to check for bdw-gc. From-SVN: r243108
Matthias Klose committed -
tree-ssa-alias.c (indirect_refs_may_alias_p): Do not treat arrays with same type as objects that cannot overlap. 2016-12-01 Richard Biener <rguenther@suse.de> * tree-ssa-alias.c (indirect_refs_may_alias_p): Do not treat arrays with same type as objects that cannot overlap. * gcc.dg/torture/alias-2.c: New testcase. From-SVN: r243107
Richard Biener committed -
tree-ssa-alias.c (indirect_refs_may_alias_p): Do not treat arrays with same type as objects that cannot overlap. 2016-12-01 Richard Biener <rguenther@suse.de> * tree-ssa-alias.c (indirect_refs_may_alias_p): Do not treat arrays with same type as objects that cannot overlap. * gcc.dg/torture/alias-2.c: New testcase. From-SVN: r243106
Richard Biener committed -
gcc/testsuite/ * gcc.target/avr/tiny-memx.c: Only perform if target avr_tiny. * gcc.target/avr/tiny-caller-save.c: Dito. From-SVN: r243105
Georg-Johann Lay committed -
gcc/ * config/avr/avr.c (avr_print_operand): Use SYMBOL_REF_P if possible. (avr_handle_addr_attribute, avr_asm_output_aligned_decl_common) (avr_asm_asm_output_aligned_bss, avr_addr_space_convert): Dito. From-SVN: r243104
Georg-Johann Lay committed -
gcc/testsuite/ChangeLog: 2016-12-01 Andre Vehreschild <vehre@gcc.gnu.org> * gfortran.dg/coarray_lib_alloc_4.f90: Fix for 32-bits. From-SVN: r243101
Andre Vehreschild committed -
re PR debug/78587 (dwarf2out.c:1517:45: runtime error: negation of -9223372036854775808 cannot be represented in type 'long int [4]'; cast to an unsigned type to negate this value to itself) PR debug/78587 * dwarf2out.c (loc_descr_plus_const): For negative offset use uint_loc_descriptor instead of int_loc_descriptor and perform negation in unsigned HOST_WIDE_INT type. (scompare_loc_descriptor): Shift UINTVAL left instead of INTVAL. * gcc.dg/debug/pr78587.c: New test. From-SVN: r243100
Jakub Jelinek committed -
re PR target/78614 (ICE error: invalid rtl sharing found in the insn (verify_rtx_sharing) gcc/emit-rtl.c:2743) PR target/78614 * config/rs6000/rs6000.c (rs6000_frame_related): Call set_used_flags (pat) before any simplifications. Clear used flag on PARALLEL copy. Don't guard add_reg_note call. Call copy_rtx_if_shared on pat before storing it into REG_FRAME_RELATED_EXPR. From-SVN: r243099
Jakub Jelinek committed -
The convertible_to traits need to use a variadic catch-all for the false-cases. * include/std/istream (__is_convertible_to_basic_istream): Change the parameter of the false-case of __check to a variadic. * include/std/ostream (__is_convertible_to_basic_ostream): Likewise. From-SVN: r243098
Ville Voutilainen committed -
* gcc/config/rs6000/rs6000.c (insn_is_swappable_p): Properly look inside UNSPEC_VSX_XXSPLTW vec. From-SVN: r243097
Alan Modra committed
-