aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-04-17backtrace.c (backtrace_full): When testing whether we can allocate memory...Ian Lance Taylor2-11/+38
* backtrace.c (backtrace_full): When testing whether we can allocate memory, call mmap directly, and munmap the memory. Fixes https://github.com/ianlancetaylor/libbacktrace/issues/13 . From-SVN: r259434
2018-04-17re PR middle-end/85414 (ICE: in ix86_expand_prologue, at ↵Jakub Jelinek4-2/+23
config/i386/i386.c:13810 with -Og -fgcse) PR middle-end/85414 * rtlhooks.c (gen_lowpart_if_possible): Don't call gen_lowpart_SUBREG on a SUBREG. * gcc.dg/pr85414.c: New test. From-SVN: r259433
2018-04-17Call expand_all_artificial_thunks in ipa-cp if necessaryMartin Jambor4-0/+145
2018-04-17 Martin Jambor <mjambor@suse.cz> PR ipa/85421 * ipa-cp.c (create_specialized_node): Call expand_all_artificial_thunks if necessary. testsuite/ * g++.dg/ipa/pr85421.C: New test. From-SVN: r259432
2018-04-17Fix coding style and add a new test-case (PR lto/85405).Martin Liska5-1/+40
2018-04-17 Martin Liska <mliska@suse.cz> PR lto/85405 * ipa-devirt.c (odr_types_equivalent_p): Remove trailing in message, remote space in between '_G' and '('. 2018-04-17 Martin Liska <mliska@suse.cz> PR lto/85405 * g++.dg/lto/pr85405b_0.C: New test. * g++.dg/lto/pr85405b_1.C: New test. From-SVN: r259431
2018-04-17re PR target/85281 (Assembler messages: Error: operand size mismatch for ↵Jakub Jelinek2-46/+86
`vpbroadcastb' with -mavx512bw -masm=intel) PR target/85281 * config/i386/sse.md (reduces<mode><mask_scalar_name>, avx512f_vmcmp<mode>3<round_saeonly_name>, avx512f_vmcmp<mode>3_mask<round_saeonly_name>, avx512f_sgetexp<mode><mask_scalar_name><round_saeonly_scalar_name>, avx512f_rndscale<mode><round_saeonly_name>, avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>, avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>): Use %<iptr>2 instead of %2 for -masm=intel. (avx512f_vcvtss2usi<round_name>, avx512f_vcvtss2usiq<round_name>, avx512f_vcvttss2usi<round_saeonly_name>, avx512f_vcvttss2usiq<round_saeonly_name>): Use %k1 instead of %1 for -masm=intel. (avx512f_vcvtsd2usi<round_name>, avx512f_vcvtsd2usiq<round_name>, avx512f_vcvttsd2usi<round_saeonly_name>, avx512f_vcvttsd2usiq<round_saeonly_name>, ufloatv2siv2df2<mask_name>): Use %q1 instead of %1 for -masm=intel. (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>, avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Use %<iptr>3 instead of %3 for -masm=intel. (sse2_shufpd_v2df_mask): Fix a typo, change %{6%} to %{%6%} for -masm=intel. (*avx512vl_<code>v2div2qi2_store): Use %w0 instead of %0 for -masm=intel. (*avx512vl_<code><mode>v4qi2_store): Use %k0 instead of %0 for -masm=intel. (avx512vl_<code><mode>v4qi2_mask_store): Use a single pattern with %k0 and %1 for -masm=intel rather than two patterns, one with %0 and %g1. (*avx512vl_<code><mode>v8qi2_store): Use %q0 instead of %0 for -masm=intel. (avx512vl_<code><mode>v8qi2_mask_store): Use a single pattern with %q0 and %1 for -masm=intel rather than two patterns, one with %0 and %g1 and one with %0 and %1. (avx512er_vmrcp28<mode><round_saeonly_name>, avx512er_vmrsqrt28<mode><round_saeonly_name>): Use %<iptr>1 instead of %1 for -masm=intel. (avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddss_mask, avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddss_mask, avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssds_mask): Swap order of %0 and %{%4%} for -masm=intel. (avx5124fmaddps_4fmaddps_maskz, avx5124fmaddps_4fmaddss_maskz, avx5124fmaddps_4fnmaddps_maskz, avx5124fmaddps_4fnmaddss_maskz, avx5124vnniw_vp4dpwssd_maskz, avx5124vnniw_vp4dpwssds_maskz): Swap order of %0 and %{%5%}%{z%} for -masm=intel. From-SVN: r259430
2018-04-17Support bitfields in Wodr machinery (PR lto/85405).Martin Liska5-2/+47
2018-04-17 Jan Hubicka <jh@suse.cz> PR lto/85405 * ipa-devirt.c (odr_types_equivalent_p): Handle bit fields. 2018-04-17 Martin Liska <mliska@suse.cz> PR lto/85405 * g++.dg/lto/pr85405_0.C: New test. * g++.dg/lto/pr85405_1.C: New test. From-SVN: r259429
2018-04-17Make redirection only for target_clones: V3 (PR ipa/85329).Martin Liska6-14/+112
2018-04-17 Martin Liska <mliska@suse.cz> PR ipa/85329 * multiple_target.c (create_dispatcher_calls): Set apostrophes for target_clone error message. Make default implementation clone to be a local declaration. (separate_attrs): Add new argument and check for an empty string. (expand_target_clones): Handle it. (ipa_target_clone): Make redirection just for target_clones functions. 2018-04-17 Martin Liska <mliska@suse.cz> PR ipa/85329 * g++.dg/ext/pr85329-2.C: New test. * g++.dg/ext/pr85329.C: New test. * gcc.target/i386/mvc12.c: New test. From-SVN: r259428
2018-04-17Daily bump.GCC Administrator1-1/+1
From-SVN: r259426
2018-04-16[PR c++/85039] no type definitions in builtin offsetofAlexandre Oliva7-8/+51
Types defined within a __builtin_offsetof argument don't always get properly recorded as members of their context types, so if they're anonymous, we may fail to assign them an anon type index for mangling and ICE. We shouldn't allow types to be introduced in __builtin_offsetof, I think, and Jason says the std committee agrees, so I've arranged for us to reject them. Even then, we still parse the definitions and attempt to assign mangled names to its member functions, so the ICE remains. Since we've already reported an error, we might as well complete the name assignment with an arbitrary index, thus avoiding the ICE. We used to have a test that expected to be able to define types in __builtin_offsetof; this patch removes that specific test. for gcc/cp/ChangeLog PR c++/85039 * parser.c (cp_parser_builtin_offset): Reject type definitions. * mangle.c (nested_anon_class_index): Avoid crash returning -1 if we've seen errors. for gcc/testsuite/ChangeLog PR c++/85039 * g++.dg/pr85039-1.C: New. * g++.dg/pr85039-2.C: New. * g++.dg/parse/semicolon3.C: Remove test_offsetof. From-SVN: r259423
2018-04-16re PR target/85080 (gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c fails ↵Bill Schmidt2-2/+8
starting with r248678) [gcc/testsuite] 2018-04-16 Bill Schmidt <wschmidt@linux.ibm.com> PR target/85080 * gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c: Skip dump checks if the target supports efficient unaligned storage accesses. From-SVN: r259407
2018-04-16[openacc] Fix ICE when compiling tile loop containing infinite loopCesar Philippidis5-0/+50
2018-04-16 Cesar Philippidis <cesar@codesourcery.com> Tom de Vries <tom@codesourcery.com> PR middle-end/84955 * omp-expand.c (expand_oacc_for): Add dummy false branch for tiled basic blocks without omp continue statements. * testsuite/libgomp.oacc-c-c++-common/pr84955.c: New test. * testsuite/libgomp.oacc-fortran/pr84955.f90: New test. Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r259406
2018-04-16re PR target/83660 (ICE with vec_extract inside expression statement)Aaron Sawdey4-1/+36
2018-04-16 Aaron Sawdey <acsawdey@linux.ibm.com> PR target/83660 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Mark vec_extract expression as having side effects to make sure it gets a cleanup point. 2018-04-16 Aaron Sawdey <acsawdey@linux.ibm.com> PR target/83660 * gcc.target/powerpc/pr83660.C: New test. From-SVN: r259403
2018-04-16i386: Check error_mark_node in multiversioningH.J. Lu4-0/+23
Since CET is applied to the whole program, it is correct to disallow -fcf-protection=full without -mcet. But compiler shouldn't crash. gcc/ PR target/85403 * config/i386/i386.c (get_builtin_code_for_version): Check error_mark_node. gcc/testsuite/ PR target/85403 * gcc.target/i386/pr85403.c: New test. --- gcc/config/i386/i386.c | 2 ++ gcc/testsuite/g++.dg/ext/mv1.C | 2 +- gcc/testsuite/g++.dg/ext/mv14.C | 2 +- gcc/testsuite/g++.dg/ext/mv15.C | 2 +- gcc/testsuite/g++.dg/ext/mv16.C | 2 +- gcc/testsuite/g++.dg/ext/mv17.C | 2 +- gcc/testsuite/g++.dg/ext/mv18.C | 2 +- gcc/testsuite/g++.dg/ext/mv19.C | 2 +- gcc/testsuite/g++.dg/ext/mv20.C | 2 +- gcc/testsuite/g++.dg/ext/mv21.C | 2 +- gcc/testsuite/g++.dg/ext/mv22.C | 2 +- gcc/testsuite/g++.dg/ext/mv23.C | 2 +- gcc/testsuite/g++.dg/ext/mv26.C | 1 + gcc/testsuite/g++.dg/ext/mv6.C | 2 +- gcc/testsuite/g++.dg/ext/mvc1.C | 1 + gcc/testsuite/gcc.target/i386/cet-notrack-icf-1.c | 2 +- gcc/testsuite/gcc.target/i386/cet-notrack-icf-3.c | 2 +- gcc/testsuite/gcc.target/i386/cet-property-2.c | 2 +- gcc/testsuite/gcc.target/i386/mvc1.c | 1 + gcc/testsuite/gcc.target/i386/mvc10.c | 1 + gcc/testsuite/gcc.target/i386/mvc11.c | 2 +- gcc/testsuite/gcc.target/i386/mvc6.c | 2 +- gcc/testsuite/gcc.target/i386/mvc7.c | 1 + gcc/testsuite/gcc.target/i386/mvc8.c | 2 +- gcc/testsuite/gcc.target/i386/mvc9.c | 2 +- gcc/testsuite/gcc.target/i386/pr81213.c | 1 + gcc/testsuite/gcc.target/i386/pr81214.c | 1 + gcc/testsuite/gcc.target/i386/pr85403.c | 10 ++++++++++ gcc/testsuite/gcc.target/i386/sse-26.c | 2 +- 29 files changed, 39 insertions(+), 20 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/pr85403.c diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 6fa5b0add02..8a73fc0d316 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -32344,6 +32344,8 @@ get_builtin_code_for_version (tree decl, tree *predicate_list) &global_options_set); gcc_assert (target_node); + if (target_node == error_mark_node) + return 0; new_target = TREE_TARGET_OPTION (target_node); gcc_assert (new_target); diff --git a/gcc/testsuite/gcc.target/i386/pr85403.c b/gcc/testsuite/gcc.target/i386/pr85403.c new file mode 100644 index 00000000000..f4fb12dd4e2 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr85403.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-fcf-protection -mcet" } */ +/* { dg-require-ifunc "" } */ + +__attribute__((target_clones("avx","arch=slm","arch=core-avx2","default"))) +int +foo () +{ + return -2; +} /* { dg-error "requires Intel CET support" } */ From-SVN: r259400
2018-04-16Fixed g++.dg/ext/mv16.C with -march=native.Olga Makhotina7-14/+52
gcc/ PR target/84331 * gcc/config.gcc: Support "skylake". * gcc/config/i386/i386-c.c (ix86_target_macros_internal): Handle PROCESSOR_SKYLAKE. * gcc/config/i386/i386.c (m_SKYLAKE): Define. (processor_target_table): Add "skylake". (ix86_option_override_internal): Add "skylake". (get_builtin_code_for_version): Handle PROCESSOR_SKYLAKE, PROCESSOR_CANNONLAKE. (get_builtin_code_for_version): Fix priority for PROCESSOR_ICELAKE_CLIENT, PROCESSOR_ICELAKE_SERVER, PROCESSOR_SKYLAKE-AVX512. * gcc/config/i386/i386.h (processor_costs): Define TARGET_SKYLAKE. (processor_type): Add PROCESSOR_SKYLAKE. gcc/testsuite/ PR target/84331 * gcc/testsuite/gcc.target/i386/funcspec-56.inc: Test arch=skylake. From-SVN: r259399
2018-04-16re PR target/84945 (UBSAN: gcc/config/i386/i386.c:33312:22: runtime error: ↵Jakub Jelinek2-1/+15
shift exponent 32 is too large for 32-bit type 'int') PR target/84945 * config/i386/cpuinfo.c (set_feature): Wrap into do while (0) to avoid -Wdangling-else warnings. Mask shift counts to avoid -Wshift-count-negative and -Wshift-count-overflow false positives. From-SVN: r259398
2018-04-16re PR c++/85112 (ICE with invalid constexpr)Paolo Carlini4-2/+35
2018-04-16 Paolo Carlini <paolo.carlini@oracle.com> Jason Merrill <jason@redhat.com> PR c++/85112 * convert.c (convert_to_integer_1): Use direct recursion for enumeral types and types with a precision less than the number of bits in their mode. /testsuite 2018-04-16 Paolo Carlini <paolo.carlini@oracle.com> Jason Merrill <jason@redhat.com> PR c++/85112 * g++.dg/cpp0x/pr85112.C: New. Co-Authored-By: Jason Merrill <jason@redhat.com> From-SVN: r259397
2018-04-16Make Filesystem TS tests pass in C++17 modeJonathan Wakely65-65/+165
The <testsuite_fs.h> header defaults to using std::filesystem in C++17 mode. The Filesystem TS tests need to define the macro that causes std::experimental::filesystem to be used instead. * testsuite/experimental/filesystem/file_status/1.cc: Add -DUSE_FILESYSTEM_TS to dg-options. * testsuite/experimental/filesystem/iterators/directory_iterator.cc: Likewise. * testsuite/experimental/filesystem/iterators/pop.cc: Likewise. * testsuite/experimental/filesystem/iterators/ recursive_directory_iterator.cc: Likewise. * testsuite/experimental/filesystem/operations/absolute.cc: Likewise. * testsuite/experimental/filesystem/operations/canonical.cc: Likewise. * testsuite/experimental/filesystem/operations/copy.cc: Likewise. * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise. * testsuite/experimental/filesystem/operations/create_directories.cc: Likewise. * testsuite/experimental/filesystem/operations/create_directory.cc: Likewise. * testsuite/experimental/filesystem/operations/create_symlink.cc: Likewise. * testsuite/experimental/filesystem/operations/current_path.cc: Likewise. * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise. * testsuite/experimental/filesystem/operations/exists.cc: Likewise. * testsuite/experimental/filesystem/operations/file_size.cc: Likewise. * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise. * testsuite/experimental/filesystem/operations/last_write_time.cc: Likewise. * testsuite/experimental/filesystem/operations/permissions.cc: Likewise. * testsuite/experimental/filesystem/operations/read_symlink.cc: Likewise. * testsuite/experimental/filesystem/operations/remove.cc: Likewise. * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise. * testsuite/experimental/filesystem/operations/status.cc: Likewise. * testsuite/experimental/filesystem/operations/temp_directory_path.cc: Likewise. * testsuite/experimental/filesystem/path/append/path.cc: Likewise. * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise. * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise. * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise. * testsuite/experimental/filesystem/path/compare/path.cc: Likewise. * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise. * testsuite/experimental/filesystem/path/concat/path.cc: Likewise. * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise. * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise. * testsuite/experimental/filesystem/path/construct/default.cc: Likewise. * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise. * testsuite/experimental/filesystem/path/construct/range.cc: Likewise. * testsuite/experimental/filesystem/path/construct/string_view.cc: Likewise. * testsuite/experimental/filesystem/path/decompose/extension.cc: Likewise. * testsuite/experimental/filesystem/path/decompose/filename.cc: Likewise. * testsuite/experimental/filesystem/path/decompose/parent_path.cc: Likewise. * testsuite/experimental/filesystem/path/decompose/relative_path.cc: Likewise. * testsuite/experimental/filesystem/path/decompose/root_directory.cc: Likewise. * testsuite/experimental/filesystem/path/decompose/root_name.cc: Likewise. * testsuite/experimental/filesystem/path/decompose/root_path.cc: Likewise. * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise. * testsuite/experimental/filesystem/path/generic/generic_string.cc: Likewise. * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise. * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise. * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc: Likewise. * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc: Likewise. * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc: Likewise. * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc: Likewise. * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise. * testsuite/experimental/filesystem/path/native/string.cc: Likewise. * testsuite/experimental/filesystem/path/nonmember/hash_value.cc: Likewise. * testsuite/experimental/filesystem/path/query/empty.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_extension.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_filename.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_parent_path.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_relative_path.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_root_directory.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_root_name.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_root_path.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise. * testsuite/experimental/filesystem/path/query/is_relative.cc: Likewise. From-SVN: r259396
2018-04-16Add sse_unaligned_load_optimal and sse_unaligned_store_optimal to Skylake.Julia Koval2-2/+9
gcc/ PR target/84413 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL, X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Add m_SKYLAKE_AVX512 From-SVN: r259395
2018-04-16re PR testsuite/85326 (`make check` fails with `--disable-bootstrap` and ↵Bill Schmidt3-3/+10
`--enable-languages=c`) [gcc/testsuite] 2018-04-15 Bill Schmidt <wschmidt@linux.ibm.com> PR testsuite/85326 * g++.dg/ext/undef-bool-1.C: New file. * gcc.target/powerpc/powerpc.exp: Remove .C support. * gcc.target/powerpc/undef-bool-1.C: Remove file. From-SVN: r259393
2018-04-16Daily bump.GCC Administrator1-1/+1
From-SVN: r259392
2018-04-15Daily bump.GCC Administrator1-1/+1
From-SVN: r259389
2018-04-14rs6000: Disable -m[no-]direct-move (PR85293)Segher Boessenkool7-31/+20
The -mno-direct-move option causes a lot of problems, since it forces us to be able to generate code for p8 and up with some crucial instructions missing. This patch removes the -m[no-]direct-move options so that the user cannot put us into this unexpected situation anymore. Internally we still have all the same flags, and they are automatically set based on -mcpu; getting rid of that is a lot more work and will have to wait for GCC 9 (in some places the flag is used to see if we are compiling for a p8 _at all_). PR target/85293 * config/rs6000/rs6000.opt (mdirect-move): Make deprecated. * doc/invoke.texi (RS/6000 and PowerPC Options): Remove -mdirect-move and -mno-direct-move. gcc/testsuite/ PR target/85293 * gcc.target/powerpc/pr80098-2.c: Remove -mdirect-move. Remove the corresponding dg-error clause. * gcc.target/powerpc/pr80098-3.c: Ditto. * gcc.target/powerpc/pr80103-1.c: Delete. From-SVN: r259386
2018-04-14re PR fortran/81773 ([Coarray] Get with vector index on lhs leads to ↵Andre Vehreschild7-27/+197
incorrect caf_get_by_ref() call.) gcc/fortran/ChangeLog: 2018-04-14 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/81773 PR fortran/83606 * dependency.c (gfc_dep_resolver): Coarray indexes are to be ignored during dependency computation. They define no data dependency. * trans-array.c (conv_array_index_offset): The stride can not be set here, prevent fail. * trans-intrinsic.c (conv_caf_send): Add creation of temporary array for caf_get's result and copying to the array with vectorial indexing. gcc/testsuite/ChangeLog: 2018-04-14 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/81773 PR fortran/83606 * gfortran.dg/coarray/get_to_indexed_array_1.f90: New test. * gfortran.dg/coarray/get_to_indirect_array.f90: New test. From-SVN: r259385
2018-04-14re PR fortran/85387 (incorrect output with optimization /= 0)Thomas Koenig4-0/+43
2018-04-14 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85387 * frontend-passes.c (traverse_io_block): Check for start, end or stride being defined by an outer implied DO loop. 2018-04-14 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85387 * gfortran.dg/implied_do_io_5.f90: New test. From-SVN: r259384
2018-04-14Daily bump.GCC Administrator1-1/+1
From-SVN: r259383
2018-04-14rs6000: Fix _mm_slli_epi{32,64} for shift values 16 through 31 and negative ↵Paul A. Clarke6-80/+144
(PR84302) The powerpc versions of _mm_slli_epi32 and __mm_slli_epi64 in emmintrin.h do not properly handle shift values between 16 and 31, inclusive. These are setting up the shift with vec_splat_s32, which only accepts *5 bit signed* shift values, or a range of -16 to 15. Values above 15 produce an error: error: argument 1 must be a 5-bit signed literal Fix is to effectively reduce the range for which vec_splat_s32 is used to < 32 and use vec_splats otherwise. Also, __mm_slli_epi{16,32,64}, when given a negative shift value, should always return a vector of {0}. PR target/83402 * config/rs6000/emmintrin.h (_mm_slli_epi{16,32,64}): Ensure that vec_splat_s32 is only called with 0 <= shift < 16. Ensure negative shifts result in {0}. gcc/testsuite/ PR target/83402 * gcc.target/powerpc/sse2-psllw-1.c: Refactor and add tests for several values: positive, negative, and zero. * gcc.target/powerpc/sse2-pslld-1.c: Same. * gcc.target/powerpc/sse2-psllq-1.c: Same. From-SVN: r259380
2018-04-13re PR rtl-optimization/79916 (ICE in Max. number of generated reload insns ↵Vladimir Makarov4-4/+580
per insn is achieved (90)) 2018-04-13 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/79916 * config/rs6000/rs6000.c (rs6000_emit_move): Use assigned hard regs (if any) to define how to gnerate SD moves when LRA is in progress. 2018-04-13 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/79916 * gcc.target/powerpc/pr79916.c: New. From-SVN: r259379
2018-04-13re PR rtl-optimization/85393 (Miscompilation with hot/cold partitioning ↵Jakub Jelinek7-15/+56
starting with r254832) PR rtl-optimization/85393 * except.h (expand_dw2_landing_pad_for_region): Remove declaration. * except.c (expand_dw2_landing_pad_for_region): Make static. * bb-reorder.c (fix_up_crossing_landing_pad): In new_bb emit just a label and unconditional jump to old_bb, rather than expand_dw2_landing_pad_for_region insn(s) and jump to single_succ basic block. * g++.dg/opt/pr85393.C: New test. * g++.dg/opt/pr85393-aux.cc: New file. From-SVN: r259378
2018-04-13re PR rtl-optimization/85376 (wrong code with -Og -fno-dce -fgcse ↵Jakub Jelinek4-2/+46
-fno-tree-ccp -fno-tree-copy-prop) PR rtl-optimization/85376 * simplify-rtx.c (simplify_const_unary_operation): For CLZ and CTZ and zero op0, if C?Z_DEFINED_VALUE_AT_ZERO is false, return NULL_RTX instead of a specific value. * gcc.dg/pr85376.c: New test. From-SVN: r259377
2018-04-13Fix broken sed command from previous commitJonathan Wakely3-2/+5
* src/c++11/Makefile.am: Fix sed command. * src/c++11/Makefile.in: Regenerate. From-SVN: r259374
2018-04-13re PR rtl-optimization/83852 (ICE in sel_redirect_edge_and_branch, at ↵Andrey Belevantsev2-0/+38
sel-sched-ir.c:5644 on 32-bit BE powerpc targets) PR rtl-optimization/83852 * gcc.dg/pr83852.c: New testcase. From-SVN: r259373
2018-04-13Fix __iosfail_type_info hack to work on darwinJonathan Wakely3-9/+8
* src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to handle mangled names starting with double underscores on darwin. * src/c++11/Makefile.in: Regenerate. From-SVN: r259371
2018-04-13IBM Z: Get rid of target specific C++ testcaseAndreas Krebbel4-12/+27
gcc/testsuite/ChangeLog: 2018-04-13 Andreas Krebbel <krebbel@linux.ibm.com> PR testsuite/85326 * gcc.target/s390/pr77822-1.C: Rename to ... * gcc.target/s390/pr77822-1.c: ... this. Add asm scan check. * gcc.target/s390/pr77822-2.c: Add asm scan check. * gcc.target/s390/s390.exp: Remove C from testcase regexps. From-SVN: r259369
2018-04-13re PR tree-optimization/82965 (gcc.dg/vect/pr79347.c starts failing after ↵Jan Hubicka4-59/+116
r254379) PR tree-optimization/82965 PR tree-optimization/83991 * cfgloopanal.c (expected_loop_iterations_unbounded): Add by_profile_only parameter. * cfgloopmanip.c (scale_loop_profile): Further scale loop's profile information if the loop was predicted to iterate too many times. * cfgloop.h (expected_loop_iterations_unbounded): Update prototype Co-Authored-By: Bin Cheng <bin.cheng@arm.com> From-SVN: r259368
2018-04-13re PR target/71991 (Inconsistency for __attribute__ ((__always_inline__)) ↵Jan Hubicka4-3/+45
among LTO and non-LTO compilation) PR lto/71991 * config/i386/i386.c (ix86_can_inline_p): Allow safe transitions for always inline. * gcc.target/i386/pr71991.c: New testcase. From-SVN: r259367
2018-04-13re PR middle-end/81657 (FAIL: gcc.dg/20050503-1.c scan-assembler-not call)Martin Liska6-10/+41
PR middle-end/81657 * expr.h (enum block_op_methods): Add BLOCK_OP_NO_LIBCALL_RET. * expr.c (emit_block_move_hints): Handle BLOCK_OP_NO_LIBCALL_RET. * builtins.c (expand_builtin_memory_copy_args): Use BLOCK_OP_NO_LIBCALL_RET method for mempcpy with non-ignored target, handle dest_addr == pc_rtx. * gcc.dg/string-opt-1.c: Remove bogus comment. Expect a mempcpy call. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r259366
2018-04-13Fix gcc.dg/debug/pr41893-1.c with Solaris ld (PR lto/81968)Rainer Orth2-0/+11
PR lto/81968 * simple-object.c (handle_lto_debug_sections): Keep .comment section. From-SVN: r259364
2018-04-13Daily bump.GCC Administrator1-1/+1
From-SVN: r259363
2018-04-12Prevent erroneous "macro had not yet been defined" messages (PR c++/85385)David Malcolm4-10/+96
PR c++/85385 reports an issue where we emit bogus "macro had not yet been defined" notes when a macro is mis-used: $ cat test.c #define MACRO(X,Y) void test () { MACRO(42); } $ ./xg++ -B. -c test.c test.c:5:11: error: macro "MACRO" requires 2 arguments, but only 1 given MACRO(42); ^ test.c: In function ‘void test()’: test.c:5:3: error: ‘MACRO’ was not declared in this scope MACRO(42); ^~~~~ test.c:5:3: note: test.c:1: note: it was later defined here #define MACRO(X,Y) The macro *had* been defined, it was merely misused. This patch fixes the issue by only issuing the note if the use location is before the definition location (using linemap_location_before_p). gcc/cp/ChangeLog: PR c++/85385 * name-lookup.c (macro_use_before_def::maybe_make): New function, checking that the use is indeed before the definition. (macro_use_before_def::macro_use_before_def): Make private. (macro_use_before_def::~macro_use_before_def): Make private. Move check for UNKNOWN_LOCATION to macro_use_before_def::maybe_make. (lookup_name_fuzzy): Call macro_use_before_def::maybe_make rather than using new directly. gcc/testsuite/ChangeLog: PR c++/85385 * g++.dg/diagnostic/macro-arg-count.C: New test. From-SVN: r259360
2018-04-12re PR fortran/83064 (DO CONCURRENT and auto-parallelization)Thomas Koenig6-9/+46
2018-04-12 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83064 PR testsuite/85346 * trans-stmt.c (gfc_trans_forall_loop): Use annot_expr_ivdep_kind for annotation and remove dependence on -ftree-parallelize-loops. 2018-04-12 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83064 PR testsuite/85346 * gfortran.dg/do_concurrent_5.f90: Dynamically allocate main work array and move test to libgomp/testsuite/libgomp.fortran. * gfortran.dg/do_concurrent_6.f90: New test. 2018-04-12 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83064 PR testsuite/85346 * testsuite/libgomp.fortran/do_concurrent_5.f90: Move modified test from gfortran.dg to here. From-SVN: r259359
2018-04-12Fix comments that misspell names of files and classesJonathan Wakely5-5/+10
* src/c++11/Makefile.am: Fix comment. * src/c++11/Makefile.in: Regenerate. * src/c++11/cxx11-ios_failure.cc: Fix comment. * src/c++98/ios_failure.cc: Likewise. From-SVN: r259357
2018-04-12PR c++/85356 - ICE with pointer to member function.Jason Merrill5-5/+35
* pt.c (maybe_instantiate_noexcept): Do instantiate in templates if flag_noexcept_type. Build the new spec within the function context. * except.c (build_noexcept_spec): Do get constant value in templates if flag_noexcept_type. * decl.c (check_redeclaration_exception_specification): Don't instantiate noexcept on a dependent declaration. From-SVN: r259356
2018-04-12re PR c++/85258 (ICE with invalid range-based for-loop)Marek Polacek4-3/+30
PR c++/85258 * constexpr.c (reduced_constant_expression_p): Return false for null trees. * g++.dg/parse/error61.C: New test. From-SVN: r259355
2018-04-12rs6000: Fix an ICE with -mno-direct-move (PR85291)Segher Boessenkool2-3/+12
PR target/85291 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Use legacy code if asked to not generate direct moves. (fix_trunc<mode>si2_stfiwx): Similar. (fix_trunc<mode>si2_internal): Similar. From-SVN: r259354
2018-04-12re PR debug/83157 (gcc.dg/guality/pr41616-1.c fail, inline instances refer ↵Jakub Jelinek3-1/+77
to concrete instance as abstract origin) PR debug/83157 * var-tracking.c (add_stores): Handle STRICT_LOW_PART SET_DEST. * cselib.c (cselib_record_sets): For STRICT_LOW_PART dest, lookup if dest in some wider mode is known to be const0_rtx and if so, record permanent equivalence for it to be ZERO_EXTEND of the narrower mode destination. From-SVN: r259353
2018-04-12Revert 259346.Cesar Philippidis6-54/+12
gcc/ * lto-streamer-out.c (output_function): Revert 259346. * omp-expand.c (expand_oacc_for): Likewise. libgomp/ * testsuite/libgomp.oacc-c-c++-common/pr84955.c: Revert 259346. * testsuite/libgomp.oacc-fortran/pr84955.f90:Likewise. From-SVN: r259351
2018-04-12re PR target/85347 (New testcase vec-ldl-1.c FAILs on powerpc64-linux)Kelvin Nilsen2-2/+8
gcc/testsuite/ChangeLog: 2018-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org> PR target/85347 * gcc.target/powerpc/vec-ldl-1.c: Change dejagnu directives to specify -mvsx on gcc command line. From-SVN: r259350
2018-04-12Remove #define made redundant by r259281Jonathan Wakely2-4/+4
The definition of __throw_ios_failure is no longer in this file, so setting the macro here is unnecessary. * src/c++11/ios.cc: Remove redundant macro definition. From-SVN: r259349
2018-04-12sel-sched: move cleanup_cfg before calculate_dominance_info (PR 85354)Alexander Monakov3-4/+11
PR rtl-optimization/85354 * sel-sched-ir.c (sel_init_pipelining): Move cfg_cleanup call... * sel-sched.c (sel_global_init): ... here. From-SVN: r259348
2018-04-12re PR target/85238 (lto-wrapper: fatal error: ↵Eric Botcazou6-2/+45
simple_object_copy_lto_debug_sections not implemented: Invalid argument on Cygwin) PR target/85238 * lto-wrapper.c (debug_objcopy): Open the files in binary mode. * dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO mode for PE-COFF targets. * config/i386/i386-protos.h (i386_pe_asm_lto_start): Declare. (i386_pe_asm_lto_end): Likewise. * config/i386/cygming.h (TARGET_ASM_LTO_START): Define. (TARGET_ASM_LTO_END): Likewise. * config/i386/winnt.c (saved_debug_info_level): New static variable. (i386_pe_asm_lto_start): New function. (i386_pe_asm_lto_end): Likewise. From-SVN: r259347