Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!cmcl2!husc6!panda!genrad!decvax!mcnc!unc!rentsch From: rentsch@unc.UUCP (Tim Rentsch) Newsgroups: comp.lang.misc Subject: Re: Assembly language and Speed... Message-ID: <483@unc.unc.UUCP> Date: Wed, 31-Dec-86 01:09:22 EST Article-I.D.: unc.483 Posted: Wed Dec 31 01:09:22 1986 Date-Received: Wed, 31-Dec-86 06:37:20 EST References: <1233@navajo.STANFORD.EDU> <464@unc.unc.UUCP> <4375@mit-eddie.MIT.EDU> Reply-To: rentsch@unc.UUCP (Tim Rentsch) Organization: CS Dept, U. of N. Carolina, Chapel Hill Lines: 37 In article <4375@mit-eddie.MIT.EDU> rh@eddie.MIT.EDU (Randy Haskins writes: > There are problems with INLINE, however. I have forsaken the > world of big things and started writing code for PC's, and for > the first time in my life, have to give serious thought to trading > speed for space in some cases. Inline coding may be faster, but > it takes up more space. The coder has to decide the relative > importance for each case. Good point. On the other hand, any procedure which is called only once (such as those used to provide structure) will run faster and be smaller if expanded inline. > Just to add to the argument, here is an example of what a human can do > that I'd seriously doubt that a compiler would do. I first saw something > like this in some local hacks to the Monitor for a Tops-20 at MIT. At > first, I was offended, but then I saw the sheer elegance of it. > > PRSPC:Skipa T2,[32.] ; move a space into 2, skip next instruction > PRTAB: Movei T2,9. ; put a tab in 2 > Movei T1,.PRIOU ; primary output > Bout% ; byte output > Ercal .+1 ; ignore error > Popj P ; return Yes, clever code, but be careful not to mistake saving space in the small for saving space in the large. If the routine were duplicated, it would cost only a few extra instructions, in other words not much. Programs get much bigger usually by more global design choices, and these little optimizations don't contribute much one way or the other. As with coding speed, it's the *big* decisions that matter, and this isn't one of them. cheers, txr