X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FWritingAnLLVMPass.html;h=07e736da691e55ae8a2aa1325e72dc0c9e2205f1;hb=371ca83d8b7875d30743d9e72fd16a85baacbe63;hp=3e2f167ccbb2b9f016fd9749fb9e0c0c3ba80dc6;hpb=7991070ba2998f919795530686d672109ca3d7a3;p=oota-llvm.git diff --git a/docs/WritingAnLLVMPass.html b/docs/WritingAnLLVMPass.html index 3e2f167ccbb..07e736da691 100644 --- a/docs/WritingAnLLVMPass.html +++ b/docs/WritingAnLLVMPass.html @@ -1,317 +1,385 @@ - -Writing an LLVM Pass - - - - - - - -
  Writing an LLVM Pass
- + + + + + Writing an LLVM Pass + + + + +
+ Writing an LLVM Pass +
    -
  1. Introduction - What is a pass? +
  2. Introduction - What is a pass?
  3. Quick Start - Writing hello world +
  4. Setting up the build environment
  5. +
  6. Basic code required
  7. +
  8. Running a pass with opt
  9. +
  10. Pass classes and requirements
  11. The FunctionPass class +
  12. The doInitialization(Module + &) method
  13. +
  14. The runOnFunction method
  15. +
  16. The doFinalization(Module + &) method
  17. + +
  18. The LoopPass class +
  19. The BasicBlockPass class +
  20. The doInitialization(Function + &) method
  21. +
  22. The runOnBasicBlock + method
  23. +
  24. The doFinalization(Function + &) method
  25. + +
  26. The MachineFunctionPass + class +
  27. Pass Registration +
  28. The print method
  29. +
  30. Specifying interactions between passes +
  31. The getAnalysisUsage + method
  32. +
  33. The AnalysisUsage::addRequired<> and AnalysisUsage::addRequiredTransitive<> methods
  34. +
  35. The AnalysisUsage::addPreserved<> method
  36. +
  37. Example implementations of getAnalysisUsage
  38. +
  39. The getAnalysis<> and getAnalysisToUpdate<> methods
  40. +
  41. Implementing Analysis Groups +
  42. Analysis Group Concepts
  43. +
  44. Using RegisterAnalysisGroup
  45. + +
  46. Pass Statistics
  47. What PassManager does +
  48. The releaseMemory method
  49. + +
  50. Registering dynamically loaded passes +
  51. +
  52. Using GDB with dynamically loaded passes +
  53. Future extensions planned - -

    Written by Chris Lattner

    -

- +

  • Multithreaded LLVM
  • + + +
    +

    Written by Chris Lattner and + Jim Laskey

    +
    - -
    -Introduction - What is a pass? -
    -
    -Quick Start - Writing hello world -
    -
       - -Setting up the build environment -


    -
       - -Basic code required -
    -
       - -Running a pass with opt or analyze -
    -
    -Pass classes and requirements -
    -
       - -The Pass class -


    The run method

    -
       - -The FunctionPass class -


    The doInitialization -method


    The runOnFunction method


    The doFinalization method

    -
       - -The BasicBlockPass class -


    The runOnBasicBlock method

    -
    -Pass registration -


    The print method

    -
    -Specifying interactions between passes -


    The getAnalysisUsage method


    The getAnalysis<> method

    -
    -Implementing Analysis Groups -


    Analysis Group Concepts


    Using RegisterAnalysisGroup

    -
    -What PassManager does -


    The releaseMemory method

    -
    -Future extensions planned -


    Multithreaded LLVM


    A new ModuleSource interface


    Pass's requiring FunctionPass's