https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90240
--- Comment #2 from bin cheng <amker at gcc dot gnu.org> --- Also, cost in inner loop is scaled by big number: Scaling cost based on bb prob by 10000.00: 0 (scratch: 0) -> 0 (10000/1) Scaling cost based on bb prob by 10000.00: 32 (scratch: 0) -> 320000 (10000/1) Scaling cost based on bb prob by 10000.00: 41 (scratch: 0) -> 410000 (10000/1) Scaling cost based on bb prob by 10000.00: 21 (scratch: 0) -> 210000 (10000/1) Scaling cost based on bb prob by 10000.00: 45 (scratch: 0) -> 450000 (10000/1) Scaling cost based on bb prob by 10000.00: 21 (scratch: 0) -> 210000 (10000/1) Scaling cost based on bb prob by 10000.00: 17 (scratch: 0) -> 170000 (10000/1) Resulting: Group 19: cand cost compl. inv.expr. inv.vars 1 410000 0 NIL; 1, 4 2 210000 0 NIL; 4 3 450000 0 NIL; 1, 4 4 210000 0 NIL; 4 5 170000 0 35; NIL; 30 0 0 NIL; NIL; 67 320000 0 NIL; 1, 4 Given we have 70 groups of iv_use, this easily overflow infinite_cost which is 10,000,000. One thing unclear is the overflow happens in the middle of cost candidate choosing algorithm.