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
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.