Predicting conditional branch directions from previous runs of a program | Synapse