DWARF DIEs are extremely verbose
The DIEs produced by GHC are much larger than necessary.
.L$wadvance_r4Sp_info_die:
.byte 2
.asciz "advance"
.asciz "r4Sp_info"
.byte 0
.quad $wadvance_r4Sp_info
.quad .L$wadvance_r4Sp_info_end
.byte 1
.byte 156
.Lc55F_die:
.byte 5
.asciz "_c55F"
.quad _c55F
.quad .Lc55F_end
.byte 6
.asciz "nofib/shootout/n-body/Main.hs"
.long 64
.short 1
.long 88
.short 19
.byte 6
.asciz "nofib/shootout/n-body/Main.hs"
.long 88
.short 12
.long 88
.short 19
.byte 6
.asciz "nofib/shootout/n-body/Main.hs"
.long 136
.short 1
.long 136
.short 17
.byte 6
.asciz "nofib/shootout/n-body/Main.hs"
.long 142
.short 1
.long 142
.short 32
.byte 6
Specifically, the source filename string is repeated for every DIE. I'm pretty sure there is a way to encode this rather into the debug strings section.