RE: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-06-03 Thread Kyrylo Tkachov
Any comments/suggestions on my implementation of the idea are very welcome. http://gcc.gnu.org/ml/gcc-patches/2013-05/msg01093.html Otherwise, OK for trunk? Ping? Thanks, Kyrill

Re: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-06-03 Thread Richard Henderson
On 06/03/2013 04:06 AM, Kyrylo Tkachov wrote: Any comments/suggestions on my implementation of the idea are very welcome. http://gcc.gnu.org/ml/gcc-patches/2013-05/msg01093.html Otherwise, OK for trunk? Ping? Ok. If we ever get serious about re-implementing define_cond_exec with more

RE: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-28 Thread Kyrylo Tkachov
I agree that it is possible to use define_subst (apart from the fact that it doesn't support define_insn_and_split yet). It's just that I think it looks hacky and makes the patterns look less readable if the reader has to remember that predication is implicit when a subst_attr is

Re: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-27 Thread Michael Zolotukhin
I agree that it is possible to use define_subst (apart from the fact that it doesn't support define_insn_and_split yet). It's just that I think it looks hacky and makes the patterns look less readable if the reader has to remember that predication is implicit when a subst_attr is encountered

RE: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-24 Thread Kyrylo Tkachov
Hi Michael, - What about define_insn_and_split? Currently, we can define predicable for a define_insn_and_split, Yes, you're right. Currently define_subst cannot be applied to define_insn_and_split. That's not implemented yet because I didn't see a real usages of define_substs with these

Re: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-24 Thread Michael Zolotukhin
Unfortunately, that is a strong point against define_subst in my case, since on arm we have more than 400 predicable patterns, of we which we might want to modify dozens to perform this cond_exec restriction. And creating custom subst-attributes for each one would really make things hard to

RE: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-24 Thread Kyrylo Tkachov
Unfortunately, that is a strong point against define_subst in my case, since on arm we have more than 400 predicable patterns, of we which we might want to modify dozens to perform this cond_exec restriction. And creating custom subst-attributes for each one would really make things

Re: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-24 Thread Michael Zolotukhin
As things stand now, if predicable is set to no for a particular alternative, the value of control_attr is irrelevant, that alternative will never have a cond_exec version. In your scheme, however, the presence of subst_predicated triggers the creation of cond_exec variants for all of the

RE: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-24 Thread Kyrylo Tkachov
As things stand now, if predicable is set to no for a particular alternative, the value of control_attr is irrelevant, that alternative will never have a cond_exec version. In your scheme, however, the presence of subst_predicated triggers the creation of cond_exec variants for all of

RE: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-23 Thread Kyrylo Tkachov
Hi Richard, No, define_subst works across patterns, keyed by attributes. Exactly like cond_exec, really. But what you ought to be able to do right now is (define_subst ds_predicable [(match_operand 0)] [(cond_exec (blah) (match_dup 0))]) (define_subst_attr

RE: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-23 Thread Kyrylo Tkachov
Hi Michael, Hi Kyrylo, Richard, What would be the function of (set_attr ds_predicable yes) ? Doesn't the use of ds_predicable_enabled already trigger the substitution? To use define subst one doesn't need to write (set_attr ds_predicable yes) - it's triggered by mentioning any of

Re: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-23 Thread Michael Zolotukhin
- What about define_insn_and_split? Currently, we can define predicable for a define_insn_and_split, Yes, you're right. Currently define_subst cannot be applied to define_insn_and_split. That's not implemented yet because I didn't see a real usages of define_substs with these (though I'm not

RE: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-22 Thread Kyrylo Tkachov
We have a new define_subst which may help here. I *think* that define_cond_exec is (or is nearly) a subset of define_subst. On my medium term to-do list is to support define_cond_exec within gensupport via the define_subst infrastructure, removing everything except the actual parsing

Re: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-22 Thread Richard Henderson
On 05/22/2013 02:54 AM, Kyrylo Tkachov wrote: From what I understand, using define_subst would mean creating a define_subst for every pattern that can be predicable? There are at least 600 predicable patterns in the arm backend, so that would be infeasible. No, define_subst works across

RE: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-21 Thread Kyrylo Tkachov
Hi Steven, This would allow us to, for example, disable the predicable variant of an insn based on a non-constant variable. Is there a reason why you can't use attribute enabled for this? The problem stems from the fact that the predicable attribute cannot have a dynamic value.

RE: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-21 Thread Kyrylo Tkachov
Hi Richard, On 05/20/2013 09:55 AM, Kyrylo Tkachov wrote: For example, a setup like: (define_attr predicated yes,no (const_string no)) (define_attr control_attr yes,no (const_string yes)) (define_attr enabled no,yes (cond [(and (eq_attr control_attr no) (and

[PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-20 Thread Kyrylo Tkachov
Hi all, While working with conditional execution and in particular with define_cond_exec, I would like to add an attribute to cond_exec patterns that are produced through define_cond_exec. This is done by adding an attributes vector to the define_cond_exec construct. When a pattern is then

Re: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-20 Thread Steven Bosscher
On Mon, May 20, 2013 at 6:55 PM, Kyrylo Tkachov wrote: This would allow us to, for example, disable the predicable variant of an insn based on a non-constant variable. Is there a reason why you can't use attribute enabled for this? Ciao! Steven

Re: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-20 Thread Richard Henderson
On 05/20/2013 09:55 AM, Kyrylo Tkachov wrote: For example, a setup like: (define_attr predicated yes,no (const_string no)) (define_attr control_attr yes,no (const_string yes)) (define_attr enabled no,yes (cond [(and (eq_attr control_attr no) (and (eq_attr predicated

Re: [PATCH][gensupport] Add optional attributes field to define_cond_exec

2013-05-20 Thread Steve Ellcey
On Mon, 2013-05-20 at 17:55 +0100, Kyrylo Tkachov wrote: I've been working and testing on the arm backend, however I noticed that ia64 and c6x use define_cond_exec as well, so I'm cc'ing Steve. Would it be possible for you to confirm that this doesn't break ia64? I am not at HP anymore and