Conditional branches constitute a significant fraction of instructions executed in a typical program. In modern pipelined processor implementations, branches cause wasted processor cycles, due to the unpredictability of the next instruction. This project is exploring an alternative to branch prediction and speculative execution, which is to decouple the branch computations from the basic blocks they control. Branches, and the instructions that compute branch conditions, are peeled out of the main program and executed on a separate processor. Both compiler backend development and processor implementation are affected by this alternative, and the project takes an experimental approach to both.