1. A method, in a data processing system, for rewriting branch instructions in a portion of code, comprising: receiving, in a processor of the data processing system, a portion of source code having an original branch instruction; generating, by a compiler executing on the processor, a branch stub for the original branch instruction, wherein the branch stub stores information about the original branch instruction including an original target address of the original branch instruction; rewriting, by the compiler, the original branch instruction so that a target of the rewritten branch instruction references the branch stub; and outputting, by the compiler, compiled code including the rewritten branch instruction and the branch stub for execution by a computing device, wherein the branch stub is utilized by the computing device at runtime to determine if execution of the rewritten branch instruction can be redirected directly to a target instruction corresponding to the original target address in an instruction cache of the computing device without intervention by an instruction cache runtime system.