This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Genrecog bugfix version 2
On Fri, Aug 27, 1999 at 11:01:04PM +0200, Jan Hubicka wrote:
> It is pretty simple. You may find it in my fmul patch for the backend.
> But I believe the most trivial example is:
[Translated -- and this is what I'm looking at right now. ]
(define_insn ""
[(set:HI (subreg:HI (match_operand:SI 0 "register_operand" "") 0)
(subreg:HI (match_operand:SI 1 "register_operand" "") 0))]
""
"x")
(define_insn ""
[(set:HI (match_operand:HI 0 "register_operand" "")
(match_operand:HI 1 "register_operand" ""))]
""
"y")
> Will be proved as disjunct (as place of subreg:HI will be tested with
> match_operand:HI, this is ok, but second subreg;HI will be compared
> with first match_operand:SI (and proved to be disjunct), because trees
> will get out of sync.
It does not appear to be so. If I walk through the generated code by
hand, I see that everything is correct.
> My patch does the trick by comparing strings of the second subreg "b"
> and the match_operand:SI "aa" and skipping tests in the second until
> string "b" is reached (so it walks to match_operand:HI)
I still do not understand what you are doing, unfortunately.
r~