YARDstick is a building block for ASIP development, integrating application analysis, custom instruction generation, selection and synthesis with user-defined compiler intermediate representations.

    YARDstick components have been used along with the SUIF/Machine-SUIF, GCC, and COINS compilers and the ArchC simulation framework. The current YARDstick version (0.2.a) supports a customized SUIF/Machine-SUIF distribution (through a set of custom passes providing translation to the ISeq IR format), GCC, and work is ongoing for updating the sample architecture backend to the latest COINS version (1.4.2.1 at the time of writing).

    YARDstick functionality is accessible through a GUI that has been developed under an experimental Tcl/Tk version (8.5a5). It relies on the Tk widgets and a few third-party ones (GRIDplus, Tile for example).

    The development platform is a GNU/Linux distribution (RedHat 9.0). Both Cygwin and Win32 (Windows/XP SP2) versions exist for the YARDstick kernel (without the GUI).

























The main YARDstick screen.





Compiler/binary tools configuration.





Opcode utilization statistics.





Visualization of basic block statistics.





A custom instruction extracted from a motion compensation kernel.





Incremental speedup for identified custom instructions.









  1. A0-size poster presenting YARDstick


  2. A 2-page abstract describing YARDstick


  3. Short presentation of YARDstick


  4. A 2-page brochure on YARDstick


  5. A demo of the YARDstick kernel for Linux (> 2.4.x) or Windows (XP or Vista) is available to interested parties. The demo will be supplied under an EULA-type license. The tech demo will incorporate a few benchmark cases such as: adpcmdec (ADPCM decoder), adpcmenc (ADPCM encoder), cryptographic and image processing applications for a fixed target architecture (would be SUIF "virtual machine" or DLX).

    The full distribution of YARDstick includes:

    • all required addition tools such as target architecture toolchains
    • SALTO engine and backends
    • a build of the CDFG toolset
    • additional CDFG tools
    • set of representative benchmarks
    • Distribution of the YARDstick kernel alone.




Updated by Nikolaos Kavvadias on May 28, 2010