9.8.6 Developer compilation model options
Of the options listed below, the ‘--num-tag-bits’ option
may be useful for cross-compilation, but apart from that
these options are all experimental and are intended for
use by developers of the Mercury implementation rather than by
ordinary Mercury programmers.
--tags {none, low, high}- (This option is not intended for general use.)
Specify whether to use the low bits or the high bits of
each word as tag bits (default: low).
--num-tag-bits n- (This option is not intended for general use.)
Use n tag bits. This option is required if you specify
‘--tags high’.
With ‘--tags low’, the default number of tag bits to use
is determined by the auto-configuration script.
--num-reserved-addresses n- (This option is not intended for general use.)
Treat the integer values from 0 up to n − 1 as reserved
addresses that can be used to represent nullary constructors
(constants) of discriminated union types.
--num-reserved-objects n- (This option is not intended for general use.)
Allocate up to n − 1 global objects for representing nullary
constructors (constants) of discriminated union types.
Note that reserved objects will only be used if reserved addresses
(see --num-reserved-addresses) are not available, since the
latter are more efficient.
--no-type-layout- (This option is not intended for general use.)
Don't output base_type_layout structures or references to them.
This option will generate smaller executables, but will not allow the
use of code that uses the layout information (e.g. ‘functor’,
‘arg’). Using such code will result in undefined behaviour at
runtime. The C code also needs to be compiled with
‘-DNO_TYPE_LAYOUT’.