------- Comment #3 from sje at cup dot hp dot com 2009-02-24 00:01 ------- More work is needed then just setting flag_branch_target_optimize{,2}, we need to define TARGET_BRANCH_TARGET_REGISTER_CLASS (return BR_REGS) and TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED (return 1) but even then it doesn't seem to help. I think bt-load wants to move the load of the branch register up but is constrained because we load it from a general register and we load the general register just before loading the branch register. Unless bt-load tries to move the load of the general register up it cannot move the load of the branch register up and I don't think it will try to move the load of the general register up because that is not what it is designed to do.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30688