It looks like the machinery that picks MIPS branch-likely instructions (on processors that don't object to them) is driven purely by their delay slot annul properties and not at all by branch probability.
That brings up a couple of questions. 1. Assuming it doesn't matter to the delay slot fill logic, does GCC offer a way for one branch instruction to be picked over another based on branch probability calculations? I looked a bit and didn't see how to do that. 2. In the delay slot fill machinery (reorg.c), I don't see how a target can supply hooks to adjust the picking of one branch over another. In other words, if the architecture has branch-likely that has annul, but that instruction should not be used in a particular spot because the branch is in fact NOT likely, how would one do that? paul