Next: , Previous: Compilation model options, Up: Invocation   [Contents][Index]

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.

--max-jump-table-size n

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.

--fact-table-max-array-size size

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.

--fact-table-hash-percent-full percentage

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.

Next: , Previous: Compilation model options, Up: Invocation   [Contents][Index]