1. 19 Oct, 2017 21 commits
    • asan.c (handle_builtin_alloca): Deal with all alloca variants. · 9e878cf1
      	* 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
      Eric Botcazou committed
    • re PR c++/82600 (Address of local variable returned [-Werror=return-local-addr]… · d9697837
      re PR c++/82600 (Address of local variable returned [-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
      Jakub Jelinek committed
    • Improve tests for error reporting in Filesystem TS · db62ad7c
      	* testsuite/experimental/filesystem/iterators/
      	recursive_directory_iterator.cc: Ensure that error_code arguments are
      	cleared when required.
      	* testsuite/experimental/filesystem/operations/create_directory.cc:
      	Remove redundant check.
      	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
      	Ensure that error_code argument is cleared when required.
      
      From-SVN: r253897
      Jonathan Wakely committed
    • Fix path::iterator post-increment and post-decrement · 551124d5
      	* include/experimental/bits/fs_path.h (path::iterator++(int))
      	(path::iterator--(int)): Fix for paths with only one component.
      	* testsuite/experimental/filesystem/path/itr/traversal.cc: Test
      	post-increment and post-decrement.
      
      From-SVN: r253896
      Jonathan Wakely committed
    • Update references to C++17 in libstdc++ manual · 89b1e161
      	* doc/xml/manual/status_cxx2017.xml: Update references to C++17
      	section numbers.
      
      From-SVN: r253895
      Jonathan Wakely committed
    • Use __LONG_LONG_MAX__ instead of LONG_LONG_MAX in test · af23b26a
      	* testsuite/decimal/conversion-to-integral.cc: Use predefined macro
      	instead of non-standard glibc one.
      
      From-SVN: r253894
      Jonathan Wakely committed
    • re PR debug/82509 (DW_AT_endianity issues with attribute scalar_storage_order) · 426776f1
      	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
      Eric Botcazou committed
    • [ARM] PR 82445 - suppress 32-bit aligned ldrd/strd peepholing with -mno-unaligned-access · 3bb3d60b
      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
      Richard Earnshaw committed
    • flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN. · 07d7c611
      	* 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
      Jakub Jelinek committed
    • ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch builtins... · 5d3805fc
      	* 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
      Jakub Jelinek committed
    • Revert r238089 (PR driver/81829). · 93659712
      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
      Martin Liska committed
    • rs6000: Fix "missing mode" on UNSPEC_TOCSLOT · d8198d1c
      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
      Segher Boessenkool committed
    • re PR target/82580 (Optimize comparisons for __int128 on x86-64) · 1855f812
      	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
      Jakub Jelinek committed
    • Specify required stack size for gcc.dg/tree-ssa/ldist-27.c · 8a78f1a1
      2017-10-19  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/tree-ssa/ldist-27.c: Use dg-require-stack-size.
      
      From-SVN: r253883
      Tom de Vries committed
    • Add dg-require-stack-size · 7ff6bdb7
      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
      Tom de Vries committed
    • Derive interface buffers from max name length · 439d2350
      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
      Bernhard Reutner-Fischer committed
    • Do not instrument use-after-scope for vars with large alignment (PR sanitizer/82517). · 36208e60
      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
      Martin Liska committed
    • re PR fortran/82568 ([6/7/8] ICE with do-loop inside BLOCK inside omp) · cd30a0b8
      	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
      Jakub Jelinek committed
    • Use Levenshtein spelling suggestions in Fortran FE · bcc478b9
      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
      Bernhard Reutner-Fischer committed
    • Daily bump. · fba83205
      From-SVN: r253876
      GCC Administrator committed
  2. 18 Oct, 2017 19 commits
    • re PR fortran/82567 ([6/7/8] gfortran takes a long time to compile a simple… · e35ba10a
      re PR fortran/82567 ([6/7/8] gfortran takes a long time to compile a simple 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
      Thomas Koenig committed
    • ira: volatile asm's are not moveable (PR82602) · 9d0d0a5a
      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
      Segher Boessenkool committed
    • re PR fortran/79795 (Fortran ICE in resolve_symbol starting with r163221) · b04bebdb
      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
      Thomas Koenig committed
    • re PR target/82580 (Optimize comparisons for __int128 on x86-64) · fe944402
      	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
      Uros Bizjak committed
    • wide-int.cc (debug): New. · e61a4f52
      	* 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
      Aldy Hernandez committed
    • re PR libfortran/82233 (execute_command_line causes program to stop when command… · 9cfd7f2c
      re PR libfortran/82233 (execute_command_line causes program to stop when 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
      Thomas Koenig committed
    • re PR middle-end/82556 (internal compiler error in curr_insn_transform, at lra-constraints.c:4307) · 57d69a63
      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
      Vladimir Makarov committed
    • tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file. · 957f0d8f
      	* 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
      Bin Cheng committed
    • re PR tree-optimization/82574 (wrong code at -O3 on x86_64-linux-gnu) · 85aa9ed6
      	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
      Bin Cheng committed
    • re PR tree-optimization/82591 ([graphite] Compile-time hog w/ -O2 -floop-nest-optimize) · e33507e3
      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
      Richard Biener committed
    • 2017-10-18 Richard Biener <rguenther@suse.de> · 30c4440c
      	* 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
      Richard Biener committed
    • Fix failing test-case · 28e2e236
      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
      Martin Liska committed
    • Fix -Wimplicit-fallthrough in combine.c · 368b626f
      2017-10-18  Martin Liska  <mliska@suse.cz>
      
      	* combine.c (simplify_compare_const): Add gcc_fallthrough.
      
      From-SVN: r253853
      Martin Liska committed
    • misc.c (gnat_tree_size): Move around. · c96738e3
      	* gcc-interface/misc.c (gnat_tree_size): Move around.
      
      	* gcc-interface/utils.c (max_size): Deal with SSA names.
      
      From-SVN: r253852
      Eric Botcazou committed
    • re PR lto/82598 (lto debugobj lacks .note.GNU-stack) · f8049c44
      	PR lto/82598
      	* simple-object.c (handle_lto_debug_sections): Copy over also
      	.note.GNU-stack section with unchanged name.
      	* simple-object-elf.c (SHF_EXECINSTR): Define.
      	(simple_object_elf_copy_lto_debug_section): Drop SHF_EXECINSTR bit
      	on .note.GNU-stack section.
      
      From-SVN: r253851
      Jakub Jelinek committed
    • S/390: Do not end groups after fallthru edge. · ac2bb522
      gcc/ChangeLog:
      
      2017-10-17  Robin Dapp  <rdapp@linux.vnet.ibm.com>
      
      	* config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
      	(s390_sched_init): Do not reset s390_sched_state if we entered the
      	current basic block via a fallthru edge and all others are unlikely.
      
      From-SVN: r253850
      Robin Dapp committed
    • S/390: Handle long-running instructions. · 67ba3393
      gcc/ChangeLog:
      
      2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
      
      	* config/s390/s390.c (NUM_SIDES): New variable.
      	(LONGRUNNING_THRESHOLD): New variable.
      	(LATENCY_FACTOR): New variable.
      	(s390_sched_score): Decrease score for long-running instructions on
      	wrong side.
      	(s390_sched_variable_issue): Perform bookkeeping for long-running
      	instructions.
      
      From-SVN: r253849
      Robin Dapp committed
    • re PR fortran/82550 (program using submodules fails to link) · ee077fcb
      2017-10-18  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/82550
      	* trans_decl.c (gfc_get_symbol_decl): Procedure symbols that
      	have the 'used_in_submodule' attribute should be processed by
      	'gfc_get_extern_function_decl'.
      
      2017-10-18  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/82550
      	* gfortran.dg/submodule_30.f08 : New test.
      
      From-SVN: r253848
      Paul Thomas committed
    • graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id): Simplify… · 04612f7f
      graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id): Simplify with removal of the parameter rename map.
      
      2017-10-18  Richard Biener  <rguenther@suse.de>
      
      	* graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
      	Simplify with removal of the parameter rename map.
      	(set_rename): Likewise.
      	(should_copy_to_new_region): Likewise.
      	(graphite_copy_stmts_from_block): Likewise.
      	(copy_bb_and_scalar_dependences): Remove initialization of
      	unused copied_bb_map.
      	(copy_def): Remove.
      	(copy_internal_parameters): Likewise.
      	(graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
      	* graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
      	Use INTEGRAL_TYPE_P.
      	(parameter_index_in_region_1): Rename to ...
      	(assign_parameter_index_in_region): ... this.  Assert we have
      	a parameter we handle.
      	(scan_tree_for_params): Adjust.
      	* sese.h (parameter_rename_map_t): Remove.
      	(struct sese_info_t): Remove unused parameter_rename_map and
      	copied_bb_map members.
      	* sese.c (new_sese_info): Adjust.
      	(free_sese_info): Likewise.
      
      From-SVN: r253847
      Richard Biener committed