New memory accesses are usually inserted by using one of the createMemoryAccessXYZ() methods followed by insertUse() or insertDef(). createMemoryAccessXYZ() accepts a defining access, however this defining access will always be overwritten by insertUse() / insertDef().
Update the documentation to clarify this, and stop passing Definition to createMemoryAccessXYZ() if it's followed by insertUse/insertDef.
Alternatively, we could also make insertUse / insertDef keep the defining access if it is specified, and only recompute it if it's missing.
Update or remove comment.