I have been using the SUIF Machine infrastructure for sometime. Some optimizations are available without using a target machine, i.e. at the SUIFvm level. At this level you have "infinite" registers. Other optimizations, including analyses as for profiling require the use of a target library, a complete backend. It is very sad, that they have discontinued their MIPS backend years ago, and only Alpha, and backends for the ugly x86. In terms of research, the most necessary backends are the following (personal opinion).
1. MIPS R3000, R4400, R10000
2. SPARC V7 to V9 (very close to no. 1)
4. ARM7, ARM9, ARM11
5. Alphas, but since the Alpha has very low sales in Europe, and talking
If a backend is to be used you have to do at least the following:
do_gen ... with option -target_lib <my_target>
do_raga ... this does the register allocation
do_fin ... this finalizes code
Anyway usually i print out of the MachSUIF IR the information I need in the form of data-dependence graphs. There is no such tool in their 02.07.15 distribution so i have written a small pass to do the job. Interfacing to the SUIF IR (kind of object file format) is somewhat complex. It would need some work to convert between LLVM IR and SUIF IR in their internal format.
At their SUIFvm (virtual machine instruction set) level you have some optimizations:
1. Passes in their distribution
SSA-to-CFG and CFG-to-SSA
C backend (this is very buggy, e.g. functions returning void or struct types are not properly reproduced)
Libraries to use for data-flow analysis (dfa), control-flow analysis (cfa) based on Muchnick's book
2. A few of the available external passes (including mine)
DAG extraction tool (at Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos) named as 'bbpart'
Passes at EPFL (best is their unused code for local-CSE and their if-conversion pass)
CONCLUSIONS: MachineSUIF requires several addons that the user oughts to write in order to get his work done. LLVM seems much more COMPLETE and much more ACTIVE. MachSUIF is pretty much DEAD since late 2002-mid 2003.
LLVM can become the first widely used RISC-like VM. It has much potential.
Aristotle University of Thessaloniki
Department of Physics