A combination of techniques - multiple branch prediction, data flow analysis and speculative execution. intel implemented Dynamic Execution in the p6 after analysing the execution of billions of lines of code.