Copyright 2007 by the Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.
Scale is an ANSI C and ANSI Fortran 77 optimizing compiler written in Java®. It currently contains a variety of scalar optimizations, alias analysis, dependence testing, and a few loop optimizations. It uses an SSA based intermediate representation.
The Scale compiler is intended for use as a research and/or instructional tool. The Scale compiler and the Java® source code may be accessed for use by other compiler researchers.
Scale produces assembly code and/or C code. Scale may be used for
cross-compilation. If Scale produces assembly language, it will call the
native assembler to produce .o
files.
Scale can be utilized as a "batch" compiler. In this mode, multiple source files may be compiled with one invocation of the compiler. Doing so avoids the overhead of establishing the Java&Reg; environment for each successive compilation. Cross-module inlining may be performed when compiling this way though this requires considerably more memory to accomplish.
Please include a "distilled" source code file that is incorrectly compiled. A "distilled" file contains only that code that is necessary and sufficient to illustrate the bug. Please also specify the Scale compiler switches that were used.
You may obtain the Scale jar file to use the compiler. This will be sufficient to compile and execute most C programs. Fortran programs and a small number of C programs require run-time support from a special library. The Scale run-time library source is available. You will need to download this library and compile it. Then, install the library where the loader can find it.
The Scale jar file and the runtime library are updated periodically. For access to up-to-date compiler or the compiler source code, you will need to have access to the Subversion repository.
To compile a simple program use:
java -jar scale.jar prog.c -oaor to generate a transformed C file:
java -jar scale.jar prog.c -oc
File | Date | Size |
---|---|---|
Current Scale jar file | Wednesday, 02-Dec-2009 00:09:11 CST | 3.1M |
Stable Scale jar file | Wednesday, 02-Dec-2009 00:09:11 CST | 3.1M |
Scale run-time library source | Thursday, 13-Dec-2007 10:18:16 CST | 760K |
daVinci for Alpha run-time | Thursday, 13-Dec-2007 10:18:16 CST | 2.8M |
daVinci for Sparc run-time | Thursday, 13-Dec-2007 10:18:16 CST | 2.4M |
daVinci for IBM AIX | Thursday, 13-Dec-2007 10:18:16 CST | 2.9M |
daVinci for SGI IRIX | Thursday, 13-Dec-2007 10:18:16 CST | 2.9M |
As Scale is a research compiler developed for those doing research
into compilation techniques, Scale is available through a Subversion repository
access. You will need to do a check out of the Java code. The Scale
Java code is compiled using GNU make
.
Read the notices below and then follow the instructions at the end of this web page.
The Scale distribution contains modules from other places. Below are the copyrights & licenses for those pieces.
IMPORTANT:
Please read this license carefully before using this software. By using, copying or redistributing Scale, you accept and agree to become bound by the terms of this license. Please do not use this software, if you do not accept the terms of this license.
The Scale Research Compiler Scale V1.x (hereinafter referred to as "Scale") has been developed by the Scale project at the University of Massachusetts at Amherst Computer Science Department (hereinafter referred to as "Scale project"). The Scale project grants a "right to use" license of Scale to any user of this software (hereinafter referred to as "licensee") for use under the following conditions:
RIGHT TO USE LICENSE
Permission to copy the system, to redistribute it, and to use it for any purpose is granted, subject to the following restrictions and understandings:
Scale is licensed free of charge for non-profit or internal use. Any commercial exploitation of Scale, as a stand-alone program, as part of a more comprehensive system or in any other constellation, is prohibited by this license. Please contact the Scale project if you are interested in a commercial license of Scale to use it in case of for-profit applications.
Scale can only be redistributed for free or as part of a free, non-profit software. Any copy made of Scale must cover the complete distribution, especially this license in full, the complete documentation, all of the tools and examples.
The licensee agree to make his/her best efforts to inform the Scale project about bugs and noteworthy applications of this system.
All materials, developed as a consequence of Scale, shall duly acknowledge such use, in accordance with the usual standards of acknowledging credit in academic research.
The licensee expressly acknowledge and agree that use of Scale is at the sole risk of the licensee. Scale and related documentation are provided "as-is". Neither the Scale project nor the University of Massachusetts makes any warrant or representation, either express or implied, for Scale or the University of Massachusetts, including, but not limited to, any implied warranties of merchantability and fitness for a particular purpose. Neither the Scale project nor the University of Massachusetts warrants that Scale will meet the licensees requirements, or that the operation of Scale will run uninterrupted or error-free, or that defects in Scale will be corrected. The entire risk as to the functioning, faultless operation, quality, performance and effect on hardware or other software of Scale is with the licensee. Should Scale prove defective, the licensee assumes the cost of all necessary servicing and repair of correction.
Copyright 1990 - 1995 by AT&T Bell Laboratories and Bellcore.
Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that the copyright notice and this permission notice and warranty disclaimer appear in supporting documentation, and that the names of AT&T Bell Laboratories or Bellcore or any of their entities not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission.
AT&T and Bellcore disclaim all warranties with regard to this software, including all implied warranties of merchantability and fitness. In no event shall AT&T or Bellcore be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use or performance of this software.
IMPORTANT:
Please read this license carefully before using this software. By using, copying or redistributing daVinci, you accept and agree to become bound by the terms of this license. Please do not use this software, if you do not accept the terms of this license.
The interactive graph visualization system daVinci V2.1.x (hereinafter refered to as "daVinci") has been developed by the daVinci project at Bremen Institute for Safe and Secure Systems, Universität Bremen, Germany (hereinafter refered to as "daVinci project"). The daVinci project grants a "right to use" license of daVinci to any user of this software (hereinafter refered to as "licensee") for use under the following conditions:
---------------------------------------------------------------------------- RIGHT TO USE LICENSE ---------------------------------------------------------------------------- Permission to copy the system, to redistribute it, and to use it for any purpose is granted, subject to the following restrictions and understandings: 1. Grant of License daVinci is licensed free of charge for non-profit or internal use. Any commercial exploitation of daVinci, as a standalone program, as part of a more comprehensive system or in any other constellation, is prohibitted by this license. Please contact the daVinci project if you are interested in a commercial license of daVinci to use it in case of for-profit applications. 2. Redistribution daVinci can only be redistributed for free or as part of a free, non-profit software. Any copy made of daVinci must cover the complete distribution, especially this license in full, the complete documentation, all of the tools and examples. 3. Restrictions This license does not permit the licensee to alter, modify, improve, decompile, disassemble or otherwise reverse-engineer the obtained object code binaries of daVinci. Especially, the licensee shall not remove any proprietary copyright legend from daVinci or any part thereof. 4. Obligations The licensee agree to make his/her best efforts to inform the daVinci project about bugs and noteworthy applications of this system. 5. Acknowledgement All materials, developed as a consequence of daVinci, shall duly acknowledge such use, in accordance with the usual standards of acknowledging credit in academic research. 6. Disclaimer of Warranty The licensee expressly acknowledge and agree that use of daVinci is at the sole risk of the licensee. daVinci and related documentation are provided "as-is". The daVinci project makes no warranty or representation, either express or implied, for daVinci, including, but not limited to, any implied warranties of merchantability and fitness for a particular purpose. The daVinci project does not warrant that daVinci will meet the licensees requirements, or that the operation of daVinci will run uninterrupted or error-free, or that defects in daVinci will be corrected. The entire risk as to the functioning, faultless operation, quality, performance and effect on hardware or other software of daVinci is with the licensee. Should daVinci prove defective, the licensee assumes the cost of all necessary servicing and repair of correction. 7. Limitation of Liability Under no circumstances, including negligence, unless required by applicable law, shall the daVinci project be liable for any direct, indirect, special, incidental, or consequential damages arising out of the use of or inability to use daVinci, even if the daVinci project has been advised of the possibility of such damages. Specifically, the daVinci project is not responsible for any costs including, but not limited to, those incurred as a result of lost profits, revenue or other economic loss, loss of use of the product, loss of data, the costs of recovering such software or data, the cost of substitute software or data, claims by third parties or for other similar costs. 8. Disclaimer of Support The daVinci project is under no obligation to provide any services, by way of maintenance, consultation, update, or otherwise. 9. Non-Exclusiveness The licensee recognises that daVinci is released on a non-exclusive basis and the daVinci project shall have the exclusive right to grant licenses to others or to make such other use of daVinci as it shall desire. 10. Effectiveness and Termination This license is taking effect after using, installing, copying or redistributing daVinci by the licensee. By using, installing, copying or redistributing daVinci, the licensee accepts and agrees to become bound by all terms of this license. The license is effective until terminated. The licensee may terminate this license at any time by destroying all components of daVinci, related documentations and all copies thereof. This license will terminate immediately without notice from the daVinci project if the licensee fail to comply with any provision of this license. Upon termination, the licensee must destroy all components of daVinci, related documentations and all copies thereof. Bremen, July 13th, 1998 - The daVinci project -End-
http://z.cs.utexas.edu/svn/scale/trunkTo check out scale use
svn co http://z.cs.utexas.edu/svn/scale/trunk my-scaleAn online manual for Subversion is available at http://svnbook.red-bean.com/.
A mail list for Scale is available at https://utlists.utexas.edu/sympa/info/scale-dev.