Allow refinement of constructors for which -fdistinct-constructor-tables is applied
Introduce -fno-distinct-constructor-tables. A distinct constructor table
configuration is built from the combination of flags given, in order. For
example, to only generate distinct constructor tables for a few specific
constructors and no others, just pass
-fdistinct-constructor-tables-only=C1,...,CN.
This flag can be supplied multiple times to extend the set of
constructors to generate a distinct info table for.
You can disable generation of distinct constructor tables for all
configurations by passing -fno-distinct-constructor-tables.
The various configurations of these flags is included in the DynFlags
fingerprints, which should result in the expected recompilation logic.
Adds a test that checks for distinct tables for various given or omitted constructors.
Fixes #23703 (closed)
Rebase of !10958