1. 31 Oct, 2017 9 commits
    • GCOV: std::vector refactoring. · c7432e76
      2017-10-31  Martin Liska  <mliska@suse.cz>
      
      	* gcov.c (struct source_info): Remove typedef.
      	(source_info::source_info): Add proper ctor.
      	(accumulate_line_counts): Use struct, not it's typedef.
      	(output_gcov_file): Likewise.
      	(output_lines): Likewise.
      	(main): Do not allocate an array.
      	(output_intermediate_file): Use size of vector container.
      	(process_file): Resize the vector.
      	(generate_results): Do not preallocate, use newly added vector
      	lines.
      	(release_structures): Do not release sources.
      	(find_source): Use vector methods.
      	(add_line_counts): Do not use typedef.
      
      From-SVN: r254260
      Martin Liska committed
    • GCOV: add support for lines with an unexecuted lines. · cdb07de7
      2017-10-31  Martin Liska  <mliska@suse.cz>
      
      	* doc/gcov.texi: Document that.
      	* gcov.c (add_line_counts): Mark lines with a non-executed
      	statement.
      	(output_line_beginning): Handle such lines.
      	(output_lines): Pass new argument.
      	(output_intermediate_file): Print it in intermediate format.
      2017-10-31  Martin Liska  <mliska@suse.cz>
      
      	* g++.dg/gcov/ternary.C: New test.
      	* g++.dg/gcov/gcov-threads-1.C (main): Update expected line
      	count.
      	* lib/gcov.exp: Support new format for intermediate file format.
      
      From-SVN: r254259
      Martin Liska committed
    • GCOV: introduce usage of terminal colors. · 28f4a4a8
      2017-10-31  Martin Liska  <mliska@suse.cz>
      
      	* color-macros.h: New file.
      	* diagnostic-color.c: Factor out color related to macros to
      	color-macros.h.
      	* doc/gcov.texi: Document -k option.
      	* gcov.c (INCLUDE_STRING): Include string.h.
      	(print_usage): Add -k option.
      	(process_args): Parse it.
      	(pad_count_string): New function.
      	(output_line_beginning): Likewise.
      	(DEFAULT_LINE_START): New macro.
      	(output_lines): Support color output.
      
      From-SVN: r254258
      Martin Liska committed
    • GCOV: document behavior of -fkeep-{static,inline}-functions (PR gcov-profile/82633). · 00da60d4
      2017-10-31  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/82633
      	* doc/gcov.texi: Document -fkeep-{static,inline}-functions and
      	their interaction with GCOV infrastructure.
      	* configure.ac: Add -fkeep-{inline,static}-functions to
      	coverage_flags.
      	* configure: Regenerate.
      
      From-SVN: r254257
      Martin Liska committed
    • re PR target/82772 (GCC crashes as compiling ags_thread.c source file on alpha architecture) · 00ca3ed2
      	PR target/82772
      	* config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
      
      From-SVN: r254253
      Uros Bizjak committed
    • Subject: [PATCH] rs6000: Fix crash with big stack clash interval (PR82674) · c705e5a3
      If the user asks for a stack clash probe interval of 64kB, we currently
      generate a "stdu rX,-65536(r1)" instruction.  That instruction does not
      exist (the offset is a 16-bit signed number).  If the offset is too big
      we should force it into a register and generate a "stdux rX,rY,r1"
      instruction, instead.
      
      
      	PR target/82674
      	* config/rs6000/rs6000.md (allocate_stack): Force update interval
      	into a register if it does not fit into an immediate offset field.
      
      From-SVN: r254252
      Segher Boessenkool committed
    • Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well. · 4db58158
      2017-10-31  Olivier Hainque  <hainque@adacore.com>
      
              * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.
      
      From-SVN: r254251
      Olivier Hainque committed
    • GFNI enabling [2/4] · 9d54607a
      gcc/
      	* config.gcc: Add gfniintrin.h.
      	* config/i386/gfniintrin.h: New.
      	* config/i386/i386-builtin-types.def (
      	__builtin_ia32_vgf2p8affineinvqb_v64qi,
      	__builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
      	__builtin_ia32_vgf2p8affineinvqb_v32qi
      	__builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
      	__builtin_ia32_vgf2p8affineinvqb_v16qi,
      	__builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
      	* config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
      	V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI,
      	V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
      	V64QI_FTYPE_V64QI_V64QI_INT): New types.
      	* config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
      	* config/i386/immintrin.h: Include gfniintrin.h.
      	* config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.
      
      gcc/testsuite/
      	* gcc.target/i386/avx-1.c: Handle new intrinsics.
      	* gcc.target/i386/avx512-check.h: Check GFNI bit.
      	* gcc.target/i386/avx512f-gf2p8affineinvqb-2.c: Runtime test.
      	* gcc.target/i386/avx512vl-gf2p8affineinvqb-2.c: Runtime test.
      	* gcc.target/i386/gfni-1.c: New.
      	* gcc.target/i386/gfni-2.c: New.
      	* gcc.target/i386/gfni-3.c: New.
      	* gcc.target/i386/gfni-4.c: New.
      	* gcc.target/i386/i386.exp: (check_effective_target_gfni): New.
      	* gcc.target/i386/sse-12.c: Handle new intrinsics.
      	* gcc.target/i386/sse-13.c: Ditto.
      	* gcc.target/i386/sse-14.c: Ditto.
      	* gcc.target/i386/sse-22.c: Ditto.
      	* gcc.target/i386/sse-23.c: Ditto.
      	* g++.dg/other/i386-2.C: Ditto.
      	* g++.dg/other/i386-3.C: Ditto.
      
      From-SVN: r254250
      Julia Koval committed
    • Daily bump. · 16e6821a
      From-SVN: r254249
      GCC Administrator committed
  2. 30 Oct, 2017 31 commits
    • * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge. · 5bc86b59
      From-SVN: r254246
      Eric Botcazou committed
    • re PR c++/67595 (concepts code causes segfault) · 77efd154
      2017-10-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/67595
      	* g++.dg/concepts/pr67595.C: New.
      
      From-SVN: r254245
      Paolo Carlini committed
    • re PR libfortran/80850 (Sourced allocate() fails to allocate a pointer) · 59d7953a
      2017-10-30  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/80850
      	* trans_expr.c (gfc_conv_procedure_call): When passing a class
      	argument to an unlimited polymorphic dummy, it is wrong to cast
      	the passed expression as unlimited, unless it is unlimited. The
      	correct way is to assign to each of the fields and set the _len
      	field to zero.
      
      2017-10-30  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/80850
      	* gfortran.dg/class_64_f90 : New test.
      
      From-SVN: r254244
      Paul Thomas committed
    • pr82725.C: Move to ... · 8581ce0a
      	* g++.dg/pr82725.C: Move to ...
      	* g++.dg/cpp0x/pr82725.C: ... here.  Add c++11 target directive.
      
      From-SVN: r254242
      Uros Bizjak committed
    • resolve.c (resolve_transfer): Set derived to correct symbol for BT_CLASS. · 0c51bf96
      2017-10-30  Steven G. Kargl   <kargl@gcc.gnu.org>
      
      	* resolve.c (resolve_transfer): Set derived to correct symbol for 
      	BT_CLASS.
      
      2017-10-30  Steven G. Kargl   <kargl@gcc.gnu.org>
      
      	* gfortran.dg/dtio_13.f90: Remove TODO comment and dg-error test.
      
      From-SVN: r254241
      Steven G. Kargl committed
    • re PR c++/82085 (ICE: Template variable reference used in nested template alias) · bae0ffb5
      /cp
      2017-10-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/82085
      	* pt.c (tsubst_copy_and_build, [INDIRECT_REF]): For a REFERENCE_REF_P,
      	unconditionally call convert_from_reference.
      
      /testsuite
      2017-10-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/82085
      	* g++.dg/cpp1y/var-templ56.C: New.
      
      From-SVN: r254239
      Paolo Carlini committed
    • [C++ PATCH] operator name cleanup prepatch · ff630487
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg02240.html
      	cp/
      	* call.c (build_op_call_1): Test for FUNCTION_DECL in same manner
      	as a few lines earlier.
      	* cp-tree.h (PACK_EXPANSION_PATTERN): Fix white space.
      	* decl.c (grokfndecl): Fix indentation.
      	(compute_array_index_type): Use processing_template_decl_sentinel.
      	(grok_op_properties): Move warnings to end.  Reorder other checks
      	to group similar entities.  Tweak diagnostics.
      	* lex.c (unqualified_name_lookup_error): No need to check name is
      	not ERROR_MARK operator.
      	* parser.c (cp_parser_operator): Select operator code before
      	looking it up.
      	* typeck.c (check_return_expr): Fix indentation and line wrapping.
      
      	testsuite/
      
      	* g++.dg/other/operator2.C: Adjust diagnostic.
      	* g++.old-deja/g++.jason/operator.C: Likewise.
      
      From-SVN: r254238
      Nathan Sidwell committed
    • Remove DImode expansions for 1-bit shifts · b832b29f
      A left shift of 1 can always be done using an add, so slightly adjust rtx
      cost for DImode left shift by 1 so that adddi3 is preferred in all cases,
      and the arm_ashldi3_1bit is redundant.
      
      DImode right shifts of 1 are rarely used (6 in total in the GCC binary),
      so there is little benefit of the arm_ashrdi3_1bit and arm_lshrdi3_1bit
      patterns.  The generated code is better and faster without these shifts
      as it allows early expansion, optimization and better register allocation.
      
          gcc/
      	* config/arm/arm.md (ashldi3): Remove shift by 1 expansion.
      	(arm_ashldi3_1bit): Remove pattern.
      	(ashrdi3): Remove shift by 1 expansion.
      	(arm_ashrdi3_1bit): Remove pattern.
      	(lshrdi3): Remove shift by 1 expansion.
      	(arm_lshrdi3_1bit): Remove pattern.
      	* config/arm/arm.c (arm_rtx_costs_internal): Slightly increase
      	cost of ashldi3 by 1.
      	* config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion.
      	(<shift>di3_neon): Likewise.
      
      From-SVN: r254237
      Wilco Dijkstra committed
    • Wrong type-attribute for stp and str · 0d1cf538
      Fix the type attributes of the integer stores in aarch64_simd_mov.
      
          gcc/
      	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
      	both identically named patterns to (*aarch64_simd_mov<VD:mode>)
      	and (*aarch64_simd_mov<VQ:mode>).
      	(*aarch64_simd_mov<VD:mode>): Change type attribute to match
      	pattern alternative.
      	(*aarch64_simd_mov<VQ:mode>): Re-order and change type
      	attributes to match pattern alternative.
      
      From-SVN: r254236
      Dominik Infuehr committed
    • Part 2/2 for contributing PPC64LE support for X86 SSE2 instrisics. · daff6cdf
      This patch includes testsuite/gcc.target tests for the intrinsics
      in emmintrin.h.  For these tests I added -Wno-psabi to dg-options
      to suppress warnings associated with the vector ABI change in GCC5.
      
      From-SVN: r254235
      Steven Munroe committed
    • Part 1/2 for contributing PPC64LE support for X86 SSE2 instrisics. · 09359ea3
      Part 1/2 for contributing PPC64LE support for X86 SSE2
      instrisics. This patch includes the new (for PPC) emmintrin.h,
      changes x86intrin.h to include xmmintrin.h, and associated
      config.gcc changes.
      
      From-SVN: r254234
      Steven Munroe committed
    • backport: unnecessary duplication and repeating bugs like PR78439 due to changes… · 1df07b3d
      backport: unnecessary duplication and repeating bugs like PR78439 due to changes being applied only to one of the duplicates.
      
      Merge the movdi_vfp_cortexa8 pattern into movdi_vfp and remove it to avoid
      unnecessary duplication and repeating bugs like PR78439 due to changes being
      applied only to one of the duplicates.
      
          gcc/
              * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8.
              * (movdi_vfp_cortexa8): Remove pattern.
      
      From-SVN: r254233
      Wilco Dijkstra committed
    • Remove Tru64 UNIX and IRIX references in install.texi · 863db6b6
      	* doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1
      	etc. reference.
      	(Specific, alpha*-dec-osf5.1): Remove.
      	(Specific, mips-sgi-irix5): Remove.
      	(Specific, mips-sgi-irix6): Remove.
      
      From-SVN: r254230
      Rainer Orth committed
    • Don't create broken symlink in libstdc++-v3/include/bits · 97b99f9c
      	* include/Makefile.am (stamp-bits-sup): Do not create broken symlink
      	to stamp-bits.
      	* include/Makefile.in: Regenerate.
      
      From-SVN: r254229
      Jonathan Wakely committed
    • re PR middle-end/22141 (Missing optimization when storing structures) · 4403d99a
      	PR middle-end/22141
      	* gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix
      	arguments to clear_bit_region_be.
      
      From-SVN: r254228
      Jakub Jelinek committed
    • Fix ia64 build failure. · 6b139f0d
      	gcc/
      	* gimplify.c: Include memmodel.h.
      
      From-SVN: r254227
      James E Wilson committed
    • Remove ios_mode::trunc from basic_ofstream openmode arguments · 0a6e98b7
      	* include/std/fstream (basic_ifstream, basic_ofstream, basic_fstream):
      	Remove outdated comments about calling c_str() to create a file stream
      	from a std::string.
      	(basic_ofstream::basic_ofstream, basic_ofstream::open): Remove
      	redundant ios_mode::trunc bits from default arguments and comments.
      
      From-SVN: r254226
      Jonathan Wakely committed
    • [hsa] Add missing guard in OMP gridification · 791929c9
      2017-10-30  Martin Jambor  <mjambor@suse.cz>
      
      	* omp-grid.c (grid_attempt_target_gridification): Also insert a
      	condition whether loop should be executed at all.
      
      From-SVN: r254225
      Martin Jambor committed
    • Minor tweak to libstdc++ FAQ · 932bfa9b
      	* doc/xml/faq.xml: Adjust "What is libstdc++?" answer slightly.
      
      From-SVN: r254224
      Jonathan Wakely committed
    • Minor header reorganization for unordered containers · 02a2c630
      	* include/bits/hashtable_policy.h: Include <tuple>.
      	* include/std/unordered_map: Only include <bits/stl_pair.h> instead
      	of <utility> and <tuple>.
      	* include/std/unordered_set: Likewise.
      
      From-SVN: r254223
      Jonathan Wakely committed
    • Implement LWG 2485 · ccbbf8df
      * include/debug/array (get(const array<_Tp, _Nm>&&)): New.
      * include/std/array (get(const array<_Tp, _Nm>&&)): Likewise.
      * include/std/tuple (get(const tuple<_Elements...>&&)): Likewise.
      (get(const tuple<_Types...>&&)): Likewise.
      * include/std/utility
      (__pair_get::__const_move_get(const std::pair<_Tp1, _Tp2>&&)):
      Likewise.
      (get(const std::pair<_Tp1, _Tp2>&&)): Likewise.
      (get(const pair<_Tp, _Up>&&)): Likewise.
      (get(const pair<_Up, _Tp>&&)): Likewise.
      * testsuite/20_util/pair/astuple/get.cc: Add tests for
      new overloads.
      * testsuite/20_util/pair/astuple/get_by_type.cc: Likewise.
      * testsuite/20_util/tuple/element_access/get2.cc: Likewise.
      * testsuite/20_util/tuple/element_access/get2_by_type.cc: Likewise.
      * testsuite/23_containers/array/tuple_interface/get.cc: Likewise.
      * testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc:
      Adjust.
      * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
      Likewise.
      
      From-SVN: r254222
      Ville Voutilainen committed
    • rs6000.c (rs6000_gimple_fold_builtin): Add support for gimple folding of vec_madd() intrinsics. · 198a8e3c
      [gcc]
      
      2017-10-30  Will Schmidt <will_schmidt@vnet.ibm.com>
      
      	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
      	gimple folding of vec_madd() intrinsics.
      	* config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to
      	fmav8hi4.  (altivec_vmladduhm): Rename to fmav8hi4.
      	* config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4
      
      From-SVN: r254221
      Will Schmidt committed
    • fold-vec-perm-longlong.c: Update to use long long types for testcase arguments. · 78effffc
      
      2017-10-30  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/fold-vec-perm-longlong.c: Update to use long long
      	types for testcase arguments.
      
      From-SVN: r254220
      Will Schmidt committed
    • re PR lto/82757 (r251560 causes: plugin needed to handle lto object) · bfe6f076
      2017-10-30  Richard Biener  <rguenther@suse.de>
      
      	PR lto/82757
      	* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
      	Strip two leading _s from the __gnu_lto_* symbols.
      
      From-SVN: r254219
      Richard Biener committed
    • revert: [multiple changes] · 51a9f20c
      2017-10-30  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82762
      	Revert
      	2017-10-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82129
      	Revert
      	2017-08-01  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/81181
      	* tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
      	(compute_antic): ... end of iteration here.
      
      	* gcc.dg/torture/pr82762.c: New testcase.
      
      From-SVN: r254218
      Richard Biener committed
    • gimple-parser.c (c_parser_gimple_statement): Parse conditional stmts. · c1136864
      2017-10-30  Richard Biener  <rguenther@suse.de>
      
      	c/
      	* gimple-parser.c (c_parser_gimple_statement): Parse conditional
      	stmts.
      
      	* gcc.dg/gimplefe-27.c: New testcase.
      
      From-SVN: r254217
      Richard Biener committed
    • Add -std=c17, -std=gnu17. · c76dc9c3
      C17, a bug-fix version of the C11 standard with DR resolutions
      integrated, will soon go to ballot.  This patch adds corresponding
      options -std=c17, -std=gnu17 (new default version, replacing
      -std=gnu11 as the default), -std=iso9899:2017.  As a bug-fix version
      of the standard, there is no need for flag_isoc17 or any options for
      compatibility warnings; however, there is a new __STDC_VERSION__
      value, so new cpplib languages CLK_GNUC17 and CLK_STDC17 are added to
      support using that new value with the new options.  (If the standard
      ends up being published in 2018 and being known as C18, option aliases
      can be added.  Note however that -std=iso9899:199409 corresponds to a
      __STDC_VERSION__ value rather than a publication date.)
      
      (There are a couple of DR resolutions needing implementing in GCC, but
      that's independent of the new options.)
      
      (I'd propose to add -std=c2x / -std=gnu2x / -Wc11-c2x-compat for the
      next major C standard revision once there are actually C2x drafts
      being issued with new features included.)
      
      Bootstrapped with no regressions for x86_64-pc-linux-gnu.
      
      gcc:
      	* doc/invoke.texi (C Dialect Options): Document -std=c17,
      	-std=iso9899:2017 and -std=gnu17.
      	* doc/standards.texi (C Language): Document C17 support.
      	* doc/cpp.texi (Overview): Mention -std=c17.
      	(Standard Predefined Macros): Document C11 and C17 values of
      	__STDC_VERSION__.  Do not refer to C99 support as incomplete.
      	* doc/extend.texi (Inline): Do not list individual options for
      	standards newer than C99.
      	* dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle
      	"GNU C17".
      	* config/rl78/rl78.c (rl78_option_override): Handle "GNU C17"
      	language name.
      
      gcc/c-family:
      	* c.opt (std=c17, std=gnu17, std=iso9899:2017): New options.
      	* c-opts.c (set_std_c17): New function.
      	(c_common_init_options): Use gnu17 as default C version.
      	(c_common_handle_option): Handle -std=c17 and -std=gnu17.
      
      gcc/testsuite:
      	* gcc.dg/c17-version-1.c, gcc.dg/c17-version-2.c: New tests.
      
      libcpp:
      	* include/cpplib.h (enum c_lang): Add CLK_GNUC17 and CLK_STDC17.
      	* init.c (lang_defaults): Add GNUC17 and STDC17 data.
      	(cpp_init_builtins): Handle C17 value of __STDC_VERSION__.
      
      From-SVN: r254216
      Joseph Myers committed
    • asan.c (asan_finish_file): Align asan globals array by shadow granularity. · aa650b64
      2017-10-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
      
      	* asan.c (asan_finish_file): Align asan globals array by shadow
      	granularity.
      
      From-SVN: r254214
      Maxim Ostapenko committed
    • re PR middle-end/22141 (Missing optimization when storing structures) · a62b3dc5
      	PR middle-end/22141
      	* gimple-ssa-store-merging.c: Include rtl.h and expr.h.
      	(struct store_immediate_info): Add bitregion_start and bitregion_end
      	fields.
      	(store_immediate_info::store_immediate_info): Add brs and bre
      	arguments and initialize bitregion_{start,end} from those.
      	(struct merged_store_group): Add bitregion_start, bitregion_end,
      	align_base and mask fields.  Drop unnecessary struct keyword from
      	struct store_immediate_info.  Add do_merge method.
      	(clear_bit_region_be): Use memset instead of loop storing zeros.
      	(merged_store_group::do_merge): New method.
      	(merged_store_group::merge_into): Use do_merge.  Allow gaps in between
      	stores as long as the surrounding bitregions have no gaps.
      	(merged_store_group::merge_overlapping): Use do_merge.
      	(merged_store_group::apply_stores): Test that bitregion_{start,end}
      	is byte aligned, rather than requiring that start and width are
      	byte aligned.  Drop unnecessary struct keyword from
      	struct store_immediate_info.  Allocate and populate also mask array.
      	Make start of the arrays relative to bitregion_start rather than
      	start and size them according to bitregion_{end,start} difference.
      	(struct imm_store_chain_info): Drop unnecessary struct keyword from
      	struct store_immediate_info.
      	(pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8.
      	(pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary
      	struct keyword from struct store_immediate_info.
      	(imm_store_chain_info::coalesce_immediate_stores): Allow gaps in
      	between stores as long as the surrounding bitregions have no gaps.
      	Formatting fixes.
      	(struct split_store): Add orig non-static data member.
      	(split_store::split_store): Initialize orig to false.
      	(find_constituent_stmts): Return store_immediate_info *, non-NULL
      	if there is exactly a single original stmt.  Change stmts argument
      	to pointer from reference, if NULL, don't push anything to it.  Add
      	first argument, use it to optimize skipping over orig stmts that
      	are known to be before bitpos already.  Simplify.
      	(split_group): Return unsigned int count how many stores are or
      	would be needed rather than a bool.  Add allow_unaligned argument.
      	Change split_stores argument from reference to pointer, if NULL,
      	only do a dry run computing how many stores would be produced.
      	Rewritten algorithm to use both alignment and misalign if
      	!allow_unaligned and handle bitfield stores with gaps.
      	(imm_store_chain_info::output_merged_store): Set start_byte_pos
      	from bitregion_start instead of start.  Compute allow_unaligned
      	here, if true, do 2 split_group dry runs to compute which one
      	produces fewer stores and prefer aligned if equal.  Punt if
      	new count is bigger or equal than original before emitting any
      	statements, rather than during that.  Remove no longer needed
      	new_ssa_names tracking.  Replace num_stmts with
      	split_stores.length ().  Use 32-bit stack allocated entries
      	in split_stores auto_vec.  Try to reuse original store lhs/rhs1
      	if possible.  Handle bitfields with gaps.
      	(pass_store_merging::execute): Ignore bitsize == 0 stores.
      	Compute bitregion_{start,end} for the stores and construct
      	store_immediate_info with that.  Formatting fixes.
      
      	* gcc.dg/store_merging_10.c: New test.
      	* gcc.dg/store_merging_11.c: New test.
      	* gcc.dg/store_merging_12.c: New test.
      	* g++.dg/pr71694.C: Add -fno-store-merging to dg-options.
      
      From-SVN: r254213
      Jakub Jelinek committed
    • re PR target/82725 ([x86_64] internal compiler error: in change_address_1, at emit-rtl.c:2162) · 5603c1d9
      	PR target/82725
      	* config/i386/i386.c (legitimate_pic_address_disp_p): Allow
      	UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset.
      
      testsuite/ChangeLog:
      
      	PR target/82725
      	* g++.dg/pr82725.C: New test.
      
      From-SVN: r254212
      Uros Bizjak committed
    • Fix cygwin builds, broken by PR sanitizer/82517 fix. · 87039aa2
      	gcc/
      	* gimplify.c: Include tm_p.h.
      
      From-SVN: r254211
      James E Wilson committed