9.9 Code generation options
- Enables various low-level debugging stuff that was in the distant past
used to debug the Mercury compiler's low-level code generation.
This option is not likely to be useful to anyone except the Mercury
implementors. It causes the generated code to become very big and very
inefficient, and slows down compilation a lot.
- The default ‘--trad-passes’ completely processes each predicate
before going on to the next predicate.
This option tells the compiler
to complete each phase of code generation on all predicates
before going on the next phase on all predicates.
- Don't reclaim heap on backtracking in nondet code.
- Don't reclaim heap on backtracking in semidet code.
- Combines the effect of the two options above.
- The maximum number of entries a jump table can have.
The special value 0 indicates the table size is unlimited.
This option can be useful to avoid exceeding fixed limits
imposed by some C compilers.
- % % Generate quadratic instead of linear compare predicates for types
% with up to n function symbols. Higher values of n lead to faster
% but also bigger compare predicates.
- % % % If specified, do not add a test for the two values being equal as words
% to the starts of potentially expensive unify and compare predicates.
- Specify the maximum number of elements in a single
‘pragma fact_table’ data array (default: 1024).
The data for fact tables is placed into multiple C arrays, each with a
maximum size given by this option. The reason for doing this is that
most C compilers have trouble compiling very large arrays.
- Specify how full the ‘pragma fact_table’ hash tables should be
allowed to get. Given as an integer percentage (valid range: 1 to 100,
default: 90). A lower value means that the compiler will use
larger tables, but there will generally be less hash collisions,
so it may result in faster lookups.