-C.cfile--code=.cfile
Generate code in the given file.
-Hheaderfile--header=headerfile
Generate a header in the given file, containing a declaration of the hash function and an
enumeration.
--enum-name=word
The name of the enumeration.
--function-name=word
The name of the function.
--label-prefix=word
The prefix to use for labels.
--label-uppercase
Uppercase label names when normalizing them.
--namespace=name
Put the function and enum into a namespace (C++)
--class=name
Put the function and enum into a class (C++)
--enum-class
Generate an enum class instead of an enum (C++)
--counter-name=name
Use name for a counter that is set to the latest entry in the enumeration + 1. This can be useful for
defining array sizes.
--ignore-case
Ignore case for words.
--multi-byte=value
Generate code reading multiple bytes at once. The value is a string of power of twos to enable. The
default value is 320 meaning that 8, 4, and single byte reads are enabled. Specify 0 to disable
multi-byte completely, or add 2 if you also want to allow 2-byte reads. 2-byte reads are disabled by
default because they negatively affect performance on older Intel architectures.
This generates code for both multiple bytes and single byte reads, but only enables the multiple byte
reads of GNU C compatible compilers, as the following extensions are used:
Byte-aligned integers
We must be able to generate integers that are aligned to a single byte using:
typedef uint64_t __attribute__((aligned (1))) triehash_uu64;
Byte-order
The macros __BYTE_ORDER__ and __ORDER_LITTLE_ENDIAN__ must be defined.
We forcefully disable multi-byte reads on platforms where the variable __ARM_ARCH is defined and
__ARM_FEATURE_UNALIGNED is not defined, as there is a measurable overhead from emulating the
unaligned reads on ARM.
--language=language
Generate a file in the specified language. Currently known are 'C' and 'tree', the latter generating
a tree.
--include=header
Add the header to the include statements of the header file. The value must be surrounded by quotes
or angle brackets for C code. May be specified multiple times.