From: Daniel Sanders Date: Tue, 25 Apr 2017 14:27:27 +0000 (+0000) Subject: Bring back the ability opt out of padding zero-byte functions by not providing a... X-Git-Tag: llvmorg-5.0.0-rc1~6741 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=11e78c2bff87f65a919604e48f7e958661cecf92;p=platform%2Fupstream%2Fllvm.git 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 llvm-svn: 301311 --- diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index a7e1d56..a8f45db 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/llvm/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();