1. 02 Jul, 2019 17 commits
    • compiler: use builtin memset for non-pointer memclr · e2790e1e
          
          For zeroing a range of memory that doesn't contain pointer, we
          can use builtin memset directly.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/184438
      
      	* go-gcc.cc (Gcc_backend::Gcc_backend): Define __builtin_memset.
      
      From-SVN: r272944
      Cherry Zhang committed
    • mmx.md (mmx_pack<s_trunsuffix>swb): Use TARGET_SSE2 && SSE_REGNO_P in split condition. · dab0477b
      	* config/i386/mmx.md (mmx_pack<s_trunsuffix>swb):
      	Use TARGET_SSE2 && SSE_REGNO_P in split condition.
      	(mmx_packssdw): Ditto.
      	(mmx_punpckhbw): Ditto.
      	(mmx_punpcklbw): Ditto.
      	(mmx_punpckhwd): Ditto.
      	(mmx_punpcklwd): Ditto.
      	(mmx_punpckhdq): Ditto.
      	(mmx_punpckldq): Ditto.
      	(*vec_dupv4hi): Ditto.
      	(*vec_dupv2si): Ditto.
      	(mmx_pmovmskb): Ditto.
      	* config/i386/sse.md (sse_cvtpi2ps): Use
      	TARGET_SSE2 && SSE_REG_P in split condition.
      	(ssse3_ph<plusminus_mnemonic>wv4hi3): Use
      	TARGET_SSSE3 && SSE_REGNO_P in split condition.
      	(ssse3_ph<plusminus_mnemonic>dv2si3): Ditto.
      	(ssse3_pshufbv8qi3): Ditto.
      	(ssse3_palignrdi): Ditto.
      
      From-SVN: r272943
      Uros Bizjak committed
    • Fix amdgcn regrename ICE. · 8108da8a
      2019-07-02  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
      	with inlined save and restore.
      
      From-SVN: r272932
      Andrew Stubbs committed
    • Fix preprocessor checks for Clang builtins · 4887c9e8
      Clang seems to define built-ins that start with "__builtin_" as
      non-keywords, which means that we need to use __has_builtin to detect
      them, not __is_identifier. The built-ins that don't start with
      "__builtin_" are keywords, and can only be detected using
      __is_identifier and not by __has_builtin.
      
      	* include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_LAUNDER)
      	(_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED): Use __has_builtin
      	instead of __is_identifier to detect Clang support.
      
      From-SVN: r272931
      Jonathan Wakely committed
    • cfgexpand.c (pass_expand::execute): Deal specially with instructions to be… · 82cea5e8
      cfgexpand.c (pass_expand::execute): Deal specially with instructions to be inserted on single successor edge of the...
      
      	* cfgexpand.c (pass_expand::execute): Deal specially with instructions
      	to be inserted on single successor edge of the entry block.  Then call
      	commit_edge_insertions instead of inserting the instructions manually.
      	* cfgrtl.c (commit_edge_insertions): Do not verify flow info during
      	RTL expansion.
      
      From-SVN: r272929
      Eric Botcazou committed
    • tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and TI_CHREC_KNOWN. · 2e2c9da0
      2019-07-02  Richard Biener  <rguenther@suse.de>
      
      	* tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and
      	TI_CHREC_KNOWN.
      	* tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
      	Define here.
      	* tree.c (build_common_tree_nodes): Initialize them.
      	* tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
      	Make declarations comments.
      	* tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know,
      	chrec_known): Remove definitions.
      	(initialize_scalar_evolutions_analyzer): Remove.
      	(scev_initialize): Do not call initialize_scalar_evolutions_analyzer.
      	* tree-streamer.c (preload_common_nodes): Do not preload
      	TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN.
      
      From-SVN: r272928
      Richard Biener committed
    • tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten sanity check. · 30ca9fbe
      	* tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten
      	sanity check.
      
      From-SVN: r272927
      Jan Hubicka committed
    • tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename to .. · 1c28d12f
      
      	* tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
      	to ..
      	(nonoverlapping_component_refs_since_match_p): ... this one;
      	handle also non-decl bases; return -1 if search gave up.
      	(alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias,
      	nonoverlapping_component_refs_of_decl_p_no_alias to
      	nonoverlapping_component_refs_since_match_p_may_alias,
      	nonoverlapping_component_refs_since_match_p_no_alias.
      	(dump_alias_stats): Update dumping.
      	(aliasing_matching_component_refs_p):  Break out from ...;
      	dispatch to nonoverlapping_component_refs_for_decl_p
      	and nonoverlapping_component_refs_since_match_p.
      	(aliasing_component_refs_p): ... here; call
      	nonoverlapping_component_refs_p in scenarios where we can not
      	precisely determine base match.
      	(decl_refs_may_alias_p): Use
      	nonoverlapping_component_refs_since_match_p.
      	(indirect_ref_may_alias_decl_p): Do not call
      	nonoverlapping_component_refs_p.
      	(indirect_refs_may_alias_p): Likewise.
      
      	* gcc.dg/tree-ssa/alias-access-path-7.c: New testcase.
      
      From-SVN: r272926
      Jan Hubicka committed
    • tree-inline.c (remap_gimple_stmt): Do not subtitute handled components to clobber of return value. · f51b4aed
      	* tree-inline.c (remap_gimple_stmt): Do not subtitute handled components
      	to clobber of return value.
      	* g++.dg/lto/pr90990_0.C: New testcase.
      
      From-SVN: r272925
      Jan Hubicka committed
    • [arm/AArch64] Assume unhandled NEON types are neon_arith_basic types when scheduling for Cortex-A57 · 8bb9a5e6
      Some scheduling descriptions, like the Cortex-A57 one, are reused for multiple -mcpu options.
      Sometimes those other -mcpu cores support more architecture features than the Armv8-A Cortex-A57.
      For example, the Cortex-A75 and Cortex-A76 support Armv8.2-A as well as the Dot Product instructions.
      These Dot Product instructions have the neon_dot and neon_dot_q scheduling type, but that type is not
      handled in cortex-a57.md, since the Cortex-A57 itself doesn't need to care about these instructions.
      
      But if we just ignore the neon_dot(_q) type at scheduling we get really terrible codegen when compiling
      for -mcpu=cortex-a76, for example, because the scheduler just pools all the UDOT instructions at the end
      of the basic block, since it doesn't assume anything about their behaviour.
      
      This patch ameliorates the situation somewhat by telling the Cortex-A57 scheduling model to treat any
      insn that doesn't get assigned a cortex_a57_neon_type but is actually a is_neon_type instruction as
      a simple neon_arith_basic instruction. This allows us to treat post-Armv8-A SIMD instructions more sanely
      without having to model each of them explicitly in cortex-a57.md.
      
      	* config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic
      	for is_neon_type instructions that have not already been categorized.
      
      From-SVN: r272924
      Kyrylo Tkachov committed
    • lto-common.c (lto_register_canonical_types_for_odr_types): Copy CXX_ODR_P from the main variant. · 606a9a8c
      	* lto-common.c (lto_register_canonical_types_for_odr_types):
      	Copy CXX_ODR_P from the main variant.
      
      From-SVN: r272923
      Jan Hubicka committed
    • re PR tree-optimization/58483 (missing optimization opportunity for const… · 14ec49a7
      re PR tree-optimization/58483 (missing optimization opportunity for const std::vector compared to std::array)
      
      2019-07-02  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/58483
      	* tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF
      	for MEM_REF base hashing.
      	(equal_mem_array_ref_p): Likewise for base comparison.
      
      	* gcc.dg/tree-ssa/ssa-dom-cse-8.c: New testcase.
      
      From-SVN: r272922
      Richard Biener committed
    • mklog/91048: Open ~/.mklog in string mode. · 6d64cee8
      2019-07-02  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR other/91048
      	* mklog (read_user_info): Open ~/.mklog in string mode.
      
      From-SVN: r272921
      Janne Blomqvist committed
    • Fix libstdc++ install-pdf support. · 758d7478
      Generating pdf files requires everything that is required for the xml files
      except the style sheets.
      
      	libstdc++-v3/
      	* configure.ac (BUILD_PDF): Also test for doxygen, dot, xsltproc,
      	and xmllint.
      	* configure: Regenerate.
      
      From-SVN: r272920
      Jim Wilson committed
    • compiler: refactoring in Export class to encapsulate type refs map · 9badab5d
          
          Convert the Export::type_refs map from a static object to a field
          contained (indirectly, via an impl class) in Export itself, for better
          encapsulation and to be able to reclaim its memory when exporting is
          done. No change in compiler functionality.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/184170
      
      From-SVN: r272919
      Ian Lance Taylor committed
    • Daily bump. · b731572b
      From-SVN: r272916
      GCC Administrator committed
  2. 01 Jul, 2019 23 commits