------- Comment #34 from steven at gcc dot gnu dot org 2006-01-08 18:40 ------- Another factor contributing to the huge compile time requirements of VRP for this test case is the number of equivalences recorded:
Value ranges after VRP ("..." meaning I cut away a *cough* few b_i SSA names ;-): b_1: VARYING b_2: ~[19998, 19998] EQUIVALENCES: { b_1 b_3 ... b_10001 } (10000 elements) b_3: ~[19997, 19997] EQUIVALENCES: { b_1 b_4 ... b_10001 } (9999 elements) b_4: ~[19996, 19996] EQUIVALENCES: { b_1 b_5 ... b_10001 } (9998 elements) ... b_9999: ~[10001, 10001] EQUIVALENCES: { b_1 b_10000 b_10001 } (3 elements) b_10000: ~[10000, 10000] EQUIVALENCES: { b_1 b_10001 } (2 elements) b_10001: ~[1, 1] EQUIVALENCES: { b_1 } (1 elements) I think that, if this is something we should worry about at all, this belongs in a separate bug report about VRP. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19097