Собирая один файл, заметил, что с -O1 или -O2 при запуске он уходит в рекурсию, а с -O0 практически не потребляет памяти.
Отсюда вопрос - какой флаг (-f*) заставляет его переводить итерацию обратно в рекурсию? И главное - зачем? ;) Или я чего-то не понимаю?