- 31 Oct, 2018 20 commits
-
-
Replace all custom "library" calls with compiler known patterns. gcc/ xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.md (mulsi3): Remove call to mulsi_600_lib. (mulsi3_600_lib): Remove pattern. (umulsi3_highpart_600_lib_le): Likewise. (umulsi3_highpart): Remove call to umulsi3_highpart_600_lib_le. (umulsidi3): Remove call to umulsidi3_600_lib. (umulsidi3_600_lib): Remove pattern. (peephole2): Remove peephole using the above deprecated patterns. testsuite/ xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com> * gcc.target/arc/mulsi3_highpart-2.c: Update test. libgcc/ xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com> * config/arc/lib1funcs.S (_muldi3): New function. * config/arc/t-arc (LIB1ASMFUNCS): Add _muldi3. From-SVN: r265672
Claudiu Zissulescu committed -
2018-10-31 Martin Liska <mliska@suse.cz> * c-c++-common/ubsan/pr63839.c: Update to new sanitizer message. * c-c++-common/ubsan/unreachable-1.c (main): Likewise. * c-c++-common/ubsan/unreachable-2.c: Likewise. * c-c++-common/ubsan/unreachable-4.c (main): Likewise. From-SVN: r265670
Martin Liska committed -
2018-10-31 Martin Liska <mliska@suse.cz> * ubsan/ubsan_platform.h: Add ifndef as we define it with -DCAN_SANITIZE_UB CFLAGS. From-SVN: r265669
Martin Liska committed -
https://reviews.llvm.org/D40908
2018-10-31 Martin Liska <mliska@suse.cz> * asan/asan_mapping.h: Revert shadow memory offset to 1 << 41. From-SVN: r265668
Martin Liska committed -
2018-10-31 Martin Liska <mliska@suse.cz> * LOCAL_PATCHES: Update patch list. * asan/asan_globals.cc (CheckODRViolationViaIndicator): Apply patches from GCC's trunk. (CheckODRViolationViaPoisoning): Likewise. (RegisterGlobal): Likewise. * sanitizer_common/sanitizer_mac.cc (defined): Likewise. * sanitizer_common/sanitizer_stacktrace.cc (GetCanonicFrame): Likewise. * ubsan/ubsan_handlers.cc (__ubsan::__ubsan_handle_cfi_bad_icall): Likewise. (__ubsan::__ubsan_handle_cfi_bad_icall_abort): Likewise. * ubsan/ubsan_handlers.h (struct CFIBadIcallData): Likewise. (struct CFICheckFailData): Likewise. (RECOVERABLE): Likewise. From-SVN: r265667
Martin Liska committed -
2018-10-31 Martin Liska <mliska@suse.cz> * config.h.in: Regenerate. * configure: Likewise. * sanitizer_common/Makefile.am: Include new files, remove old files. * sanitizer_common/Makefile.in: Regenerate. * ubsan/Makefile.am: Include new files, remove old files. * ubsan/Makefile.in: Likewise. * asan/Makefile.am: Include new files. * asan/Makefile.in: Regenerate. From-SVN: r265666
Martin Liska committed -
Merge from upstream 345033. 2018-10-31 Martin Liska <mliska@suse.cz> * All source files: Merge from upstream 345033. From-SVN: r265665
Martin Liska committed -
2018-10-31 Martin Liska <mliska@suse.cz> * HOWTO_MERGE: Enhance documentation. * merge.sh: Add support for git as well. From-SVN: r265664
Martin Liska committed -
2018-10-31 Martin Liska <mliska@suse.cz> * trans-decl.c (struct module_hasher): Call htab_hash_string for s->name and not for s. From-SVN: r265663
Martin Liska committed -
GCC ICEs under -mslow-flash-data and -mword-relocations because there is no way to load an address, both literal pools and MOVW/MOVT being forbidden. This patch gives an error message when both options are specified by the user and adds the according dg-skip-if directives for tests that use either of these options. It also explicitely set the option when in PIC mode as per documentation rather than always check for target_word_relocation together with flag_pic. 2018-10-31 Thomas Preud'homme <thomas.preudhomme@linaro.org> gcc/ PR target/87374 * config/arm/arm.c (arm_option_check_internal): Disable the combined use of -mslow-flash-data and -mword-relocations. (arm_option_override): Enable -mword-relocations if -fpic or -fPIC. * config/arm/arm.md (SYMBOL_REF MOVT splitter): Stop checking for flag_pic. * doc/invoke.texi (-mword-relocations): Mention conflict with -mslow-flash-data. (-mslow-flash-data): Reciprocally. gcc/testsuite/ PR target/87374 * gcc.target/arm/movdi_movt.c: Skip if both -mslow-flash-data and -mword-relocations would be passed when compiling the test. * gcc.target/arm/movsi_movt.c: Likewise. * gcc.target/arm/pr81863.c: Likewise. * gcc.target/arm/thumb2-slow-flash-data-1.c: Likewise. * gcc.target/arm/thumb2-slow-flash-data-2.c: Likewise. * gcc.target/arm/thumb2-slow-flash-data-3.c: Likewise. * gcc.target/arm/thumb2-slow-flash-data-4.c: Likewise. * gcc.target/arm/thumb2-slow-flash-data-5.c: Likewise. * gcc.target/arm/tls-disable-literal-pool.c: Likewise. From-SVN: r265662
Thomas Preud'homme committed -
The LSE CASP instruction requires values to be placed in even register pairs. A solution involving two additional register classes was rejected in favor of the much simpler solution of simply requiring all TImode values to be aligned. * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Force 16-byte modes held in GP registers to use an even regno. From-SVN: r265661
Richard Henderson committed -
Fix constraints; avoid unnecessary split. Drop the use of the atomic_op iterator in favor of the ATOMIC_LDOP iterator; this is simplier and more logical for ldclr aka bic. * config/aarch64/aarch64.c (aarch64_emit_bic): Remove. (aarch64_atomic_ldop_supported_p): Remove. (aarch64_gen_atomic_ldop): Remove. * config/aarch64/atomic.md (atomic_<atomic_optab><ALLI>): Fully expand LSE operations here. (atomic_fetch_<atomic_optab><ALLI>): Likewise. (atomic_<atomic_optab>_fetch<ALLI>): Likewise. (aarch64_atomic_<ATOMIC_LDOP><ALLI>_lse): Drop atomic_op iterator and use ATOMIC_LDOP instead; use register_operand for the input; drop the split and emit insns directly. (aarch64_atomic_fetch_<ATOMIC_LDOP><ALLI>_lse): Likewise. (aarch64_atomic_<atomic_op>_fetch<ALLI>_lse): Remove. (@aarch64_atomic_load<ATOMIC_LDOP><ALLI>): Remove. From-SVN: r265660
Richard Henderson committed -
Allow zero as an input; fix constraints; avoid unnecessary split. * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): Remove. (aarch64_gen_atomic_ldop): Don't call it. * config/aarch64/atomics.md (atomic_exchange<ALLI>): Use aarch64_reg_or_zero. (aarch64_atomic_exchange<ALLI>): Likewise. (aarch64_atomic_exchange<ALLI>_lse): Remove split; remove & from operand 0; use aarch64_reg_or_zero for input; merge ... (@aarch64_atomic_swp<ALLI>): ... this and remove. From-SVN: r265659
Richard Henderson committed -
ChangeLog: 2018-10-31 Iain Buclaw <ibuclaw@gdcproject.org> PR bootstrap/87788 PR d/87799 * configure: Rebuild. * configure.ac: Disable D on systems where it is known not to work. libphobos/ChangeLog: 2018-10-31 Iain Buclaw <ibuclaw@gdcproject.org> PR bootstrap/87789 PR d/87818 PR d/87819 * configure.tgt: New file. From-SVN: r265658
Iain Buclaw committed -
Do not zero-extend the input to the cas for subword operations; instead, use the appropriate zero-extending compare insns. Correct the predicates and constraints for immediate expected operand. * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): New. (aarch64_split_compare_and_swap): Use it. (aarch64_expand_compare_and_swap): Likewise. Remove convert_modes; test oldval against the proper predicate. * config/aarch64/atomics.md (@atomic_compare_and_swap<ALLI>): Use nonmemory_operand for expected. (cas_short_expected_pred): New. (@aarch64_compare_and_swap<SHORT>): Use it; use "rn" not "rI" to match. (@aarch64_compare_and_swap<GPI>): Use "rn" not "rI" for expected. * config/aarch64/predicates.md (aarch64_plushi_immediate): New. (aarch64_plushi_operand): New. From-SVN: r265657
Richard Henderson committed -
The cas insn is a single insn, and if expanded properly need not be split after reload. Use the proper inputs for the insn. * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Force oldval into the rval register for TARGET_LSE; emit the compare during initial expansion so that it may be deleted if unused. (aarch64_gen_atomic_cas): Remove. * config/aarch64/atomics.md (@aarch64_compare_and_swap<SHORT>_lse): Change =&r to +r for operand 0; use match_dup for operand 2; remove is_weak and mod_f operands as unused. Drop the split and merge with... (@aarch64_atomic_cas<SHORT>): ... this pattern's output; remove. (@aarch64_compare_and_swap<GPI>_lse): Similarly. (@aarch64_atomic_cas<GPI>): Similarly. From-SVN: r265656
Richard Henderson committed -
2018-10-31 Richard Biener <rguenther@suse.de> PR testsuite/87802 * g++.dg/vect/slp-pr87105.cc: XFAIL for strict alignment targets. From-SVN: r265655
Richard Biener committed -
2018-10-31 Richard Biener <rguenther@suse.de> * tree-eh.c (replace_trapping_overflow): Simplify ABS_EXPR case using ABSU_EXPR. From-SVN: r265654
Richard Biener committed -
From-SVN: r265653
Sameera Deshpande committed -
From-SVN: r265652
GCC Administrator committed
-
- 30 Oct, 2018 20 commits
-
-
2018-10-30 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85896 * simplify.c (simplify_min_max): Do not convert the type of the return expression. 2018-10-30 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85896 * gfortran.dg/min_max_type.f90: New test. From-SVN: r265649
Thomas Koenig committed -
gcc/ChangeLog: PR middle-end/87041 * gimple-ssa-sprintf.c (format_directive): Use %G to include inlining context. (sprintf_dom_walker::compute_format_length): Avoid setting POSUNDER4K here. (get_destination_size): Handle null argument values. (get_user_idx_format): New function. (sprintf_dom_walker::handle_gimple_call): Handle all printf-like functions, including user-defined with attribute format printf. Use %G to include inlining context. Set POSUNDER4K here. gcc/c-family/ChangeLog: PR middle-end/87041 * c-format.c (check_format_types): Avoid diagnosing null pointer arguments to printf-family of functions. gcc/testsuite/ChangeLog: PR middle-end/87041 * gcc.c-torture/execute/fprintf-2.c: New test. * gcc.c-torture/execute/printf-2.c: Same. * gcc.c-torture/execute/user-printf.c: Same. * gcc.dg/tree-ssa/builtin-fprintf-warn-1.c: Same. * gcc.dg/tree-ssa/builtin-printf-2.c: Same. * gcc.dg/tree-ssa/builtin-printf-warn-1.c: Same. * gcc.dg/tree-ssa/user-printf-warn-1.c: Same. From-SVN: r265648
Martin Sebor committed -
From-SVN: r265647
Jan Hubicka committed -
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_explicit_bool. * call.c (add_template_candidate_real): Return if the declaration is explicit and we're only looking for non-converting constructor. * cp-tree.h (lang_decl_fn): Add has_dependent_explicit_spec_p bit. (DECL_HAS_DEPENDENT_EXPLICIT_SPEC_P): New macro. (cp_decl_specifier_seq): Add explicit_specifier field. (build_explicit_specifier, store_explicit_specifier): Declare. * decl.c (grokdeclarator): Call store_explicit_specifier. (build_explicit_specifier): New function. * parser.c (cp_parser_function_specifier_opt) <case RID_EXPLICIT>: Parse C++20 explicit(bool). * pt.c (store_explicit_specifier, lookup_explicit_specifier): New. (tsubst_function_decl): Handle explicit(dependent-expr). * g++.dg/cpp2a/explicit1.C: New test. * g++.dg/cpp2a/explicit10.C: New test. * g++.dg/cpp2a/explicit11.C: New test. * g++.dg/cpp2a/explicit12.C: New test. * g++.dg/cpp2a/explicit13.C: New test. * g++.dg/cpp2a/explicit2.C: New test. * g++.dg/cpp2a/explicit3.C: New test. * g++.dg/cpp2a/explicit4.C: New test. * g++.dg/cpp2a/explicit5.C: New test. * g++.dg/cpp2a/explicit6.C: New test. * g++.dg/cpp2a/explicit7.C: New test. * g++.dg/cpp2a/explicit8.C: New test. * g++.dg/cpp2a/explicit9.C: New test. * testsuite/20_util/any/cons/explicit.cc: Adjust dg-error. * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise. * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise. From-SVN: r265641
Marek Polacek committed -
After r265398, the ira-shrinkwrap-prep-[12].c tests fail on all targets, because the IRA feature tested can only move hard registers down, and we no longer have hard registers for the function parameters at this stage. gcc/testsuite/ PR rtl-optimization/87708 gcc.dg/ira-shrinkwrap-prep-1.c: xfail test. gcc.dg/ira-shrinkwrap-prep-2.c: xfail test. From-SVN: r265639
Segher Boessenkool committed -
(free_lang_data_d, add_tree_to_fld_list, fld_worklist_push): Move head in file. (free_lang_data_in_type): Forward declare. (fld_type_variant_equal_p): New function. (fld_type_variant): New function (fld_incomplete_types): New hash. (fld_incomplete_type_of): New function (fld_simplfied-type): New function. (free_lang_data_in_decl): Add fld parameter; simplify type of FIELD_DECL (free_lang_data): Allocate and free fld_incomplete_type; update call of free_lang_data_in_decl. From-SVN: r265638
Jan Hubicka committed -
/cp 2018-10-30 Paolo Carlini <paolo.carlini@oracle.com> * decl.c (grokdeclarator): Use declarator->id_loc in diagnostic about flexible array members. /testsuite 2018-10-30 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp1z/has-unique-obj-representations1.C: Test location too. * g++.dg/ext/flexarray-mangle-2.C: Likewise. * g++.dg/ext/flexarray-mangle.C: Likewise. * g++.dg/ext/flexarray-subst.C: Likewise. * g++.dg/ext/flexary10.C: Likewise. * g++.dg/ext/flexary11.C: Likewise. * g++.dg/ext/flexary14.C: Likewise. * g++.dg/ext/flexary16.C: Likewise. * g++.dg/ext/flexary26.C: Likewise. * g++.dg/ext/flexary27.C: Likewise. * g++.dg/ext/flexary7.C: Likewise. * g++.dg/ext/pr71290.C: Likewise. From-SVN: r265636
Paolo Carlini committed -
From-SVN: r265634
Eric Botcazou committed -
2018-10-30 Aaron Sawdey <acsawdey@linux.ibm.com> * config/rs6000/rs6000.md (bswapdi2): Force address into register if not in indexed or indirect form. (bswapdi2_load): Change predicate to indexed_or_indirect_operand. (bswapdi2_store): Ditto. * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem): New helper function. * config/rs6000/rs6000-protos.h (rs6000_force_indexed_or_indirect_mem): Prototype for helper function. From-SVN: r265632
Aaron Sawdey committed -
gcc/ChangeLog: * doc/extend.texi (optimize): Clarify/expand attribute documentation. (target, pragma GCC optimize, pragma GCC target): Ditto. From-SVN: r265631
Martin Sebor committed -
From-SVN: r265628
Jeff Law committed -
* method-serial.cc: Mark varible as potentially unused to silence warning. From-SVN: r265627
Nicholas Krause committed -
If the allocator isn't default constructible then checking if the default constructor throws in an exception specification makes the declaration invalid. Use the type trait instead. PR libstdc++/87809 * include/bits/forward_list.h (_Fwd_list_impl::_Fwd_list_impl()): Use trait in exception-specification instead of possibly invalid expression. * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()): Likewise. * include/bits/stl_list.h (_List_impl::_List_impl()): Likewise. * include/bits/stl_vector.h (_Vector_impl::_Vector_impl()): Likewise. * testsuite/23_containers/forward_list/cons/87809.cc: New test. * testsuite/23_containers/list/cons/87809.cc: New test. * testsuite/23_containers/vector/bool/cons/87809.cc: New test. * testsuite/23_containers/vector/cons/87809.cc: New test. From-SVN: r265626
Jonathan Wakely committed -
Previously the _M_Nb member was incremented before calling _M_unchecked_set which meant that the bit being set was out of bounds. It either set the wrong bit in an allocated word, or accessed beyond the end of the allocated memory in the _M_w vector. The fix for the bug is to update the _M_Nb member after using it as an index. As an optimisation, when a new block needs to be appended the call to _M_unchecked_set can be avoided by appending a block with the least significant bit already set to the desired value. PR libstdc++/87784 * include/tr2/dynamic_bitset (dynamic_bitset::push_back): When there are no unused bits in the last block, append a new block with the right value so the bit doesn't need to be set. Only increment size after setting the new bit, not before. * testsuite/tr2/dynamic_bitset/pr87784.cc: New test. From-SVN: r265625
Jonathan Wakely committed -
From-SVN: r265624
Paul Koning committed -
* doc/extend.texi: Fix prototype and description of __builtin_expect_with_probability. From-SVN: r265622
Jonathan Wakely committed -
2018-10-30 Michael Ploujnikov <michael.ploujnikov@oracle.com> * cgraph.h (clone_function_name_1): Replaced by new clone_function_name_numbered that takes name as string; for privatize_symbol_name_1 use only. (clone_function_name): Renamed to clone_function_name_numbered to be explicit about numbering. (clone_function_name): New two-argument function that does not number its output. (clone_function_name): New three-argument function that takes a number to append to its output. * cgraphclones.c (duplicate_thunk_for_node): (clone_function_name_1): Renamed. (clone_function_name_numbered): Two new functions. (clone_function_name): Improved documentation. (cgraph_node::create_virtual_clone): Use clone_function_name_numbered. * config/rs6000/rs6000.c (make_resolver_func): Ditto. * final.c (final_scan_insn_1): Use the new clone_function_name without numbering. * multiple_target.c (create_dispatcher_calls): Ditto. (create_target_clone): Ditto. * omp-expand.c (grid_expand_target_grid_body): Ditto. * omp-low.c (create_omp_child_function_name): Ditto. * omp-simd-clone.c (simd_clone_create): Ditto. * symtab.c (simd_symtab_node::noninterposable_alias): Use the new clone_function_name without numbering. 2018-10-30 Michael Ploujnikov <michael.ploujnikov@oracle.com> * lto-partition.c (privatize_symbol_name_1): Use clone_function_name_numbered. 2018-10-30 Michael Ploujnikov <michael.ploujnikov@oracle.com> * gcc.dg/tree-prof/cold_partition_label.c: Update for cold section names without numbers. * gcc.dg/tree-prof/section-attr-1.c: Ditto. * gcc.dg/tree-prof/section-attr-2.c: Ditto. * gcc.dg/tree-prof/section-attr-3.c: Ditto. From-SVN: r265621
Michael Ploujnikov committed -
PR bootstrap/87747 would have been significantly easier to track down if the pool allocator had faulted an attempt to configure it to allocate zero-sized objects. Instead, this slipped through and we later hit memory corruption when the assumed size turned out to be different to the configured size. While, theoretically, there might be a use case for this, it seems unlikely to me that GCC would have such a use. So this patch adds a checking assert that the object size is not zero. * alloc-pool.h (base_pool_allocator <TBlockAllocator>::initialize): Assert that the allocation size is not zero. From-SVN: r265620
Richard Earnshaw committed -
2018-10-30 Richard Biener <rguenther@suse.de> PR tree-optimization/87800 * tree-vect-slp.c (vect_build_slp_tree_2): Reject any non-induction or reduction PHIs. From-SVN: r265619
Richard Biener committed -
Fixes bug 87330 by invoking df_note_add_problem to recompute REG_DEAD and REG_UNUSED notes before analysis. From-SVN: r265618
Sameera Deshpande committed
-