It turned out that readonly argmemonly is not enough.
store 42, %p %b = barrier(%p) store 43, %b
the first store is dead, but because barrier was marked as
reading argument memory, it was considered alive. With
inaccessiblememonly it doesn't read the argument, but
it also can't be CSEd.