From 01d7139f930a842ee65c3a5f8d1730e74c561fdb Mon Sep 17 00:00:00 2001
From: Chris Lattner
This declares a "Hello" class that is a subclass of FunctionPass. +href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1FunctionPass.html">FunctionPass. The different builtin pass subclasses are described in detail later, but for now, know that FunctionPass's operate a function at a @@ -424,7 +424,7 @@ slow.
The most plain and boring type of pass is the "ImmutablePass" +href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1ImmutablePass.html">ImmutablePass" class. This pass type is used for passes that do not have to be run, do not change state, and never need to be updated. This is not a normal type of transformation or analysis, but can provide information about the current @@ -485,7 +485,7 @@ otherwise.
The "CallGraphSCCPass" +href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1CallGraphSCCPass.html">CallGraphSCCPass" is used by passes that need to traverse the program bottom-up on the call graph (callees before callers). Deriving from CallGraphSCCPass provides some mechanics for building and traversing the CallGraph, but also allows the system @@ -1011,9 +1011,9 @@ the fact that it hacks on the CFG.
// This is an example implementation from an analysis, which does not modify // the program at all, yet has a prerequisite. - void PostDominanceFrontier::getAnalysisUsage(AnalysisUsage &AU) const { + void PostDominanceFrontier::getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesAll(); - AU.addRequired<PostDominatorTree>(); + AU.addRequired<PostDominatorTree>(); }@@ -1267,7 +1267,7 @@ etc... until the entire program has been run through the passes. the LLVM program representation for a single function at a time, instead of traversing the entire program. It reduces the memory consumption of compiler, because, for example, only one DominatorSet +href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1DominatorSet.html">DominatorSet needs to be calculated at a time. This also makes it possible some interesting enhancements in the future. -- 2.34.1