Name | Size (lines) | Description |
---|---|---|
ixx, ixx-av | 14,500 | A translator from IDL to C++ |
ktsim, ktsim-av | 19,200 | A cache simulator developed by Ted Romer et al. at UW |
porky | 64,300 | The scalar optimization pass of the Stanford SUIF compiler |
raytrace | 3,000 | A raytracer benchmark |
The -av versions of ixx and ktsim are the same as the non-av versions except that all methods are declared virtual, to experiment with the effectiveness of our implementation techniques on C++ written in a very extensible style.
Name | Description |
---|---|
unopt | No Vortex optimizations (but full gcc -O2 optimizations on the generated C code) |
trad-opt | Vortex intraprocedural, non-message optimizations, including elimination of redundant and dead loads & stores and elimination of dead object creations |
inl | trad-opt plus automatic inlining (beyond any inlining performed by the C++ front-end due to inline directives) |
i | inl plus intraprocedural static class analysis to optimize messages |
i-cha | i plus class hierarchy analysis to automatically identify non-overridden methods |
i-prof | i plus dynamic-profile-guided class prediction |
i-cha-prof | i-cha plus -prof |
As shown in the "Raw, Detailed Data" table, class hierarchy analysis makes the all-virtual (-av) versions of the benchmarks run just as fast as the regular versions of the benchmarks.