determinism: Deterministic object code with -fllvm
As a follow up to !12680 (merged), this ticket tracks the changes left to do in CmmToLlvm
with respect to object determinism.
In particular, the MonadGetUnique
instance of LlvmM
uses uniqFromTag
to sample a non-deterministic unique from IO
.
In order to guarantee object determinism when using -fllvm
, the instance of MonadGetUnique
for LlvmM
should be backed by a deterministic unique supply (perhaps by applying the UniqDSMT
transformer to LlvmM
?).