Rubbish literals for all representations (#18983)
This patch cleans up the complexity around WW's mk_absent_let
by
broadening the scope of LitRubbish
. Rubbish literals now store the
PrimRep
they represent and are ultimately lowered in Cmm.
This in turn allows absent literals of VecRep
or VoidRep
. The latter
allows absent literals for unlifted coercions, as requested in #18983.
I took the liberty to rewrite and clean up Note [Absent fillers]
and
Note [Rubbish values]
to account for the new implementation and to
make them more orthogonal in their description.
I didn't add a new regression test, as T18982
already contains the
test in the ticket and its test output changes as expected.
Fixes #18983.