//===- NameAnonGlobals.cpp - ThinLTO Support: Name Unnamed Globals --------===// // // 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 // //===----------------------------------------------------------------------===// // // This file implements naming anonymous globals to make sure they can be // referred to by ThinLTO. // //===----------------------------------------------------------------------===// #include "llvm/Transforms/Utils/NameAnonGlobals.h" #include "llvm/ADT/SmallString.h" #include "llvm/IR/Module.h" #include "llvm/Support/MD5.h" #include "llvm/Transforms/Utils/ModuleUtils.h" usingnamespacellvm; namespace { // Compute a "unique" hash for the module based on the name of the public // globals. class ModuleHasher { … }; } // end anonymous namespace // Rename all the anon globals in the module bool llvm::nameUnamedGlobals(Module &M) { … } PreservedAnalyses NameAnonGlobalPass::run(Module &M, ModuleAnalysisManager &AM) { … }