1,102 research outputs found
The Mystro system: A comprehensive translator toolkit
Mystro is a system that facilities the construction of compilers, assemblers, code generators, query interpretors, and similar programs. It provides features to encourage the use of iterative enhancement. Mystro was developed in response to the needs of NASA Langley Research Center (LaRC) and enjoys a number of advantages over similar systems. There are other programs available that can be used in building translators. These typically build parser tables, usually supply the source of a parser and parts of a lexical analyzer, but provide little or no aid for code generation. In general, only the front end of the compiler is addressed. Mystro, on the other hand, emphasizes tools for both ends of a compiler
Finding and understanding bugs in C compilers
ManuscriptCompilers should be correct. To improve the quality of C compilers, we created Csmith, a randomized test-case generation tool, and spent three years using it to find compiler bugs. During this period we reported more than 325 previously unknown bugs to compiler developers. Every compiler we tested was found to crash and also to silently generate wrong code when presented with valid input. In this paper we present our compiler-testing tool and the results of our bug-hunting study. Our first contribution is to advance the state of the art in compiler testing. Unlike previous tools, Csmith generates programs that cover a large subset of C while avoiding the undefined and unspecified behaviors that would destroy its ability to automatically find wrong-code bugs. Our second contribution is a collection of qualitative and quantitative results about the bugs we have found in open-source C compilers
Proceedings of the 3rd Workshop on Domain-Specific Language Design and Implementation (DSLDI 2015)
The goal of the DSLDI workshop is to bring together researchers and
practitioners interested in sharing ideas on how DSLs should be designed,
implemented, supported by tools, and applied in realistic application contexts.
We are both interested in discovering how already known domains such as graph
processing or machine learning can be best supported by DSLs, but also in
exploring new domains that could be targeted by DSLs. More generally, we are
interested in building a community that can drive forward the development of
modern DSLs. These informal post-proceedings contain the submitted talk
abstracts to the 3rd DSLDI workshop (DSLDI'15), and a summary of the panel
discussion on Language Composition
Vectorization, Obfuscation and P4 LLVM Tool-chain
This thesis broadly focuses on three different areas: Loop Vectorization, Code Obfuscation,
and P4LLVM compiler. The work in Loop vectorization starts with a
comparison of Auto-vectorization of GCC, ICC and LLVM compilers and show their
strengths and weakness. As an attempt to improve LLVM’s Auto-vectorization, we
propose to improve Loop Distribution using exact dependences from Polly. Our work
on Loop Distribution shows promising results. We developed an LLVM based Code
Obfuscation engine with various obfuscation techniques as transformation passes, our
techniques are novel and are different from existing works [1]. In hardware circuit
obfuscation several methods were proposed at the hardware level to secure the IP.
Our approach is to obfuscate the circuits at the software level, using code obfuscation
techniques
- …