Working on getting a testcase prepared to file a bug report. The trimmed down case shows a 6x degradation instead of 45x at -O0, but hopefully that's enough to pinpoint the reason. (15 vs 85 seconds.) Seems like some O(n^2) behavior, 15s becomes 90s, but 40s becomes 30m. I used "gcc -E" to generate the output. Is that what we're looking for here? I'm not familiar with *.ii files (or is that the typical extension used for preprocessor output?) Thanks!