Node: Optimization, Next: Debugging, Previous: Units; GPI files and Automake, Up: Borland Pascal

### Optimization

GNU Pascal is a 32/64 bit compiler with excellent optimization algorithms (which are identically the same as those of GNU C). There are six optimization levels, specified by the command line options `-O`, `-O2`, ..., `-O6`.

One example:

         program OptimizationDemo;

         procedure Foo;
         var
           A, B: Integer;
         begin
           A := 3;
           B := 4;
           WriteLn (A + B)
         end;

         begin
           Foo
         end.

When GNU Pascal compiles this program with optimization (`-O3`), it recognizes that the argument to `WriteLn' is the constant 7 – and optimizes away the variables `A` and `B`. If the variables were global, they would not be optimized away because they might be accessed from other places, but the constant 7 would still be optimized.

For more about optimization, see the GNU C documentation.