 Reads and writes can be safely reordered by the compiler as to allow better use of various data movement mechanisms, such as Direct Memory Access(DMA).In addition, alias analysis and dataflow analysis can be simplified .The compiler can then split up code within the sieve block much easier, to exploit parallelism.