4 ms·
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 ide
by twoodfin 11y ago
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 11y agoFred 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 11y agoNo 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.
- ris 11y agoTTA-based Co-Design Environment http://tce.cs.tut.fi/ http://tce.cs.tut.fi/
- nickpsecurity 11y agoHell yeah! Thanks for the link!
- greglindahl 11y agoThanks, yes, I was thinking of Tensilica. They use Fred's compiler (SGI -> Open64 compiler). Which has always done whole-program optimization.
- nickpsecurity 11y agoAppreciate the reference. Is that OSS? I cant recall...
- greglindahl 11y agoIt is GPL v2. One of the most active developed-as-open-source branches is Path64.
- 14113 11y agoI have a feeling that there might be some research along those lines here: http://homepages.inf.ed.ac.uk/cdubach/ http://homepages.inf.ed.ac.uk/cdubach/