Although these efficiency tricks are important in the serial algorithms that serve as our baseline, not all of them are applicable to parallel architectures.
optimizations (1), (2), and (3) introduce order dependencies between queries; they are disregarded in our GPU implementation so that we can fully exploit parallelization opportunities.