- 19 Oct, 2018 8 commits
-
-
This fixes the following testsuite failures on ia32 when compiled with -D_GLIBCXX_DEBUG: FAIL: 23_containers/map/modifiers/erase/dr130-linkage-check.cc FAIL: 23_containers/multimap/modifiers/erase/dr130-linkage-check.cc FAIL: 23_containers/multiset/modifiers/erase/dr130-linkage-check.cc FAIL: 23_containers/set/modifiers/erase/dr130-linkage-check.cc The normal mode containers already use the abi-tag to mangle these overloads differently, but the debug mode versions weren't fixed. * include/debug/map.h (map::erase(iterator)): Add abi-tag so that C++11 version mangles differently from incompatible C++98 version. * include/debug/multimap.h (multimap::erase(iterator)): Likewise. * include/debug/multiset.h (multiset::erase(iterator)) (multiset::erase(const_iterator, const_iterator)): Likewise. * include/debug/set.h (set::erase(iterator)) (multiset::erase(const_iterator, const_iterator)): Likewise. From-SVN: r265313
Jonathan Wakely committed -
From-SVN: r265312
Eric Botcazou committed -
Many AVX512 vector operations can broadcast from a scalar memory source. This patch enables memory broadcast for FP add operations. gcc/ PR target/72782 * config/i386/sse.md (*<plusminus_insn><mode>3<mask_name>_bcst_1): New. (*add<mode>3<mask_name>_bcst_2): Likewise. gcc/testsuite/ PR target/72782 * gcc.target/i386/avx512-binop-1.h: New file. * gcc.target/i386/avx512-binop-2.h: Likewise. * gcc.target/i386/avx512-binop-3.h: Likewise. * gcc.target/i386/avx512-binop-4.h: Likewise. * gcc.target/i386/avx512-binop-5.h: Likewise. * gcc.target/i386/avx512-binop-6.h: Likewise. * gcc.target/i386/avx512f-add-df-zmm-1.c: Likewise. * gcc.target/i386/avx512f-add-sf-zmm-1.c: Likewise. * gcc.target/i386/avx512f-add-sf-zmm-2.c: Likewise. * gcc.target/i386/avx512f-add-sf-zmm-3.c: Likewise. * gcc.target/i386/avx512f-add-sf-zmm-4.c: Likewise. * gcc.target/i386/avx512f-add-sf-zmm-5.c: Likewise. * gcc.target/i386/avx512f-add-sf-zmm-6.c: Likewise. * gcc.target/i386/avx512f-sub-df-zmm-1.c: Likewise. * gcc.target/i386/avx512f-sub-sf-zmm-1.c: Likewise. * gcc.target/i386/avx512f-sub-sf-zmm-2.c: Likewise. * gcc.target/i386/avx512f-sub-sf-zmm-3.c: Likewise. * gcc.target/i386/avx512f-sub-sf-zmm-4.c: Likewise. * gcc.target/i386/avx512f-sub-sf-zmm-5.c: Likewise. * gcc.target/i386/avx512vl-add-sf-xmm-1.c: Likewise. * gcc.target/i386/avx512vl-add-sf-ymm-1.c: Likewise. * gcc.target/i386/avx512vl-sub-sf-xmm-1.c: Likewise. * gcc.target/i386/avx512vl-sub-sf-ymm-1.c: Likewise. From-SVN: r265311
H.J. Lu committed -
Use "register_operand" in AVX512 FMA with memory broadcast when only registers are allowed. * config/i386/sse.md (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1): Replace nonimmediate_operand with register_operand. (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2): Likewise. (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3): Likewise. From-SVN: r265310
H.J. Lu committed -
FROM..TO range might contain NOTE_INSN_DELETED insns, for which the corresponding entries in lra_insn_recog_data[] are NULLs. Example from the problematic code from PR87596: (note 148 154 68 7 NOTE_INSN_DELETED) lra_insn_recog_data[] is used directly only when the insn in question is taken from insn_bitmap, which is not the case here. In other situations lra_get_insn_recog_data () guarded by INSN_P () or other stricter predicate are used. So we need to do this here as well. A tiny detail worth noting: I put the INSN_P () check before the insn_bitmap check, because I believe that insn_bitmap can contain only real insns anyway. gcc/ChangeLog: 2018-10-19 Ilya Leoshkevich <iii@linux.ibm.com> PR rtl-optimization/87596 * lra-constraints.c (spill_hard_reg_in_range): Use INSN_P () + lra_get_insn_recog_data () instead of lra_insn_recog_data[] for instructions in FROM..TO range. gcc/testsuite/ChangeLog: 2018-10-19 Ilya Leoshkevich <iii@linux.ibm.com> PR rtl-optimization/87596 * gcc.target/i386/pr87596.c: New test. From-SVN: r265306
Ilya Leoshkevich committed -
* cfgexpand.c (expand_one_var): Use specific wording in error message for non-local frame variables. * stor-layout.c (layout_decl): Do not issue a warning for them. From-SVN: r265305
Eric Botcazou committed -
This patch recomputes the insn priority when a replacement for one of its dependent insns is applied. gcc/ChangeLog: * haifa-sched.c (priority): Add force_recompute parameter. (apply_replacement): Call priority () with force_recompute = true. (restore_pattern): Likewise. From-SVN: r265304
Robin Dapp committed -
From-SVN: r265303
GCC Administrator committed
-
- 18 Oct, 2018 27 commits
-
-
Normally aliases compare as identical to the underlying type. Add a COMPARE_ALIASES flag to let them compare (and hash) differently. This will be used by later patches in this series. Reviewed-on: https://go-review.googlesource.com/c/143021 From-SVN: r265297
Ian Lance Taylor committed -
Previously when export data referred to a type that was not defined in a directly imported package, we would write the package name as additional information in the type's export data. That approach required all type information to be read in order. This patch changes the compiler to find all references to indirectly imported packages, and write them out as an indirectimport line in the import data. This will permit us to read exported type data out of order. The type traversal used to find indirect imports is a little more complicated than necessary in preparation for later patches in this series. Reviewed-on: https://go-review.googlesource.com/c/143020 From-SVN: r265296
Ian Lance Taylor committed -
From-SVN: r265295
Ian Lance Taylor committed -
repo rather than to the master repo. From-SVN: r265294
Ian Lance Taylor committed -
A single flags parameter replaces the Cmp_tags and errors_are_identical parameters. The existing behavior is unchanged. This is a simplification step for future work that will add a new flag. Reviewed-on: https://go-review.googlesource.com/c/143019 From-SVN: r265293
Ian Lance Taylor committed -
Since mask of vec_merge is in HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT is the maximum number of vector elements. * simplify-rtx.c (simplify_subreg): Limit mask of vec_merge to HOST_BITS_PER_WIDE_INT. (test_vector_ops_duplicate): Likewise. From-SVN: r265290
H.J. Lu committed -
Many AVX512 vector operations can broadcast from a scalar memory source. This patch enables memory broadcast for FMA operations. gcc/ PR target/72782 * config/i386/sse.md (VF_AVX512): New. (avx512bcst): Likewise. (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1): Likewise. (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2): Likewise. (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3): Likewise. gcc/testsuite/ PR target/72782 * gcc.target/i386/avx512-fma-1.h: New file. * gcc.target/i386/avx512-fma-2.h: Likewise. * gcc.target/i386/avx512-fma-3.h: Likewise. * gcc.target/i386/avx512-fma-4.h: Likewise. * gcc.target/i386/avx512-fma-5.h: Likewise. * gcc.target/i386/avx512-fma-6.h: Likewise. * gcc.target/i386/avx512-fma-7.h: Likewise. * gcc.target/i386/avx512-fma-8.h: Likewise. * gcc.target/i386/avx512f-fmadd-df-zmm-1.c: Likewise. * gcc.target/i386/avx512f-fmadd-sf-zmm-1.c: Likewise. * gcc.target/i386/avx512f-fmadd-sf-zmm-2.c: Likewise. * gcc.target/i386/avx512f-fmadd-sf-zmm-3.c: Likewise. * gcc.target/i386/avx512f-fmadd-sf-zmm-4.c: Likewise. * gcc.target/i386/avx512f-fmadd-sf-zmm-5.c: Likewise. * gcc.target/i386/avx512f-fmadd-sf-zmm-6.c: Likewise. * gcc.target/i386/avx512f-fmadd-sf-zmm-7.c: Likewise. * gcc.target/i386/avx512f-fmadd-sf-zmm-8.c: Likewise. * gcc.target/i386/avx512vl-fmadd-sf-xmm-1.c: Likewise. * gcc.target/i386/avx512vl-fmadd-sf-ymm-1.c: Likewise. From-SVN: r265288
H.J. Lu committed -
* testsuite/20_util/duration/cons/2.cc: Add -ffloat-store to fix failure when compiled without optimisation. * testsuite/ext/profile/mutex_extensions_neg.cc: Prune additional errors caused by C++17 std::pmr alias templates. From-SVN: r265287
Jonathan Wakely committed -
If a locale's THOUSANDS_SEP or MON_THOUSANDS_SEP string is not a single character we either need to narrow it to a single char or ignore it (and therefore disable digit grouping for that facet). PR libstdc++/87642 * config/locale/gnu/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct): Use __narrow_multibyte_chars to convert multibyte thousands separators to a single char. * config/locale/gnu/numeric_members.cc (numpunct<char>::_M_initialize_numpunct): Likewise. (__narrow_multibyte_chars): New function. From-SVN: r265286
Jonathan Wakely committed -
The export data, which is approximately readable and looks something like Go, was first implemented back when Go still used semicolons. Drop the semicolons, to make it look slightly more Go like and make it slightly smaller. This updates the compiler and the gccgoimporter package. This introduces a new version of the export data. There are going to be more changes to the export data, so this version is still subject to change. Reviewed-on: https://go-review.googlesource.com/c/143018 From-SVN: r265284
Ian Lance Taylor committed -
PR fortran/87625 * trans-array.c (gfc_is_reallocatable_lhs): Detect allocatable polymorphic arrays. PR fortran/87625 * gfortran.dg/realloc_on_assign_31.f90: New file. From-SVN: r265283
Tobias Burnus committed -
* udivmodsi4.c (__udivmodsi4): Rename to conform to coding standard. * divmod.c: Update references to __udivmodsi4. * udivmod.c: Ditto. * udivhi3.c: New file. * udivmodhi4.c: New file. * config/pdp11/t-pdp11 (LIB2ADD): Add the new files. From-SVN: r265277
Paul Koning committed -
* doc/invoke.texi (-dumpversion): Improve grammar. (-dumpfullversion): Make more consistent with -dumpversion. From-SVN: r265276
Jonathan Wakely committed -
* config/i386/i386.c (ix86_emit_fp_unordered_jump): Set JUMP_LABEL to the jump insn. (ix86_emit_i387_log1p): Use ix86_expand_branch to expand branch. Predict emitted jump and add label to jump insn. From-SVN: r265274
Uros Bizjak committed -
From-SVN: r265272
David Malcolm committed -
In r264887 I broke the build of 502.gcc_r due to an ICE. The ICE occurs when generating a location for an sprintf warning within a string literal, where the sprintf call is in a macro. The root cause is a bug in the original commit of substring locations (r239175). get_substring_ranges_for_loc has code to handle the case where the string literal is in a very long source line that exceeds the length that the current linemap can represent: the start of the token is in one line map, but then another line map is started, and the end of the token is in the new linemap. get_substring_ranges_for_loc handles this by using the linemap of the end-point when building location_t values within the string. When extracting the linemap for the endpoint in r239175 I erroneously used LRK_MACRO_EXPANSION_POINT, which should have instead been LRK_SPELLING_LOCATION. I believe this bug was dormant due to rejecting macro locations earlier in the function, but in r264887 I allowed some macro locations in order to deal with locations coming from the C++ lexer, and this uncovered the bug: if a string literal was defined in a macro, locations within the string literal would be looked up using the linemap of the expansion point of the macro, rather than of the spelling point. This would lead to garbage location_t values, and, depending on the precise line numbers of the two locations, an assertion failure (which was causing the build failure in 502.gcc_r). This patch fixes the bug by using LRK_SPELLING_LOCATION, and adds some bulletproofing to the "two linemaps" case. Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu (g++.sum gained 5 PASS results; gcc.sum gained 3 PASS results). I also verified that this fixes the build of 502.gcc_r. gcc/ChangeLog: PR tree-optimization/87562 * input.c (get_substring_ranges_for_loc): Use LRK_SPELLING_LOCATION rather than LRK_MACRO_EXPANSION_POINT when getting the linemap for the endpoint. Verify that it's either in the same linemap as the start point's spelling location, or at least in the same file. gcc/testsuite/ChangeLog: PR tree-optimization/87562 * c-c++-common/substring-location-PR-87562-1-a.h: New file. * c-c++-common/substring-location-PR-87562-1-b.h: New file. * c-c++-common/substring-location-PR-87562-1.c: New test. * gcc.dg/plugin/diagnostic-test-string-literals-1.c: Add test for PR 87562. * gcc.dg/plugin/pr87562-a.h: New file. * gcc.dg/plugin/pr87562-b.h: New file. From-SVN: r265271
David Malcolm committed -
Use the value of the first element as the initial value of the __valarray_sum accumulator. Value-initialization might not create the additive identity for the value type. Make a similar change to __valarray_product even though it's only ever used internally with a value_type of size_t. PR libstdc++/87641 * include/bits/valarray_array.h (__valarray_sum): Use first element to initialize accumulator instead of value-initializing it. (__valarray_product<_Tp>): Move to ... * src/c++98/valarray.cc (__valarray_product<_Tp>): Here. Use first element to initialize accumulator. (__valarray_product(const valarray<size_t>&)): Remove const_cast made unnecessary by LWG 389. * testsuite/26_numerics/valarray/87641.cc: New test. From-SVN: r265270
Jonathan Wakely committed -
i386.c (ix86_builtin_vectorization_cost): Do not feed width-specific load/store costs through ix86_vec_cost. 2018-10-18 Richard Biener <rguenther@suse.de> * config/i386/i386.c (ix86_builtin_vectorization_cost): Do not feed width-specific load/store costs through ix86_vec_cost. * config/i386/x86-tune-costs.h (athlon_cost): Adjust. (k8_cost): Likewise. (bdver_cost): Likewise. (znver1_cost): Likewise. (btver1_cost): Likewise. (btver2_cost): Likewise. From-SVN: r265268
Richard Biener committed -
Simplify (subreg (vec_merge (X) (vector) (const_int ((1 << N) | M))) (N * sizeof (outermode))) to (subreg (X) (N * sizeof (outermode))) * simplify-rtx.c (simplify_subreg): Call simplify_gen_subreg to simplify subreg of vec_merge. From-SVN: r265267
H.J. Lu committed -
2018-10-18 Richard Biener <rguenther@suse.de> * config/i386/i386.c: Fix costing of vector FMA. From-SVN: r265266
Richard Biener committed -
2018-10-18 Richard Biener <rguenther@suse.de> * config/i386/i386.c (ix86_vec_cost): Remove !parallel path and argument. (ix86_builtin_vectorization_cost): For vec_construct properly cost insertion into SSE regs. (...): Adjust calls to ix86_vec_cost. From-SVN: r265265
Richard Biener committed -
2018-10-18 Paul Thomas <pault@gcc.gnu.org> PR fortran/58618 * trans-stmt.c (trans_associate_var): All strings that return as pointer types can be assigned directly to the associate name so remove 'attr' and the condition that uses it. 2018-10-18 Paul Thomas <pault@gcc.gnu.org> PR fortran/58618 * gfortran.dg/associate_45.f90 : New test. From-SVN: r265264
Paul Thomas committed -
2018-10-18 Paul Thomas <pault@gcc.gnu.org> PR fortran/58618 * trans-decl.c (gfc_get_symbol_decl): Deal correctly with the initialization with NULL() of a deferred length pointer. 2018-10-18 Paul Thomas <pault@gcc.gnu.org> PR fortran/58618 * gfortran.dg/deferred_character_30.f90 : New test. From-SVN: r265263
Paul Thomas committed -
2018-10-18 Richard Biener <rguenther@suse.de> PR middle-end/87087 Revert 2018-02-07 Richard Biener <rguenther@suse.de> PR tree-optimization/84204 * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in this place. * gcc.dg/torture/pr87087.c: New testcase. * gcc.dg/graphite/pr84204.c: XFAIL. * gcc.dg/graphite/pr85935.c: Likewise. From-SVN: r265261
Richard Biener committed -
We can simplify (subreg (vec_merge (vec_duplicate X) (vector) (const_int ((1 << N) | M))) (N * sizeof (X))) to X when mode of X is the same as of mode of subreg. gcc/ PR target/87537 * simplify-rtx.c (simplify_subreg): Simplify subreg of vec_merge of vec_duplicate. (test_vector_ops_duplicate): Add test for a scalar subreg of a VEC_MERGE of a VEC_DUPLICATE. gcc/testsuite/ PR target/87537 * gcc.target/i386/pr87537-1.c: New test. From-SVN: r265260
H.J. Lu committed -
2018-10-18 François Dumont <fdumont@gcc.gnu.org> Partial revert. 2018-10-08 François Dumont <fdumont@gcc.gnu.org> * include/debug/list (list<>::cbegin()): Use C++11 direct initialization. (list<>::cend()): Likewise. (list<>::erase(const_iterator, const_iterator)): Ensure consistent iterator comparisons. (list<>::splice(const_iterator, list&&, const_iterator, const_iterator)): Likewise. Partial revert. 2018-10-15 François Dumont <fdumont@gcc.gnu.org> * include/debug/vector (vector<>::cbegin()): Use C++11 direct initialization. (vector<>::cend()): Likewise. (vector<>::insert(const_iterator, const _Tp&)): Use consistent iterator comparison. (vector<>::erase(const_iterator)): Likewise. (vector<>::erase(const_iterator, const_iterator)): Likewise. From-SVN: r265259
François Dumont committed -
From-SVN: r265255
GCC Administrator committed
-
- 17 Oct, 2018 5 commits
-
-
Now new features are starting to be added to a C2X draft (in the C2x branch of the C standard git repository, no public WG14 document yet), it's time to add -std=c2x and associated options to GCC for use in enabling C2X features. This patch adds the expected set of options: -std=c2x, -std=gnu2x, -Wc11-c2x-compat. A first C2X feature is added (the only one so far in the repository that's obviously relevant to GCC): support (as in C++) for the string constant to be omitted in _Static_assert. This feature is duly also supported as an extension in earlier standard modes (diagnosed with -pedantic, unless -Wno-c11-c2x-compat is given, or with -Wc11-c2x-compat even in C2X mode). Bootstrapped with no regressions on x86_64-pc-linux-gnu. gcc/ * doc/cpp.texi (__STDC_VERSION__): Document C2X handling. * doc/invoke.texi (-std=c2x, -std=gnu2x): Document new options. * doc/standards.texi (C Language): Document C2X. * dwarf2out.c (highest_c_language), config/rl78/rl78.c (rl78_option_override): Handle "GNU C2X" language name. gcc/c/ * c-errors.c (pedwarn_c11): New function. * c-parser.c (disable_extension_diagnostics): Save warn_c11_c2x_compat and set it to 0. (restore_extension_diagnostics): Restore warn_c11_c2x_compat. (c_parser_static_assert_declaration_no_semi): Handle _Static_assert without string constant. * c-tree.h (pedwarn_c11): New prototype. gcc/c-family/ * c-common.c (flag_isoc2x): New variable. * c-common.h (clk_c): Update comment to reference C2X. (flag_isoc99, flag_isoc11): Update comments to reference future standard versions in general. (flag_isoc2x): Declare. * c-opts.c (set_std_c2x): New function. (c_common_handle_option): Handle -std=c2x and -std=gnu2x. (set_std_c89, set_std_c99, set_std_c11, set_std_c17): Set flag_isoc2x to 0. * c.opt (Wc11-c2x-compat, std=c2x, std=gnu2x): New options. gcc/testsuite/ * gcc.dg/c11-static-assert-7.c, gcc.dg/c11-static-assert-8.c, gcc.dg/c11-static-assert-9.c, gcc.dg/c2x-static-assert-1.c, gcc.dg/c2x-static-assert-2.c, gcc.dg/c99-static-assert-2.c, gcc.dg/gnu2x-static-assert-1.c: New tests. * gcc.dg/missing-symbol-3.c: Update expected fix-it text. libcpp/ * include/cpplib.h (enum c_lang): Add CLK_GNUC2X and CLK_STDC2X. * init.c (lang_defaults): Add GNUC2X and STDC2X entries. (cpp_init_builtins): Define __STDC_VERSION__ to 202000L for C2X. From-SVN: r265251
Joseph Myers committed -
* c.opt (std=c17, std=c18, std=gnu17, std=gnu18, std=iso9899:2017) (std=iso9899:2018): Document C17 as published in 2018. From-SVN: r265250
Joseph Myers committed -
This patch makes references in the manual to C17 reflect it having been published in July 2018. (For the reasons it took so long to get to ballot and publication, see the WG14 convenor's report to the last SC22 plenary - SC22 N5297 - where it references "A troubling new trend where ISO CS has begun enforcing undocumented rules that are approved neither by the TMB nor by the WG 14 editors, leading to a decrease in the usefulness of standards documents.".) Tested with "make info html pdf". * doc/invoke.texi (-std=c17), doc/standards.texi (C Language): Document C17 as published in 2018. From-SVN: r265249
Joseph Myers committed -
PR fortran/87632 * resolve.c (resolve_select_type): Use correct variable. PR fortran/87632 * gfortran.dg/select_type_47.f90: New. From-SVN: r265248
Tobias Burnus committed -
PR libstdc++/87619 * include/std/variant (__select_index): Fix an off-by-one. * testsuite/20_util/variant/87619.cc: New. From-SVN: r265247
Ville Voutilainen committed
-