Article View: gnu.gcc.help
Article #49644improvements
From: Martin Ohmacht
Date: Tue, 18 Jan 1994 11:48
Date: Tue, 18 Jan 1994 11:48
40 lines
2427 bytes
2427 bytes
Hi, I'm not having a problem, but rather want to propose some enhancements to the GCC. It's neither a bug nor I'm needing help, so I don't know exactly where to put my proposal. Be so kind and send it the right box. Thanks. 1. Some processors (like mine) have special loop instructions, similar to load immediate and dbra. Im my case the load immediate initializes a register that contains also the target address of the dbra instruction. Using this method speeds up the loop, but the load immediate needs to be the last instruction before the loop label. Constants that are moved out of loops are normally placed between these instructions and disturb the insn order. Is there a way to tie the load imm to the label or to move the constants to a place before the loop counter init? 2. The expression expander is able to expand mults even if there are only smaller mults. My processor supports mulhisi3 and mulhi, for address calculation a signed SI mul is performed. The expander is building correct code, but in the most common cases like indexing in an array of HI or SI with an HI index, it produces rather ineffective code. The expander treats the mul with the const_int 2 like a mul with an unknown and produces code like mul Rx,0,RY (multiplication by zero and addition by zero, shifting 2 right by 15) for the intermediates. I propose to check the expansions of ALU-Ops for constants at RTX-Level in addition to the cse pass or at least to check the mul sythesizing parts of the expander for such simplifications. Further I propose to check for shifts in multiplication cases where otherwise the multiplication would be sythesized. These muls are not combinable to valid address expressions and don't need to be kept as muls. Thanks in advance Martin
Technical Details
Message-ID:
<9401181144.AA04098@scoop.ims.uni-hannover.de>Path:
arc1-ca.pugleaf.net!gmd.de!xlink.net!sol.ctr.columbia.edu!math.ohio-state.edu!magnus.acs.ohio-state.edu!cis.ohio-state.edu!scoop.ims.uni-hannover.de!ohmachtShow Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 11318c,93a2d164884084db,start X-Google-Attributes: gid11318c,public X-Google-ArrivalTime: 1994-01-18 04:43:51 PST Path: arc1-ca.pugleaf.net!gmd.de!xlink.net!sol.ctr.columbia.edu!math.ohio-state.edu!magnus.acs.ohio-state.edu!cis.ohio-state.edu!scoop.ims.uni-hannover.de!ohmacht From: ohmacht@scoop.ims.uni-hannover.de (Martin Ohmacht) Newsgroups: gnu.gcc.help Subject: improvements Date: 18 Jan 1994 06:48:09 -0500 Organization: GNUs Not Usenet Lines: 41 Sender: daemon@cis.ohio-state.edu Distribution: gnu Message-ID: <9401181144.AA04098@scoop.ims.uni-hannover.de>