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.