public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* Unable to match an RTL pattern in new backend
       [not found] <1209312490.14021.ezmlm@gcc.gnu.org>
@ 2008-04-28  9:46 ` nkavv
  0 siblings, 0 replies; only message in thread
From: nkavv @ 2008-04-28  9:46 UTC (permalink / raw)
  To: gcc-help

Hi friends

i'm in the process of writing a backend for a RISC target. I'm trying to keep
helper functions (in <target>.c) at minimal, since my future aim is to automate
(at least partially) the generation of the machine description.

While some C programs compile and simulate OK, it seems that i cannot match the
following RTL pattern. I should note here that it is generated as a result of
using a function argument for computing an address expression. That is
something like:

t_array[arg0] = t_1;

where t_array is a global array, arg0 is the function argument and t_1 is a
local variable.

#(insn 60 58 62 (set (mem/s/j:SI (plus:SI (reg:SI 4 $a0 [60])
#                (symbol_ref:SI ("queen") <var_decl 0x101a3690 queen>)) [0 queen
S4 A32])
#        (reg/v:SI 22 $s6 [orig:48 i ] [48])) 4 {*movsi_internal}
(insn_list:REG_DEP_TRUE 58 (nil))
#    (expr_list:REG_DEAD (reg:SI 4 $a0 [60])
#        (nil)))

since it cannot identified the address expression for this operation (store).
What does get emitted is:
	sw 	$s6, 	;# 60	*movsi_internal/2

The movsi_internal is as follows:

(define_insn "*movsi_internal"
  [(set (match_operand:SI 0 "nonimmediate_operand" "=r,m,r,r,r,m,r,r")
        (match_operand:SI 1 "general_operand" "m,r,r,z,e,S,S,i"))]
  ""
  "@
    lw \\t%0, %1
    sw \\t%1, %0             <--- matched pattern
    move \\t%0, %1
    move \\t%0, %1
    move \\t%0, %1
    move \\t%1, %0
    move \\t%0, %1
    li \\t%0, %1"
  [(set_attr "type"
"tload,tstore,tarith1,tarith1,tarith1,tstore,tarith1,tarith2")])

Any help is appreciated

Kind regards

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-04-28  7:48 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1209312490.14021.ezmlm@gcc.gnu.org>
2008-04-28  9:46 ` Unable to match an RTL pattern in new backend nkavv

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).