[cleanup] Fix up trailing whitespace and formatting in the pass regitsry

code prior to hacking on it more significantly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219094 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chandler Carruth 2014-10-05 23:59:03 +00:00
parent eb2be34094
commit b3d7f9c18d
2 changed files with 44 additions and 44 deletions

View File

@ -42,61 +42,61 @@ class PassRegistry {
mutable sys::SmartRWMutex<true> Lock;
/// PassInfoMap - Keep track of the PassInfo object for each registered pass.
typedef DenseMap<const void*, const PassInfo*> MapType;
typedef DenseMap<const void *, const PassInfo *> MapType;
MapType PassInfoMap;
typedef StringMap<const PassInfo*> StringMapType;
typedef StringMap<const PassInfo *> StringMapType;
StringMapType PassInfoStringMap;
/// AnalysisGroupInfo - Keep track of information for each analysis group.
struct AnalysisGroupInfo {
SmallPtrSet<const PassInfo *, 8> Implementations;
};
DenseMap<const PassInfo*, AnalysisGroupInfo> AnalysisGroupInfoMap;
DenseMap<const PassInfo *, AnalysisGroupInfo> AnalysisGroupInfoMap;
std::vector<std::unique_ptr<const PassInfo>> ToFree;
std::vector<PassRegistrationListener*> Listeners;
std::vector<PassRegistrationListener *> Listeners;
public:
PassRegistry() { }
PassRegistry() {}
~PassRegistry();
/// getPassRegistry - Access the global registry object, which is
/// getPassRegistry - Access the global registry object, which is
/// automatically initialized at application launch and destroyed by
/// llvm_shutdown.
static PassRegistry *getPassRegistry();
/// getPassInfo - Look up a pass' corresponding PassInfo, indexed by the pass'
/// type identifier (&MyPass::ID).
const PassInfo *getPassInfo(const void *TI) const;
/// getPassInfo - Look up a pass' corresponding PassInfo, indexed by the pass'
/// argument string.
const PassInfo *getPassInfo(StringRef Arg) const;
/// registerPass - Register a pass (by means of its PassInfo) with the
/// registerPass - Register a pass (by means of its PassInfo) with the
/// registry. Required in order to use the pass with a PassManager.
void registerPass(const PassInfo &PI, bool ShouldFree = false);
/// registerPass - Unregister a pass (by means of its PassInfo) with the
/// registerPass - Unregister a pass (by means of its PassInfo) with the
/// registry.
void unregisterPass(const PassInfo &PI);
/// registerAnalysisGroup - Register an analysis group (or a pass implementing
// an analysis group) with the registry. Like registerPass, this is required
// an analysis group) with the registry. Like registerPass, this is required
// in order for a PassManager to be able to use this group/pass.
void registerAnalysisGroup(const void *InterfaceID, const void *PassID,
PassInfo& Registeree, bool isDefault,
PassInfo &Registeree, bool isDefault,
bool ShouldFree = false);
/// enumerateWith - Enumerate the registered passes, calling the provided
/// PassRegistrationListener's passEnumerate() callback on each of them.
void enumerateWith(PassRegistrationListener *L);
/// addRegistrationListener - Register the given PassRegistrationListener
/// to receive passRegistered() callbacks whenever a new pass is registered.
void addRegistrationListener(PassRegistrationListener *L);
/// removeRegistrationListener - Unregister a PassRegistrationListener so that
/// it no longer receives passRegistered() callbacks.
void removeRegistrationListener(PassRegistrationListener *L);

View File

@ -36,8 +36,7 @@ PassRegistry *PassRegistry::getPassRegistry() {
// Accessors
//
PassRegistry::~PassRegistry() {
}
PassRegistry::~PassRegistry() {}
const PassInfo *PassRegistry::getPassInfo(const void *TI) const {
sys::SmartScopedReader<true> Guard(Lock);
@ -58,24 +57,26 @@ const PassInfo *PassRegistry::getPassInfo(StringRef Arg) const {
void PassRegistry::registerPass(const PassInfo &PI, bool ShouldFree) {
sys::SmartScopedWriter<true> Guard(Lock);
bool Inserted =
PassInfoMap.insert(std::make_pair(PI.getTypeInfo(),&PI)).second;
PassInfoMap.insert(std::make_pair(PI.getTypeInfo(), &PI)).second;
assert(Inserted && "Pass registered multiple times!");
(void)Inserted;
PassInfoStringMap[PI.getPassArgument()] = &PI;
// Notify any listeners.
for (std::vector<PassRegistrationListener*>::iterator
I = Listeners.begin(), E = Listeners.end(); I != E; ++I)
for (std::vector<PassRegistrationListener *>::iterator I = Listeners.begin(),
E = Listeners.end();
I != E; ++I)
(*I)->passRegistered(&PI);
if (ShouldFree) ToFree.push_back(std::unique_ptr<const PassInfo>(&PI));
if (ShouldFree)
ToFree.push_back(std::unique_ptr<const PassInfo>(&PI));
}
void PassRegistry::unregisterPass(const PassInfo &PI) {
sys::SmartScopedWriter<true> Guard(Lock);
MapType::iterator I = PassInfoMap.find(PI.getTypeInfo());
assert(I != PassInfoMap.end() && "Pass registered but not in map!");
// Remove pass from the map.
PassInfoMap.erase(I);
PassInfoStringMap.erase(PI.getPassArgument());
@ -87,29 +88,27 @@ void PassRegistry::enumerateWith(PassRegistrationListener *L) {
L->passEnumerate(I->second);
}
/// Analysis Group Mechanisms.
void PassRegistry::registerAnalysisGroup(const void *InterfaceID,
void PassRegistry::registerAnalysisGroup(const void *InterfaceID,
const void *PassID,
PassInfo& Registeree,
bool isDefault,
PassInfo &Registeree, bool isDefault,
bool ShouldFree) {
PassInfo *InterfaceInfo = const_cast<PassInfo*>(getPassInfo(InterfaceID));
PassInfo *InterfaceInfo = const_cast<PassInfo *>(getPassInfo(InterfaceID));
if (!InterfaceInfo) {
// First reference to Interface, register it now.
registerPass(Registeree);
InterfaceInfo = &Registeree;
}
assert(Registeree.isAnalysisGroup() &&
assert(Registeree.isAnalysisGroup() &&
"Trying to join an analysis group that is a normal pass!");
if (PassID) {
PassInfo *ImplementationInfo = const_cast<PassInfo*>(getPassInfo(PassID));
PassInfo *ImplementationInfo = const_cast<PassInfo *>(getPassInfo(PassID));
assert(ImplementationInfo &&
"Must register pass before adding to AnalysisGroup!");
sys::SmartScopedWriter<true> Guard(Lock);
// Make sure we keep track of the fact that the implementation implements
// the interface.
ImplementationInfo->addInterfaceImplemented(InterfaceInfo);
@ -121,14 +120,15 @@ void PassRegistry::registerAnalysisGroup(const void *InterfaceID,
if (isDefault) {
assert(InterfaceInfo->getNormalCtor() == nullptr &&
"Default implementation for analysis group already specified!");
assert(ImplementationInfo->getNormalCtor() &&
"Cannot specify pass as default if it does not have a default ctor");
assert(
ImplementationInfo->getNormalCtor() &&
"Cannot specify pass as default if it does not have a default ctor");
InterfaceInfo->setNormalCtor(ImplementationInfo->getNormalCtor());
InterfaceInfo->setTargetMachineCtor(
ImplementationInfo->getTargetMachineCtor());
}
}
if (ShouldFree)
ToFree.push_back(std::unique_ptr<const PassInfo>(&Registeree));
}
@ -140,7 +140,7 @@ void PassRegistry::addRegistrationListener(PassRegistrationListener *L) {
void PassRegistry::removeRegistrationListener(PassRegistrationListener *L) {
sys::SmartScopedWriter<true> Guard(Lock);
auto I = std::find(Listeners.begin(), Listeners.end(), L);
Listeners.erase(I);
}