If a function is external, do not output a FunctionBlock for the function
AT ALL. This saves 11 bytes per external function from the bytecode file,
and is also required to make GhostLinkage work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17854 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Writer/Writer.cpp b/lib/Bytecode/Writer/Writer.cpp
index 7d578f9..2550d10 100644
--- a/lib/Bytecode/Writer/Writer.cpp
+++ b/lib/Bytecode/Writer/Writer.cpp
@@ -942,12 +942,12 @@
}
void BytecodeWriter::outputFunction(const Function *F) {
- BytecodeBlock FunctionBlock(BytecodeFormat::FunctionBlockID, *this);
- output_vbr(getEncodedLinkage(F));
-
// If this is an external function, there is nothing else to emit!
if (F->isExternal()) return;
+ BytecodeBlock FunctionBlock(BytecodeFormat::FunctionBlockID, *this);
+ output_vbr(getEncodedLinkage(F));
+
// Get slot information about the function...
Table.incorporateFunction(F);