- 17 Jan, 2019 36 commits
-
-
gcc/testsuite/ChangeLog: PR target/88850 * gcc.target/arm/pr51968.c: Use neon intrinsics. From-SVN: r268033
Tamar Christina committed -
Add test-case to verify that libbacktrace can read debug info that was compressed with dwz. 2019-01-17 Tom de Vries <tdevries@suse.de> PR libbacktrace/82857 * configure.ac (DWZ): Set with AC_CHECK_PROG. (HAVE_DWZ): Set with AM_CONDITIONAL. * configure: Regenerate. * Makefile.am (TESTS): Add btest_dwz. * Makefile.in: Regenerate. From-SVN: r268032
Tom de Vries committed -
Handle DW_FORM_GNU_ref_alt which references the .debug_info section in the .gnu_debugaltlink file. 2019-01-17 Tom de Vries <tdevries@suse.de> PR libbacktrace/82857 * dwarf.c (enum attr_val_encoding): Add ATTR_VAL_REF_ALT_INFO. (read_attribute): Handle DW_FORM_GNU_ref_alt using ATTR_VAL_REF_ALT_INFO. (read_referenced_name_from_attr): Handle DW_FORM_GNU_ref_alt. From-SVN: r268031
Tom de Vries committed -
Add a function that finds the unit given an offset into .debug_info. 2019-01-17 Tom de Vries <tdevries@suse.de> * dwarf.c (struct unit): Add low_offset and high_offset fields. (struct unit_vector): New type. (struct dwarf_data): Add units and units_counts fields. (find_unit): New function. (find_address_ranges): Add and handle unit_tag parameter. (build_address_map): Add and handle units_vec parameter. (build_dwarf_data): Pass units_vec to build_address_map. Store resulting units vector. From-SVN: r268030
Tom de Vries committed -
This collection of miscellaneous patches configures the testsuite to run on AMD GCN in a standalone (i.e. not offloading) configuration. It assumes you have your Dejagnu set up to run binaries via the gcn-run tool. 2019-01-17 Andrew Stubbs <ams@codesourcery.com> Kwok Cheung Yeung <kcy@codesourcery.com> Julian Brown <julian@codesourcery.com> Tom de Vries <tom@codesourcery.com> gcc/ * doc/sourcebuild.texi: Document dg-add-options sqrt_insn. gcc/testsuite/ * gcc.dg/20020312-2.c: Add amdgcn support. * gcc.dg/Wno-frame-address.c: Disable on amdgcn. * gcc.dg/builtin-apply2.c: Likewise. * gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise. * gcc.dg/gimplefe-28.c: Add dg-add-options for sqrt_insn. * gcc.dg/intermod-1.c: Add -mlocal-symbol-id on amdgcn. * gcc.dg/memcmp-1.c: Increase timeout factor. * gcc.dg/pr59605-2.c: Addd -DMAX_COPY=1025 on amdgcn. * gcc.dg/sibcall-10.c: xfail on amdgcn. * gcc.dg/sibcall-9.c: Likewise. * gcc.dg/tree-ssa/gen-vect-11c.c: Likewise. * gcc.dg/tree-ssa/pr84512.c: Likewise. * gcc.dg/tree-ssa/loop-1.c: Adjust expectations for amdgcn. * gfortran.dg/bind_c_array_params_2.f90: Likewise. * lib/target-supports.exp (check_effective_target_trampolines): Configure amdgcn. (check_profiling_available): Likewise. (check_effective_target_global_constructor): Likewise. (check_effective_target_return_address): Likewise. (check_effective_target_fopenacc): Likewise. (check_effective_target_fopenmp): Likewise. (check_effective_target_vect_int): Likewise. (check_effective_target_vect_intfloat_cvt): Likewise. (check_effective_target_vect_uintfloat_cvt): Likewise. (check_effective_target_vect_floatint_cvt): Likewise. (check_effective_target_vect_floatuint_cvt): Likewise. (check_effective_target_vect_simd_clones): Likewise. (check_effective_target_vect_shift): Likewise. (check_effective_target_whole_vector_shift): Likewise. (check_effective_target_vect_bswap): Likewise. (check_effective_target_vect_shift_char): Likewise. (check_effective_target_vect_long): Likewise. (check_effective_target_vect_float): Likewise. (check_effective_target_vect_double): Likewise. (check_effective_target_vect_perm): Likewise. (check_effective_target_vect_perm_byte): Likewise. (check_effective_target_vect_perm_short): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_hi_to_si): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. (check_effective_target_vect_natural_alignment): Likewise. (check_effective_target_vect_fully_masked): Likewise. (check_effective_target_vect_element_align): Likewise. (check_effective_target_vect_masked_store): Likewise. (check_effective_target_vect_scatter_store): Likewise. (check_effective_target_vect_condition): Likewise. (check_effective_target_vect_cond_mixed): Likewise. (check_effective_target_vect_char_mult): Likewise. (check_effective_target_vect_short_mult): Likewise. (check_effective_target_vect_int_mult): Likewise. (check_effective_target_sqrt_insn): Likewise. (check_effective_target_vect_call_sqrtf): Likewise. (check_effective_target_vect_call_btrunc): Likewise. (check_effective_target_vect_call_btruncf): Likewise. (check_effective_target_vect_call_ceil): Likewise. (check_effective_target_vect_call_floorf): Likewise. (check_effective_target_lto): Likewise. (check_vect_support_and_set_flags): Likewise. (check_effective_target_vect_stridedN): Enable when fully masked is available. (add_options_for_sqrt_insn): New procedure. Co-Authored-By: Julian Brown <julian@codesourcery.com> Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com> Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r268028
Andrew Stubbs committed -
The GCN toolchain must use the LLVM assembler and linker because there's no binutils port. The LLVM tools do not have the same diagnostic style as binutils, so the "blank line(s) in output" tests are inappropriate (and very noisy). The LLVM tools also have different command line options, so it's not possible to autodetect object formats in the same way. This patch addresses both issues. 2019-01-17 Andrew Stubbs <ams@codesourcery.com> gcc/ * doc/sourcebuild.texi: Document dg-require-effective-target llvm_binutils and offload_gcn. gcc/testsuite/ * lib/file-format.exp (gcc_target_object_format): Handle AMD GCN. * lib/gcc-dg.exp (gcc-dg-prune): Ignore blank lines from the LLVM linker. * lib/target-supports.exp (check_effective_target_llvm_binutils): New. From-SVN: r268027
Andrew Stubbs committed -
The GCN/HSA loader ignores the load address and uses a random location, so we build all GCN binaries as PIE, by default. This patch makes the necessary testsuite adjustments to make this work correctly. 2019-01-17 Andrew Stubbs <ams@codesourcery.com> gcc/testsuite/ * gcc.dg/graphite/scop-19.c: Check pie_enabled. * gcc.dg/pic-1.c: Disable on amdgcn. * gcc.dg/pic-2.c: Disable on amdgcn. * gcc.dg/pic-3.c: Disable on amdgcn. * gcc.dg/pic-4.c: Disable on amdgcn. * gcc.dg/pie-3.c: Disable on amdgcn. * gcc.dg/pie-4.c: Disable on amdgcn. * gcc.dg/uninit-19.c: Check pie_enabled. * lib/target-supports.exp (check_effective_target_pie): Add amdgcn. From-SVN: r268026
Andrew Stubbs committed -
There are a number of tests that fail because they assume that exceptions are available, but GCN does not support them, yet. This patch adds "dg-require-effective-target exceptions" in all the affected tests. There's probably an automatic way to test for exceptions, but the current implementation simply says that AMD GCN does not support them. This should ensure that no other targets are affected by the change. 2019-01-17 Andrew Stubbs <ams@codesourcery.com> Kwok Cheung Yeung <kcy@codesourcery.com> Julian Brown <julian@codesourcery.com> Tom de Vries <tom@codesourcery.com> gcc/ * doc/sourcebuild.texi: Document dg-required-effective-target exceptions. gcc/testsuite/ * c-c++-common/ubsan/pr71512-1.c: Require exceptions. * c-c++-common/ubsan/pr71512-2.c: Require exceptions. * gcc.c-torture/compile/pr34648.c: Require exceptions. * gcc.c-torture/compile/pr41469.c: Require exceptions. * gcc.dg/20111216-1.c: Require exceptions. * gcc.dg/cleanup-10.c: Require exceptions. * gcc.dg/cleanup-11.c: Require exceptions. * gcc.dg/cleanup-12.c: Require exceptions. * gcc.dg/cleanup-13.c: Require exceptions. * gcc.dg/cleanup-5.c: Require exceptions. * gcc.dg/cleanup-8.c: Require exceptions. * gcc.dg/cleanup-9.c: Require exceptions. * gcc.dg/gomp/pr29955.c: Require exceptions. * gcc.dg/lto/pr52097_0.c: Require exceptions. * gcc.dg/nested-func-5.c: Require exceptions. * gcc.dg/pch/except-1.c: Require exceptions. * gcc.dg/pch/valid-2.c: Require exceptions. * gcc.dg/pr41470.c: Require exceptions. * gcc.dg/pr42427.c: Require exceptions. * gcc.dg/pr44545.c: Require exceptions. * gcc.dg/pr47086.c: Require exceptions. * gcc.dg/pr51481.c: Require exceptions. * gcc.dg/pr51644.c: Require exceptions. * gcc.dg/pr52046.c: Require exceptions. * gcc.dg/pr54669.c: Require exceptions. * gcc.dg/pr56424.c: Require exceptions. * gcc.dg/pr64465.c: Require exceptions. * gcc.dg/pr65802.c: Require exceptions. * gcc.dg/pr67563.c: Require exceptions. * gcc.dg/tree-ssa/pr41469-1.c: Require exceptions. * gcc.dg/tree-ssa/ssa-dse-28.c: Require exceptions. * gcc.dg/vect/pr46663.c: Require exceptions. * lib/target-supports.exp (check_effective_target_exceptions): New. Co-Authored-By: Julian Brown <julian@codesourcery.com> Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com> Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r268025
Andrew Stubbs committed -
This patch contains the configuration adjustments needed to enable the GCN back-end. The new configure check for dlopen is required to allow building the new gcn-run tool. This tool uses libdl to load the HSA runtime libraries, which are required to run programs on the GPU. The tool is disabled if libdl is not available. 2019-01-17 Andrew Stubbs <ams@codesourcery.com> Kwok Cheung Yeung <kcy@codesourcery.com> Julian Brown <julian@codesourcery.com> Tom de Vries <tom@codesourcery.com> Jan Hubicka <hubicka@ucw.cz> Martin Jambor <mjambor@suse.cz> * configure.ac: Likewise. * configure: Regenerate. * contrib/config-list.mk: Add amdgcn-amdhsa. gcc/ * config.gcc: Add amdgcn*-*-amdhsa configuration. * configure.ac: Check for dlopen. * configure: Regenerate. Co-Authored-By: Jan Hubicka <hubicka@ucw.cz> Co-Authored-By: Julian Brown <julian@codesourcery.com> Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com> Co-Authored-By: Martin Jambor <mjambor@suse.cz> Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r268024
Andrew Stubbs committed -
This patch contains the major part of the GCN back-end. The machine description has been broken out to avoid the mailing list size limit. The back-end contains various bits that support OpenACC and OpenMP, but the middle-end and libgomp patches are missing, as is mkoffload. I include them here because they're harmless and carving up the files seems like unnecessary effort. The remaining offload support will be posted at a later date. The gcn-run.c is a separate tool that can run a GCN program on a GPU using the ROCm drivers and HSA runtime libraries. 2019-01-17 Andrew Stubbs <ams@codesourcery.com> Kwok Cheung Yeung <kcy@codesourcery.com> Julian Brown <julian@codesourcery.com> Tom de Vries <tom@codesourcery.com> Jan Hubicka <hubicka@ucw.cz> Martin Jambor <mjambor@suse.cz> gcc/ * common/config/gcn/gcn-common.c: New file. * config/gcn/driver-gcn.c: New file. * config/gcn/gcn-builtins.def: New file. * config/gcn/gcn-hsa.h: New file. * config/gcn/gcn-modes.def: New file. * config/gcn/gcn-opts.h: New file. * config/gcn/gcn-passes.def: New file. * config/gcn/gcn-protos.h: New file. * config/gcn/gcn-run.c: New file. * config/gcn/gcn-tree.c: New file. * config/gcn/gcn.c: New file. * config/gcn/gcn.h: New file. * config/gcn/gcn.opt: New file. * config/gcn/t-gcn-hsa: New file. Co-Authored-By: Jan Hubicka <hubicka@ucw.cz> Co-Authored-By: Julian Brown <julian@codesourcery.com> Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com> Co-Authored-By: Martin Jambor <mjambor@suse.cz> Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r268023
Andrew Stubbs committed -
This patch contains the machine description portion of the GCN back-end. I've broken it out mainly to avoid the mailing list size limit. 2019-01-17 Andrew Stubbs <ams@codesourcery.com> Kwok Cheung Yeung <kcy@codesourcery.com> Julian Brown <julian@codesourcery.com> Tom de Vries <tom@codesourcery.com> Jan Hubicka <hubicka@ucw.cz> Martin Jambor <mjambor@suse.cz> gcc/ * config/gcn/constraints.md: New file. * config/gcn/gcn-valu.md: New file. * config/gcn/gcn.md: New file. * config/gcn/predicates.md: New file. Co-Authored-By: Jan Hubicka <hubicka@ucw.cz> Co-Authored-By: Julian Brown <julian@codesourcery.com> Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com> Co-Authored-By: Martin Jambor <mjambor@suse.cz> Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r268022
Andrew Stubbs committed -
This patch contains the GCN port of libgcc. 2019-01-17 Andrew Stubbs <ams@codesourcery.com> Kwok Cheung Yeung <kcy@codesourcery.com> Julian Brown <julian@codesourcery.com> Tom de Vries <tom@codesourcery.com> libgcc/ * config.host: Recognize amdgcn*-*-amdhsa. * config/gcn/crt0.c: New file. * config/gcn/lib2-divmod-hi.c: New file. * config/gcn/lib2-divmod.c: New file. * config/gcn/lib2-gcn.h: New file. * config/gcn/sfp-machine.h: New file. * config/gcn/t-amdgcn: New file. Co-Authored-By: Julian Brown <julian@codesourcery.com> Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com> Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r268021
Andrew Stubbs committed -
This patch contains the GCN port of libgfortran. We use the minimal configuration created for NVPTX. That's all that's required, besides the target-independent bug fixes posted already. 2019-01-17 Andrew Stubbs <ams@codesourcery.com> Kwok Cheung Yeung <kcy@codesourcery.com> Julian Brown <julian@codesourcery.com> Tom de Vries <tom@codesourcery.com> libgfortran/ * configure.ac: Use minimal mode for amdgcn. * configure: Regenerate. Co-Authored-By: Julian Brown <julian@codesourcery.com> Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com> Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r268020
Andrew Stubbs committed -
gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace flag_non_call_exceptions with cfun->can_throw_non_call_exceptions. * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace flag_non_call_exceptions with cfun->can_throw_non_call_exceptions. (stmt_uses_0_or_null_in_undefined_way): Likewise. * tree-ssa-alias.c (same_addr_size_stores_p): Likewise. From-SVN: r268018
Eric Botcazou committed -
gcc/ChangeLog: PR target/88851 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New. * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use it and document registers. gcc/testsuite/ChangeLog: PR target/88851 * gcc.target/aarch64/stack-check-cfa-3.c: Update test. From-SVN: r268017
Tamar Christina committed -
https://gcc.gnu.org/ml/gcc-patches/2019-01/msg00948.html PR c++/86610 * semantics.c (process_outer_var_ref): Only skip dependent types in templates. PR c++/86610 * g++.dg/cpp0x/pr86610.C: New. From-SVN: r268016
Nathan Sidwell committed -
This patch adds a tuning struct for the Arm Ares CPU and uses it for -m{cpu,tune}=ares. The tunings are an initial attempt and may be improved upon in the future, but they serve as a decent starting point for GCC 9. With this I see a 1.3% improvement on SPEC2006 int and 0.3% on SPEC2006 fp with -mcpu=ares. On SPEC2017 I see a 0.6% improvement in intrate and changes in the noise for fprate. * config/aarch64/aarch64.c (ares_tunings): Define. * config/aarch64/aarch64-cores.def (ares): Use the above. From-SVN: r268015
Kyrylo Tkachov committed -
gcc/testsuite/ChangeLog 2019-01-17 Wei Xiao <wei3.xiao@intel.com> * gcc.target/i386/avx512f-vfixupimmpd-2.c: Fix the test cases for VFIXUPIMM* intrinsics. * gcc.target/i386/avx512f-vfixupimmps-2.c: Ditto. * gcc.target/i386/avx512f-vfixupimmsd-2.c: Ditto. * gcc.target/i386/avx512f-vfixupimmss-2.c: Ditto. From-SVN: r268014
Wei Xiao committed -
gcc/ChangeLog 2019-01-17 Wei Xiao <wei3.xiao@intel.com> PR target/88794 Revert: 2018-11-06 Wei Xiao <wei3.xiao@intel.com> * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics. (_mm512_fixupimm_round_pd): Update parameters and builtin. (_mm512_maskz_fixupimm_round_pd): Ditto. (_mm512_fixupimm_round_ps): Ditto. (_mm512_maskz_fixupimm_round_ps): Ditto. (_mm_fixupimm_round_sd): Ditto. (_mm_maskz_fixupimm_round_sd): Ditto. (_mm_fixupimm_round_ss): Ditto. (_mm_maskz_fixupimm_round_ss): Ditto. (_mm512_fixupimm_pd): Ditto. (_mm512_maskz_fixupimm_pd): Ditto. (_mm512_fixupimm_ps): Ditto. (_mm512_maskz_fixupimm_ps): Ditto. (_mm_fixupimm_sd): Ditto. (_mm_maskz_fixupimm_sd): Ditto. (_mm_fixupimm_ss): Ditto. (_mm_maskz_fixupimm_ss): Ditto. (_mm512_mask_fixupimm_round_pd): Update builtin. (_mm512_mask_fixupimm_round_ps): Ditto. (_mm_mask_fixupimm_round_sd): Ditto. (_mm_mask_fixupimm_round_ss): Ditto. (_mm512_mask_fixupimm_pd): Ditto. (_mm512_mask_fixupimm_ps): Ditto. (_mm_mask_fixupimm_sd): Ditto. (_mm_mask_fixupimm_ss): Ditto. * config/i386/avx512vlintrin.h: (_mm256_fixupimm_pd): Update parameters and builtin. (_mm256_maskz_fixupimm_pd): Ditto. (_mm256_fixupimm_ps): Ditto. (_mm256_maskz_fixupimm_ps): Ditto. (_mm_fixupimm_pd): Ditto. (_mm_maskz_fixupimm_pd): Ditto. (_mm_fixupimm_ps): Ditto. (_mm_maskz_fixupimm_ps): Ditto. (_mm256_mask_fixupimm_pd): Update builtin. (_mm256_mask_fixupimm_ps): Ditto. (_mm_mask_fixupimm_pd): Ditto. (_mm_mask_fixupimm_ps): Ditto. * config/i386/i386-builtin-types.def: Add new types and remove useless ones. * config/i386/i386-builtin.def: Update builtin definitions. * config/i386/i386.c: Handle new builtin types and remove useless ones. * config/i386/sse.md: Update VFIXUPIMM* patterns. (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update. (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update. * config/i386/subst.md: (round_saeonly_sd_mask_operand4): Add new subst_attr. (round_saeonly_sd_mask_op4): Ditto. (round_saeonly_expand_operand5): Ditto. (round_saeonly_expand): Update. gcc/testsuite/ChangeLog 2019-01-17 Wei Xiao <wei3.xiao@intel.com> PR target/88794 Revert: 2018-11-06 Wei Xiao <wei3.xiao@intel.com> * gcc.target/i386/avx-1.c: Update tests for VFIXUPIMM* intrinsics. * gcc.target/i386/avx512f-vfixupimmpd-1.c: Ditto. * gcc.target/i386/avx512f-vfixupimmpd-2.c: Ditto. * gcc.target/i386/avx512f-vfixupimmps-1.c: Ditto. * gcc.target/i386/avx512f-vfixupimmsd-1.c: Ditto. * gcc.target/i386/avx512f-vfixupimmsd-2.c: Ditto. * gcc.target/i386/avx512f-vfixupimmss-1.c: Ditto. * gcc.target/i386/avx512f-vfixupimmss-2.c: Ditto. * gcc.target/i386/avx512vl-vfixupimmpd-1.c: Ditto. * gcc.target/i386/avx512vl-vfixupimmps-1.c: Ditto. * gcc.target/i386/sse-13.c: Ditto. * gcc.target/i386/sse-14.c: Ditto. * gcc.target/i386/sse-22.c: Ditto. * gcc.target/i386/sse-23.c: Ditto. * gcc.target/i386/testimm-10.c: Ditto. * gcc.target/i386/testround-1.c: Ditto. From-SVN: r268013
Wei Xiao committed -
2019-01-17 Wei Xiao <wei3.xiao@intel.com> PR target/88794 Revert: 2018-11-12 Wei Xiao <wei3.xiao@intel.com> * config/i386/sse.md: Combine VFIXUPIMM* patterns (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove. (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove. From-SVN: r268012
Wei Xiao committed -
gcc/ChangeLog: 2019-01-17 Wei Xiao <wei3.xiao@intel.com> PR target/88794 Revert: 2018-12-15 Jakub Jelinek <jakub@redhat.com> PR target/88489 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator. (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it instead of UNSPEC_FIXUPIMM. gcc/testsuite/ChangeLog: 2019-01-17 Wei Xiao <wei3.xiao@intel.com> PR target/88794 Revert: 2018-12-15 Jakub Jelinek <jakub@redhat.com> PR target/88489 * gcc.target/i386/avx512vl-vfixupimmsd-2.c: New test. * gcc.target/i386/avx512vl-vfixupimmss-2.c: New test. From-SVN: r268011
Wei Xiao committed -
2019-01-17 Richard Biener <rguenther@suse.de> PR lto/86736 * dwarf2out.c (want_pubnames): Never generate pubnames sections and friends for the LTO part of debug info. From-SVN: r268010
Richard Biener committed -
PR tree-optimization/86214 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts if x == y. From-SVN: r268009
Jakub Jelinek committed -
PR rtl-optimization/88870 * dce.c (deletable_insn_p): Never delete const/pure calls that can throw if we can't alter the cfg or delete dead exceptions. (mark_insn): Don't call find_call_stack_args for such calls. * gcc.dg/pr88870.c: New test. From-SVN: r268008
Jakub Jelinek committed -
2019-01-17 Kewen Lin <linkw@gcc.gnu.org> gcc/ChangeLog * doc/extend.texi: Add four new prototypes for vec_ld and seven new prototypes for vec_st. * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries for scalar address type variants of altivec_vec_ld/altivec_vec_st, mainly on signed/unsigned long long and double. gcc/testsuite/ChangeLog * gcc.target/powerpc/altivec_vld_vst_addr.c: New test. From-SVN: r268007
Kewen Lin committed -
Concepts-checking and other kinds of early tsubsting may often take place while location wrappers are suppressed, e.g. because we've triggered template instantiation within template parameter lists. With that, exprs that are usually wrapped by VIEW_CONVERT_EXPRs location wrappers may end up wrapped by NON_LVALUE_EXPRs that are not marked as location wrappers. If such NON_LVALUE_EXPRs tsubsted exprs undergo another round of tsubsting, say for constraint checking, or even for another round of specialization, they will be rejected by tsubst_copy_and_build. This patch arranges for suppress_location_wrappers to be saved and reset when pushing to the top level, and restored when popping from it. for gcc/cp/ChangeLog PR c++/87768 * cp-tree.h (saved_scope): Add suppress_location_wrappers. * name-lookup.c (do_push_to_top_level): Save and reset it. (do_pop_from_top_level): Restore it. for gcc/testsuite/ChangeLog PR c++/87768 * g++.dg/concepts/pr87768.C: New. From-SVN: r268006
Alexandre Oliva committed -
dwarf2out recognizes unspecified auto types by the identifier. C++ template class placeholders are unspecified auto types that take the identifier of the class rather than those used by preexisting auto types, so dwarf2out ICEs when it finds one of those. Alas, they may be visible to dwarf2out, since the types of e.g. static data members of templates are only deduced at member instantiation, i.e., if the data member is actually referenced, but the data member is added as a field, still with unspecified auto placeholder type, when the enclosing class is instantiated. I've changed placeholder creator to use an auto identifier instead, which allowed dropping the placeholder test in C++'s is_auto (alas, it can't be used in dwarf2out, think LTO). To avoid losing information in error messages and dumps and whatnot, I've added code to recognize placeholders for template classes say A and print them out as A<...auto...>. for gcc/cp/ChangeLog PR c++/86648 * pt.c (make_template_placeholder): Use auto_identifier. (is_auto): Drop CLASS_PLACEHOLDER_TEMPLATE test. * error.c (dump_type): Handle template placeholders. * cxx-pretty-print.c (pp_cx_unqualified_id): Likewise. for gcc/testsuite/ChangeLog PR c++/86648 * gcc.dg/cpp1z/pr86648.C: New. From-SVN: r268005
Alexandre Oliva committed -
Diagnostics for testsuite/g++.dg/cpp0x/inh-ctor32.C varied across platforms. Specifically, on ARM, the diagnostics within the subtest derived_ctor::inherited_derived_ctor::constexpr_noninherited_ctor did not match those displayed on other platforms, and the test failed. The difference seemed to have to do with locations assigned to ctors, but it was more subtle: on ARM, the instantiation of bor's template ctor was nested within the instantiation of bar's template ctor inherited from bor. The reason turned out to be related with the internal return type of ctors: arm_cxx_cdtor_returns_this is enabled for because of AAPCS, while cxx.cdtor_returns_this is disabled on most other platforms. While convert_to_void returns early with a VOID expr, the non-VOID return type of the base ctor CALL_EXPR causes convert_to_void to inspect the called decl for nodiscard attributes: maybe_warn_nodiscard -> cp_get_fndecl_from_callee -> maybe_constant_init -> cxx_eval_outermost_constant_expr -> instantiate_constexpr_fns -> nested instantiation. The internal return type assigned to a cdtor should not affect instantiation (constexpr or template) decisions, IMHO. We know it affects diagnostics, but I have a hunch this might bring deeper issues with it, so I've arranged for the CALL_EXPR handler in convert_to_void to disregard cdtors, regardless of the ABI. for gcc/cp/ChangeLog PR c++/88146 * cvt.c (convert_to_void): Handle all cdtor calls as if returning void. From-SVN: r268004
Alexandre Oliva committed -
PR target/87306 * gcc.dg/vect/bb-slp-pow-1.c: Modify to reflect that the loop is not vectorized on POWER unless hardware misaligned loads are available. From-SVN: r268003
Kewen Lin committed -
Currently, we dropg (which clears gp.m) after we CAS the g status to _Grunnable or _Gwaiting. Immediately after CASing the g status, another thread may CAS it to _Gscan status and scan its stack. With precise stack scan, it accesses gp.m in order to switch to g and back (in doscanstackswitch). This races with dropg. If doscanstackswitch reads gp.m, then dropg runs, when we restore the m at the end of the scan it will set to a stale value. Worse, if dropg runs after doscanstackswitch sets the new m, gp will be running with a nil m. To fix this, we do dropg before CAS g status to _Grunnable or _Gwaiting. We can do this safely if we are CASing from _Grunning, as we own the g when it is in _Grunning. There is one case where we CAS from _Gsyscall to _Grunnable. It is not safe to dropg when it is in _Gsyscall, as precise stack scan needs to read gp.m in order to signal the m. So we need to introduce a transient state, _Gexitingsyscall, between _Gsyscall and _Grunnable, where the GC should not scan its stack. In is a little unfortunate that we have to add another g status. We could reuse an existing one (e.g. _Gcopystack), but it is clearer and safer to just use a new one, as Austin suggested. Reviewed-on: https://go-review.googlesource.com/c/158157 From-SVN: r268001
Ian Lance Taylor committed -
From-SVN: r267999
GCC Administrator committed -
Handle DW_FORM_GNU_strp_alt which references the .debug_str section in the .gnu_debugaltlink file. 2019-01-17 Tom de Vries <tdevries@suse.de> PR libbacktrace/82857 * dwarf.c (read_attribute): Handle DW_FORM_GNU_strp_alt using altlink. From-SVN: r267996
Tom de Vries committed -
Handle DW_FORM_GNU_strp_alt and DW_FORM_GNU_ref_alt references robustly in presence of missing .gnu_debugaltlink file. 2019-01-17 Tom de Vries <tdevries@suse.de> * dwarf.c (enum attr_val_encoding): Add ATTR_VAL_NONE. (read_attribute): Add altlink parameter. Handle missing altlink for DW_FORM_GNU_strp_alt and DW_FORM_GNU_ref_alt. (find_address_ranges, build_address_map, build_dwarf_data): Add and handle altlink parameter. (read_referenced_name, read_function_entry): Add argument to read_attribute call. From-SVN: r267995
Tom de Vries committed -
Add an altlink field to struct dwarf_data, and initialize it with the pointer to the struct dwarf_data for the .gnu_debugaltlink. 2019-01-17 Tom de Vries <tdevries@suse.de> * dwarf.c (struct dwarf_data): Add altlink field. (backtrace_dwarf_add): Add and handle fileline_altlink parameter. * elf.c (elf_add): Add argument to backtrace_dwarf_add call. (phdr_callback, backtrace_initialize): Add argument to elf_add calls. * internal.h (backtrace_dwarf_add): Add fileline_altlink parameter. * pecoff.c (coff_add): Add argument to backtrace_dwarf_add call. * xcoff.c (xcoff_add): Same. From-SVN: r267994
Tom de Vries committed -
Allow the caller of elf_add access to the struct dwarf_data pointer corresponding to the added elf. 2019-01-17 Tom de Vries <tdevries@suse.de> * internal.h (backtrace_dwarf_add): Add fileline_entry parameter. * dwarf.c (backtrace_dwarf_add): Add and handle fileline_entry parameter. * elf.c (elf_add): Add and handle fileline_entry parameter. Add argument to backtrace_dwarf_add call. (phdr_callback, backtrace_initialize): Add argument to elf_add calls. * pecoff.c (coff_add): Add argument to backtrace_dwarf_add call. * xcoff.c (xcoff_add): Same. From-SVN: r267993
Tom de Vries committed -
Read the elf file pointed at by the .gnu_debugaltlink section, and verify that the build id matches. 2019-01-17 Tom de Vries <tdevries@suse.de> * elf.c (elf_add): Add and handle with_buildid_data and with_buildid_size parameters. Handle .gnu_debugaltlink section. (phdr_callback, backtrace_initialize): Add arguments to elf_add calls. From-SVN: r267992
Tom de Vries committed
-
- 16 Jan, 2019 4 commits
-
-
* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Add exports for fstream constructors and open members taking wide strings. Fix patterns for filesystem::path members to match wstring_view parameters. Add exports for shared_ptr members used by directory iterators. * src/c++17/fs_ops.cc (remove(const path&, error_code&)): Clear the error code parameter if the file doesn't exist. * src/filesystem/ops.cc (remove(const path&, error_code&)): Likewise. * testsuite/27_io/filesystem/operations/canonical.cc: Fix expected values for mingw targets, where "/" is not an absolute path. Do not test symlinks on mingw targets. * testsuite/experimental/filesystem/operations/canonical.cc: Likewise. * testsuite/27_io/filesystem/operations/copy.cc: Do not test symlinks on mingw targets. * testsuite/experimental/filesystem/operations/copy.cc: Likewise. * testsuite/27_io/filesystem/operations/create_directories.cc: Check that each component of the path is created. * testsuite/experimental/filesystem/operations/create_directories.cc: Likewise. * testsuite/27_io/filesystem/operations/exists.cc: Do not test permissions on mingw targets. * testsuite/experimental/filesystem/operations/exists.cc: Likewise. * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise. * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise. * testsuite/27_io/filesystem/operations/permissions.cc: XFAIL for mingw targets. * testsuite/experimental/filesystem/operations/permissions.cc: Likewise. * testsuite/27_io/filesystem/operations/remove.cc: Do not test symlinks or permissions on mingw targets. * testsuite/experimental/filesystem/operations/remove.cc: Likewise. * testsuite/27_io/filesystem/operations/remove_all.cc: Do not test symlinks on mingw targets. * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise. * testsuite/27_io/filesystem/operations/status.cc: Do not test permissions on mingw targets. * testsuite/27_io/filesystem/operations/weakly_canonical.cc: Do not test symlinks on mingw targets. * testsuite/experimental/filesystem/operations/space.cc: Fix test for mingw targets. From-SVN: r267991
Jonathan Wakely committed -
Many C syscall functions take pointer arguments. The pointers don't escape in the C functions. Mark the C functions noescape so calling them doesn't need allocation. Reviewed-on: https://go-review.googlesource.com/c/158158 From-SVN: r267989
Ian Lance Taylor committed -
Factor out the common handling of DW_AT_abstract_origin and DW_AT_specification from read_function_entry and read_referenced_name. 2019-01-16 Tom de Vries <tdevries@suse.de> * dwarf.c (read_referenced_name_from_attr): New function. Factor out of ... (read_referenced_name): ... here, and ... (read_function_entry): ... here. From-SVN: r267986
Tom de Vries committed -
Turn off partitioning unless it was explicitly requested, as it doesn't work with D exception chaining, where personality routines use LSDA to determine whether two thrown exceptions are in the same context. The following distills what was failing in the D testsuite. ``` try { try { fn(); // throws "1" } finally { throw new Exception("2"); } } catch (Exception e) { assert(e.msg == "1"); assert(e.next.msg == "2"); } ``` gcc/d/ChangeLog: PR d/87824 * d-lang.cc (d_post_options): Disable implicit -forder-blocks-and-partition. From-SVN: r267985
Iain Buclaw committed
-