+++ Eric Botcazou [02/11/07 09:56 +0100]:
> > Questions:
> > * shorten_branches() computes sizes of instructions so I know what the
> >   distance is between a jump instr and its target label.  But how do I know
> >   what is the maximum distance each kind of branch can safely take?
> >   bb-reorder.c assumes that its only when cold/hot partitions are crossed
> > it has to use indirect jumps, which is not the appropriate test in my case.
> 
> You cannot easily, it's buried in the architecture back-ends.
> 
> > * do I get it right that shorten_branches() does not really modify
> > instructions but it helps to shorten branches by providing more accurate
> > insns lengths?
> 
> Yes, but this should work automatically.  IOW, as Ian said, you shouldn't 
> need 
> to do anything special.  Maybe it's simply a latent bug in the PPC back-end.

Got it working.  It turns out I was renumbering the instructions just before
pass_final and it was messing up the creation of jump islands in PPC (and I
believe other archs with short cond branches).  I changed my code not to
require the renumbering and it's all working now.

Thanks a lot,

Gregory

-- 
Gregory B. Prokopski       <[EMAIL PROTECTED]>
Sable Research Group       http://www.sable.mcgill.ca
Montreal, Quebec, Canada

Reply via email to