🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.help
Article #52869

combine.c for SMALL_REGISTER_CLASSES

#52869
From: dong
Date: Mon, 18 May 1992 09:22
40 lines
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!dong

Show 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