Code Invalidation: RemoveCode shouldn't free IRLists, as that breaks self-invalidation in interpreter Follow up from #705 If the interpreter invalidates (either via syscall, or op_removecodeentry) it needs to run the current block to the block exit. We should "stage" removed code blocks to a "to free" list, and GC them at a point where we're sure we're not running them. This doesn't affect the jit as it doesn't reference the ir data during runtime