Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!usc!julius.cs.uiuc.edu!apple!voder!pyramid!hyerle From: hyerle@pyrthoth.pyramid.com (Robert H. Hyerle) Newsgroups: comp.sys.pyramid Subject: Re: GCC for newer pyramids (i.e. MIServers) Message-ID: <141873@pyramid.pyramid.com> Date: 21 Jan 91 17:41:35 GMT Sender: daemon@pyramid.pyramid.com Reply-To: hyerle@pyrthoth.pyramid.com (Robert H. Hyerle) Organization: Pyramid Technology Corp., Mountain View, CA Lines: 22 In article <1991Jan20.180348.5004@sics.se> tege@sics.se (Torbj|rn Granlund) writes: >I have been told that gcc generated code sometimes runs slower than cc >generated code, in spite of its "better quality and smaller size". > >The problems seems to be that the tr registers are faster than other >register categories on the MIServers, and that gcc uses these last, >and cc uses them first. > Differing register speed is not the problem because all registers in the MIServer have identical, single cycle access times. I am not familiar with the gcc code but one possible answer is that the MIServer has various hardware artifacts (such as an execution pipeline) that complicate code generation with respect to performance. The Pyramid compiler group spent quite a bit of effort building an instruction scheduling component into "cc" and choosing appropriate instructions in an effort to improve performance. Without an understanding of the underlying hardware, generating quality code is not really possible. -- robert hyerle