<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<p style="margin: 0in 0in 10pt; line-height: 115%; font-size: 11pt; font-family: Calibri, sans-serif;margin-bottom:0in;margin-bottom:.0001pt">
<span style="font-size:12.0pt; font-family:"Times New Roman","serif"">Greetings, my name is Allyn Shell I am the instructor of the Compiler Design with LLVM course at Johns Hopkins University Engineering for Professionals in the CS Department. (I have included
 my short bio as an introduction at the end of this email.)</span></p>
<p style="margin: 0in 0in 10pt; line-height: 115%; font-size: 11pt; font-family: Calibri, sans-serif;margin-bottom:0in;margin-bottom:.0001pt">
<span style="font-size:12.0pt; font-family:"Times New Roman","serif""><o:p> </o:p></span></p>
<p style="margin: 0in 0in 10pt; line-height: 115%; font-size: 11pt; font-family: Calibri, sans-serif;margin-bottom:0in;margin-bottom:.0001pt">
<span style="font-size:12.0pt; font-family:"Times New Roman","serif"">I spent the last two years updating the Compiler Design course to include LLVM which required me to learn “everything” about the LLVM Project. There are several difficult steps that I could
 not overcome in two years of studying LLVM. I am writing to request help from the community to fill in these missing points which basically involve using clang to create a compiler for an imperative C like language (for teaching students how to do this). It
 is easy to create a scanner and a parser using public domain tools, but when I reached the codegen to LLVM’s IR I quickly ran out of good guidance. The biggest help came from the LLVM Tutorials, but they are a little shallow and a little hard to follow at
 times due to what appears to be generations of updates.</span></p>
<p style="margin: 0in 0in 10pt; line-height: 115%; font-size: 11pt; font-family: Calibri, sans-serif;margin-bottom:0in;margin-bottom:.0001pt">
<span style="font-size:12.0pt; font-family:"Times New Roman","serif""><o:p> </o:p></span></p>
<p style="margin: 0in 0in 10pt; line-height: 115%; font-size: 11pt; font-family: Calibri, sans-serif;margin-bottom:0in;margin-bottom:.0001pt">
<span style="font-size:12.0pt; font-family:"Times New Roman","serif"">Are there LLVM based tools available to make the transition from AST to IR, and where do I find them?</span></p>
<p style="margin: 0in 0in 10pt; line-height: 115%; font-size: 11pt; font-family: Calibri, sans-serif;margin-bottom:0in;margin-bottom:.0001pt">
<span style="font-size:12.0pt; font-family:"Times New Roman","serif""><o:p> </o:p></span></p>
<p style="margin: 0in 0in 10pt; line-height: 115%; font-size: 11pt; font-family: Calibri, sans-serif;margin-bottom:0in;margin-bottom:.0001pt">
<span style="font-size:12.0pt; font-family:"Times New Roman","serif"">Is the transition between AST and IR mapped in a way that is compatible with the mappings used for debug and the IR to Machine Specific Object Code? Where can I find that information?</span></p>
<p style="margin: 0in 0in 10pt; line-height: 115%; font-size: 11pt; font-family: Calibri, sans-serif;margin-bottom:0in;margin-bottom:.0001pt">
<span style="font-size:12.0pt; font-family:"Times New Roman","serif""><o:p> </o:p></span></p>
<p style="margin: 0in 0in 10pt; line-height: 115%; font-size: 11pt; font-family: Calibri, sans-serif;margin-bottom:0in;margin-bottom:.0001pt">
<span style="font-size:12.0pt; font-family:"Times New Roman","serif"">Is there an LLVM specific scanner/parser pair that integrates with the AST to IR mapping? Where do I find information about them?</span></p>
<p style="margin: 0in 0in 10pt; line-height: 115%; font-size: 11pt; font-family: Calibri, sans-serif;margin-bottom:0in;margin-bottom:.0001pt">
<span style="font-size:12.0pt; font-family:"Times New Roman","serif""><o:p> </o:p></span></p>
<p style="margin: 0in 0in 10pt; line-height: 115%; font-size: 11pt; font-family: Calibri, sans-serif;margin-bottom:0in;margin-bottom:.0001pt">
<span style="font-size:12.0pt; font-family:"Times New Roman","serif""><span style="mso-spacerun:yes"> </span>- - - - - - - - - - - - - - - -</span></p>
<p style="margin: 0in 0in 10pt; line-height: 115%; font-size: 11pt; font-family: Calibri, sans-serif;margin-bottom:0in;margin-bottom:.0001pt">
<span style="font-size:12.0pt; font-family:"Times New Roman","serif"">Bio for Allyn Shell:</span></p>
<p style="margin: 0in 0in 10pt; line-height: 115%; font-size: 11pt; font-family: Calibri, sans-serif;margin-bottom:0in;margin-bottom:.0001pt">
<span style="font-size:12.0pt; font-family:"Times New Roman","serif"">I am the son of Dr. Donald L. Shell (author of the Shellsort). I am a Computer Scientist (semi-retired) and an Educator. I worked (indirectly) for NASA for 25 years building ground stations
 and simulators. I worked in missile defense for 10 years building simulators. Within industry I have taught seminars and short courses on a variety of topics including: Introductory Ada, Introductory C++, Advanced C++, Object Oriented Software Development,
 Introduction to Java, and Management of Ada Software Development. I am the author of the NASA/GSFC Standard Ada Pretty Printer (NASA/GSFC DSTL-88-003, May 1988) and is the co-author of the Ada Style Guide (NASA/GSFC SEL-87-002, May 1987). Recently, I authored
 the paper, “RISC Hardware and Simplified Software, Part 1: the Hardware.” and am currently writing “RISC Hardware and Simplified Software, Part 2: the Software.” I have four U.S. patents, as well as an EPO (European patent application) for a Multi-Level Marketing
 Computer Network Server (US Patents #6134533, 6415265, 6408281, 6691093 and EPO Patent Application # 97119108.5). I have a bachelor’s degree from Michigan Technical University in Applied Physics and a master’s degree in Computer Science from Johns Hopkins
 University. I am currently teaching the Foundations of Computer Architecture course and the Compiler Design with LLVM course.</span></p>
<p style="margin: 0in 0in 10pt; line-height: 115%; font-size: 11pt; font-family: Calibri, sans-serif;margin-bottom:0in;margin-bottom:.0001pt">
<span style="font-size:12.0pt; font-family:"Times New Roman","serif""><o:p> </o:p></span></p>
<p style="margin: 0in 0in 10pt; line-height: 115%; font-size: 11pt; font-family: Calibri, sans-serif;margin-bottom:0in;margin-bottom:.0001pt">
<span style="font-size:12.0pt; font-family:"Times New Roman","serif"">Allyn Shell</span><span style="font-size:12.0pt; font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman"; color:#333333"></span></p>
<br>
</div>
</body>
</html>