From: Chris Lattner Date: Mon, 8 Mar 2004 22:29:35 +0000 (+0000) Subject: Update the profiling section X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=a5422e404885650e51fd14f55d5e9636bfcd47f4;p=oota-llvm.git Update the profiling section git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12243 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/OpenProjects.html b/docs/OpenProjects.html index 1a70dc84050..d528bf3e76e 100644 --- a/docs/OpenProjects.html +++ b/docs/OpenProjects.html @@ -229,11 +229,11 @@ themselves. It seems natural to want to take advantage of this...

-

We are getting to the point where we really need a unified infrastructure for -profile guided optimizations. It would be wonderful to be able to write profile -guided transformations which can be performed either at static compile time -(compile time or offline optimization time) or at runtime in a JIT type setup. -The LLVM transformation itself shouldn't need to know how it is being used.

+

We now have a unified infrastructure for writing profile-guided +transformations, which will work either at offline-compile-time or in the JIT, +but we don't have many transformations. We would welcome new profile-guided +transformations as well as improvements to the current profiling system. +

Ideas for profile guided transformations:

@@ -245,6 +245,23 @@ The LLVM transformation itself shouldn't need to know how it is being used.

  • ...
  • +

    Improvements to the existing support:

    + +
      +
    1. The current block and edge profiling code that gets inserted is very simple +and inefficient. Through the use of control-dependence information, many fewer +counters could be inserted into the code. Also, if the execution count of a +loop is known to be a compile-time or runtime constant, all of the counters in +the loop could be avoided.
    2. + +
    3. You could implement one of the "static profiling" algorithms which analyze a +piece of code an make educated guesses about the relative execution frequencies +of various parts of the code.
    4. + +
    5. You could add path profiling support, or adapt the existing LLVM path +profiling code to work with the generic profiling interfaces.
    6. +
    +