Quoting Richard Guenther <richard.guent...@gmail.com>:
So are you saying that we should remove the recursive nature of the
rtx_cost/targetm.rtx_costs interface, and have the backend handle any
recursion itself? I.e. targetm.rtx_costs only ever sees a complete
(but perhaps invalid) instruction pattern? Or would you still keep
the current recursion?
I would say yes to that - kill the recursion.
But the recursion is already optional. If you don't want to use recursion
for your port, just make the rtx_costs hook return true.
There is no need to break ports that are OK to use the recursion in rtlanal.c
partially or in whole.