1. A method comprising: detecting a conditional branch that selects between execution of a first alternative block and a second alternative block; saving a first count of a number of times the first alternative block was executed and a second count of a number of times the second alternative block was executed; if the first count is greater than a threshold and the second count equals zero, compiling the first alternative block into first alternative block object code and refraining from compiling the second alternative block; if the first count is not greater than the threshold, compiling the first alternative block into the first alternative block object code, compiling the second alternative block into second alternative block object code, and moving the first alternative block object code and the second alternative block object code to a processor cache; and if the second count does not equal to zero, compiling the first alternative block into the first alternative block object code, compiling the second alternative block into the second alternative block object code, and moving the first alternative block object code and the second alternative block object code to the processor cache.