- 27 Sep, 2017 15 commits
-
-
The type verification code that enforces rules about the types of embedded struct fields was not properly handling the case where the pointed-to type is a pointer type, e.g. type s *struct{ C int } type t struct{ *s } which is illegal according to the spec. Tweak the verifier to catch this case, and add a guard in the lowering pass to make sure that we don't crash on invalid accesses to field "C" in type "t" above. Fixes golang/go#22050 Reviewed-on: https://go-review.googlesource.com/66530 From-SVN: r253236
Ian Lance Taylor committed -
* haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns first, always call autopref_rank_data otherwise. From-SVN: r253235
Alexander Monakov committed -
segment variables. PRM specs defines function and module scope group segment variables as an experimental feature. However, PRM test suite uses and hcc relies on them. In addition, hcc assumes certain group variable layout in its dynamic group segment allocation code. We cannot have global group memory offsets if we want to both have kernel-specific group segment size and multiple kernels calling the same functions that use function scope group memory variables. Now group segment is handled by separate book keeping of module scope and function (kernel) offsets. Each function has a "frame" in the group segment offset to which is given as an argument. From-SVN: r253233
Pekka Jääskeläinen committed -
2017-09-27 Richard Biener <rguenther@suse.de> * graphite-scop-detection.c (find_scop_parameters): Move loop bound handling ... (gather_bbs::before_dom_children): ... here, avoiding the need to build scop_info->loop_nest. (record_loop_in_sese): Remove. * sese.h (sese_info_t::loop_nest): Remove. * sese.c (new_sese_info): Do not allocate loop_nest. (free_sese_info): Do not free loop_nest. From-SVN: r253232
Richard Biener committed -
Reviewed-on: https://go-review.googlesource.com/64550 From-SVN: r253231
Ian Lance Taylor committed -
PR c++/82159 * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized lhs from calls if the lhs has addressable type. * g++.dg/opt/pr82159.C: New test. From-SVN: r253230
Jakub Jelinek committed -
2017-09-27 Richard Biener <rguenther@suse.de> * graphite.h (scop::max_alias_set): New member. * graphite-scop-detection.c: Remove references to non-existing --param in comments. (build_alias_sets): Record the maximum alias set used for drs. (build_scops): Support zero as unlimited for --param graphite-max-arrays-per-scop. * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove and inline into ... (build_poly_sr_1): ... here. Compute alias set based on the maximum alias set used for drs rather than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP From-SVN: r253229
Richard Biener committed -
2017-09-27 Tom de Vries <tom@codesourcery.com> * testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c (main): Remove acc_device_nvidia references. From-SVN: r253228
Tom de Vries committed -
graphite-optimize-isl.c (get_schedule_for_node_st): Allow --param loop-block-tile-size=0 to disable tiling. 2017-09-27 Richard Biener <rguenther@suse.de> * graphite-optimize-isl.c (get_schedule_for_node_st): Allow --param loop-block-tile-size=0 to disable tiling. From-SVN: r253227
Richard Biener committed -
2017-09-27 Richard Biener <rguenther@suse.de> * doc/invoke.texi (graphite-max-bbs-per-function): Remove. (graphite-max-nb-scop-params): Document special value zero. * domwalk.h (dom_walker::STOP): New symbolical constant. (dom_walker::dom_walker): Add optional parameter for bb to RPO mapping. (dom_walker::~dom_walker): Declare. (dom_walker::before_dom_children): Document STOP return value. (dom_walker::m_user_bb_to_rpo): New member. (dom_walker::m_bb_to_rpo): Likewise. * domwalk.c (dom_walker::dom_walker): Compute bb to RPO mapping here if not provided by the user. (dom_walker::~dom_walker): Free bb to RPO mapping if not provided by the user. (dom_walker::STOP): Define. (dom_walker::walk): Do not compute bb to RPO mapping here. Support STOP return value from before_dom_children to stop walking. * graphite-optimize-isl.c (optimize_isl): If the schedule is the same still generate code if -fgraphite-identity or -floop-parallelize-all are given. * graphite-scop-detection.c: Include cfganal.h. (gather_bbs::gather_bbs): Get and pass through bb to RPO mapping. (gather_bbs::before_dom_children): Return STOP for BBs not in the region. (build_scops): Compute bb to RPO mapping and pass it to the domwalk. Treat --param graphite-max-nb-scop-params=0 as not limiting the number of params. * graphite.c (graphite_initialize): Remove limit on the number of basic-blocks in a function. * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove. (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented default value of 10. From-SVN: r253226
Richard Biener committed -
gcc/fortran/ * lang.opt <Wdo-subscript>: End help text with a period. From-SVN: r253225
Thomas Schwinge committed -
Fails on S/390 with char defaulting to unsigned char. gcc/testsuite/ChangeLog: 2017-09-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * gcc.dg/vect/pr65947-9.c: Use signed char explicitly. From-SVN: r253224
Andreas Krebbel committed -
vsx.md (peephole for optimizing move SF to GPR): Adjust code to eliminate needing to do the shift right 32-bits operation after... [gcc] 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/vsx.md (peephole for optimizing move SF to GPR): Adjust code to eliminate needing to do the shift right 32-bits operation after XSCVDPSPN. [gcc/testsuite] 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/pr71977-1.c: Update test to know that we don't generate a 32-bit shift after doing XSCVDPSPN. * gcc.target/powerpc/direct-move-float1.c: Likewise. * gcc.target/powerpc/direct-move-float3.c: New test. From-SVN: r253223
Michael Meissner committed -
From-SVN: r253222
GCC Administrator committed -
2017-09-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> * match.pd ((X / Y) == 0 -> X < Y): New pattern. ((X / Y) != 0 -> X >= Y): Likewise. testsuite/ * gcc.dg/tree-ssa/cmpdiv.c: New test. From-SVN: r253218
Prathamesh Kulkarni committed
-
- 26 Sep, 2017 25 commits
-
-
rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R, [...]): Add support for builtins vector unsigned char vec_xl_len_r (unsigned char *... gcc/ChangeLog: 2017-09-26 Carl Love <cel@us.ibm.com> * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R, P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins vector unsigned char vec_xl_len_r (unsigned char *, size_t); void vec_xst_len_r (vector unsigned char, unsigned char *, size_t); * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines. * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add definitions and overloading. * config/rs6000/rs6000.c (altivec_expand_builtin): Add case statement for P9V_BUILTIN_XST_LEN_R. (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL. * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add define_expand and define_insn for the instructions and builtins. * doc/extend.texi: Update the built-in documentation file for the new built-in functions. * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add define_insn for the instructions gcc/testsuite/ChangeLog: 2017-09-26 Carl Love <cel@us.ibm.com> * gcc.target/powerpc/builtins-5-p9-runnable.c: Add new runable test file for the new built-ins and the existing built-ins. From-SVN: r253217
Carl Love committed -
2017-09-26 Krister Walfridsson <krister.walfridsson@gmail.com> PR target/39570 * gcc/config/netbsd-protos.h: New file. * gcc/config/netbsd.c: New file. * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define. * gcc/config/t-netbsd: New file. * gcc/config.gcc (tm_p_file): Add netbsd-protos.h. (tmake_file) Add t-netbsd. (extra_objs) Add netbsd.o. From-SVN: r253216
Krister Walfridsson committed -
From-SVN: r253215
Thomas Koenig committed -
2017-09-26 Janus Weil <janus@gcc.gnu.org> PR fortran/82143 PR fortran/82324 * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16. 2017-09-26 Janus Weil <janus@gcc.gnu.org> PR fortran/82143 PR fortran/82324 * lib/target-supports.exp (check_effective_target_fortran_real_10): New. * gfortran.dg/promotion_3.f90: Only run if real(16) is available. * gfortran.dg/promotion_4.f90: Only run if real(10) is available. Don't assume that DOUBLE PRECISION has kind=16. From-SVN: r253214
Janus Weil committed -
2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/vsx.md (vsx_xscvdpspn): Eliminate useless alternative constraint. (vsx_xscvspdpn): Likewise. (vsx_xscvspdpn_scalar): Likewise. From-SVN: r253213
Michael Meissner committed -
2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that it is adjacent to the other XSCVSPDP insns. From-SVN: r253212
Michael Meissner committed -
2017-09-26 Thomas Koenig <tkoenig@gcc.gnu.org> * frontend-passes.c (do_subscript): Don't do anything if inside an associate list. 2017-09-26 Thomas Koenig <tkoenig@gcc.gnu.org> * gfortran.dg/gomp/associate1.f90: Remove unnecessary warning from associate construct and do loop. From-SVN: r253211
Thomas Koenig committed -
2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/rs6000.md (movsi_from_df): Optimize converting a DFmode to a SFmode, and then needing to move the SFmode to a GPR to use the XSCVDPSP instruction instead of FRSP and XSCVDPSPN. From-SVN: r253210
Michael Meissner committed -
rs6000.md (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift right or vector extract after... 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/rs6000.md (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift right or vector extract after doing XSCVDPSPN. Use zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to the GPRs. (movdi_from_sf_zero_ext): Likewise. (reload_gpr_from_vsxsf): Likewise. (p8_mfvsrd_4_disf): Delete, no longer used. From-SVN: r253209
Michael Meissner committed -
rs6000.md (extendsi<mode>2): Add a splitter to do sign extension from a vector register to a GPR by doing a... 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do sign extension from a vector register to a GPR by doing a 32-bit direct move and then an EXTSW. (extendsi<mode>2 splitter): Likewise. From-SVN: r253208
Michael Meissner committed -
2017-09-26 Martin Jambor <mjambor@suse.cz> * tree-sra.c (compare_access_positions): Put integral types first, stabilize sorting of integral types, remove conditions putting non-full-precision integers last. (sort_and_splice_var_accesses): Disable scalarization if a non-integert would be represented by a non-full-precision integer. From-SVN: r253207
Martin Jambor committed -
2017-09-26 Thomas Koenig <tkoenig@gcc.gnu.org> * gfortran.dg/gomp/associate1.f90: Really commit change from 2017-09-25. * gfortran.dg/predcom-1.f: Likewise. * gfortran.dg/unconstrained_commons.f: Likewise. From-SVN: r253206
Thomas Koenig committed -
Building glibc for many different configurations and running the compilation parts of the testsuite runs into failures of the elf/check-execstack test for hppa and microblaze. Those configurations default to executable stacks in the Linux kernel because of VM_DATA_DEFAULT_FLAGS definitions including VM_EXEC (VM_DATA_DEFAULT_FLAGS being the default definition of VM_STACK_DEFAULT_FLAGS). This fails because those configurations are not generating .note.GNU-stack sections to indicate that programs do not need an executable stack. This patch fixes GCC to generate those sections on those architectures (when configured for a target using the Linux kernel), as it does on other architectures, together with adding that section to libgcc .S sources, with the same code as used on other architectures (or a variant using "#ifdef __linux__" instead of the usual "#if defined(__ELF__) && defined(__linux__)" for microblaze, as that configuration doesn't use elfos.h and so doesn't define __ELF__). This suffices to eliminate that glibc test failure. (For hppa, the compilation parts of the glibc testsuite still fail because of the separate elf/check-textrel failure.) gcc: * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise. * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise. * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise. * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end. Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL] conditionals inside the function instead of around it. Call file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK. (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end. libgcc: * config/microblaze/crti.S, config/microblaze/crtn.S, config/microblaze/divsi3.S, config/microblaze/moddi3.S, config/microblaze/modsi3.S, config/microblaze/muldi3_hard.S, config/microblaze/mulsi3.S, config/microblaze/stack_overflow_exit.S, config/microblaze/udivsi3.S, config/microblaze/umodsi3.S, config/pa/milli64.S: Add .note.GNU-stack section. From-SVN: r253204
Joseph Myers committed -
2017-09-26 Richard Biener <rguenther@suse.de> * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite, fold in ... (scop_detection::build_scop_breadth): ... this. Removed. (scop_detection::loop_is_valid_in_scop): Fold into single caller. (scop_detection::harmful_stmt_in_bb): Likewise. (scop_detection::graphite_can_represent_stmt): Likewise. (scop_detection::loop_body_is_valid_scop): Likewise. Remove recursion. (scop_detection::can_represent_loop): Remove recursion, fold in ... (scop_detection::can_represent_loop_1): ... this. Removed. (scop_detection::harmful_loop_in_region): Simplify after inlining the above and remove more quadraticness. (build_scops): Adjust. * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless quadraticness. From-SVN: r253203
Richard Biener committed -
re PR target/82267 (x32: unnecessary address-size prefixes. Why isn't -maddress-mode=long the default?) PR target/82267 * config/i386/i386.c (ix86_print_operand_address_as): Only test REGNO (base) == SP_REG if base is a REG. From-SVN: r253202
Jakub Jelinek committed -
re PR middle-end/35691 (Missed (a == 0) && (b == 0) into (a|(typeof(a)(b)) == 0 when the types don't match) PR middle-end/35691 * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time if it is different SSA_NAME. (optimize_range_tests_cmp_bitwise): New function. (optimize_range_tests): Call it. * gcc.dg/pr35691-5.c: New test. * gcc.dg/pr35691-6.c: New test. From-SVN: r253201
Jakub Jelinek committed -
From-SVN: r253200
Andreas Krebbel committed -
2017-09-26 Richard Biener <rguenther@suse.de> PR tree-optimization/82321 * graphite.c (canonicalize_loop_closed_ssa): Properly check for the def being inside the loop. * gcc.dg/graphite/pr82321.c: New testcase. From-SVN: r253199
Richard Biener committed -
gcc/ChangeLog: 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/vx-builtins.md ("vmslg"): Add missing operand in assembler output. * config/s390/s390-builtins.def: Fix constraint on op4. From-SVN: r253198
Andreas Krebbel committed -
V2DF mode was still hard-coded here. gcc/ChangeLog: 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/s390.c (s390_expand_vec_compare): Use the new mode independent expanders. * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt") ("vec_ordered", "vec_unordered"): New expanders. From-SVN: r253197
Andreas Krebbel committed -
gcc/ChangeLog: 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode for SFmode. From-SVN: r253196
Andreas Krebbel committed -
gcc/ChangeLog: 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to vec_unpacks_lo_v16qi. ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi. From-SVN: r253195
Andreas Krebbel committed -
gcc/ChangeLog: 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/vector.md ("vec_unpacks_lo_v4sf") ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df") ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders. From-SVN: r253194
Andreas Krebbel committed -
gcc/ChangeLog: 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/predicates.md ("const_shift_by_byte_operand"): New predicate. * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128 and V16QI. ("*vec_slb<mode>"): New insn pattern. ("vec_shr_<mode>"): New expander. * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander and force the shift count operand to V16QImode. ("vec_srb<mode>"): Set shift count mode to V16QI. From-SVN: r253193
Andreas Krebbel committed -
Add support for widening vector multiply lo/hi patterns. These do not directly match on IBM Z instructions but can be emulated with even/odd + vector merge. gcc/ChangeLog: 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/vector.md ("vec_widen_umult_lo_<mode>") ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>") ("vec_widen_smult_hi_<mode>"): New expander definitions. From-SVN: r253192
Andreas Krebbel committed
-