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

            Bug ID: 116166
           Summary: risc-v (last) insn-emit-nn.c build takes hours
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mark at gcc dot gnu.org
  Target Milestone: ---

Created attachment 58789
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=58789&action=edit
preprocessed insn-emit-96.cc

Compiling on risc-v the (last) insn-emit-nn.s takes hours. Even using
--with-insnemit-partitions=96 insn-emit-96.cc is still 2.5MB.

preprocessed source attached.

git gcc-15-2456-g69a9ee05c68

/home/builder/worker/gcc-full-fedora-riscv/gcc-build/./prev-gcc/cc1plus -quiet
-march=rv64imafdc_zicsr_zifencei_zaamo_zalrsc -mabi=lp64d -misa-spec=20191213
-mtls-dialect=trad -march=rv64imafdc_zicsr_zifencei_zca_zcd -g -gtoggle -O2
-Wwrite-strings /tmp/insn-emit-96.i -fno-checking -fno-exceptions -fno-rtti
-fasynchronous-unwind-tables -fno-PIE -o /tmp/insn-emit-96.s

perf -g profile looks like:

+   98.46%     0.00%  cc1plus  cc1plus           [.]
jump_threader::thread_around_empty_blocks
+   98.42%     0.00%  cc1plus  cc1plus           [.]
jump_threader::simplify_control_stmt_condition
+   98.41%     0.00%  cc1plus  cc1plus           [.]
jump_threader::simplify_control_stmt_condition_1
+   98.33%     0.00%  cc1plus  cc1plus           [.]
dom_jt_simplifier::simplify
+   98.26%     0.00%  cc1plus  cc1plus           [.]
hybrid_jt_simplifier::simplify
+   97.84%     0.00%  cc1plus  cc1plus           [.]
path_range_query::reset_path
+   96.53%     0.07%  cc1plus  cc1plus           [.]
path_range_query::compute_ranges
+   95.45%     0.44%  cc1plus  cc1plus           [.]
path_range_query::compute_ranges_in_block
+   46.65%     0.19%  cc1plus  cc1plus           [.] gori_compute::edge_range_p
+   40.20%     0.11%  cc1plus  cc1plus           [.]
gori_compute::compute_operand_range
+   38.54%     0.33%  cc1plus  cc1plus           [.]
gori_compute::compute_operand1_range
+   25.39%     0.72%  cc1plus  cc1plus           [.] irange::intersect
+   20.40%     0.16%  cc1plus  cc1plus           [.]
path_range_query::compute_outgoing_relations
+   14.79%     8.26%  cc1plus  cc1plus           [.]
generic_wide_int<wide_int_storage>::~generic_wide_int
+   14.39%     0.27%  cc1plus  cc1plus           [.]
fur_source::register_outgoing_edges
+   14.21%     0.23%  cc1plus  cc1plus           [.] gcond_edge_range
+   13.01%     7.29%  cc1plus  cc1plus           [.]
generic_wide_int<wide_int_storage>::generic_wide_int
+   12.35%     1.15%  cc1plus  cc1plus           [.] int_range<3u,
true>::~int_range
+   11.95%     0.26%  cc1plus  cc1plus           [.] value_range::~value_range
+   10.89%     0.89%  cc1plus  cc1plus           [.] irange::maybe_resize
+   10.22%     0.18%  cc1plus  cc1plus           [.]
path_range_query::get_cache
+   10.19%     0.45%  cc1plus  cc1plus           [.] irange::set

Will run overnight with -ftime-report to get better stats.

Reply via email to