Move Function::lookupIntrinsicID to a static method. NFC

llvm-svn: 237641
This commit is contained in:
Pete Cooper 2015-05-19 00:02:25 +00:00
parent 09e9079d5c
commit 2124113569
2 changed files with 14 additions and 19 deletions

View File

@ -109,10 +109,6 @@ private:
Function(const Function&) = delete;
void operator=(const Function&) = delete;
/// Do the actual lookup of an intrinsic ID when the query could not be
/// answered from the cache.
unsigned lookupIntrinsicID() const LLVM_READONLY;
/// Function ctor - If the (optional) Module argument is specified, the
/// function is automatically inserted into the end of the function list for
/// the module.

View File

@ -433,6 +433,19 @@ void Function::copyAttributesFrom(const GlobalValue *Src) {
setPrologueData(nullptr);
}
/// \brief This does the actual lookup of an intrinsic ID which
/// matches the given function name.
static Intrinsic::ID lookupIntrinsicID(const ValueName *ValName) {
unsigned Len = ValName->getKeyLength();
const char *Name = ValName->getKeyData();
#define GET_FUNCTION_RECOGNIZER
#include "llvm/IR/Intrinsics.gen"
#undef GET_FUNCTION_RECOGNIZER
return Intrinsic::not_intrinsic;
}
/// getIntrinsicID - This method returns the ID number of the specified
/// function, or Intrinsic::not_intrinsic if the function is not an
/// intrinsic, or if the pointer is null. This value is always defined to be
@ -449,27 +462,13 @@ unsigned Function::getIntrinsicID() const {
LLVMContextImpl::IntrinsicIDCacheTy &IntrinsicIDCache =
getContext().pImpl->IntrinsicIDCache;
if (!IntrinsicIDCache.count(this)) {
unsigned Id = lookupIntrinsicID();
unsigned Id = lookupIntrinsicID(ValName);
IntrinsicIDCache[this]=Id;
return Id;
}
return IntrinsicIDCache[this];
}
/// This private method does the actual lookup of an intrinsic ID when the query
/// could not be answered from the cache.
unsigned Function::lookupIntrinsicID() const {
const ValueName *ValName = this->getValueName();
unsigned Len = ValName->getKeyLength();
const char *Name = ValName->getKeyData();
#define GET_FUNCTION_RECOGNIZER
#include "llvm/IR/Intrinsics.gen"
#undef GET_FUNCTION_RECOGNIZER
return 0;
}
/// Returns a stable mangling for the type specified for use in the name
/// mangling scheme used by 'any' types in intrinsic signatures. The mangling
/// of named types is simply their name. Manglings for unnamed types consist