https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71436
ktkachov at gcc dot gnu.org changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71436
--- Comment #15 from ktkachov at gcc dot gnu.org ---
Author: ktkachov
Date: Thu Mar 23 14:55:48 2017
New Revision: 246419
URL: https://gcc.gnu.org/viewcvs?rev=246419&root=gcc&view=rev
Log:
[ARM] PR target/71436: Restrict *load_multiple pattern ti
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71436
--- Comment #14 from Bernd Schmidt ---
Maybe the match_parallel predicate ought to also check that you have more than
4 loads, so that it doesn't match anything that could also be handled by
ldmstm.md.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71436
--- Comment #13 from ktkachov at gcc dot gnu.org ---
(In reply to Richard Earnshaw from comment #12)
> (In reply to Jakub Jelinek from comment #8)
> > Or reload_completed || lra_in_progress, or punt on pseudos in the predicate.
>
> I think these
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71436
--- Comment #12 from Richard Earnshaw ---
(In reply to Jakub Jelinek from comment #8)
> Or reload_completed || lra_in_progress, or punt on pseudos in the predicate.
I think these patterns can be generated during the expand of inlined memcpy
oper
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71436
ktkachov at gcc dot gnu.org changed:
What|Removed |Added
Status|NEW |ASSIGNED
Assignee
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71436
--- Comment #8 from Jakub Jelinek ---
Or reload_completed || lra_in_progress, or punt on pseudos in the predicate.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71436
--- Comment #10 from ktkachov at gcc dot gnu.org ---
I just noticed that our load_multiple_with_writeback pattern is also guarded on
reload_in_progress || reload_completed so perhaps this is the way to go
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71436
--- Comment #9 from ktkachov at gcc dot gnu.org ---
(In reply to Jakub Jelinek from comment #8)
> Or reload_completed || lra_in_progress, or punt on pseudos in the predicate.
I tried punting on pseudos in the predicate (in ldm_stm_operation_p) an
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71436
--- Comment #7 from Bernd Schmidt ---
Ooh, ouch. Maybe load_multiple needs a "&& reload_completed" predicate?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71436
--- Comment #6 from ktkachov at gcc dot gnu.org ---
>From what I can see *load_multiple is intended to catch load-multiple of more
than 4 registers (though it should work correctly for fewer than that).
In this case where we're loading 2 registers
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71436
Bernd Schmidt changed:
What|Removed |Added
CC||bernds at gcc dot gnu.org
Compo
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71436
--- Comment #1 from ktkachov at gcc dot gnu.org ---
The invalid mem-mem set rtx appears during reload. It transforms:
(insn 55 67 151 3 (parallel [
(set (reg:SI 0 r0)
(mem/u/c:SI (reg/f:SI 147) [2 c+0 S4 A32]))
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71436
ktkachov at gcc dot gnu.org changed:
What|Removed |Added
Known to work||6.1.0
Target Milestone|--
14 matches
Mail list logo