aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2017-10-20Reduce stack size in gcc.dg/tree-ssa/ldist-27.cTom de Vries2-4/+12
2017-10-20 Tom de Vries <tom@codesourcery.com> * gcc.dg/tree-ssa/ldist-27.c: Remove dg-require-stack-size. (main): Move s ... (s): ... here. From-SVN: r253929
2017-10-20configure.ac (ACX_PROG_GNAT): Append "libgnat" to the include dir.Nicolas Roche3-2/+7
* configure.ac (ACX_PROG_GNAT): Append "libgnat" to the include dir. * configure: Regenerate. From-SVN: r253928
2017-10-20re PR target/82158 (_Noreturn functions that do return clobber caller's ↵Jakub Jelinek4-2/+68
registers on ARM32 (but not other arches)) PR target/82158 * tree-cfg.c (pass_warn_function_return::execute): In noreturn functions when optimizing replace GIMPLE_RETURN stmts with calls to __builtin_unreachable (). * gcc.dg/tree-ssa/noreturn-1.c: New test. From-SVN: r253926
2017-10-20re PR sanitizer/82595 (bootstrap fails in libsanitizer on ↵Jakub Jelinek2-2/+10
powerpc64-unknown-linux-gnu) PR sanitizer/82595 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o for -fsanitize=thread link of executables. (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak link of executables. * lsan/lsan.h (__lsan_init): Add SANITIZER_INTERFACE_ATTRIBUTE. * lsan/Makefile.am (nodist_toolexeclib_HEADERS): Add liblsan_preinit.o. (lsan_files): Remove lsan_preinit.cc. (liblsan_preinit.o): New rule. * lsan/Makefile.in: Regenerated. From-SVN: r253925
2017-10-20re PR target/82370 (AVX512 can use a memory operand for immediate-count ↵Jakub Jelinek9-31/+277
vpsrlw, but gcc doesn't.) PR target/82370 * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2): New mode iterators. (<shift_insn><mode>3<mask_name>): Change the last of the 3 define_insns for logical vector shifts to use VI248_AVX512BW iterator instead of VI48_AVX512, remove <mask_mode512bit_condition> condition, useless isa and prefix attributes. Change the first 2 of these define_insns to ... (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new define_insn for avx512vl. (<shift_insn><mode>3): ... and this, new define_insn without masking for non-avx512vl. * gcc.target/i386/avx-pr82370.c: New test. * gcc.target/i386/avx2-pr82370.c: New test. * gcc.target/i386/avx512f-pr82370.c: New test. * gcc.target/i386/avx512bw-pr82370.c: New test. * gcc.target/i386/avx512vl-pr82370.c: New test. * gcc.target/i386/avx512vlbw-pr82370.c: New test. From-SVN: r253924
2017-10-20re PR target/82370 (AVX512 can use a memory operand for immediate-count ↵Jakub Jelinek3-21/+39
vpsrlw, but gcc doesn't.) PR target/82370 * config/i386/sse.md (*andnot<mode>3, <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit and 256-bit vectors, the (=x,x,xm) alternative and when mask is not applied use empty suffix even for TARGET_AVX512VL. * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask is applied, supply evex,evex or evex,evex,evex instead of just evex. From-SVN: r253923
2017-10-20Add GFNI command line options and macrosJulia Koval8-1/+43
gcc/ * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET, (OPTION_MASK_ISA_GFNI_UNSET): New. (ix86_handle_option): Handle OPT_mgfni. * config/i386/cpuid.h (bit_GFNI): New. * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni. * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__. * config/i386/i386.c (ix86_target_string): Add -mgfni. (ix86_valid_target_attribute_inner_p): Add OPT_mgfni. * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New. * config/i386/i386.opt: Add mgfni. From-SVN: r253922
2017-10-20msp430.c (msp430_option_override): Disable -fdelete-null-pointer-checks.Orlando Arias5-2/+18
* config/msp430/msp430.c (msp430_option_override): Disable -fdelete-null-pointer-checks. * doc/invoke.text (-fdelete-null-pointer-checks): Document that. * lib/target-supports.exp (check_effective_target_keeps_null_pointer_checks): Add msp430 to the list. From-SVN: r253921
2017-10-20re PR c++/82308 ([C++17] deduction of template arguments results in internal ↵Paolo Carlini2-1/+30
compiler error) 2017-10-19 Paolo Carlini <paolo.carlini@oracle.com> PR c++/82308 * g++.dg/cpp1z/class-deduction45.C: New. From-SVN: r253920
2017-10-20Daily bump.GCC Administrator1-1/+1
From-SVN: r253919
2017-10-19exp_ch6.adb (Is_Build_In_Place_Result_Type): Fix silly bug -- "Typ" should ↵Bob Duff2-9/+16
be "T". 2017-10-19 Bob Duff <duff@adacore.com> * exp_ch6.adb (Is_Build_In_Place_Result_Type): Fix silly bug -- "Typ" should be "T". Handle case of a subtype of a class-wide type. From-SVN: r253916
2017-10-19[multiple changes]Pierre-Marie de Rodat7-34/+164
2017-10-19 Bob Duff <duff@adacore.com> * exp_util.adb: (Process_Statements_For_Controlled_Objects): Clarify which node kinds can legitimately be ignored, and raise Program_Error for others. 2017-10-19 Hristian Kirtchev <kirtchev@adacore.com> * sem_elab.adb (Compilation_Unit): Handle the case of a subprogram instantiation that acts as a compilation unit. (Find_Code_Unit): Reimplemented. (Find_Top_Unit): Reimplemented. (Find_Unit_Entity): New routine. (Process_Instantiation_SPARK): Correct the elaboration requirement a package instantiation imposes on a unit. 2017-10-19 Bob Duff <duff@adacore.com> * exp_ch6.adb (Is_Build_In_Place_Result_Type): Enable build-in-place for a narrow set of controlled types. 2017-10-19 Eric Botcazou <ebotcazou@adacore.com> * sinput.ads (Line_Start): Add pragma Inline. * widechar.ads (Is_Start_Of_Wide_Char): Likewise. 2017-10-19 Bob Duff <duff@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference): Disable Make_Build_In_Place_Call_... for F(...)'Old, where F(...) is a build-in-place function call so that the temp is declared in the right place. From-SVN: r253915
2017-10-19x86-tune-costs.h (generic_cost, core_cost): Correct costs of x87 and SSE ↵Jan Hubicka2-22/+26
instructions. * x86-tune-costs.h (generic_cost, core_cost): Correct costs of x87 and SSE instructions. From-SVN: r253911
2017-10-19asan.c (create_cond_insert_point): Do not update edge count.Jan Hubicka60-648/+386
* asan.c (create_cond_insert_point): Do not update edge count. * auto-profile.c (afdo_propagate_edge): Update for edge count removal. (afdo_propagate_circuit): Likewise. (afdo_calculate_branch_prob): Likewise. (afdo_annotate_cfg): Likewise. * basic-block.h (struct edge_def): Remove count. (edge_def::count): New accessor. * bb-reorder.c (rotate_loop): Update. (find_traces_1_round): Update. (connect_traces): Update. (sanitize_hot_paths): Update. * cfg.c (unchecked_make_edge): Update. (make_single_succ_edge): Update. (check_bb_profile): Update. (dump_edge_info): Update. (update_bb_profile_for_threading): Update. (scale_bbs_frequencies_int): Update. (scale_bbs_frequencies_gcov_type): Update. (scale_bbs_frequencies_profile_count): Update. (scale_bbs_frequencies): Update. * cfganal.c (connect_infinite_loops_to_exit): Update. * cfgbuild.c (compute_outgoing_frequencies): Update. (find_many_sub_basic_blocks): Update. * cfgcleanup.c (try_forward_edges): Update. (try_crossjump_to_edge): Update * cfgexpand.c (expand_gimple_cond): Update (expand_gimple_tailcall): Update (construct_exit_block): Update * cfghooks.c (verify_flow_info): Update (redirect_edge_succ_nodup): Update (split_edge): Update (make_forwarder_block): Update (duplicate_block): Update (account_profile_record): Update * cfgloop.c (find_subloop_latch_edge_by_profile): Update. * cfgloopanal.c (expected_loop_iterations_unbounded): Update. * cfgloopmanip.c (scale_loop_profile): Update. (loopify): Update. (lv_adjust_loop_entry_edge): Update. * cfgrtl.c (try_redirect_by_replacing_jump): Update. (force_nonfallthru_and_redirect): Update. (purge_dead_edges): Update. (rtl_flow_call_edges_add): Update. * cgraphunit.c (init_lowered_empty_function): Update. (cgraph_node::expand_thunk): Update. * gimple-pretty-print.c (dump_probability): Update. (dump_edge_probability): Update. * gimple-ssa-isolate-paths.c (isolate_path): Update. * haifa-sched.c (sched_create_recovery_edges): Update. * hsa-gen.c (convert_switch_statements): Update. * ifcvt.c (dead_or_predicable): Update. * ipa-inline-transform.c (inline_transform): Update. * ipa-split.c (split_function): Update. * ipa-utils.c (ipa_merge_profiles): Update. * loop-doloop.c (add_test): Update. * loop-unroll.c (unroll_loop_runtime_iterations): Update. * lto-streamer-in.c (input_cfg): Update. (input_function): Update. * lto-streamer-out.c (output_cfg): Update. * modulo-sched.c (sms_schedule): Update. * postreload-gcse.c (eliminate_partially_redundant_load): Update. * predict.c (maybe_hot_edge_p): Update. (unlikely_executed_edge_p): Update. (probably_never_executed_edge_p): Update. (dump_prediction): Update. (drop_profile): Update. (propagate_unlikely_bbs_forward): Update. (determine_unlikely_bbs): Update. (force_edge_cold): Update. * profile.c (compute_branch_probabilities): Update. * reg-stack.c (better_edge): Update. * shrink-wrap.c (handle_simple_exit): Update. * tracer.c (better_p): Update. * trans-mem.c (expand_transaction): Update. (split_bb_make_tm_edge): Update. * tree-call-cdce.c: Update. * tree-cfg.c (gimple_find_sub_bbs): Update. (gimple_split_edge): Update. (gimple_duplicate_sese_region): Update. (gimple_duplicate_sese_tail): Update. (gimple_flow_call_edges_add): Update. (insert_cond_bb): Update. (execute_fixup_cfg): Update. * tree-cfgcleanup.c (cleanup_control_expr_graph): Update. * tree-complex.c (expand_complex_div_wide): Update. * tree-eh.c (lower_resx): Update. (unsplit_eh): Update. (cleanup_empty_eh_move_lp): Update. * tree-inline.c (copy_edges_for_bb): Update. (freqs_to_counts): Update. (copy_cfg_body): Update. * tree-ssa-dce.c (remove_dead_stmt): Update. * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update. * tree-ssa-loop-im.c (execute_sm_if_changed): Update. * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update. (unloop_loops): Update. * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update. * tree-ssa-loop-split.c (connect_loops): Update. (split_loop): Update. * tree-ssa-loop-unswitch.c (hoist_guard): Update. * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update. * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update. * tree-ssa-reassoc.c (branch_fixup): Update. * tree-ssa-tail-merge.c (replace_block_by): Update. * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update. (compute_path_counts): Update. (update_profile): Update. (recompute_probabilities): Update. (update_joiner_offpath_counts): Update. (estimated_freqs_path): Update. (freqs_to_counts_path): Update. (clear_counts_path): Update. (ssa_fix_duplicate_block_edges): Update. (duplicate_thread_path): Update. * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update. (case_bit_test_cmp): Update. (collect_switch_conv_info): Update. (gen_inbound_check): Update. (do_jump_if_equal): Update. (emit_cmp_and_jump_insns): Update. * tree-tailcall.c (decrease_profile): Update. (eliminate_tail_call): Update. * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update. (vect_do_peeling): Update. * tree-vect-loop.c (scale_profile_for_vect_loop): Update. * ubsan.c (ubsan_expand_null_ifn): Update. (ubsan_expand_ptr_ifn): Update. * value-prof.c (gimple_divmod_fixed_value): Update. (gimple_mod_pow2): Update. (gimple_mod_subtract): Update. (gimple_ic): Update. (gimple_stringop_fixed_value): Update. From-SVN: r253910
2017-10-19Fix oversightsEric Botcazou1-4/+4
From-SVN: r253909
2017-10-19re PR target/82618 (Inefficient double-word subtraction on x86_64)Uros Bizjak4-0/+40
PR target/82618 * config/i386/i386.md (sub to cmp): New peephole2 pattern. testsuite/ChangeLog: PR target/82618 * gcc.target/i386/pr82618.c: New test. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r253905
2017-10-19ira-color: fix allocno_priority_compare_func for qsort (PR 82395)Alexander Monakov2-5/+10
PR rtl-optimization/82395 * ira-color.c (allocno_priority_compare_func): Fix comparison step based on non_spilled_static_chain_regno_p. From-SVN: r253904
2017-10-19i386.c (output_387_binary_op): Rewrite SSE part.Uros Bizjak2-86/+74
* config/i386/i386.c (output_387_binary_op): Rewrite SSE part. (ix86_emit_mode_set): Rewrite insn mnemonic construction. (ix86_prepare_fp_compare_args): Redefine is_sse as bool. From-SVN: r253903
2017-10-19PR tree-optimization/82596 - missing -Warray-bounds on an out-of-boundsMartin Sebor4-0/+40
PR tree-optimization/82596 - missing -Warray-bounds on an out-of-bounds index into string literal gcc/ChangeLog: * tree.c (array_at_struct_end_p): Handle STRING_CST. gcc/testsuite/ChangeLog: * gcc/testsuite/gcc.dg/pr82596.c: New test. From-SVN: r253902
2017-10-19asan.c (handle_builtin_alloca): Deal with all alloca variants.Eric Botcazou29-137/+288
* asan.c (handle_builtin_alloca): Deal with all alloca variants. (get_mem_refs_of_builtin_call): Likewise. * builtins.c (expand_builtin_apply): Adjust call to allocate_dynamic_stack_space. (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass the third argument to allocate_dynamic_stack_space, otherwise -1. (expand_builtin): Deal with all alloca variants. (is_inexpensive_builtin): Likewise. * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New. * calls.c (special_function_p): Deal with all alloca variants. (initialize_argument_information): Adjust call to allocate_dynamic_stack_space. (expand_call): Likewise. * cfgexpand.c (expand_call_stmt): Deal with all alloca variants. * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and use it for the stack usage computation. * explow.h (allocate_dynamic_stack_space): Adjust prototype. * function.c (gimplify_parameters): Turn BUILT_IN_ALLOCA_WITH_ALIGN into BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX and pass maximum size. * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow. Take into account 3rd argument of __builtin_alloca_with_align_and_max. (in_loop_p): Remove first argument and useless check. (pass_walloca::execute): Remove useless test and adjust call to above. * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants * gimplify.c (gimplify_vla_decl): Turn BUILT_IN_ALLOCA_WITH_ALIGN into BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX and pass maximum size. (gimplify_call_expr): Deal with all alloca variants. * hsa-gen.c (gen_hsa_alloca): Likewise. (gen_hsa_insns_for_call): Likewise. * ipa-pure-const.c (special_builtin_state): Likewise. * tree-chkp.c (chkp_build_returned_bound): Likewise. * tree-object-size.c (alloc_object_size): Likewise. * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise. (call_may_clobber_ref_p_1): Likewise. * tree-ssa-ccp.c (evaluate_stmt): Likewise. (ccp_fold_stmt): Likewise. (optimize_stack_restore): Likewise. * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. (mark_all_reaching_defs_necessary_1): Likewise. (propagate_necessity): Likewise. (eliminate_unnecessary_stmts): Likewise. * tree.c (build_common_builtin_nodes): Build BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX. * tree.h (ALLOCA_FUNCTION_CODE_P): New macro. (CASE_BUILT_IN_ALLOCA): Likewise. * varasm.c (incorporeal_function_p): Deal with all alloca variants. c-family/ * c-common.c (check_builtin_function_arguments): Also check arguments of __builtin_alloca_with_align_and_max. From-SVN: r253901
2017-10-19re PR c++/82600 (Address of local variable returned ↵Jakub Jelinek4-1/+31
[-Werror=return-local-addr] when building mozilla-central) PR c++/82600 * typeck.c (check_return_expr): Don't call maybe_warn_about_returning_address_of_local in templates. * g++.dg/warn/Wreturn-local-addr-4.C: New test. From-SVN: r253899
2017-10-19re PR debug/82509 (DW_AT_endianity issues with attribute scalar_storage_order)Eric Botcazou6-32/+130
PR debug/82509 * dwarf2out.c (new_die_raw): New static inline function. (new_die): Use it to create the DIE. (add_AT_external_die_ref): Likewise. (clone_die): Likewise. (clone_as_declaration): Likewise. (dwarf2out_vms_debug_main_pointer): Likewise. (base_type_die): Likewise. Remove early return for corner cases. Do not call add_pubtype on the DIE here. (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE. (modified_type_die): Adjust the lookup for reverse order DIEs. Skip typedefs for base types with DW_AT_endianity. Make sure a DIE with native order exists for base types, attach the DIE manually and call add_pubtype on it. Do not equate a reverse order DIE to the type. From-SVN: r253893
2017-10-19[ARM] PR 82445 - suppress 32-bit aligned ldrd/strd peepholing with ↵Richard Earnshaw7-7/+59
-mno-unaligned-access Peephole patterns exist in the arm backend to spot load/store operations to adjacent memory operations in order to convert them into ldrd/strd instructions. However, when we have strict alignment enforced, then we can only do this if the accesses are known to be 64-bit aligned; this is unlikely to be the case for most loads. The patch adds some alignment checking to the code that validates the addresses for use in the peephole patterns. This should also fix incorrect generation of ldrd/strd with unaligned accesses that could previously have occurred on ARMv5e where all such operations must be 64-bit aligned. I've added some new tests as well. In doing so I discovered that the ldrd/strd peephole tests could never fail since they would match the source file name in the scanned assembly as well as any instructions of the intended type. I've fixed those by tightening the scan results slightly. gcc: * config/arm/arm.c (align_ok_ldrd_strd): New function. (mem_ok_for_ldrd_strd): New parameter align. Extract the alignment of the mem into it. (gen_operands_ldrd_strd): Validate the alignment of the accesses. testsuite: * gcc.target/arm/peep-ldrd-1.c: Tighten test scan pattern. * gcc.target/arm/peep-strd-1.c: Likewise. * gcc.target/arm/peep-ldrd-2.c: New test. * gcc.target/arm/peep-strd-2.c: New test. From-SVN: r253890
2017-10-19flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN.Jakub Jelinek8-2/+143
* flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN. Or SANITIZE_BUILTIN into SANITIZE_UNDEFINED. * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN, BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins. * opts.c (sanitizer_opts): Add builtin. * ubsan.c (instrument_builtin): New function. (pass_ubsan::execute): Call it. (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN. * doc/invoke.texi: Document -fsanitize=builtin. * c-c++-common/ubsan/builtin-1.c: New test. From-SVN: r253888
2017-10-19ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch builtins...Jakub Jelinek17-358/+400
* ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch builtins, store max (log2 (align), 0) into uchar field instead of align into uptr field. (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins, store uchar 0 field instead of uptr 0 field. (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin, instead of passing one address of struct with 2 locations pass two addresses of structs with 1 location each. * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH, BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT, BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN, BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed. (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1, BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT, BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1, BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins. * c-c++-common/ubsan/float-cast-overflow-1.c: Drop value keyword from expected output regexps. * c-c++-common/ubsan/float-cast-overflow-2.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-3.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-4.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-5.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-6.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-8.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-9.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-10.c: Likewise. * g++.dg/ubsan/float-cast-overflow-bf.C: Likewise. * gcc.dg/ubsan/float-cast-overflow-bf.c: Likewise. * g++.dg/asan/default-options-1.C (__asan_default_options): Add used attribute. * g++.dg/asan/asan_test.C: Run with ASAN_OPTIONS=handle_segv=2 in the environment. * All source files: Merge from upstream 315899. * asan/Makefile.am (nodist_saninclude_HEADERS): Add include/sanitizer/tsan_interface.h. * asan/libtool-version: Bump the libasan SONAME. * lsan/Makefile.am (sanitizer_lsan_files): Add lsan_common_mac.cc. (lsan_files): Add lsan_linux.cc, lsan_mac.cc and lsan_malloc_mac.cc. * sanitizer_common/Makefile.am (sanitizer_common_files): Add sancov_flags.cc, sanitizer_allocator_checks.cc, sanitizer_coverage_libcdep_new.cc, sanitizer_errno.cc, sanitizer_file.cc, sanitizer_mac_libcdep.cc and sanitizer_stoptheworld_mac.cc. Remove sanitizer_coverage_libcdep.cc and sanitizer_coverage_mapping_libcdep.cc. * tsan/Makefile.am (tsan_files): Add tsan_external.cc. * ubsan/Makefile.am (DEFS): Add -DUBSAN_CAN_USE_CXXABI=1. (ubsan_files): Add ubsan_init_standalone.cc and ubsan_signals_standalone.cc. * ubsan/libtool-version: Bump the libubsan SONAME. * asan/Makefile.in: Regenerate. * lsan/Makefile.in: Regenerate. * sanitizer_common/Makefile.in: Regenerate. * tsan/Makefile.in: Regenerate. * ubsan/Makefile.in: Regenerate. From-SVN: r253887
2017-10-19Revert r238089 (PR driver/81829).Martin Liska4-44/+7
2017-10-19 Martin Liska <mliska@suse.cz> PR driver/81829 * file-find.c (remove_prefix): Remove. * file-find.h (remove_prefix): Likewise. * gcc-ar.c: Remove smartness of lookup. From-SVN: r253886
2017-10-19rs6000: Fix "missing mode" on UNSPEC_TOCSLOTSegher Boessenkool2-4/+10
Currently gen* warn about a missing mode on an UNSPEC_TOCSLOT unspec in some call patterns. Those unspecs are created from rs6000.c, with Pmode always. This patch fixes the patterns to say :P as well. * config/rs6000/rs6000.md (*call_indirect_aix<mode>, *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>, *call_value_indirect_elfv2<mode>): Add correct mode to the unspec. From-SVN: r253885
2017-10-19re PR target/82580 (Optimize comparisons for __int128 on x86-64)Jakub Jelinek4-1/+72
PR target/82580 * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2. (setcc + and to xor + setcc): New peephole2. * gcc.target/i386/pr82580.c: Use {\msbb} instead of "sbb" in scan-assembler-times. Check that there are no movzb* instructions if lp64. From-SVN: r253884
2017-10-19Specify required stack size for gcc.dg/tree-ssa/ldist-27.cTom de Vries2-0/+5
2017-10-19 Tom de Vries <tom@codesourcery.com> * gcc.dg/tree-ssa/ldist-27.c: Use dg-require-stack-size. From-SVN: r253883
2017-10-19Add dg-require-stack-sizeTom de Vries13-52/+50
2017-10-19 Tom de Vries <tom@codesourcery.com> * lib/target-supports-dg.exp (dg-require-stack-size): New proc. * gcc.c-torture/execute/20030209-1.c: Use dg-require-stack-size. * gcc.c-torture/execute/20040805-1.c: Same. * gcc.c-torture/execute/920410-1.c: Same. * gcc.c-torture/execute/921113-1.c: Same. * gcc.c-torture/execute/921208-2.c: Same. * gcc.c-torture/execute/comp-goto-1.c: Same. * gcc.c-torture/execute/pr20621-1.c: Same. * gcc.c-torture/execute/pr28982b.c: Same. * gcc.dg/tree-prof/comp-goto-1.c: Same. * doc/sourcebuild.texi (Test Directives, Variants of dg-require-support): Add dg-require-stack-size. From-SVN: r253882
2017-10-19Derive interface buffers from max name lengthBernhard Reutner-Fischer2-3/+9
2017-10-19 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> * interface.c (check_sym_interfaces, check_uop_interfaces, gfc_check_interfaces): Base interface_name buffer off GFC_MAX_SYMBOL_LEN. From-SVN: r253881
2017-10-19Update my last ChangeLog entry to properly specify overloaded functions.Aldy Hernandez1-4/+4
From-SVN: r253880
2017-10-19Do not instrument use-after-scope for vars with large alignment (PR ↵Martin Liska4-1/+59
sanitizer/82517). 2017-10-19 Martin Liska <mliska@suse.cz> PR sanitizer/82517 * gimplify.c (gimplify_decl_expr): Do not instrument variables that have a large alignment. (gimplify_target_expr): Likewise. 2017-10-19 Martin Liska <mliska@suse.cz> PR sanitizer/82517 * gcc.dg/asan/pr82517.c: New test. From-SVN: r253879
2017-10-19re PR fortran/82568 ([6/7/8] ICE with do-loop inside BLOCK inside omp)Jakub Jelinek6-10/+129
PR fortran/82568 * gfortran.h (gfc_resolve_do_iterator): Add a bool arg. (gfc_resolve_omp_local_vars): New declaration. * openmp.c (omp_current_ctx): Make static. (gfc_resolve_omp_parallel_blocks): Handle EXEC_OMP_TASKLOOP and EXEC_OMP_TASKLOOP_SIMD. (gfc_resolve_do_iterator): Add ADD_CLAUSE argument, if false, don't actually add any clause. Move omp_current_ctx test earlier. (handle_local_var, gfc_resolve_omp_local_vars): New functions. * resolve.c (gfc_resolve_code): Call gfc_resolve_omp_parallel_blocks instead of just gfc_resolve_omp_do_blocks for EXEC_OMP_TASKLOOP and EXEC_OMP_TASKLOOP_SIMD. (gfc_resolve_code): Adjust gfc_resolve_do_iterator caller. (resolve_codes): Call gfc_resolve_omp_local_vars. * gfortran.dg/gomp/pr82568.f90: New test. From-SVN: r253878
2017-10-19Use Levenshtein spelling suggestions in Fortran FEBernhard Reutner-Fischer12-17/+483
gcc/fortran/ChangeLog 2017-10-19 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> * gfortran.h (gfc_lookup_function_fuzzy): New declaration. (gfc_closest_fuzzy_match): New declaration. (vec_push): New definition. * misc.c (gfc_closest_fuzzy_match): New definition. * resolve.c: Include spellcheck.h. (lookup_function_fuzzy_find_candidates): New static function. (lookup_uop_fuzzy_find_candidates): Likewise. (lookup_uop_fuzzy): Likewise. (resolve_operator) <INTRINSIC_USER>: Call lookup_uop_fuzzy. (gfc_lookup_function_fuzzy): New definition. (resolve_unknown_f): Call gfc_lookup_function_fuzzy. * interface.c (check_interface0): Likewise. (lookup_arg_fuzzy_find_candidates): New static function. (lookup_arg_fuzzy ): Likewise. (compare_actual_formal): Call lookup_arg_fuzzy. * symbol.c: Include spellcheck.h. (lookup_symbol_fuzzy_find_candidates): New static function. (lookup_symbol_fuzzy): Likewise. (gfc_set_default_type): Call lookup_symbol_fuzzy. (lookup_component_fuzzy_find_candidates): New static function. (lookup_component_fuzzy): Likewise. (gfc_find_component): Call lookup_component_fuzzy. gcc/testsuite/ChangeLog 2017-10-19 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> * gfortran.dg/spellcheck-operator.f90: New testcase. * gfortran.dg/spellcheck-procedure_1.f90: New testcase. * gfortran.dg/spellcheck-procedure_2.f90: New testcase. * gfortran.dg/spellcheck-structure.f90: New testcase. * gfortran.dg/spellcheck-parameter.f90: New testcase. From-SVN: r253877
2017-10-19Daily bump.GCC Administrator1-1/+1
From-SVN: r253876
2017-10-18re PR fortran/82567 ([6/7/8] gfortran takes a long time to compile a simple ↵Thomas Koenig4-1/+62
implied-do with -Optimization.) 2017-10-18 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/82567 * frontend-passes.c (combine_array_constructor): If an array constructor is all constants and has more elements than a small constant, don't convert a*[b,c] to [a*b,a*c] to reduce compilation times. 2017-10-18 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/82567 * gfortran.dg/array_constructor_51.f90: New test. From-SVN: r253872
2017-10-18ira: volatile asm's are not moveable (PR82602)Segher Boessenkool2-0/+11
A volatile asm statement can not be moved (relative to other volatile asm, etc.), but IRA would do it nevertheless. This patch fixes it. PR rtl-optimization/82602 * ira.c (rtx_moveable_p): Return false for volatile asm. From-SVN: r253869
2017-10-18re PR fortran/79795 (Fortran ICE in resolve_symbol starting with r163221)Thomas Koenig4-1/+32
2017-10-18 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/79795 * resolve.c (resovle_symbol): Change gcc_assert to sensible error message. 2017-10-18 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/79795 * gfortran.dg/assumed_size_2.f90: New test. From-SVN: r253868
2017-10-18re PR target/82580 (Optimize comparisons for __int128 on x86-64)Uros Bizjak7-14/+145
PR target/82580 * config/i386/i386-modes.def (CCGZ): New CC mode. * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern. * config/i386/predicates.md (ix86_comparison_operator): Handle CCGZmode. * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons with double-word subtraction. (put_condition_code): Handle CCGZmode. testsuite/ChangeLog: PR target/82580 * gcc.target/i386/pr82580.c: New test. From-SVN: r253867
2017-10-18wide-int.cc (debug): New.Aldy Hernandez2-0/+40
* wide-int.cc (debug) [const wide_int &]: New. (debug) [const wide_int *]: New. (debug) [const widest_int &]: New. (debug) [const widest_int *]: New. From-SVN: r253866
2017-10-18re PR libfortran/82233 (execute_command_line causes program to stop when ↵Thomas Koenig2-3/+8
command fails (or does not exist)) 2017-10-18 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/82233 * gfortran.dg/execute_command_line_3.f90: Remove unneeded output. Move test with wait=.false. before the last test. From-SVN: r253865
2017-10-18re PR middle-end/82556 (internal compiler error in curr_insn_transform, at ↵Vladimir Makarov4-3/+44
lra-constraints.c:4307) 2017-10-18 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/82556 * lra-constraints.c (curr_insn_transform): Use non-input operand instead of output one for matched reload. 2017-10-18 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/82556 * gcc.target/i386/pr82556.c: New. From-SVN: r253862
2017-10-18tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.Bin Cheng9-7/+232
* tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file. (tree-ssa-loop-ivopts.h): New header file. (struct builtin_info): New fields. (classify_builtin_1): Compute and record base and offset parts for memset builtin partition by calling strip_offset. (offset_cmp, fuse_memset_builtins): New functions. (finalize_partitions): Fuse adjacent memset partitions by calling above function. * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration. Expose the interface. * tree-ssa-loop-ivopts.h (strip_offset): New declaration. * gcc.dg/tree-ssa/ldist-17.c: Adjust test string. * gcc.dg/tree-ssa/ldist-32.c: New test. * gcc.dg/tree-ssa/ldist-35.c: New test. * gcc.dg/tree-ssa/ldist-36.c: New test. From-SVN: r253859
2017-10-18re PR tree-optimization/82574 (wrong code at -O3 on x86_64-linux-gnu)Bin Cheng4-11/+47
PR tree-optimization/82574 * tree-loop-distribution.c (find_single_drs): New parameter. Check that data reference must be executed exactly once per iteration against the outermost loop in nest. (classify_partition): Update call to above function. gcc/testsuite * gcc.dg/tree-ssa/pr82574.c: New test. From-SVN: r253857
2017-10-18re PR tree-optimization/82591 ([graphite] Compile-time hog w/ -O2 ↵Richard Biener3-13/+55
-floop-nest-optimize) 2017-10-18 Richard Biener <rguenther@suse.de> PR tree-optimization/82591 * graphite.c (graphite_transform_loops): Move code gen message printing ... * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Here. Handle scop_to_isl_ast failing. (scop_to_isl_ast): Limit the number of ISL operations. From-SVN: r253856
2017-10-182017-10-18 Richard Biener <rguenther@suse.de>Richard Biener5-129/+85
* graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::set_rename): Simplify. (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline... (graphite_copy_stmts_from_block): ... here. (copy_bb_and_scalar_dependences): Simplify. (add_parameters_to_ivs_params): Canonicalize. (generate_entry_out_of_ssa_copies): Simplify. * graphite-sese-to-poly.c (extract_affine_name): Simplify by passing in ISL dimension. (parameter_index_in_region_1): Rename to ... (parameter_index_in_region): ... this. (extract_affine): Adjust assert, pass down parameter index. (add_param_constraints): Use range-info when available. (build_scop_context): Adjust. * sese.c (new_sese_info): Adjust. (free_sese_info): Likewise. * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t): Remove unused typedefs. (struct sese_info_t): Simplify rename_map, remove incomplete_phis. From-SVN: r253855
2017-10-18Fix failing test-caseMartin Liska2-3/+10
2017-10-18 Martin Liska <mliska@suse.cz> * gcc.dg/tree-prof/switch-case-2.c: Scan IPA profile dump file instead of expand. Reason is that switch statement is not yet expanded as decision tree, which also contains a BB with count == 2000. From-SVN: r253854
2017-10-18Fix -Wimplicit-fallthrough in combine.cMartin Liska2-0/+6
2017-10-18 Martin Liska <mliska@suse.cz> * combine.c (simplify_compare_const): Add gcc_fallthrough. From-SVN: r253853
2017-10-18misc.c (gnat_tree_size): Move around.Eric Botcazou3-17/+27
* gcc-interface/misc.c (gnat_tree_size): Move around. * gcc-interface/utils.c (max_size): Deal with SSA names. From-SVN: r253852