[www] r262722 - Added two open projects for projects using LLVM.

John Criswell via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 4 08:46:34 PST 2016


Author: criswell
Date: Fri Mar  4 10:46:34 2016
New Revision: 262722

URL: http://llvm.org/viewvc/llvm-project?rev=262722&view=rev
Log:
Added two open projects for projects using LLVM.

Added two open projects to the new list of projects for projects using LLVM.
The first is a MachineModulePass, and the second is a set of enhancements
for encoding analysis information into MachineIntrs.

Modified:
    www/trunk/OpenProjects.html

Modified: www/trunk/OpenProjects.html
URL: http://llvm.org/viewvc/llvm-project/www/trunk/OpenProjects.html?rev=262722&r1=262721&r2=262722&view=diff
==============================================================================
--- www/trunk/OpenProjects.html (original)
+++ www/trunk/OpenProjects.html Fri Mar  4 10:46:34 2016
@@ -28,6 +28,13 @@
     <li><a href="#codegen">Code Generator Improvements</a></li>
     <li><a href="#misc_new">Miscellaneous Additions</a></li>
   </ol></li>
+
+  <li><a href="#using">Project using LLVM</a>
+  <ol>
+    <li><a href="#machinemodulepass">Add a MachineModulePass</a></li>
+    <li><a href="#encodeanalysis">Encode Analysis Results in MachineInstr IR</a></li>
+  </ol></li>
+
 </ul>
 
 <div class="doc_author">
@@ -633,6 +640,66 @@ dependency graph.</li>
 </div>
 
 <!-- *********************************************************************** -->
+<div class="www_sectiontitle">
+  <a name="using">Projects using LLVM</a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="www_text">
+
+  <p>
+  In addition to projects that enhance the existing LLVM infrastructure, there
+  are projects that improve software that uses, but is not included with, the
+  LLVM compiler infrastructure.  These projects include open-source software
+  projects and research projects that use LLVM.  Like projects that enhance the
+  core LLVM infrastructure, these projects are often challenging and rewarding.
+  </p>
+
+</div>
+
+<!-- ======================================================================= -->
+<div class="www_subsubsection">
+  <a name="machinemodulepass">Add a MachineModulePass</a>
+</div>
+
+<div class="www_text">
+  <p>
+  Several projects reuse LLVM's code generator infrastructure to analyze
+  and optimize the machine code that the compiler generates.  However, LLVM's
+  code generator infrastructure does not provide a pass which
+  allows inter-procedural analysis and optimization of the native code that
+  the LLVM compiler generates.  What is needed is an equivalent of the LLVM IR
+  ModulePass (i.e., a <i>MachineModulePass</i>) that permits inter-procedural
+  analysis and optimiztion of machine instructions (MachineIntr's).
+  </p>
+</div>
+
+<!-- ======================================================================= -->
+<div class="www_subsubsection">
+  <a name="encodeanalysis">Encode Analysis Results in MachineInstr IR</a>
+</div>
+
+<div class="www_text">
+  <p>
+  At least one project (and probably more) needs to use analysis information
+  (such as call graph analysis) from within a MachineFunctionPass.  However,
+  most analysis passes operate at the LLVM IR level.  In some cases, a value
+  (e.g., a function pointer) cannot be mapped from the MachineInstr level back
+  to the LLVM IR level reliably, making the use of existing LLVM analysis
+  passes from within a MachineFunctionPass impossible (or at least brittle).
+  </p>
+
+  <p>
+  This project is to encode analysis information from the LLVM IR level into
+  the MachineInstr IR when it is generated so that it is available to a
+  MachineFunctionPass.  The exemplar is call graph analysis (useful for
+  control-flow integrity instrumentation, analysis of code reuse defenses, and
+  gadget compilers); however, other LLVM analyses may be useful.
+  </p>
+</div>
+
+
+<!-- *********************************************************************** -->
 
 <hr>
 <address>




More information about the llvm-commits mailing list