Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!umd5!mimsy!chris
From: chris@mimsy.UUCP (Chris Torek)
Newsgroups: comp.arch
Subject: Re: m88000 benchmarks
Message-ID: <12171@mimsy.UUCP>
Date: 27 Jun 88 17:44:45 GMT
References: <1941@pt.cs.cmu.edu> <3208@ubc-cs.UUCP> <1986@pt.cs.cmu.edu> <754@garth.UUCP>
Organization: U of Maryland, Dept. of Computer Science, Coll. Pk., MD 20742
Lines: 20

In article <754@garth.UUCP> smryan@garth.UUCP (Steven Ryan) writes:
>The problem with writing a scheduler is finding an efficient (read: heuristic)
>method of traversing the code graph. The simplest method produces the best code
>at exponential compilation time: try every possible sequence. ...

>We humans seem to have innate ability to find the best graph traversal (or
>perhaps we are not overwhelmed until the graph becomes large), so human
>experts will continue outcode compilers for the near future.

A recent (I think) ASPLOS has a paper on something called
`Superoptimizer'.  This is a program that uses exponential time to find
the best 68000 or 80x86 code sequence to replace some other sequence.
It is not suitable for more than about 13 instructions at a time, but
the sequences it produces are better than those that humans usually
derive.  It came up with a four-68000-instruction `signum' function,
and its versions of min and max (and minmax together) are also quite
surprising.  None of them have any branches.
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163)
Domain:	chris@mimsy.umd.edu	Path:	uunet!mimsy!chris