From ac1a2173c6e2e48eb5fb633e0382c046bb286b5d Mon Sep 17 00:00:00 2001 From: Daniel Sanders Date: Tue, 25 Apr 2017 14:27:27 +0000 Subject: [PATCH] Bring back the ability opt out of padding zero-byte functions by not providing a nop instruction. Summary: No test case since I'm not aware of an in-tree target that needs this. Reviewers: hans Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D32398 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@301311 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index a7e1d566c04..a8f45db4ad0 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -1068,8 +1068,13 @@ void AsmPrinter::EmitFunctionBody() { (TT.isOSWindows() && TT.isOSBinFormatCOFF()))) { MCInst Noop; MF->getSubtarget().getInstrInfo()->getNoop(Noop); - OutStreamer->AddComment("avoids zero-length function"); - OutStreamer->EmitInstruction(Noop, getSubtargetInfo()); + + // Targets can opt-out of emitting the noop here by leaving the opcode + // unspecified. + if (Noop.getOpcode()) { + OutStreamer->AddComment("avoids zero-length function"); + OutStreamer->EmitInstruction(Noop, getSubtargetInfo()); + } } const Function *F = MF->getFunction(); -- 2.50.1