On 02/08/2016 12:38 PM, Michael Matz wrote:
I think the patch makes perfect sense. ira_setup_alts should have no
observable behaviour from the outside, except the returned value of merged
acceptable alternatives. Certainly it has no business to fiddle with
recog_data. It only does the swapping to merge alternatives, and
accidentaly left them swapped; the merging could have been implemented
without swapping recog_data.operands, and then the whole issue wouldn't
have occurred (and addr-sel-1.c wouldn't have been added because it still
would be "broken").
Sorry, I was confused by Richard's message thinking that his patch
actually exchanges the operands. I think we have some expression
shaping optimizations and exchanging operands probably rejects the
optimization effect. With this point of view ira-costs.c should not
exchange operands. So the patch is not bogus as Richard wrote but
perfectly legitimate.