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.