aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-10-26Make more use of df_read_modify_subreg_pRichard Sandiford6-44/+34
This patch uses df_read_modify_subreg_p to check whether writing to a subreg would preserve some of the existing contents. This has the effect of putting more emphasis on the REGMODE_NATURAL_SIZE-based definition of whether something can be partially modified, instead of using UNITS_PER_WORD unconditionally. This becomes important for SVE, where UNITS_PER_WORD has no significance for subregs of multi-register LD2/ST2, LD3/ST3 and LD4/ST4 tuples. 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * caller-save.c (mark_referenced_regs): Use read_modify_subreg_p. * combine.c (find_single_use_1): Likewise. (expand_field_assignment): Likewise. (move_deaths): Likewise. * lra-constraints.c (simplify_operand_subreg): Likewise. (curr_insn_transform): Likewise. * lra.c (collect_non_operand_hard_regs): Likewise. (add_regs_to_insn_regno_info): Likewise. * rtlanal.c (reg_referenced_p): Likewise. (covers_regno_no_parallel_p): Likewise. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r254110
2017-10-26Stop print_hex from printing bits above the precisionRichard Sandiford3-18/+33
2017-10-26 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * wide-int-print.cc (print_hex): Loop based on extract_uhwi. Don't print any bits outside the precision of the value. * wide-int.cc (test_printing): Add some new tests. From-SVN: r254109
2017-10-26[obvious][arm testsuite] Fixup expected location in require-pic-register-loc.cJames Greenhalgh2-5/+10
After r254010 we now add -gcolumn-info by default, that means the tests in gcc.target/arm/require-pic-register-loc.c need adjusting to not expect to see column zero. gcc/testsuite/ * gcc.target/arm/require-pic-register-loc.c: Use wider regex for column information. From-SVN: r254106
2017-10-26[C++ PATCH] Kill IDENTIFIER_LABEL_VALUENathan Sidwell2-16/+43
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01935.html * decl.c (sort_labels): Restore function. (pop_labels): Sort labels (identify_goto): Add translation markup. From-SVN: r254104
2017-10-26Use -xbrace_comment=no with recent Solaris/x86 asRainer Orth5-1/+61
* configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler supports -xbrace_comment option. * configure: Regenerate. * config.in: Regenerate. * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define. (ASM_CPU_SPEC): Use it. From-SVN: r254103
2017-10-26This patch adds a new hook that gives the preferred alignment for a static ↵Richard Sandiford11-15/+118
rtx... TARGET_STATIC_RTX_ALIGNMENT This patch adds a new hook that gives the preferred alignment for a static rtx, so that we don't need to query the front end in force_const_mem. 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * target.def (static_rtx_alignment): New hook. * targhooks.h (default_static_rtx_alignment): Declare. * targhooks.c (default_static_rtx_alignment): New function. * doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook. * doc/tm.texi: Regenerate. * varasm.c (force_const_mem): Use targetm.static_rtx_alignment instead of targetm.constant_alignment. Remove call to set_mem_attributes. * config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine. (cris_preferred_mininum_alignment): New function, split out from... (cris_constant_alignment): ...here. (cris_static_rtx_alignment): New function. * config/i386/i386.c (ix86_static_rtx_alignment): New function, split out from... (ix86_constant_alignment): ...here. (TARGET_STATIC_RTX_ALIGNMENT): Redefine. * config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine. (mmix_static_rtx_alignment): New function. * config/spu/spu.c (spu_static_rtx_alignment): New function. (TARGET_STATIC_RTX_ALIGNMENT): Redefine. From-SVN: r254102
2017-10-262017-10-26 Tamar Christina <tamar.christina@arm.com>Tamar Christina4-0/+68
* gcc.dg/vect/vect-reduc-dot-s8a.c (dg-additional-options, dg-require-effective-target): Add +dotprod. * gcc.dg/vect/vect-reduc-dot-u8a.c (dg-additional-options, dg-require-effective-target): Add +dotprod. From-SVN: r254101
2017-10-262017-10-26 Tamar Christina <tamar.christina@arm.com>Tamar Christina4-1/+193
* lib/target-supports.exp (check_effective_target_arm_v8_2a_dotprod_neon_ok_nocache): New. (check_effective_target_arm_v8_2a_dotprod_neon_ok): New. (add_options_for_arm_v8_2a_dotprod_neon): New. (check_effective_target_arm_v8_2a_dotprod_neon_hw): New. (check_effective_target_vect_sdot_qi): Add ARM && AArch64. (check_effective_target_vect_udot_qi): Likewise. * gcc.target/arm/simd/vdot-exec.c: New. * gcc.target/aarch64/advsimd-intrinsics/vdot-exec.c: New. * gcc/doc/sourcebuild.texi: Document arm_v8_2a_dotprod_neon. From-SVN: r254100
2017-10-26vect-multitypes-1.c: Correct target selector.Tamar Christina2-1/+5
2017-10-26 Tamar Christina <tamar.christina@arm.com> * gcc.dg/vect/vect-multitypes-1.c: Correct target selector. From-SVN: r254099
2017-10-26re PR target/81800 (On aarch64 ilp32 lrint should not be inlined as two ↵Tamar Christina4-2/+14
instructions) 2017-10-26 Tamar Christina <tamar.christina@arm.com> PR target/81800 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): Add flag_trapping_math and flag_fp_int_builtin_inexact. gcc/testsuite/ 2017-10-26 Tamar Christina <tamar.christina@arm.com> * gcc.target/aarch64/inline-lrint_2.c (dg-options): Add -fno-trapping-math. From-SVN: r254098
2017-10-26vect-dot-qi.h: New.Tamar Christina5-0/+113
2017-10-26 Tamar Christina <tamar.christina@arm.com> * gcc.target/aarch64/advsimd-intrinsics/vect-dot-qi.h: New. * gcc.target/aarch64/advsimd-intrinsics/vdot-compile.c: New. * gcc.target/aarch64/advsimd-intrinsics/vect-dot-s8.c: New. * gcc.target/aarch64/advsimd-intrinsics/vect-dot-u8.c: New. From-SVN: r254097
2017-10-26Daily bump.GCC Administrator1-1/+1
From-SVN: r254096
2017-10-25C: detect more missing semicolons (PR c/7356)David Malcolm8-7/+117
c_parser_declaration_or_fndef has logic for parsing what might be either a declaration or a function definition. This patch adds a test to detect cases where a semicolon would have terminated the decls as a declaration, where the token that follows would start a new declaration specifier, and updates the error message accordingly, with a fix-it hint. This addresses PR c/7356, fixing the case of a stray token before a #include that previously gave inscrutable output, and improving e.g.: int i int j; from: t.c:2:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int' int j; ^~~ to: t.c:1:6: error: expected ';' before 'int' int i ^ ; int j; ~~~ gcc.dg/noncompile/920923-1.c needs a slight update, as the output for the first line changes from: 920923-1.c:2:14: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'unsigned' typedef BYTE unsigned char; /* { dg-error "expected" } */ ^~~~~~~~ to: 920923-1.c:2:13: error: expected ';' before 'unsigned' typedef BYTE unsigned char; /* { dg-error "expected" } */ ^~~~~~~~~ ; 920923-1.c:2:1: warning: useless type name in empty declaration typedef BYTE unsigned char; /* { dg-error "expected" } */ ^~~~~~~ The patch also adds a test for PR c/44515 as a baseline. gcc/c/ChangeLog: PR c/7356 * c-parser.c (c_parser_declaration_or_fndef): Detect missing semicolons. gcc/testsuite/ChangeLog: PR c/7356 PR c/44515 * c-c++-common/pr44515.c: New test case. * gcc.dg/pr7356-2.c: New test case. * gcc.dg/pr7356.c: New test case. * gcc.dg/spellcheck-typenames.c: Update the "singed" char "TODO" case to reflect changes to output. * gcc.dg/noncompile/920923-1.c: Add dg-warning to reflect changes to output. From-SVN: r254093
2017-10-25RISC-V: Add Sign/Zero extend patterns for PIC loadsPalmer Dabbelt3-2/+19
Loads on RISC-V are sign-extending by default, but we weren't telling GCC this in our PIC load patterns. This corrects the problem, and adds a zero-extending pattern as well. gcc/ChangeLog 2017-10-25 Palmer Dabbelt <palmer@dabbelt.com> * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define. * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s, mark as a sign-extending load. (local_pic_load_u): Define. From-SVN: r254092
2017-10-25Makefile.am (check-go-tool): Output colon after ${fl}.Ian Lance Taylor3-8/+14
* Makefile.am (check-go-tool): Output colon after ${fl}. (check-runtime, check-cgo-test, check-carchive-test): Likewise. * Makefile.in: Rebuild. From-SVN: r254090
2017-10-25re PR middle-end/82062 (simple conditional expressions no longer folded)Eric Botcazou5-7/+67
PR middle-end/82062 * fold-const.c (operand_equal_for_comparison_p): Also return true if ARG0 is a simple variant of ARG1 with narrower precision. (fold_ternary_loc): Always pass unstripped operands to the predicate. From-SVN: r254089
2017-10-25[C++ PATCH] Kill IDENTIFIER_LABEL_VALUENathan Sidwell6-182/+155
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01854.html Kill IDENTIFIER_LABEL_VALUE. * cp-tree.h (lang_identifier): Delete label_value slot. (IDENTIFIER_LABEL_VALUE, SET_IDENTIFIER_LABEL_VALUE): Delete. (struct named_label_hasher): Rename to ... (struct named_label_hash): ... here. Reimplement. (struct language_function): Adjust x_named_labels. * name-lookup.h (struct cp_label_binding): Delete. (struct cp_binding_level): Delete shadowed_labels slot. * decl.c (struct named_label_entry): Add name and outer slots. (pop_label): Rename to ... (check_label_used): ... here. Don't pop. (note_label, sort_labels): Delete. (pop_labels, pop_local_label): Reimplement. (poplevel): Pop local labels as any other decl. Remove shadowed_labels handling. (named_label_hash::hash, named_label_hash::equal): New. (make_label_decl): Absorb into ... (lookup_label_1): ... here. Add making_local_p arg, reimplement. (lookup_label, declare_local_label): Adjust. (check_goto, define_label): Adjust. * lex.c (make_conv_op_name): Don't clear IDENTIFIER_LABEL_VALUE. * ptree.c (cxx_print_identifier): Don't print identifier binding. From-SVN: r254087
2017-10-25[C++ PATCH] Label checking cleanupsNathan Sidwell2-80/+76
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01847.html * decl.c (identifier_goto): Reduce duplication. (check_previous_goto_1): Likewise. (check_goto): Move var decls to initialization. (check_omp_return, define_label_1, define_label): Likewise. From-SVN: r254086
2017-10-25i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather cost correctly.Jan Hubicka4-2/+84
* i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather cost correctly. * i386.h (processor_costs): Add gather_static, gather_per_elt, scatter_static, scatter_per_elt. * x86-tune-costs.h: Add new cost entries. From-SVN: r254083
2017-10-25match.c (gfc_match_type_is): Fix typo in error messageBernhard Reutner-Fischer2-1/+5
2017-10-25 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> * match.c (gfc_match_type_is): Fix typo in error message. From-SVN: r254082
2017-10-25Update C++17 library status documentationJonathan Wakely111-329/+484
* doc/xml/manual/status_cxx2017.xml: Update C++17 status, and information on feature-test macros. * doc/html/*: Regenerate. From-SVN: r254078
2017-10-25PR libstdc++/82716 avoid stupid -Wmismatched-tags warningsJonathan Wakely2-2/+6
PR libstdc++/82716 * include/std/array (tuple_size, tuple_element): Change class-key from class to struct, to avoid annoying Clang warnings. From-SVN: r254077
2017-10-25PR libstdc++/79283 fix filesystem::read_symlink for /procJonathan Wakely3-18/+64
PR libstdc++/79283 * src/filesystem/ops.cc (read_symlink): Handle st_size being zero. * src/filesystem/std-ops.cc (read_symlink): Likewise. (do_copy_file) [!NEED_DO_COPY_FILE]: Avoid multiple definitions. From-SVN: r254076
2017-10-25Fix filesystem::path::lexically_normal algorithmJonathan Wakely18-99/+201
* src/filesystem/std-path.cc (path::lexically_normal): Add missing step to algorithm, for removing dot-dot elements after root-directory. * testsuite/27_io/filesystem/operations/canonical.cc: Use compare_paths for more exhaustive checks. * testsuite/27_io/filesystem/operations/proximate.cc: Likewise. * testsuite/27_io/filesystem/path/append/path.cc: Likewise. * testsuite/27_io/filesystem/path/concat/path.cc: Likewise. * testsuite/27_io/filesystem/path/concat/strings.cc: Fix comment. * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise. * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Likewise. * testsuite/27_io/filesystem/path/generation/normal.cc: Use compare_paths for more exhaustive checks. Add extra testcases. * testsuite/27_io/filesystem/path/generation/proximate.cc: Use compare_paths for more exhaustive checks. * testsuite/27_io/filesystem/path/generation/relative.cc: Likewise. * testsuite/27_io/filesystem/path/generic/generic_string.cc: Remove unused header. * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: Fix comment. * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: Use compare_paths for more exhaustive checks. * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: Likewise. * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: Likewise. * testsuite/util/testsuite_fs.h (compare_paths): Also compare native strings. From-SVN: r254075
2017-10-25tree-ssa-sccvn.h (vn_eliminate): Declare.Richard Biener4-868/+884
2017-10-25 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.h (vn_eliminate): Declare. * tree-ssa-pre.c (class eliminate_dom_walker, eliminate, class pass_fre): Move to ... * tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate, class pass_fre): ... here and adjust for statistics. From-SVN: r254074
2017-10-25re PR tree-optimization/82436 (465.tonto ICE in vect_get_slp_vect_defs, at ↵Richard Biener2-0/+50
tree-vect-slp.c:3410) 2017-10-25 Richard Biener <rguenther@suse.de> PR tree-optimization/82436 * gcc.dg/torture/pr82436-2.c: New testcase. From-SVN: r254073
2017-10-25re PR c++/71820 (ICE on valid C++ code: in arg_assoc_type, at ↵Paolo Carlini2-0/+16
cp/name-lookup.c:5583) 2017-10-25 Paolo Carlini <paolo.carlini@oracle.com> PR c++/71820 * g++.dg/ext/typeof12.C: New. From-SVN: r254072
2017-10-25Fix scan-assembler in tree-ssa/loop-1.c for nvptxTom de Vries2-1/+7
2017-10-25 Tom de Vries <tom@codesourcery.com> * gcc.dg/tree-ssa/loop-1.c: Add xfail for nvptx in scan-assembler-times line, and add nvptx-specific version. From-SVN: r254071
2017-10-25Fix gcc.target/i386/cet-sjlj-5.c on SolarisRainer Orth2-1/+6
* gcc.target/i386/cet-sjlj-5.c: Allow for emtpy user label prefix in setjmp call. From-SVN: r254070
2017-10-25re PR libstdc++/81706 (std::sin vectorization bug)Jakub Jelinek10-2/+145
PR libstdc++/81706 * attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}. (duplicate_one_attribute, copy_attributes_to_builtin): New functions. * attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New declarations. * c-decl.c (merge_decls): Copy "omp declare simd" attributes from newdecl to corresponding __builtin_ if any. * decl.c (duplicate_decls): Copy "omp declare simd" attributes from newdecl to corresponding __builtin_ if any. * gcc.target/i386/pr81706.c: New test. * g++.dg/ext/pr81706.C: New test. From-SVN: r254069
2017-10-25tree-ssa-pre.c (need_eh_cleanup, [...]): Move inside...Richard Biener2-95/+95
2017-10-25 Richard Biener <rguenther@suse.de> * tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove, el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail, eliminate_push_avail, eliminate_insert): Move inside... (class eliminate_dom_walker): ... this class in preparation of move. (fini_eliminate): Remove by merging with ... (eliminate): ... this function. Adjust for class changes. (pass_pre::execute): Remove fini_eliminate call. (pass_fre::execute): Likewise. From-SVN: r254068
2017-10-25PR libstdc++/82706 fix test for case where operations succeedJonathan Wakely2-3/+16
PR libstdc++/82706 * testsuite/27_io/filesystem/operations/permissions.cc: Fix test. From-SVN: r254067
2017-10-25Daily bump.GCC Administrator1-1/+1
From-SVN: r254066
2017-10-24libstdc++.exp (check_v3_target_normal_mode): Add c++config.h include.François Dumont37-338/+472
2017-10-24 François Dumont <fdumont@gcc.gnu.org> * testsuite/lib/libstdc++.exp (check_v3_target_normal_mode): Add c++config.h include. (check_v3_target_normal_namespace): New. * testsuite/lib/dg-options.exp (dg-require-normal-namespace): New. * testsuite/18_support/headers/limits/synopsis.cc: Add latter. * testsuite/20_util/from_chars/requirements.cc: Likewise. * testsuite/20_util/headers/functional/synopsis.cc: Likewise. * testsuite/20_util/headers/memory/synopsis.cc: Likewise. * testsuite/20_util/headers/utility/synopsis.cc: Likewise. * testsuite/20_util/to_chars/requirements.cc: Likewise. * testsuite/21_strings/headers/string/synopsis.cc: Likewise. * testsuite/22_locale/headers/locale/synopsis.cc: Likewise. * testsuite/23_containers/headers/bitset/synopsis.cc: Likewise. * testsuite/23_containers/headers/deque/synopsis.cc: Likewise. * testsuite/23_containers/headers/forward_list/synopsis.cc: Likewise. * testsuite/23_containers/headers/list/synopsis.cc: Likewise. * testsuite/23_containers/headers/map/synopsis.cc: Likewise. * testsuite/23_containers/headers/queue/synopsis.cc: Likewise. * testsuite/23_containers/headers/set/synopsis.cc: Likewise. * testsuite/23_containers/headers/stack/synopsis.cc: Likewise. * testsuite/23_containers/headers/vector/synopsis.cc: Likewise. * testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Likewise. * testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: Likewise. * testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: Likewise. * testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise. * testsuite/24_iterators/headers/iterator/synopsis.cc: Likewise. * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: Likewise. * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: Likewise. * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Likewise. * testsuite/26_numerics/complex/abi_tag.cc: Likewise. * testsuite/26_numerics/headers/complex/synopsis.cc: Likewise. * testsuite/26_numerics/headers/valarray/synopsis.cc: Likewise. * testsuite/27_io/headers/fstream/synopsis.cc: Likewise. * testsuite/27_io/headers/ios/synopsis.cc: Likewise. * testsuite/27_io/headers/istream/synopsis.cc: Likewise. * testsuite/27_io/headers/ostream/synopsis.cc: Likewise. * testsuite/27_io/headers/sstream/synopsis.cc: Likewise. * testsuite/27_io/headers/streambuf/synopsis.cc: Likewise. From-SVN: r254060
2017-10-24re PR target/82460 (AVX512: choose between vpermi2d and vpermt2d to save mov ↵Jakub Jelinek17-296/+237
instructions. Also, fails to optimize away shifts before shuffle) PR target/82460 * config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove. (VPERMI2, VPERMI2I): New mode iterators. (<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns. (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn patterns. (<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2 mode iterator. Remove 3 old define_insn patterns. (*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns. (<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use VPERMI2 mode iterator, remove the other two expanders. (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn to use VPERMI2 mode iterator, add another alternative for vpermi2* instructions, remove the other two patterns. (<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2 mode iterator, remove the other two patterns. * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ... (ix86_expand_vec_perm_vpermt2): ... this. Swap mask and op0 arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2* and adjust argument order accordingly. (ix86_expand_vec_perm): Adjust caller. (expand_vec_perm_1): Likewise. (expand_vec_perm_vpermi2_vpshub2): Rename to ... (expand_vec_perm_vpermt2_vpshub2): ... this. (ix86_expand_vec_perm_const_1): Adjust caller. (ix86_vectorize_vec_perm_const_ok): Adjust comments. * gcc.target/i386/pr82460-1.c: New test. * gcc.target/i386/pr82460-2.c: New test. * gcc.target/i386/avx512f-vpermt2pd-1.c: Adjust scan-assembler* regexps to allow vpermt2* to vpermi2* replacement or vice versa where possible. * gcc.target/i386/avx512vl-vpermt2pd-1.c: Likewise. * gcc.target/i386/avx512f-vpermt2d-1.c: Likewise. * gcc.target/i386/vect-pack-trunc-2.c: Likewise. * gcc.target/i386/avx512vl-vpermt2ps-1.c: Likewise. * gcc.target/i386/avx512vl-vpermt2q-1.c: Likewise. * gcc.target/i386/avx512f-vpermt2ps-1.c: Likewise. * gcc.target/i386/avx512vl-vpermt2d-1.c: Likewise. * gcc.target/i386/avx512bw-vpermt2w-1.c: Likewise. * gcc.target/i386/avx512vbmi-vpermt2b-1.c: Likewise. * gcc.target/i386/avx512f-vpermt2q-1.c: Likewise. From-SVN: r254059
2017-10-24re PR target/82370 (AVX512 can use a memory operand for immediate-count ↵Jakub Jelinek4-41/+57
vpsrlw, but gcc doesn't.) PR target/82370 * config/i386/sse.md (VIMAX_AVX2): Remove V4TImode. (VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators. (vec_shl_<mode>): Remove unused expander. (avx512bw_<shift_insn><mode>3): New define_insn. (<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ... (<sse2_avx2>_<shift_insn><mode>3): ... this. New define_insn. * gcc.target/i386/pr82370.c: New test. From-SVN: r254058
2017-10-24re PR c++/82466 (Missing warning for re-declaration of built-in function as ↵Paolo Carlini12-9/+63
variable) 2017-10-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/82466 * doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend description. /cp 2017-10-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/82466 * decl.c (duplicate_decls): Warn for built-in functions declared as non-function, use OPT_Wbuiltin_declaration_mismatch. * decl.c (duplicate_decls): Avoid redundant '+' in warning_at. /c 2017-10-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/82466 * c-decl.c (diagnose_mismatched_decls): Use OPT_Wbuiltin_declaration_mismatch. /testsuite 2017-10-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/82466 * c-c++-common/Wbuiltin-declaration-mismatch-1.c: New. * c-c++-common/Wno-builtin-declaration-mismatch-1.c: Likewise. * g++.dg/warn/Wbuiltin_declaration_mismatch-1.C: Likewise. * g++.dg/parse/builtin2.C: Adjust. * g++.old-deja/g++.mike/p811.C: Likewise. From-SVN: r254057
2017-10-24Cleanup autopref schedulingWilco Dijkstra3-99/+25
r253236 broke AArch64 bootstrap. Earlier revision r253071 changed scheduling behaviour on AArch64 as autopref scheduling no longer checks the base. This patch fixes the bootstrap failure and cleans up autopref scheduling. The code is greatly simplified. Sort accesses on the offset first, and only if the offsets are the same fall back to other comparisons in rank_for_schedule. This doesn't at all restore the original behaviour since we no longer compare the base address, but it now defines a total sorting order. More work will be required to improve the sorting so that only loads/stores with the same base are affected. gcc/ PR rtl-optimization/82396 * gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround. (autopref_multipass_init): Simplify initialization. (autopref_rank_data): Simplify sort order. * gcc/sched-int.h (autopref_multipass_data_): Remove multi_mem_insn_p, min_offset and max_offset. From-SVN: r254056
2017-10-24PR60580: Fix frame pointer option magicWilco Dijkstra2-24/+27
To fix PR60580 simplify the logic in aarch64_override_options_after_change_1 (). If the frame pointer is enabled, set it to a special value that behaves similar to frame pointer omission. If we don't do this all leaf functions will get a frame pointer even if flag_omit_leaf_frame_pointer is set. If flag_omit_frame_pointer has this special value, we must force the frame pointer if not in a leaf function. We also need to force it in a leaf function if flag_omit_frame_pointer is not set or if LR is used. Doing this allows both -fomit-frame-pointer and -fomit-leaf-frame-pointer to be independently set and changed in each function with the expected behaviour. gcc/ PR middle-end/60580 * config/aarch64/aarch64.c (aarch64_frame_pointer_required) Check special value of flag_omit_frame_pointer. (aarch64_can_eliminate): Likewise. (aarch64_override_options_after_change_1): Simplify handling of -fomit-frame-pointer and -fomit-leaf-frame-pointer. From-SVN: r254052
2017-10-24re PR c++/80991 (ICE with __is_trivially_constructible in template)Paolo Carlini4-2/+38
/cp 2017-10-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/80991 * pt.c (value_dependent_expression_p, [TRAIT_EXPR]): Handle a TREE_LIST as TRAIT_EXPR_TYPE2. /testsuite 2017-10-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/80991 * g++.dg/ext/is_trivially_constructible5.C: New. From-SVN: r254051
2017-10-24Fix gcc.target/i386/387-ficom-[12].c on SolarisRainer Orth3-2/+8
* gcc.target/i386/387-ficom-1.c: Allow for ficomp without s suffix. * gcc.target/i386/387-ficom-2.c: Likewise. From-SVN: r254050
2017-10-24Fix gcc.target/i386/cet-sjlj-3.c on SolarisRainer Orth2-1/+6
* gcc.target/i386/cet-sjlj-3.c: Allow for emtpy user label prefix in setjmp call. From-SVN: r254049
2017-10-24re PR tree-optimization/82697 (Wrong optimization with aliasing and "if")Richard Biener4-1/+50
2017-10-24 Richard Biener <rguenther@suse.de> PR tree-optimization/82697 * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set zero for conditional load and unconditional store. * gcc.dg/torture/pr82697.c: New testcase. From-SVN: r254047
2017-10-24re PR c++/82307 (unscoped enum-base incorrect cast)Mukesh Kapoor5-3/+60
/cp 2017-10-24 Mukesh Kapoor <mukesh.kapoor@oracle.com> Paolo Carlini <paolo.carlini@oracle.com> PR c++/82307 * cvt.c (type_promotes_to): Implement C++17, 7.6/4, about unscoped enumeration type whose underlying type is fixed. /testsuite 2017-10-24 Mukesh Kapoor <mukesh.kapoor@oracle.com> Paolo Carlini <paolo.carlini@oracle.com> PR c++/82307 * g++.dg/cpp0x/enum35.C: New. * g++.dg/cpp0x/enum36.C: Likewise. Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com> From-SVN: r254046
2017-10-24Avoid -Wattribute-alias warnings for long double compat symbolsJonathan Wakely7-0/+19
* config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Ignore -Wattribute-alias warnings. * src/c++11/istream-inst.cc: Likewise. * src/c++11/locale-inst.cc: Likewise. * src/c++11/ostream-inst.cc: Likewise. * src/c++11/wlocale-inst.cc: Likewise. * src/c++98/hash-long-double-tr1-aux.cc: Likewise. From-SVN: r254045
2017-10-24Refactor std::basic_string_view members and add noexceptJonathan Wakely3-52/+61
* include/bits/string_view.tcc (find_first_of, find_last_of) (find_first_not_of, find_last_not_of): Add noexcept. * include/std/string_view (basic_string_view(const _CharT*)) (basic_string_view(const _CharT*, size_type)) (front, back, remove_prefix, remove_suffix, find, rfind) (find_first_of, find_first_not_of): Add noexcept. (at(size_type), _S_compare(size_type, size_type)): Replace conditional expressions with if statements. (copy(_CharT*, size_type, size_type), substr(size_type, size_type)): Use _M_check for length checks. (compare(basic_string_view)): Reformat. (_M_check(size_type, const char)): Add noexcept(false). (_M_limit(size_type, size_type)): Use noexcept not _GLIBCXX_NOEXCEPT. From-SVN: r254044
2017-10-24Add bootstrap-cet.mk to bootstrap GCC with Intel CETH.J. Lu4-0/+19
Bootstrap GCC with Intel CET by configuring GCC with --with-build-config="bootstrap-cet bootstrap-debug" Tested on Linux/i686 and Linux/x86-64. config/ * bootstrap-cet.mk: New file. gcc/ * doc/install.texi: Document bootstrap-cet. From-SVN: r254043
2017-10-24PR82687, g++.dg/asan/default-options-1.C fails with PR82575 fixAlan Modra2-10/+26
The problem with making discarded symbols hidden is that the non-default visibility is sticky. When symbols other than the __gnu_lto ones are discarded that turns out to be a bad idea. PR lto/82687 PR lto/82575 * simple-object-elf.c (simple_object_elf_copy_lto_debug_sections): Only make __gnu_lto symbols hidden. Delete outdated comment. Silence ISO C warning. From-SVN: r254042
2017-10-24PR libstdc++/82685 add 'noexcept' to string_view literalsJonathan Wakely3-8/+14
PR libstdc++/82685 * include/experimental/string_view (operator""sv): Add noexcept. * include/std/string_view (operator""sv): Likewise. From-SVN: r254041
2017-10-24i386: Don't insert ENDBR at function entrance when called directlyH.J. Lu13-1/+271
There is no need to insert ENDBR instruction at function entrance if function is only called directly. gcc/ PR target/82659 * config/i386/i386.c (rest_of_insert_endbranch): Don't insert ENDBR instruction at function entrance if function is only called directly. gcc/testsuite/ PR target/82659 * gcc.target/i386/cet-label-2.c: New test. * gcc.target/i386/cet-sjlj-4.c: Likewise. * gcc.target/i386/cet-sjlj-5.c: Likewise. * gcc.target/i386/cet-switch-3.c: Likewise. * gcc.target/i386/pr82659-1.c: Likewise. * gcc.target/i386/pr82659-2.c: Likewise. * gcc.target/i386/pr82659-3.c: Likewise. * gcc.target/i386/pr82659-4.c: Likewise. * gcc.target/i386/pr82659-5.c: Likewise. * gcc.target/i386/pr82659-6.c: Likewise. From-SVN: r254040