Abstract
In this paper we present CASM, a language based on Abstract State Machines (ASM), and its optimizing compiler. ASM is a well-defined (formal) method based on algebraic concepts. A distinct feature of ASM is its combination of parallel and sequential execution semantics. This makes it an excellent choice to formally specify and verify micro-architectures. We present a compilation scheme and an implementation of a runtime system supporting efficient execution of ASM.
After introducing novel analysis techniques we present optimizations allowing us to eliminate many costly operations.
Benchmark results show that our baseline compiler is 2-3 magnitudes faster than other ASM implementations. The optimizations further increase the performance of the compiled programs up to 264%. The achieved performance allows our ASM implementation to be used with industry-size applications.
- K. Agrawal, J. T. Fineman, and J. Sukha. Nested parallelism in transactional memory. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP'08, pages 163--174, New York, NY, USA, 2008. ACM. ISBN 978--1- 59593--795--7. Google Scholar
Digital Library
- A. V. Aho, M. Lam, R. Sethi, and J. Ullman. Compilers: Principles, Techniques, & Tools. Addison-Wesley, 2007. ISBN 978-0321547989. Google Scholar
Digital Library
- M. Anlauff. XASM- An Extensible, Component-Based Abstract State Machines Language. In Y. Gurevich, P. Kutter, M. Odersky, and L. Thiele, editors, Abstract State Machines - Theory and Applications, volume 1912 of Lecture Notes in Computer Science, pages 69--90.Springer Berlin Heidelberg, 2000. ISBN 978--3--540--67959--2. Google Scholar
Digital Library
- R. Barik and V. Sarkar. Interprocedural load elimination for dynamic optimization of parallel programs. In Parallel Architectures and Compilation Techniques, 2009. PACT'09. 18th International Conference on, pages 41--52. IEEE, 2009. Google Scholar
Digital Library
- M. Barnett, W. Grieskamp, L. Nachmanson, W. Schulte, N. Tillmann, and M. Veanes. Towards a tool environment for model-based testing with AsmL. In Formal Approaches to Software Testing, FATES 2003, volume 2931 of LNCS, pages 264--280. Springer, 2003.Google Scholar
- J. Bergin and S. Greenfield. Teaching parameter passing by example using thunks in C and C++. SIGCSE Bull., 25(1):10--14, Mar. 1993. ISSN 0097--8418. Google Scholar
Digital Library
- E. Börger and J. Schmid. Composition and submachine concepts for sequential ASMs. In Computer Science Logic (Proceedings of CSL 2000), volume 1862 of LNCS, pages 41--60. Springer-Verlag, 2000. Google Scholar
Digital Library
- F. Brandner, N. Horspool, and A. Krall. DSP Instruction Set Simulation. In S. S. Bhattacharyya, E. F. Deprettere, R. Leupers, and J. Takala, editors, Handbook of Signal Processing Systems, pages 945--974. Springer New York, 2013. ISBN 978--1--4614--6858--5.Google Scholar
Cross Ref
- G. D. Castillo. The ASM workbench - A tool environment for computer-aided analysis and validation of abstract state machine models. In Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2001, pages 578--581, London, UK, UK, 2001. Springer-Verlag. Google Scholar
Digital Library
- R. Farahbod, V. Gervasi, and U. Glässer. CoreASM: An extensible ASM execution engine. Fundamenta Informaticae, 77:1--33, 2007. Google Scholar
Digital Library
- N. G. Fruja and R. F. Stärk. The hidden computation steps of Turbo Abstract State Machines. In Abstract State Machines -- Advances in Theory and Applications, 10th International Workshop, ASM 2003, pages 244--262. Springer-Verlag, 2003. Google Scholar
Digital Library
- Y. Gurevich. Evolving algebras 1993: Lipari guide, pages 9--36. Oxford University Press, Inc., New York, NY, USA, 1995. Google Scholar
Digital Library
- Y. Gurevich and N. Tillmann. Partial updates. Theoretical Computer Science, 336(2):311--342, 2005. Google Scholar
Digital Library
- Y. Gurevich, B. Rossman, andW. Schulte. Semantic essence of AsmL. Theor. Comput. Sci., 343(3):370--412, Oct. 2005. ISSN 0304--3975. Google Scholar
Digital Library
- M. R. Guthaus, J. S. Ringenberg, D. Ernst, T. M. Austin, T. Mudge, and R. B. Brown. Mibench: A free, commercially representative embeddedbenchmark suite. In Proceedings of the Workload Characterization, 2001. WWC-4. 2001 IEEE International Workshop,WWC'01, pages 3--14, Washington, DC, USA, 2001. IEEE Computer Society. ISBN 0--7803--7315--4. Google Scholar
Digital Library
- J. K. Huggins and W. Shen. The static and dynamic semantics of C, 2000.Google Scholar
- R. Lezuo. Scalable Translation Validation. PhD thesis, Vienna University of Technology, 2014.Google Scholar
- R. Lezuo and A. Krall. Using the CASM language for simulator synthesis and model verification. In Proceedings of the 2013 Workshop on Rapid Simulation and Performance Evaluation: Methods and Tools, RAPIDO'13, pages 6:1--6:8, New York, NY, USA, 2013. ACM. ISBN 978--1--4503--1539--5. Google Scholar
Digital Library
- R. Lezuo, G. Barany, and A. Krall. CASM: Implementing an Abstract State Machine based Programming Language. In S. Wagner and H. Lichter, editors, Software Engineering 2013 Workshopband, 26. Februar - 1. März 2013 in Aachen, volume 215 of GI Edition - Lecture Notes in Informatics, pages 75--90, February 2013. ISBN 978--3- 88579--609--1. (6. Arbeitstagung Programmiersprachen (ATPS'13)).Google Scholar
- T. Mens. A state-of-the-art survey on software merging. Software Engineering, IEEE Transactions on, 28(5):449--462, 2002. Google Scholar
Digital Library
- C. Praun, F. Schneider, and T. Gross. Load elimination in the presence of side effects, concurrency and precise exceptions. In L. Rauchwerger, editor, Languages and Compilers for Parallel Computing, volume 2958 of Lecture Notes in Computer Science, pages 390--404. Springer Berlin Heidelberg, 2004. ISBN 978--3--540--21199-0.Google Scholar
- J. Schmid. Introduction to AsmGofer, 2001. URL http://www.tydo.de/AsmGofer.Google Scholar
- J. Schmid. Compiling abstract state machines to C++. Journal of Universal Computer Science, 7(11):1068--1087, 2001.Google Scholar
- J. Teich, P. W. Kutter, and R. Weper. Description and simulation of microprocessor instruction sets using ASMs. In Proceedings of the International Workshop on Abstract State Machines, Theory and Applications, ASM'00, pages 266--286, London, UK, 2000. Springer- Verlag. ISBN 3--540--67959--6. Google Scholar
Digital Library
Index Terms
CASM: optimized compilation of abstract state machines
Recommendations
CASM: optimized compilation of abstract state machines
LCTES '14: Proceedings of the 2014 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systemsIn this paper we present CASM, a language based on Abstract State Machines (ASM), and its optimizing compiler. ASM is a well-defined (formal) method based on algebraic concepts. A distinct feature of ASM is its combination of parallel and sequential ...
Eliminating partially-redundant array-bounds check in the Android Dalvik JIT compiler
PPPJ '11: Proceedings of the 9th International Conference on Principles and Practice of Programming in JavaThe Android operating system has transformed the mobile software platform landscape significantly. A significant component of the Android is the Dalvik Virtual Machine (DVM) that interprets client applications' codes written in Java and compiled to ...
Compiler transformations for high-performance computing
In the last three decades a large number of compiler transformations for optimizing programs have been implemented. Most optimizations for uniprocessors reduce the number of instructions executed by the program using transformations based on the ...







Comments