I'm trying to add a define_subst use in the arm backend but am getting many build errors complaining about:
`set_attr_alternative' is unsupported by `define_subst'
Looking at the gensupport.c code it iterates over all define_insns and errors if any of them have set_attr_alternative.
The usecase I'm targetting doesn't involve patterns with set_attr_alternative, so I would like to make the define_subst handling
more robust to only error out if the define_subst is actually attempted on a set_attr_alternative.
This patch produces the error only if the set_attr_alternative attr matches the subst name.
This allows a build of the arm backend with a define_subst usage to succeed.
PR other/91255
* gensupport.c (has_subst_attribute): Error out on set_attr_alternative
only if subst_name matches curr_attr string.
From-SVN: r274564
+2019-08-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ PR other/91255
+ * gensupport.c (has_subst_attribute): Error out on set_attr_alternative
+ only if subst_name matches curr_attr string.
+
2019-08-16 Richard Biener <rguenther@suse.de>
* tree-ssa-forwprop.c (simplify_builtin_call): Do not remove
return false;
case SET_ATTR_ALTERNATIVE:
- error_at (elem->loc,
- "%s: `set_attr_alternative' is unsupported by "
- "`define_subst'", XSTR (elem->data, 0));
+ if (strcmp (XSTR (cur_attr, 0), subst_name) == 0)
+ error_at (elem->loc,
+ "%s: `set_attr_alternative' is unsupported by "
+ "`define_subst'", XSTR (elem->data, 0));
return false;