Zoltan Somogyi
2018-06-14 13:35:31 UTC
Currently we support three tag_methods:
- storing primary tags in the least significant 2 or 3 bits of a word,
(tags_low)
- storing primary tags in the most significant N bits of a word, where
N may be more than 3 (tags_high)
- not storing primary tags bits at all, distinguishing functors using
tags stored in memory (tags_none).
I propose that we delete support for tags_high. We started with that
because we knew it worked, since it is the method that Prolog systems
have traditionally used. However, once we got tags_low working,
I don't think we ever used tags_high in anger more than once,
and that one occasion was for benchmarks to show that tags_low
was faster :-(
The motivation for raising this issue now this is that I don't want to
write code that adds mktag and unmktag unary operations to the
LLDS and MLDS code being generated, when I know that both are no-ops
unless someone selects tags_high. With my proposal, we should be able
to delete the mktag and unmktag unops; they should *never* be needed.
Any objections?
Zoltan.
- storing primary tags in the least significant 2 or 3 bits of a word,
(tags_low)
- storing primary tags in the most significant N bits of a word, where
N may be more than 3 (tags_high)
- not storing primary tags bits at all, distinguishing functors using
tags stored in memory (tags_none).
I propose that we delete support for tags_high. We started with that
because we knew it worked, since it is the method that Prolog systems
have traditionally used. However, once we got tags_low working,
I don't think we ever used tags_high in anger more than once,
and that one occasion was for benchmarks to show that tags_low
was faster :-(
The motivation for raising this issue now this is that I don't want to
write code that adds mktag and unmktag unary operations to the
LLDS and MLDS code being generated, when I know that both are no-ops
unless someone selects tags_high. With my proposal, we should be able
to delete the mktag and unmktag unops; they should *never* be needed.
Any objections?
Zoltan.