//===- Utils.h ------------------------------------------------*- C++-*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception //===----------------------------------------------------------------------===// // // The file declares utils functions that can be shared across archs. // //===----------------------------------------------------------------------===// #ifndef LLD_UTILS_H #define LLD_UTILS_H #include "llvm/ADT/StringRef.h" namespace lld { namespace utils { /// Symbols can be appended with "(.__uniq.xxxx)?(.llvm.yyyy)?(.Tgm)?" where /// "xxxx" and "yyyy" are numbers that could change between builds, and .Tgm is /// the global merge functions suffix /// (see GlobalMergeFunc::MergingInstanceSuffix). We need to use the root symbol /// name before this suffix so these symbols can be matched with profiles which /// may have different suffixes. llvm::StringRef getRootSymbol(llvm::StringRef Name); } // namespace utils } // namespace lld #endif