https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77839

            Bug ID: 77839
           Summary: [7 Regression] Memory- and compile time hog at -O1 and
                    above
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Keywords: compile-time-hog, memory-hog
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---

Current gcc 7 snapshots (and also as old as 7.0.0-alpha20160731) hog time and
memory when compiling the following reduced snippet at -O1 (or higher):

void
sd(int yn)
{
  while (yn < 1)
    {
      int hy;
      int *n6 = &hy;
      int **ot = &n6;

      (void)ot;
      for (yn = 0; yn < 1; ++yn)
        {
          int tc, wo = 0, ez = 0, b8 = 0;
          int *ls = &wo;

          (void)ls;
          hy = 0;
          for (tc = 0; tc < 1; ++tc)
            {
              ez ^= hy;
              wo ^= ez;
              ++b8;
            }
          hy += (b8 < wo);
        }
    }
}

% timeout 20 gcc-7.0.0-alpha20161002 -O1 -c v5ydrl0g.c
zsh: exit 124

Several top entries reported by perf:

   4.32%  cc1              cc1                      [.] visit_use
   1.79%  cc1              cc1                      [.] mark_used_flags
   1.50%  cc1              cc1                      [.] walk_tree_1
   1.36%  cc1              cc1                      [.] VN_INFO
   1.30%  cc1              cc1                      [.] operand_equal_p
   1.14%  cc1              libc-2.23.so             [.] _int_malloc
   1.09%  cc1              libc-2.23.so             [.] __memset_sse2
   1.07%  cc1              cc1                      [.] inchash::add_expr
   0.94%  cc1              cc1                      [.] vn_reference_eq
   0.91%  cc1              cc1                      [.]
iterative_hash_host_wide_int
   0.83%  cc1              cc1                      [.]
copy_reference_ops_from_ref
   0.82%  cc1              cc1                      [.] set_ssa_val_to
   0.82%  cc1              cc1                      [.]
hash_table<vn_phi_hasher, xcallocator>::find_slot_with_hash
   0.80%  cc1              cc1                      [.]
iterative_hash_hashval_t
   0.80%  cc1              cc1                      [.] tree_operand_check
   0.78%  cc1              cc1                      [.] wide_int_to_tree
   0.75%  cc1              cc1                      [.]
hash_table<vn_reference_hasher, xcallocator>::find_slot_with_hash
   0.75%  cc1              cc1                      [.] ggc_internal_alloc
   0.73%  cc1              cc1                      [.] walk_gimple_op
   0.73%  cc1              libc-2.23.so             [.] _int_free
   0.71%  cc1              cc1                      [.] valueize_refs_1
   0.70%  cc1              cc1                      [.] get_ref_base_and_extent
   0.68%  cc1              cc1                      [.]
vn_reference_compute_hash
   0.66%  cc1              cc1                      [.] bitmap_set_bit
   0.64%  cc1              cc1                      [.] vn_phi_compute_hash
   0.63%  cc1              libc-2.23.so             [.] __memset_avx2
   0.63%  cc1              cc1                      [.]
df_live_bb_local_compute
   0.59%  cc1              cc1                      [.] is_gimple_reg
   0.54%  cc1              cc1                      [.] gimple_simplify
   0.53%  cc1              cc1                      [.] get_alias_set
   0.52%  cc1              cc1                      [.]
gimple_fold_stmt_to_constant_1
   0.51%  cc1              cc1                      [.] is_gimple_val

Reply via email to