The old Burroughs COBOL compiler had 8 passes, supposedly so it could run on machines with about a megabyte of disk, and 64Kb of memory.
The output of the 7th stage was an intermediate code; my guess is that part of the reason there were so many stages was to enable most of the compiler to be language-independant. If you renamed the executable for the 8th pass, you could hack on the intermediate code with an editor, and make COBOL programs that could do illegal things, like access IO directly.
I suspect a lot of the passes were common to the ALGOL compiler.
The output of the 7th stage was an intermediate code; my guess is that part of the reason there were so many stages was to enable most of the compiler to be language-independant. If you renamed the executable for the 8th pass, you could hack on the intermediate code with an editor, and make COBOL programs that could do illegal things, like access IO directly.
I suspect a lot of the passes were common to the ALGOL compiler.