Sì, la piegatura costante è un esempio di ottimizzazione che può essere eseguita molto presto, possibilmente anche nelle funzioni di costruzione del nodo AST. D'altra parte, l'esecuzione di un piegamento costante sull'AST potrebbe non essere auspicabile se ciò risultasse dannoso per i messaggi di errore. Alcuni linguaggi (ad es. Java) non possono eseguire il piegamento costante nella fase sintattica in quanto devono essere in grado di risolvere determinate variabili.
Esiste, naturalmente, un'enorme varietà di architetture di compilazione. LLVM con molti passaggi che utilizzano tutti lo stesso IR è una variante estrema, penso che GCC usi più IR in diverse fasi. All'altro estremo sarebbe la VM Perl, che usa le sue strutture opcode sia come AST che come bytecode.