CODE GENERATION
Function
-CswMinSLB<number>
<number>: a positive number denoting the number of labels
Backend-dependent
None
None
Allows the Compiler to use tables for switch statements.
Switch tables are implemented in different ways. When almost all case entries in some range are given, a table containing only branch targets is used. Using such a dense table is efficient because only the correct entry is accessed. When large holes exist in some areas, a table form can still be used.
But now the case entry and its corresponding branch target are encoded in the table. This is called a search table. A complex runtime routine must be used to access a search table. This routine checks all entries until it finds the matching one. Search tables execute slowly.
Using a search table improves code density, but the execution time increases. Every time an entry in a search table must be found, all previous entries must be checked first. For a dense table, the right offset is computed and accessed. In addition, note that all backends implement search tables (if at all) by using a complex runtime routine. This may make debugging more complex.
To disable search tables for switch statements, set the minimum number of labels needed for a table to a high value (e.g., 9999): -CswMinSLB9999.
Compiler options :