LLVM 源码分析(三)ImmutablePass

//===----------------------------------===///// ImmutablePass class - This class is used to provide information that does/// not need to be run. This is useful for things like target information and/// "basic" versions of AnalysisGroups.///class ImmutablePass : public ModulePass {public: /// initializePass - This method may be overriden by immutable passes to allow /// them to perform various initialization actions they require. This is /// primarily because an ImmutablePass can "require" another ImmutablePass, /// and if it does, the overloaded version of initializePass may get access to /// these passes with getAnalysis<>. /// virtual void initializePass(); virtual ImmutablePass *getAsImmutablePass() { return this; } /// ImmutablePasses are never run. /// bool runOnModule(Module &) { return false; } explicit ImmutablePass(char &pid) : ModulePass(pid) {} // Force out-of-line virtual method. virtual ~ImmutablePass();};这个类里有现实的使用方式 但是这个基本是llvm 本身需求的 我们开发过程中很少会使用MachineModuleInfo.cpp 里面class MachineModuleInfo : public ImmutablePass