
Scaling up Superoptimization [pdf] - jsnell
http://www.eecs.berkeley.edu/~mangpo/www/papers/lens-asplos16.pdf
======
twoodfin
Has anyone in the superoptimization space given thought on how it could be
used to provide useful feedback to CPU architects? I'm thinking of something
like identifying an instruction sequence performing some state transformation
that might appear esoteric to a human but turns out to be a common pattern in
superoptimized programs.

~~~
greglindahl
Fred Chow built a compiler which did whole-program compilation, and basically
picked out the instruction set for a soft processor based on what would make
the program more efficient. I believe this was at Cognigine.

I've seen some other examples where a CPU has a bit of FPGA on it, available
for building weird instructions. The problem there is often that the ideal
weird instructions read too many registers.

Today's very OOO processors are a more difficult target for superoptimization
than past in-order cpus.

~~~
nickpsecurity
No Instruction Set Computing and Tensilica's Xtensa are interesting work along
those lines. Basically customize the CPU go the fast path. I'd love to see it
combined with whole program optimization.

~~~
greglindahl
Thanks, yes, I was thinking of Tensilica. They use Fred's compiler (SGI ->
Open64 compiler). Which has always done whole-program optimization.

~~~
nickpsecurity
Appreciate the reference. Is that OSS? I cant recall...

~~~
greglindahl
It is GPL v2. One of the most active developed-as-open-source branches is
Path64.

