This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] Remove -freorder-blocks-and-partition


Quoting Richard Henderson <rth@redhat.com>:

Presumably your target does have at least long unconditional branches,
since otherwise one runs into a register allocation problem.  If in
addition you've long unconditional branches as well as no
exception_receiver pattern, then it seems like you could completely do
away with the early pass_partition_blocks.

Well, targets with delay slot can use register scavenging, and in the
rare case that no free register is found, save one register on the stack,
load it with the target address, jump, and restore the register from the
stack in the delay slot of the jump.
Not as good having the long jump exposed earlier, but at least the compilation
succeeds. Well, unless something else gets out of range due to unanticipated
size increases that can't be fixed up that easily, e.g. a vector of case labels.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]