Add GUID/getGlobalIdentifier() non-static API to global value

Summary:
These are just helpers calling their static counter part to
simplify client code.

Reviewers: tejohnson

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D18339

From: Mehdi Amini <mehdi.amini@apple.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@264382 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Mehdi Amini 2016-03-25 05:57:41 +00:00
parent 93e5944cd8
commit facd1245e4
2 changed files with 14 additions and 1 deletions

View File

@ -316,10 +316,18 @@ public:
GlobalValue::LinkageTypes Linkage,
StringRef FileName);
/// Return the modified name for this global value suitable to be
/// used as the key for a global lookup (e.g. profile or ThinLTO).
std::string getGlobalIdentifier();
/// Return a 64-bit global unique ID constructed from global value name
/// (i.e. returned by getGlobalIdentifier).
/// (i.e. returned by getGlobalIdentifier()).
static uint64_t getGUID(StringRef GlobalName) { return MD5Hash(GlobalName); }
/// Return a 64-bit global unique ID constructed from global value name
/// (i.e. returned by getGlobalIdentifier()).
uint64_t getGUID() { return getGUID(getGlobalIdentifier()); }
/// @name Materialization
/// Materialization is used to construct functions only as they're needed.
/// This

View File

@ -123,6 +123,11 @@ std::string GlobalValue::getGlobalIdentifier(StringRef Name,
return NewName;
}
std::string GlobalValue::getGlobalIdentifier() {
return getGlobalIdentifier(getName(), getLinkage(),
getParent()->getSourceFileName());
}
const char *GlobalValue::getSection() const {
if (auto *GA = dyn_cast<GlobalAlias>(this)) {
// In general we cannot compute this at the IR level, but we try.