Concurrent indirection shortcutting is problematic under weakly-ordered memory models
While thinking about #23222 (closed), I noticed that the concurrent shortcutting of indirections and selectors done by the concurrent GC is problematic on platforms with weakly ordered memory models. In particular, under GHC's memory ordering story we take care to insert barriers around accesses to mutable fields. Typically, many fields (e.g. constructor payloads and thunk free variables) can be considered immutable since they are only modified by the garbage collector (which has its own memory synchronization practices). However, with concurrent GC and shortcutting, nearly any field can be potentially mutated.