Title | loopstr (Natural loop analysis pass for Machine-SUIF) |
Author | Nikolaos Kavvadias 2004, 2005, 2006, 2007, 2008, 2009 2010, 2011, 2012, 2013, 2014 |
Contact | nikos@nkavvadias.com |
Website | http://www.nkavvadias.com |
Release Date | 25 September 2014 |
Version | 1.1.1 |
Rev. history | |
v1.1.1 | 2014-09-25 Updated headers in all source code files. Added File Listing section in README; new files AUTHORS, LICENSE and VERSION; renamed README to README.rst. |
v1.1.0 | 2014-02-24 Changed documentation format to RestructuredText. |
v1.0.0 | 2004-07-19 Initial release. |
loopstr is an analysis pass built to be used with the SUIF2/MachSUIF2 compiler infrastructure. This pass generates a textual representation for the loop structure of each given C procedure.
This pass uses the cfa library of MachSUIF. What it actually generates is the natural loop analysis report for the procedure. The format of such file is shown below:
Loop info: node depth begin end exit int: int Y/N Y/N Y/N ...................................
where:
This pass works for the SUIFvm instruction set as well as other MachSUIF backends. The loopstr pass has been tested with MachSUIF 2.02.07.15.
The loopstr distribution includes the following files:
/loopstr | Top-level directory |
AUTHORS | List of loopstr authors. |
LICENSE | The modified BSD license governs loopstr. |
README.rst | This file. |
README.html | HTML version of README. |
README.pdf | PDF version of README. |
VERSION | Current version of the project sources. |
loopstr.cpp | Implementation of the loopstr pass. |
loopstr.h | C++ header file containing declarations and prototypes for the above. |
rst2docs.sh | Bash script for generating the HTML and PDF versions of the documentation (README). |
suif_main.cpp | Entry point for building the standalone program do_loopstr that implements the pass. |
suif_pass.cpp | Define the SUIF pass built as the dynamically loadable library libloopstr.so. |
suif_main.h | C++ header file for the above. |
Unpack the loopstr archive wherever you like, e.g. in $MACHSUIFHOME/cfa/loopstr. You don't need to modify anything in the Makefile, if you have a working MachSUIF 2 installation.
The program binary (do_loopstr) will be installed at $NCIHOME/bin and the shared library (libloopstr.so) at $NCIHOME/solib, where NCIHOME is the SUIF 2 top-level directory.
The pass accepts an input file in CFG form to operate. Textual output is generated, written to stdout by default.
Usage synopsys: | $ do_loopstr test.cfg