On 2019-11-20 5:06 a.m., Richard Biener wrote:
On Tue, Nov 19, 2019 at 5:07 PM Vladimir Makarov <vmaka...@redhat.com> wrote:
The following patch fixes
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90007
Sometime ago a code which permits LRA to reload hard register into
memory as it did for pseudo were added. But this LRA possibility was
not reflected in recog.c. The following patch fixes this discrepancy
and as a result fixes PR90007.
OK to commit?
I guess the change is OK but for the bug itself it sounds like
selective scheduling doesn't properly recognize insns it
proagates into (and avoids doing that then)? That is,
selective scheduling creates invalid RTL?
It is hard for me to say what should be enough for new insn validation
in any scheduler code. I think recog code would be a safe choice as it
is already used in DFA.
On the other hand using non-recog code for insn validation helped to
find the code discrepancy between recog and LRA.
In any case I believe that the patch should be committed anyway and it
fixes the problem.