aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
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
2017-09-26associate1.f90: Really commit change from 2017-09-25.Thomas Koenig4-5/+12
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
2017-09-26Enable no-exec stacks for more targets using the Linux kernel.Joseph Myers5-10/+29
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
2017-09-26graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite, fold ↵Richard Biener3-267/+115
in ... 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
2017-09-26re PR target/82267 (x32: unnecessary address-size prefixes. Why isn't ↵Jakub Jelinek2-1/+5
-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
2017-09-26re PR middle-end/35691 (Missed (a == 0) && (b == 0) into (a|(typeof(a)(b)) ↵Jakub Jelinek5-1/+351
== 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
2017-09-26Fix changelog entry.Andreas Krebbel1-1/+30
From-SVN: r253200
2017-09-26re PR tree-optimization/82321 (ICE in check_loop_closed_ssa_use, at ↵Richard Biener4-1/+50
tree-ssa-loop-manip.c:707) 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
2017-09-26S/390: Fix vmslg instruction and builtin.Andreas Krebbel3-3/+9
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
2017-09-26S/390: Fix vector fp unordered comparesAndreas Krebbel3-4/+75
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
2017-09-26S/390: Set the preferred mode for float vectorsAndreas Krebbel2-0/+13
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
2017-09-26S/390: Fix rtl standard names for vector unpack low->loAndreas Krebbel2-2/+8
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