this is an object that tracks a memory access (either read or write) in a code block. There will be one mem_access object for each memory access; thus any given code block could contain several mem_access objects or none at all.
mem_access will contain information that will be needed to backpatch the corresponding memory access; alternatively we might instead recompile the entire code block instead of backpatching (probably less efficient but also less complicated).