Re: Constraint modifier for partially overlaping operands

2009-10-18 Thread Richard Henderson
On 10/17/2009 10:36 AM, Andrew Hutchinson wrote: Lowering before combine - in particular causes a lot of code bloat. This loose all optimization of conditional jumps, shifts etc. Do you have an example of why this is so for your target? r~

Re: Constraint modifier for partially overlaping operands

2009-10-17 Thread Andrew Hutchinson
Yes. But we need to lower after combine and before register allocation. I'm still figuring out how to do that. Lowering before combine - in particular causes a lot of code bloat. This loose all optimization of conditional jumps, shifts etc. In our case, most lowering is delayed until after relo

Re: Constraint modifier for partially overlaping operands

2009-10-17 Thread Dave Korn
Andrew Hutchinson wrote: > OR partial overlap is preferred (or required) Oh, I see what you mean. Yes, that probably would be useful, thanks for the clarification. cheers, DaveK

Re: Constraint modifier for partially overlaping operands

2009-10-17 Thread Richard Henderson
On 10/16/2009 11:04 PM, Ian Lance Taylor wrote: Andrew Hutchinson writes: I can use "=" modifier to make operands use same register and early clobber "&" to avoid overlaps. Is it possible to have or construct a contraint that permits partial overlap operands. (which neither = or& would allow

Re: Constraint modifier for partially overlaping operands

2009-10-17 Thread Andrew Hutchinson
The situation comes up where no or a partial overlap of registers permits optimal code - since this can avoid using scratch register Thus no overlap OR partial overlap is preferred (or required) Using nothing leaves overlap without preference - full, partial,none Using = gives the least preff

Re: Constraint modifier for partially overlaping operands

2009-10-17 Thread Dave Korn
Ian Lance Taylor wrote: > Andrew Hutchinson writes: > >> I can use "=" modifier to make operands use same register and early >> clobber "&" to avoid overlaps. >> >> Is it possible to have or construct a contraint that permits partial >> overlap operands. (which neither = or & would allow) >> The

Re: Constraint modifier for partially overlaping operands

2009-10-16 Thread Ian Lance Taylor
Andrew Hutchinson writes: > I can use "=" modifier to make operands use same register and early > clobber "&" to avoid overlaps. > > Is it possible to have or construct a contraint that permits partial > overlap operands. (which neither = or & would allow) > The case would be wide types taking m

Constraint modifier for partially overlaping operands

2009-10-16 Thread Andrew Hutchinson
Hi I can use "=" modifier to make operands use same register and early clobber "&" to avoid overlaps. Is it possible to have or construct a contraint that permits partial overlap operands. (which neither = or & would allow) The case would be wide types taking multiple hard registers. eg In