Simultaneous Speculation Scheduling ( S 3 ) is a combined compiler and architecture technique to control multiple path execution. It can be used for dual path branch speculation in case of unpredictable branches and for multiple path speculative execution of loop iterations in case of loop-carried dependences that make parallel execution otherwise impossible. We apply S 3 In situations where purely static techniques cannot prove data independence. S 3 can be seen as a cost-effective alternative to purely dynamic speculation techniques. We explain the S 3 technique and discuss the requirements on possible target architectures. We further compare S 3 to other speculation techniques.
/lp/association-for-computing-machinery/a-combined-compiler-and-architecture-technique-to-control-53OnUdKnUM