Next: Optimizations specific to high level code, Previous: Experimental source-to-source optimizations, Up: Optimization options [Contents][Index]
--smart-indexing
Implement switches using the fastest applicable implementation method, which may be e.g. binary search or a hash table. With ‘--no-smart-indexing’, the default is to implement switches as simple if-then-else chains.
--dense-switch-req-density percentage
The jump table generated for an atomic switch must have at least this percentage of full slots (default: 25).
--lookup-switch-req-density percentage
The jump table generated for an atomic switch in which all the outputs are constant terms must have at least this percentage of full slots (default: 25).
--dense-switch-size N
The jump table generated for an atomic switch must have at least this many entries (default: 4).
--lookup-switch-size N
The lookup table generated for an atomic switch must have at least this many entries (default: 4).
--string-trie-switch-size N
--string-trie-size N
The trie generated for a string switch must have at least this many entries (default: 16).
--string-hash-switch-size N
--string-switch-size N
The hash table generated for a string switch must have at least this many entries (default: 8).
--string-binary-switch-size N
The binary search table generated for a string switch must have at least this many entries (default: 4).
--tag-switch-size N
The number of alternatives in a tag switch must be at least this number (default: 3).
--static-ground-terms
Enable the optimization of constructing constant ground terms at compile time and storing them as static constants. Note that auxiliary data structures created by the compiler for purposes such as debugging will always be created as static constants.
--use-atomic-cells
Use the atomic variants of the Boehm gc allocator calls when the memory cell to be allocated cannot contain pointers.