This patch has the following changes:
- improves the insertion of branch hints for the SPU. It adds an
additional instruction scheduling pass during machine dependent reorg to
schedule the hints.
- insert hbrp instructions to avoid a hardware bug. When the hardware
executes many instructions in a row, after a hint, and without any other
branches, we must insert hbrp to avoid a special stall condition.
- insert hbrp instructions, which force instruction fetch slots. When
the pipeline is too busy we insert one to make sure the SPU doesn't
stall to fetch instructions.
This last part requires sched_emit_insn in haifa-sched.c to insert
the hbrp instruction while scheduling. To account for dual issue and
state of the pipeline, it is best to insert it while scheduling.
Is the sched_emit_insn part OK for mainline?