Doxygen-ify a few comments. NFC

llvm-svn: 240647
This commit is contained in:
Jonathan Roelofs 2015-06-25 15:06:47 +00:00
parent d8e96ec79c
commit 4dd6173bac
1 changed files with 36 additions and 39 deletions

View File

@ -27,28 +27,27 @@
namespace llvm { namespace llvm {
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// AnalysisUsage - Represent the analysis usage information of a pass. This /// Represent the analysis usage information of a pass. This tracks analyses
// tracks analyses that the pass REQUIRES (must be available when the pass /// that the pass REQUIRES (must be available when the pass runs), REQUIRES
// runs), REQUIRES TRANSITIVE (must be available throughout the lifetime of the /// TRANSITIVE (must be available throughout the lifetime of the pass), and
// pass), and analyses that the pass PRESERVES (the pass does not invalidate the /// analyses that the pass PRESERVES (the pass does not invalidate the results
// results of these analyses). This information is provided by a pass to the /// of these analyses). This information is provided by a pass to the Pass
// Pass infrastructure through the getAnalysisUsage virtual function. /// infrastructure through the getAnalysisUsage virtual function.
// ///
class AnalysisUsage { class AnalysisUsage {
public: public:
typedef SmallVector<AnalysisID, 32> VectorType; typedef SmallVector<AnalysisID, 32> VectorType;
private: private:
// Sets of analyses required and preserved by a pass /// Sets of analyses required and preserved by a pass
VectorType Required, RequiredTransitive, Preserved; VectorType Required, RequiredTransitive, Preserved;
bool PreservesAll; bool PreservesAll;
public: public:
AnalysisUsage() : PreservesAll(false) {} AnalysisUsage() : PreservesAll(false) {}
// addRequired - Add the specified ID to the required set of the usage info ///@{
// for a pass. /// Add the specified ID to the required set of the usage info for a pass.
//
AnalysisUsage &addRequiredID(const void *ID); AnalysisUsage &addRequiredID(const void *ID);
AnalysisUsage &addRequiredID(char &ID); AnalysisUsage &addRequiredID(char &ID);
template<class PassClass> template<class PassClass>
@ -61,10 +60,10 @@ public:
AnalysisUsage &addRequiredTransitive() { AnalysisUsage &addRequiredTransitive() {
return addRequiredTransitiveID(PassClass::ID); return addRequiredTransitiveID(PassClass::ID);
} }
///@}
// addPreserved - Add the specified ID to the set of analyses preserved by ///@{
// this pass /// Add the specified ID to the set of analyses preserved by this pass.
//
AnalysisUsage &addPreservedID(const void *ID) { AnalysisUsage &addPreservedID(const void *ID) {
Preserved.push_back(ID); Preserved.push_back(ID);
return *this; return *this;
@ -73,29 +72,28 @@ public:
Preserved.push_back(&ID); Preserved.push_back(&ID);
return *this; return *this;
} }
///@}
// addPreserved - Add the specified Pass class to the set of analyses /// Add the specified Pass class to the set of analyses preserved by this pass.
// preserved by this pass.
//
template<class PassClass> template<class PassClass>
AnalysisUsage &addPreserved() { AnalysisUsage &addPreserved() {
Preserved.push_back(&PassClass::ID); Preserved.push_back(&PassClass::ID);
return *this; return *this;
} }
// addPreserved - Add the Pass with the specified argument string to the set /// Add the Pass with the specified argument string to the set of analyses
// of analyses preserved by this pass. If no such Pass exists, do nothing. /// preserved by this pass. If no such Pass exists, do nothing. This can be
// This can be useful when a pass is trivially preserved, but may not be /// useful when a pass is trivially preserved, but may not be linked in. Be
// linked in. Be careful about spelling! /// careful about spelling!
//
AnalysisUsage &addPreserved(StringRef Arg); AnalysisUsage &addPreserved(StringRef Arg);
// setPreservesAll - Set by analyses that do not transform their input at all /// Set by analyses that do not transform their input at all
void setPreservesAll() { PreservesAll = true; } void setPreservesAll() { PreservesAll = true; }
/// Determine whether a pass said it does not transform its input at all
bool getPreservesAll() const { return PreservesAll; } bool getPreservesAll() const { return PreservesAll; }
/// setPreservesCFG - This function should be called by the pass, iff they do /// This function should be called by the pass, iff they do not:
/// not:
/// ///
/// 1. Add or remove basic blocks from the function /// 1. Add or remove basic blocks from the function
/// 2. Modify terminator instructions in any way. /// 2. Modify terminator instructions in any way.
@ -113,10 +111,10 @@ public:
}; };
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// AnalysisResolver - Simple interface used by Pass objects to pull all /// AnalysisResolver - Simple interface used by Pass objects to pull all
// analysis information out of pass manager that is responsible to manage /// analysis information out of pass manager that is responsible to manage
// the pass. /// the pass.
// ///
class PMDataManager; class PMDataManager;
class AnalysisResolver { class AnalysisResolver {
private: private:
@ -127,7 +125,7 @@ public:
inline PMDataManager &getPMDataManager() { return PM; } inline PMDataManager &getPMDataManager() { return PM; }
// Find pass that is implementing PI. /// Find pass that is implementing PI.
Pass *findImplPass(AnalysisID PI) { Pass *findImplPass(AnalysisID PI) {
Pass *ResultPass = nullptr; Pass *ResultPass = nullptr;
for (unsigned i = 0; i < AnalysisImpls.size() ; ++i) { for (unsigned i = 0; i < AnalysisImpls.size() ; ++i) {
@ -139,7 +137,7 @@ public:
return ResultPass; return ResultPass;
} }
// Find pass that is implementing PI. Initialize pass for Function F. /// Find pass that is implementing PI. Initialize pass for Function F.
Pass *findImplPass(Pass *P, AnalysisID PI, Function &F); Pass *findImplPass(Pass *P, AnalysisID PI, Function &F);
void addAnalysisImplsPair(AnalysisID PI, Pass *P) { void addAnalysisImplsPair(AnalysisID PI, Pass *P) {
@ -149,21 +147,20 @@ public:
AnalysisImpls.push_back(pir); AnalysisImpls.push_back(pir);
} }
/// clearAnalysisImpls - Clear cache that is used to connect a pass to the /// Clear cache that is used to connect a pass to the the analysis (PassInfo).
/// the analysis (PassInfo).
void clearAnalysisImpls() { void clearAnalysisImpls() {
AnalysisImpls.clear(); AnalysisImpls.clear();
} }
// getAnalysisIfAvailable - Return analysis result or null if it doesn't exist /// Return analysis result or null if it doesn't exist.
Pass *getAnalysisIfAvailable(AnalysisID ID, bool Direction) const; Pass *getAnalysisIfAvailable(AnalysisID ID, bool Direction) const;
private: private:
// AnalysisImpls - This keeps track of which passes implements the interfaces /// This keeps track of which passes implements the interfaces that are
// that are required by the current pass (to implement getAnalysis()). /// required by the current pass (to implement getAnalysis()).
std::vector<std::pair<AnalysisID, Pass*> > AnalysisImpls; std::vector<std::pair<AnalysisID, Pass*> > AnalysisImpls;
// PassManager that is used to resolve analysis info /// PassManager that is used to resolve analysis info
PMDataManager &PM; PMDataManager &PM;
}; };