aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2017-09-29re PR target/82339 (Inefficient movabs instruction)Jakub Jelinek2-0/+28
PR target/82339 * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole for movabsq $(i32 << shift), r64. From-SVN: r253279
2017-09-29* Make-lang.in (check-c++-all): Test also c++2a.Jakub Jelinek2-1/+5
From-SVN: r253278
2017-09-29* g++.dg/eh/uncaught3.C: Add -Wno-deprecated for c++17.Jakub Jelinek2-0/+5
From-SVN: r253277
2017-09-29Daily bump.GCC Administrator1-1/+1
From-SVN: r253274
2017-09-28re PR c++/79488 (ICE from lambda that has invalid return type)Paolo Carlini2-0/+30
2017-09-28 Paolo Carlini <paolo.carlini@oracle.com> PR c++/79488 * g++.dg/cpp0x/lambda/lambda-ice22.C: New. From-SVN: r253270
2017-09-28PR c++/56973, DR 696 - capture constant variables only as needed.Jason Merrill13-31/+196
* expr.c (mark_use): Split out from mark_rvalue_use and mark_lvalue_use. Handle lambda capture of constant variables. (mark_lvalue_use_nonread): New. * semantics.c (process_outer_var_ref): Don't capture a constant variable until forced. * pt.c (processing_nonlambda_template): New. * call.c (build_this): Check it. * decl2.c (grok_array_decl): Call mark_rvalue_use and mark_lvalue_use_nonread. * init.c (constant_value_1): Don't call mark_rvalue_use. * typeck.c (build_static_cast): Handle lambda capture. From-SVN: r253266
2017-09-28Use local_specializations to find capture proxies.Jason Merrill7-26/+76
* cp-tree.h (DECL_CAPTURED_VARIABLE): New. * lambda.c (build_capture_proxy): Set it. (add_capture): Pass initializer to build_capture_proxy. (start_lambda_function): Likewise. (insert_capture_proxy): Use register_local_specialization. (is_lambda_ignored_entity): Always ignore proxies. * name-lookup.c (qualify_lookup): Don't check is_lambda_ignored_entity if LOOKUP_HIDDEN is set. * semantics.c (process_outer_var_ref): Use retrieve_local_specialization. * parser.c (cp_parser_lambda_body): Push local_specializations. * pt.c (tsubst_expr): Pass LOOKUP_HIDDEN when looking for a proxy. (tsubst_lambda_expr): Push local_specializations sooner. (tsubst_copy_and_build): Don't register_local_specialization. From-SVN: r253265
2017-09-28Small lambda fixes.Jason Merrill5-4/+16
* call.c (build_special_member_call): Use the return value of mark_lvalue_use. * decl.c (compute_array_index_type): Likewise. * parser.c (cp_parser_oacc_wait_list): Likewise. * lambda.c (is_normal_capture_proxy): Handle *this capture. (add_capture): Clarify internal_error message. From-SVN: r253264
2017-09-28Use -Wno-deprecated for std::uncaught_exception tests.Jason Merrill4-3/+5
* g++.dg/eh/uncaught1.C: Pass -Wno-deprecated. * g++.dg/eh/uncaught2.C: Pass -Wno-deprecated. * g++.dg/eh/uncaught4.C: Pass -Wno-deprecated. * g++.old-deja/g++.mike/eh48.C: Pass -Wno-deprecated. From-SVN: r253262
2017-09-28re PR target/82342 (i386/pr82260-2.c fail)Jakub Jelinek3-2/+8
PR target/82342 * gcc.target/i386/pr82260-1.c: Add -mno-bmi2 to dg-options. * gcc.target/i386/pr82260-2.c: Likewise. From-SVN: r253261
2017-09-28i386.c (ix86_print_operand_address_as): Do not check index when encoding ↵Uros Bizjak2-5/+9
%esp as %rsp to avoid 0x67 prefix. * config/i386/i386.c (ix86_print_operand_address_as): Do not check index when encoding %esp as %rsp to avoid 0x67 prefix. From-SVN: r253260
2017-09-28i386.md (*movsf_internal, [...]): Return 256-bit AVX modes for ↵Sergey Shalnov4-3/+29
TARGET_PREFER_AVX256. gcc/ * config/i386/i386.md (*movsf_internal, *movdf_internal): Return 256-bit AVX modes for TARGET_PREFER_AVX256. gcc/testsuite/ * gcc.target/i386/avx512f-constant-float-return.c: New test. From-SVN: r253259
2017-09-28[ARM] Some tests require arm_neon_hwChristophe Lyon11-4/+27
2017-09-28 Christophe Lyon <christophe.lyon@linaro.org> * gcc.target/arm/aapcs/align4.c: Require arm_neon_hw effective target. * gcc.target/arm/aapcs/align_rec4.c: Likewise. * gcc.target/arm/aapcs/neon-vect1.c: Likewise. * gcc.target/arm/aapcs/neon-vect2.c: Likewise. * gcc.target/arm/aapcs/neon-vect3.c: Likewise. * gcc.target/arm/aapcs/neon-vect4.c: Likewise. * gcc.target/arm/aapcs/neon-vect5.c: Likewise. * gcc.target/arm/aapcs/neon-vect6.c: Likewise. * gcc.target/arm/aapcs/neon-vect7.c: Likewise. * gcc.target/arm/aapcs/neon-vect8.c: Likewise. From-SVN: r253258
2017-09-28jit: document function pointersDavid Malcolm6-483/+677
gcc/jit/ChangeLog: * docs/topics/expressions.rst (Function calls): Add link to gcc_jit_context_new_function_ptr_type. (Function pointers): Convert to cross-references to function-pointers.rst, moving material there. * docs/topics/function-pointers.rst: New page. * docs/topics/index.rst: Add function-pointers.rst. * docs/topics/types.rst (Function pointer types): New section. * docs/_build/texinfo/libgccjit.texi: Regenerate. From-SVN: r253257
2017-09-28[ARM] Remove ARMv8-M code for D17-D31Thomas Preud'homme2-24/+48
Function cmse_nonsecure_entry_clear_before_return has code to deal with high VFP register (D16-D31) while ARMv8-M Baseline and Mainline both do not support more than 16 double VFP registers (D0-D15). This makes this security-sensitive code harder to read for not much benefit since libcall for cmse_nonsecure_call functions do not deal with those high VFP registers anyway. This commit gets rid of this code for simplicity and fixes 2 issues in the same function: - stop the first loop when reaching maxregno to avoid dealing with VFP registers if targetting Thumb-1 or using -mfloat-abi=soft - include maxregno in that loop 2017-09-28 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security Extensions with more than 16 double VFP registers. (cmse_nonsecure_entry_clear_before_return): Remove second entry of to_clear_mask and all code related to it. Replace the remaining entry by a sbitmap and adapt code accordingly. From-SVN: r253256
2017-09-28jit: handle equality of function pointer typesDavid Malcolm6-8/+193
gcc/jit/ChangeLog: * jit-recording.c (gcc::jit::recording::function_type::is_same_type_as): New function. * jit-recording.h: In namespace gcc::jit::recording:: (type::accepts_writes_from): Use is_same_type_as rather than pointer equality. (type::is_same_type_as): New virtual function. (function_type::is_same_type_as): New override. gcc/testsuite/ChangeLog: * jit.dg/test-error-mismatching-types-in-assignment-fn-ptr.c: New test case. * jit.dg/test-returning-function-ptr.c (create_code): Update to create a function pointer type independently of the call to gcc_jit_function_get_address, and assign the pointer to a local before returning it, to exercise the function pointer type comparison code. From-SVN: r253255
2017-09-28[BRIGFE] Changed pure attributes to const for the brig-builtinsHenry Linjamäki4-89/+239
that are actually const. Also: * Fixed brig-lang.c such that the builtin attributes actually have effect... * Made -O3 the default optimization level for BRIG. From-SVN: r253254
2017-09-28Enable ifunc attribute by default for SPARC GNU/Linux.Joseph Myers2-1/+6
Similar to other architectures with IFUNC binutils/glibc support, this patch enables the ifunc attribute for SPARC GNU/Linux. This is needed for building glibc with the current checks on IFUNC resolver types (and use of the attribute in glibc rather than manually created IFUNCs is beneficial anyway because it results in better debug info). Tested compilation of glibc with build-many-glibcs.py. I have not run the GCC tests for SPARC. * config.gcc (default_gnu_indirect_function): Default to yes for sparc*-*-linux* with glibc. From-SVN: r253253
2017-09-28Avoid assembler warnings from AArch64 constructor/destructor priorities.Joseph Myers2-2/+9
Many GCC tests fail for AArch64 with current binutils because of assembler warnings of the form "Warning: ignoring incorrect section type for .init_array.00100". The same issue was fixed for ARM in r247015 by using SECTION_NOTYPE when creating those sections; this patch applies the same fix to AArch64. Tested with no regressions with cross to aarch64-linux-gnu. * config/aarch64/aarch64.c (aarch64_elf_asm_constructor) (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section when creating .init_array and .fini_array sections with priority specified. From-SVN: r253252
2017-09-28Commit forgotten testecase for pr71727.Christophe Lyon1-0/+16
From-SVN: r253251
2017-09-28Daily bump.GCC Administrator1-1/+1
From-SVN: r253248
2017-09-27jit: implement gcc_jit_function_get_addressDavid Malcolm17-386/+836
gcc/jit/ChangeLog: * docs/cp/topics/expressions.rst (Function pointers): New section. * docs/topics/compatibility.rst (LIBGCCJIT_ABI_9): New tag. * docs/topics/expressions.rst (Function pointers): New section. * docs/_build/texinfo/libgccjit.texi: Regenerate. * jit-common.h (class gcc::jit::recording::function_pointer): New forward decl. * jit-playback.c (gcc::jit::playback::function::get_address): New method. * jit-playback.h (gcc::jit::playback::function::get_address): New method decl. * jit-recording.c: Within namespace gcc::jit::recording... (function::function): Initialize new field "m_fn_ptr_type". (function::get_address): New method. (function_pointer::replay_into): New method. (function_pointer::visit_children): New method. (function_pointer::make_debug_string): New method. (function_pointer::write_reproducer): New method. * jit-recording.h: Within namespace gcc::jit::recording... (function::get_address): New method. (function): Add field "m_fn_ptr_type". (class function_pointer): New subclass of rvalue. * libgccjit++.h (gccjit::function::get_address): New method. * libgccjit.c (gcc_jit_function_get_address): New function. * libgccjit.h (LIBGCCJIT_HAVE_gcc_jit_function_get_address): New macro. (gcc_jit_function_get_address): New API entrypoint. * libgccjit.map (LIBGCCJIT_ABI_9): New tag. gcc/testsuite/ChangeLog: * jit.dg/all-non-failing-tests.h: Add test-returning-function-ptr.c. * jit.dg/test-returning-function-ptr.c: New test case. From-SVN: r253244
2017-09-28[AArch64] PR71727 fix -mstrict-alignChristophe Lyon3-12/+14
2017-09-27 Christophe Lyon <christophe.lyon@linaro.org> PR target/71727 gcc/ * config/aarch64/aarch64.c (aarch64_builtin_support_vector_misalignment): Always return false when misalignment is unknown. gcc/testsuite/ * gcc.target/aarch64/pr71727-2.c: New test From-SVN: r253242
2017-09-27rs6000-p8swap.c (const_load_sequence_p): Revise this function to return ↵Kelvin Nilsen21-3/+794
false if the definition used by the swap... gcc/ChangeLog: 2017-09-27 Kelvin Nilsen <kelvin@gcc.gnu.org> * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise this function to return false if the definition used by the swap instruction is artificial, or if the memory address from which the constant value is loaded is not represented by a base address held in a register or if the base address register is a frame or stack pointer. Additionally, return false if the base address of the loaded constant is a SYMBOL_REF but is not considered to be a constant. (replace_swapped_load_constant): New function. (rs6000_analyze_swaps): Add a new pass to replace a swap of a loaded constant vector with a load of a swapped constant vector. gcc/testsuite/ChangeLog: 2017-09-27 Kelvin Nilsen <kelvin@gcc.gnu.org> * gcc.target/powerpc/swaps-p8-28.c: New test. * gcc.target/powerpc/swaps-p8-29.c: New test. * gcc.target/powerpc/swaps-p8-30.c: New test. * gcc.target/powerpc/swaps-p8-31.c: New test. * gcc.target/powerpc/swaps-p8-32.c: New test. * gcc.target/powerpc/swaps-p8-33.c: New test. * gcc.target/powerpc/swaps-p8-34.c: New test. * gcc.target/powerpc/swaps-p8-35.c: New test. * gcc.target/powerpc/swaps-p8-36.c: New test. * gcc.target/powerpc/swaps-p8-37.c: New test. * gcc.target/powerpc/swaps-p8-38.c: New test. * gcc.target/powerpc/swaps-p8-39.c: New test. * gcc.target/powerpc/swaps-p8-40.c: New test. * gcc.target/powerpc/swaps-p8-41.c: New test. * gcc.target/powerpc/swaps-p8-42.c: New test. * gcc.target/powerpc/swaps-p8-43.c: New test. * gcc.target/powerpc/swaps-p8-44.c: New test. * gcc.target/powerpc/swaps-p8-45.c: New test. From-SVN: r253240
2017-09-27rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.Carl Love5-0/+170
gcc/ChangeLog: 2017-09-27 Carl Love <cel@us.ibm.com> * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro. (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins. * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the fctiw instruction. gcc/testsuite/ChangeLog: 2017-09-27 Carl Love <cel@us.ibm.com> * gcc.target/powerpc/builtin-fctid-fctiw-runnable.c: New test file for the __builtin_fctid and __builtin_fctiw. From-SVN: r253238
2017-09-27compiler: fix crash on struct that embeds pointer typeIan Lance Taylor2-2/+10
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
2017-09-27haifa-sched: fix autopref_rank_for_schedule qsort comparatorAlexander Monakov2-9/+14
* haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns first, always call autopref_rank_data otherwise. From-SVN: r253235
2017-09-27[BRIGFE] Improved support for function and module scope groupPekka Jääskeläinen18-137/+397
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
2017-09-27graphite-scop-detection.c (find_scop_parameters): Move loop bound handling ...Richard Biener4-41/+27
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
2017-09-27net: check Getsockname error returnIan Lance Taylor1-1/+1
Reviewed-on: https://go-review.googlesource.com/64550 From-SVN: r253231
2017-09-27re PR c++/82159 (ICE: in assign_temp, at function.c:961)Jakub Jelinek4-1/+35
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
2017-09-27graphite.h (scop::max_alias_set): New member.Richard Biener4-33/+35
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
2017-09-27graphite-optimize-isl.c (get_schedule_for_node_st): Allow --param ↵Richard Biener2-2/+9
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
2017-09-27invoke.texi (graphite-max-bbs-per-function): Remove.Richard Biener8-63/+121
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
2017-09-27Placate gcc.misc-tests/help.exp regarding -Wdo-subscriptThomas Schwinge2-1/+5
gcc/fortran/ * lang.opt <Wdo-subscript>: End help text with a period. From-SVN: r253225
2017-09-27pr65947-9.c: Requires char to be signed by default.Andreas Krebbel2-1/+5
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
2017-09-27vsx.md (peephole for optimizing move SF to GPR): Adjust code to eliminate ↵Michael Meissner6-31/+70
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
2017-09-27Daily bump.GCC Administrator1-1/+1
From-SVN: r253222
2017-09-27match.pd ((X / Y) == 0 -> X < Y): New pattern.Prathamesh Kulkarni4-0/+39
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
2017-09-26rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R, [...]): Add support for builtins ↵Carl Love10-4/+444
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
2017-09-26re PR target/39570 (cabs and cabsf are named differently on NetBSD 5)Krister Walfridsson6-1/+115
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
2017-09-26Commit ChangeLog entries from previous commit.Thomas Koenig2-0/+10
From-SVN: r253215
2017-09-26re PR fortran/82143 (add a -fdefault-real-16 flag)Janus Weil6-1/+38
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
2017-09-26vsx.md (vsx_xscvdpspn): Eliminate useless alternative constraint.Michael Meissner2-7/+12
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
2017-09-26vsx.md (vsx_xscvspdp_scalar2): Move insn so that it is adjacent to the other ↵Michael Meissner2-9/+11
XSCVSPDP insns. 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
2017-09-26frontend-passes.c (do_subscript): Don't do anything if inside an associate list.Thomas Koenig2-2/+6
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
2017-09-26rs6000.md (movsi_from_df): Optimize converting a DFmode to a SFmode...Michael Meissner2-1/+23
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
2017-09-26rs6000.md (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift ↵Michael Meissner2-68/+46
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
2017-09-26rs6000.md (extendsi<mode>2): Add a splitter to do sign extension from a ↵Michael Meissner2-4/+27
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
2017-09-26Make SRA qsort comparator transitiveMartin Jambor2-10/+40
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