* 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).