🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.arch
Article #11366

Re: Hardware Support for Numeric Algorithms

#11366
From: Wayne Throop
Date: Fri, 20 Nov 1992 00:09
46 lines
2708 bytes
: From: mbk@lyapunov.ucsd.edu (Matt Kennel)
: Message-ID: <1efh6vINNm6c@network.ucsd.edu>
: The point, is, he [..Herman Rubin..]
: wants a high-level real language, with real optimizers,
: that nonetheless, does not consider hardware dependence to be anathema.

Except that when such capabilities are pointed out, he sneers at
them, and then asks for something else.  For example, gcc can generate
inline procedures with assembly instructions interspersed.  For pointing
this out, people get sneered at, and told that the notation isn't
simple enough.

When solutions to notation problems are presented, such as introducing
operators into gcc by the usual lex and yacc notations, or by
preprocessing with the TXL system mentioned by Matt a bit later, people
get sneered at, and told that specifying syntax in these ways is
too difficult.

So as near as I can see, solutions to the problems Herman Rubin
complains about are out there, and available for use now.  Herman Rubin
simply refuses to use them until they are customized for his needs to
an uneconomical extent.

The bottom line: Herman Rubin is attributing to malice and stupidity 
what is adequately explained by simple economics.

: So if C doesn't know how to do a fp divide with integer quotient and a
: remainder in one instruction, or how to do a "add in parallel, but
: only on those processors in this mask" (a CM),
: then no amount of higher-level rewriting will help.

Yes, this is the most central problem, which Jim Giles mentioned also.
Some method is needed which will specify the generated code, and yet
will fit in with the optimizations and register allocations and so on
which are already in place.  Jim says this "isn't too difficult", but 
I think it is the single most difficult part.  I've seen several
solutions, each with some advantages over the others.

But ultimately, when you are going after that last 1% or .1% of speed,
you will simply have to spell out the istream, operation by operation.
No amounts of hints to the optimizer will ever be enough, because
ultimately the optimizer can only deal with hints it is prepared to
accept, and if a programmer comes up with something unforseen by the
optimizer, there's no simple way to give a hint about it.
--
Wayne Throop  ...!mcnc!dg-rtp!sheol!throopw
Technical Details
Message-ID: <722228704@sheol.UUCP>
Path: arc1-ca.pugleaf.net!sparky!uunet!wupost!zaphod.mps.ohio-state.edu!rpi!psinntp!psinntp!dg-rtp!sheol!throopw
References: <722061187@sheol.UUCP> <1efh6vINNm6c@network.ucsd.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!wupost!zaphod.mps.ohio-state.edu!rpi!psinntp!psinntp!dg-rtp!sheol!throopw
From: throopw@sheol.UUCP (Wayne Throop)
Newsgroups: comp.arch,comp.lang.misc
Subject: Re: Hardware Support for Numeric Algorithms
Message-ID: <722228704@sheol.UUCP>
Date: 20 Nov 92 00:09:39 GMT
References: <722061187@sheol.UUCP> <1efh6vINNm6c@network.ucsd.edu>
Lines: 46