Index: lib/IR/DebugInfo.cpp =================================================================== --- lib/IR/DebugInfo.cpp +++ lib/IR/DebugInfo.cpp @@ -380,6 +380,16 @@ if (GVMaterializer *Materializer = M.getMaterializer()) Materializer->setStripDebugInfo(); + StringRef DbgIntrinsics[] = {"llvm.dbg.value", "llvm.dbg.declare", + "llvm.dbg.addr", "llvm.dbg.label"}; + for (StringRef FuncName : DbgIntrinsics) { + auto *F = M.getFunction(FuncName); + if (!F) + continue; + F->eraseFromParent(); + Changed = true; + } + return Changed; } Index: test/DebugInfo/strip-intrinsic-dbg.ll =================================================================== --- test/DebugInfo/strip-intrinsic-dbg.ll +++ test/DebugInfo/strip-intrinsic-dbg.ll @@ -0,0 +1,7 @@ +; RUN: opt -S -strip-debug <%s | FileCheck %s + +; CHECK-NOT: llvm.dbg. +declare void @llvm.dbg.declare(metadata, metadata, metadata) +declare void @llvm.dbg.value(metadata, metadata, metadata) +declare void @llvm.dbg.addr(metadata, metadata, metadata) +declare void @llvm.dbg.label(metadata, metadata, metadata)