PROMISE (PROgram MorphIng extenSible Environment) is a machine-independent optimizing environment.
PROMISE is intended to be used as a separate optimizing phase of a compiler or as an environment to build custom optimisations. We are also going to provide a decompiling tool that will allow to use any C compiler for generating code, optimised by PROMISE.
The idea of building such an environment arose from embedded system development, where the lack of a good optimising compiler is crucial.
In contrast to them PROMISE was originated as an industrial product, not a research project. This means that stability and ease of use and maintenance are especially focused.
Currently the following optimizations are
Additionaly transformation to SSA form is implemented.
PROMISE is written in C++ using templates and is portable. Current version could be built both under Unix (Linux, Solaris) and Windows with either gcc or MS Visual Studio 6.x or 7.
As a frontend and backend to PROMISE the lcc compiler is used. We had to patch lcc a little to provide more information to PROMISE.
Since there is a number of good optimizing compilers for general-purpose OS and targets (GNU gcc, Intel icc, SUN Forte etc.) we do not consider PROMISE as an optimizer for general-purpose platforms and software. It could be used though in embedded-systems development both 'as is' and as environment for implementation of special-purpose transformations including machine-dependent ones.
More in this section: