🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.help
Article #49644

improvements

#49644
From: Martin Ohmacht
Date: Tue, 18 Jan 1994 11:48
40 lines
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!ohmacht

Show 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>