Swap optimization pass
Jeffrey A Law
law@cygnus.com
Tue Jan 13 22:32:00 GMT 1998
In message < 199801140313.QAA25314@ongaonga.chch.cri.nz >you write:
> Jeffrey A Law writes:
> >
> > Yup -- this is the basic idea behind my idea of using reorg to combine
> > unrelated insns after reload.
>
> I would prefer this sort of pass to run before register allocation
> otherwise the chances of combining these insns gets slim since the
> register constraints are usually tighter on multi-pack insns.
True, but in some cases you have to know what hard registers things are
in before trying to combine unrelated insns. There's also likely to be
issues if you pack some insns, then end up having to reload inputs/outputs.
There's also the problem of instruction lengths not being finalized before
reload.
> > Note that introducing "foreign" insns into a libcall block tends to
> > do bad things in the register allocator, and I guess this might happen
> > in that case.
>
> Well we could restrict these "foreign" insns to be moves. I'm finding
> that the incoming register arguments get poorly copied to the
> corresponding arguments of a nested call.
Even move insns will cause problems.
jeff
More information about the Gcc-bugs
mailing list