The GCC technology provides a wide range of target dependent
-m
switches for controlling
details of code generation with respect to different versions of
architectures. This includes variations in instruction sets (e.g.,
different members of the power pc family), and different requirements
for optimal arrangement of instructions (e.g., different members of
the x86 family). The list of available `-m' switches may be
found in the GCC documentation.
Use of these `-m' switches may in some cases result in improved code performance.
The GNAT technology is tested and qualified without any
-m
switches,
so generally the most reliable approach is to avoid the use of these
switches. However, we generally expect most of these switches to work
successfully with GNAT, and many customers have reported successful
use of these options.
Our general advice is to avoid the use of `-m' switches unless special needs lead to requirements in this area. In particular, there is no point in using `-m' switches to improve performance unless you actually see a performance improvement.