Skip to content

Commit 22f1c7f

Browse files
committed
[Review] Remove lambda from embedBitcodeInModule
1 parent 9cb3667 commit 22f1c7f

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5848,6 +5848,12 @@ static const char *getSectionNameForCommandline(const Triple &T) {
58485848
llvm_unreachable("Unimplemented ObjectFormatType");
58495849
}
58505850

5851+
static auto globalInUsedHasName(StringRef Name) {
5852+
return [Name](Constant* C) {
5853+
return C->getName() == Name;
5854+
};
5855+
}
5856+
58515857
void llvm::embedBitcodeInModule(llvm::Module &M, llvm::MemoryBufferRef Buf,
58525858
bool EmbedBitcode, bool EmbedCmdline,
58535859
const std::vector<uint8_t> &CmdArgs) {
@@ -5858,19 +5864,6 @@ void llvm::embedBitcodeInModule(llvm::Module &M, llvm::MemoryBufferRef Buf,
58585864
Triple T(M.getTargetTriple());
58595865
SmallVector<GlobalValue *, 2> NewGlobals;
58605866

5861-
auto IsCmdOrBitcode = [&](Constant *C) {
5862-
GlobalVariable *GV = dyn_cast<GlobalVariable>(C);
5863-
StringRef Name = GV ? GV->getName() : "";
5864-
if (EmbedBitcode && Name == "llvm.embedded.module")
5865-
return true;
5866-
if (EmbedCmdline && Name == "llvm.cmdline")
5867-
return true;
5868-
return false;
5869-
};
5870-
5871-
if (EmbedBitcode || EmbedCmdline)
5872-
removeFromUsedLists(M, IsCmdOrBitcode);
5873-
58745867
if (EmbedBitcode) {
58755868
if (Buf.getBufferSize() == 0 ||
58765869
!isBitcode((const unsigned char *)Buf.getBufferStart(),
@@ -5898,6 +5891,7 @@ void llvm::embedBitcodeInModule(llvm::Module &M, llvm::MemoryBufferRef Buf,
58985891
NewGlobals.push_back(EmbeddedModule);
58995892
if (llvm::GlobalVariable *Old =
59005893
M.getGlobalVariable("llvm.embedded.module", true)) {
5894+
removeFromUsedLists(M, globalInUsedHasName("llvm.embedded.module"));
59015895
assert(Old->hasZeroLiveUses() &&
59025896
"llvm.embedded.module can only be used once in llvm.compiler.used");
59035897
EmbeddedModule->takeName(Old);
@@ -5919,6 +5913,7 @@ void llvm::embedBitcodeInModule(llvm::Module &M, llvm::MemoryBufferRef Buf,
59195913
CmdLine->setSection(getSectionNameForCommandline(T));
59205914
CmdLine->setAlignment(Align(1));
59215915
if (llvm::GlobalVariable *Old = M.getGlobalVariable("llvm.cmdline", true)) {
5916+
removeFromUsedLists(M, globalInUsedHasName("llvm.cmdline"));
59225917
assert(Old->hasZeroLiveUses() &&
59235918
"llvm.cmdline can only be used once in llvm.compiler.used");
59245919
CmdLine->takeName(Old);

0 commit comments

Comments
 (0)