OSDN Git Service

emit a 0 byte instead of a noop if a function is empty on darwin.
authorChris Lattner <sabre@nondot.org>
Thu, 28 Jan 2010 01:06:32 +0000 (01:06 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 28 Jan 2010 01:06:32 +0000 (01:06 +0000)
"0" is nice and target independent.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94718 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/AsmPrinter.cpp
test/CodeGen/X86/2008-01-25-EmptyFunction.ll

index 68fd77c..e7a1286 100644 (file)
@@ -376,10 +376,8 @@ void AsmPrinter::EmitFunctionBody() {
   // If the function is empty and the object file uses .subsections_via_symbols,
   // then we need to emit *some* thing to the function body to prevent the
   // labels from collapsing together.
-  if (MAI->hasSubsectionsViaSymbols() && !HasAnyRealCode) {
-    // FIXME: EmitByte(0).
-    O << "\tnop\n";
-  }
+  if (MAI->hasSubsectionsViaSymbols() && !HasAnyRealCode)
+    OutStreamer.EmitIntValue(0, 1, 0/*addrspace*/);
   
   if (MAI->hasDotTypeDotSizeDirective())
     O << "\t.size\t" << *CurrentFnSym << ", .-" << *CurrentFnSym << '\n';
index b936686..387645f 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=x86 | grep nop
+; RUN: llc < %s -march=x86 | grep {.byte       0}
 target triple = "i686-apple-darwin8"