http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54627
Bug #: 54627 Summary: VRP uses lots of memory and compile-time Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: compile-time-hog, memory-hog Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: rgue...@gcc.gnu.org Part of it is due to equivalence set bitmaps becoming huge (and their inefficient computation). equivalences are only used when trying to simplify comparisons (but during iteration). So the only used equivalence bitmaps are for operands of those. equivalences are generated only by asserts and SSA name copies, so they can be computed up-front and shouldn't change (apart from handling of non-executable edges in PHI nodes) during iteration. At least equivalence processing can be ignored for SSA name chains not leading up to a condition operand.