Article View: gnu.gcc.help
Article #52869combine.c for SMALL_REGISTER_CLASSES
From: dong
Date: Mon, 18 May 1992 09:22
Date: Mon, 18 May 1992 09:22
40 lines
1452 bytes
1452 bytes
Dear GCC,
Can you explain the following comment in combine.c :
On machines where SMALL_REGISTER_CLASSES is defined, we don't combine
if the destination of a SET is a hard register.
This makes all call_value insns very inefficient, because
C program :
main()
{
foo();
}
.combine:
(insn 8 7 9 (set (reg:QI 13)
(symbol_ref:QI ("foo"))) -1 (nil)
(expr_list:REG_EQUAL (symbol_ref:QI ("foo"))
(nil)))
(call_insn 9 8 0 (set (reg:QI 2)
(call (mem:QI (reg:QI 13))
(const_int 0))) -1 (insn_list 8 (nil))
(expr_list:REG_DEAD (reg:QI 13)
(expr_list:REG_UNUSED (reg:QI 2)
(nil))))
should have been combined to :
(call_insn 9 8 0 (set (reg:QI 2)
(call (mem:QI (symbol_ref:QI ("foo")))
(const_int 0))) 25 {call_value} (nil)
(expr_list:REG_UNUSED (reg:QI 2)
(nil)))
Thanks for your help
Dong
Technical Details
Message-ID:
<9205182322.AA29288@vlsi.cs.caltech.edu>Path:
arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!vlsi.cs.caltech.edu!dongShow Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 11318c,c6e360115a77798,start X-Google-Attributes: gid11318c,public X-Google-ArrivalTime: 1992-05-18 11:36:04 PST Newsgroups: gnu.gcc.help Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!vlsi.cs.caltech.edu!dong From: dong@vlsi.cs.caltech.edu Subject: combine.c for SMALL_REGISTER_CLASSES Message-ID: <9205182322.AA29288@vlsi.cs.caltech.edu> Sender: daemon@cis.ohio-state.edu Organization: GNUs Not Usenet Distribution: gnu Date: Mon, 18 May 1992 09:22:30 GMT Lines: 40