diff --git a/test/tools/gold/stats.ll b/test/tools/gold/stats.ll new file mode 100644 index 00000000000..5a6e6f965f2 --- /dev/null +++ b/test/tools/gold/stats.ll @@ -0,0 +1,5 @@ +; RUN: llvm-as %s -o %t.o +; RUN: ld -plugin %llvmshlibdir/LLVMgold.so -shared \ +; RUN: -plugin-opt=-stats %t.o -o %t2 2>&1 | FileCheck %s + +; CHECK: Statistics Collected diff --git a/tools/gold/gold-plugin.cpp b/tools/gold/gold-plugin.cpp index 6d9d6a29d2c..b7d8c5e14c6 100644 --- a/tools/gold/gold-plugin.cpp +++ b/tools/gold/gold-plugin.cpp @@ -28,6 +28,7 @@ #include "llvm/PassManager.h" #include "llvm/Support/FormattedStream.h" #include "llvm/Support/Host.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/TargetRegistry.h" #include "llvm/Support/TargetSelect.h" @@ -838,6 +839,8 @@ static ld_plugin_status all_symbols_read_hook(void) { Ret = allSymbolsReadHook(&ApiFile); } + llvm_shutdown(); + if (options::TheOutputType == options::OT_BC_ONLY || options::TheOutputType == options::OT_DISABLE) exit(0);