Usually, Z80-based systems (except for the SM83 and TLCS-90) have separate I/O and memory spaces, and any normal memory location can be read without side-effects. For such systems, the option –allow-unsafe-reads can be used to enable some extra optimizations that rely on this.