The StrategoCompiler performs a number of transformations/optimizations including the following: * Pattern match merging * Symbol caching * Simplification * Desugaring The following optimizations are supported experimentally, but implementation should be improved: * DefinitionInlining * InnermostFusion * BuildMatchFusion New optimizations that could beneficial * MatchingOnlyCongruence * EffectsAnalysis * ConstantTermCaching To measure the effect of optimizations set up * StrategoBench -- Main.EelcoVisser - 08 Dec 2001
------ * Control what kind of object files (dbg, opt, prof) are linked * use gcc lib as standard (is optimized O4) * F(id,\ H(x) -> G(x,x) \, id) is equivalent to \ F(a, H(x), b) -> F(a, G(x,x), b) \ * set up benchmarks and reggression tests * propositional formulae * sieve * note: the compiler itself is of course the real regression test although it does not cover all aspects/constructs of the language * Make a set of benchmarks that can function as reference for optimizations * Do effects analysis on strategy expressions; distinghuish the following effects: no effect, transformation effect, variable binding effect, failure effect * Also inline sums of rules if they occur inside a sum * Generate congruence definition by need in the same style as threading and distributing congruences. ------ CategoryToDo | ToDo