https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96653
Bug ID: 96653 Summary: Compile time and memory hog w/ -O1 -fanalyzer Product: gcc Version: 11.0 Status: UNCONFIRMED Keywords: compile-time-hog, memory-hog Severity: normal Priority: P3 Component: analyzer Assignee: dmalcolm at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Created attachment 49068 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49068&action=edit Testcase gcc-11.0.0-alpha20200816 snapshot (g:c99116aeeb9644ebddec653ee8b19de4d38b65bd) takes indefinite time and consumes ever-increasing amount of memory when compiling the attached testcase, preprocessed and reduced from drivers/media/v4l2-core/v4l2-ctrls.c from Linux 5.9-rc1, w/ -O1 -fanalyzer: % timeout 60 gcc-11.0.0 -O1 -fanalyzer -c cdkkdewb.c zsh: exit 124 timeout 60 gcc-11.0.0 -O1 -fanalyzer -c cdkkdewb.c Typical profiles captured by perf top at different time: 72.47% cc1 [.] ana::constraint_manager::add_constraint_internal 25.53% cc1 [.] ana::constraint::implied_by 0.80% cc1 [.] ana::constraint_manager::get_equiv_class_by_svalue 0.45% cc1 [.] ana::constraint_manager::eval_condition 0.20% cc1 [.] ana::constraint_manager::validate 0.15% cc1 [.] ana::constraint_manager::eval_condition 0.10% cc1 [.] ana::constraint_manager::get_or_add_equiv_class 0.10% cc1 [.] fold_binary_loc 0.07% cc1 [.] ana::constraint_manager::get_ec_bounds 0.07% cc1 [.] tree_strip_sign_nop_conversions 0.02% cc1 [.] wi::lts_p<generic_wide_int<wi::extended_tree<192> >, generic_wide_int<wi::extended_tree<192> > > 0.02% cc1 [.] tree_int_cst_equal * * * 48.80% cc1 [.] ana::constraint_manager::add_constraint_internal 25.31% cc1 [.] ana::constraint_manager::get_equiv_class_by_svalue 17.42% cc1 [.] ana::constraint::implied_by 1.40% cc1 [.] qsort_chk 0.95% cc1 [.] ana::constraint_cmp 0.62% cc1 [.] fold_binary_loc 0.55% cc1 [.] cmp2to3 0.55% cc1 [.] ana::constraint_manager::hash 0.55% cc1 [.] ana::constraint_manager::eval_condition 0.40% cc1 [.] ana::constraint_manager::eval_condition 0.32% cc1 [.] hash_table<default_hash_traits<ana::equiv_class const*>, false, xcallocator>::find_slot_with_hash 0.30% cc1 [.] mergesort<sort_ctx> 0.27% cc1 [.] ana::constraint_manager::validate 0.22% cc1 [.] ana::constraint_manager::eval_condition 0.17% cc1 [.] ana::constraint_manager::for_each_fact 0.17% cc1 [.] fold_relational_const 0.17% cc1 [.] ana::constraint_manager::get_ec_bounds 0.15% cc1 [.] const_binop 0.15% cc1 [.] ana::svalue::unwrap_any_unmergeable 0.15% cc1 [.] tree_int_cst_lt 0.15% libc-2.32.so [.] memcpy@@GLIBC_2.14 0.12% cc1 [.] tree_strip_sign_nop_conversions 0.12% cc1 [.] ana::constant_svalue::get_kind 0.12% cc1 [.] wi::extended_tree<192>::extended_tree 0.10% cc1 [.] wi::lts_p<generic_wide_int<wi::extended_tree<192> >, generic_wide_int<wi::extended_tree<192> > > 0.10% cc1 [.] constant_boolean_node 0.10% cc1 [.] ana::constraint_manager::constraint_manager 0.07% cc1 [.] ana::svalue::dyn_cast_unmergeable_svalue 0.07% cc1 [.] ana::constraint_manager::get_or_add_equiv_class 0.07% cc1 [.] ana::constraint_manager::canonicalize 0.05% cc1 [.] ana::equiv_class_cmp 0.02% libc-2.32.so [.] _int_malloc 0.02% cc1 [.] ana::constraint_manager::operator== 0.02% cc1 [.] tree_int_cst_equal 0.02% cc1 [.] wi::eq_p<generic_wide_int<wi::extended_tree<192> >, generic_wide_int<wi::extended_tree<192> > > 0.02% libc-2.32.so [.] unlink_chunk.constprop.0 0.02% cc1 [.] ana::store::can_merge_p 0.02% cc1 [.] memcpy@plt 0.02% cc1 [.] cmp1<sort_ctx> 0.02% cc1 [.] ana::constraint_manager::purge<ana::dead_svalue_purger> 0.02% cc1 [.] ana::store::canonicalize