On 12/01/2015 02:43 PM, Richard Sandiford wrote:
I don't think what you say is an argument that the approach is wrong.
The C conditions for optabs have always been more restricted than
other define_expands and define_insns, since they cannot refer
to operands. When caching of optabs was added, they also lost
the ability to test for size/speed choices. There have also
always been optabs that are not allowed to FAIL (such as moves,
get_thread_pointer, widening multiplication, vec_cond, etc.).
This series is extending that list, but it's in the spirit
of restrictions that have always existed. I don't see that
that's an argument that the approach is wrong.
Ok, you can of course change the rules, but that means the following
needs to be done as a minimum (and it should have been done initially):
* the new rules must be documented
* all existing expanders need to be examined to see whether they
comply.
At the moment we don't know how widespread the problem is. If you're
willing to do the audit of all ports then I'd be more willing to
consider this suitable for gcc-6.
Bernd