Note [Unique Determinism and code generation]

GHC/Types/Unique.hs:243 compiler 2 tickets

The goal of the deterministic builds (wiki/deterministic-builds, #4012)
is to get ABI compatible binaries given the same inputs and environment.
The motivation behind that is that if the ABI doesn't change the
binaries can be safely reused.

Besides ABI/interface determinism, we also guarantee bit-for-bit identical
binaries (when -fobject-determinism is given), also known as object
determinism (#12935)

To achieve this, we must take care to non-determinism in the code
generation, and, in particular, guarantee that the existing uniques are
renamed deterministically and new ones are produced deterministically too.
The overview of object determinism is given by Note [Object determinism].
References to this note identify code where the unique determinism may
impact object determinism more specifically.