Re: RFC: Explicit move preference hints

2017-08-24 Thread Wilco Dijkstra
Vladimir Makarov wrote: > > As I correctly understand, you just want an intuitive allocation. The > current allocation performance has the same quality as the intuitive one. Performance is affected as well but I didn't want to go into details as that distracts from the underlying issue. But if yo

Re: RFC: Explicit move preference hints

2017-08-24 Thread Wilco Dijkstra
Segher Boessenkool wrote: > > "0,r" might work, or "0,?r", or similar (alternatives have commas > between them). No, it doesn't work at all. But that is no surprise if you look at ira_get_dup_out_num. It iterates over the constraint string and if you have anything that matches after a "0", the "

Re: RFC: Explicit move preference hints

2017-08-23 Thread Peter Bergner
On 8/23/17 5:22 PM, Segher Boessenkool wrote: > On Wed, Aug 23, 2017 at 05:15:03PM +, Wilco Dijkstra wrote: >> What is a preferred alternative? The current register allocator simply >> ignores >> any combination of "0r", "r0", ("r", "0") and ("0", "r") and just picks the >> most >> generic al

Re: RFC: Explicit move preference hints

2017-08-23 Thread Vladimir Makarov
On 08/22/2017 06:48 AM, Wilco Dijkstra wrote: Hi, The register allocator inserts move preferences when an instruction has one or more dead sources in add_insn_allocno_copies. If an instruction doesn't have a matching constraint (eg. "0"), then any dead source is treated as a copy with all dest

Re: RFC: Explicit move preference hints

2017-08-23 Thread Segher Boessenkool
On Wed, Aug 23, 2017 at 05:15:03PM +, Wilco Dijkstra wrote: > Segher Boessenkool wrote: > > On Tue, Aug 22, 2017 at 10:48:17AM +, Wilco Dijkstra wrote: > > > The register allocator inserts move preferences when an instruction has > > > one or more dead sources in add_insn_allocno_copies. If

Re: RFC: Explicit move preference hints

2017-08-23 Thread Wilco Dijkstra
Segher Boessenkool wrote: > On Tue, Aug 22, 2017 at 10:48:17AM +, Wilco Dijkstra wrote: > > The register allocator inserts move preferences when an instruction has > > one or more dead sources in add_insn_allocno_copies. If an instruction > > doesn't have a matching constraint (eg. "0"), then a

Re: RFC: Explicit move preference hints

2017-08-23 Thread Segher Boessenkool
Hi! On Tue, Aug 22, 2017 at 10:48:17AM +, Wilco Dijkstra wrote: > The register allocator inserts move preferences when an instruction has > one or more dead sources in add_insn_allocno_copies. If an instruction > doesn't have a matching constraint (eg. "0"), then any dead source is treated > a