Expressions produced by compilers involving only constant arguments can be evaluated once. This is particular relevant in functions that are called repeatedly. One time queries would not benefit from this extra step.
Consider the following snippet, which contains repeated use of constant arguments
a:= 1+1; io.print(a); b:= 2; io.print(b); c:= 3*b; io.print(c); d:= calc.flt(c); io.print(d); e:= mmath.sin(d);io.print(e); optimizer.aliasRemoval(); optimizer.evaluate();
The code produced by the optimizer would be
io.print(2); io.print(2); io.print(6); io.print(6); io.print(-0.279415488);
we attempt to catch barrier blocks based on constants.