mirror of
https://github.com/RPCS3/llvm.git
synced 2025-03-06 17:47:37 +00:00
[LTO] Support Statistics
Summary: I thought -Xlinker -mllvm -Xlinker -stats worked at some point but maybe it never did. For clang, I believe that stats are printed from cc1_main. This patch also prints them for LTO, specifically right after codegen happens. I only looked at the C API for LTO briefly to see if this is a good place. Probably there are still cases where this wouldn't be printed but it seems to be working for the common case. I also experimented putting this in the LTOCodeGenerator destructor but that didn't trigger for me because ld64 does not destroy the LTOCodeGenerator. Reviewers: dexonsmith, joker.eph Subscribers: rafael, joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D17302 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261013 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
78eacd7a04
commit
6df4a6f175
@ -13,6 +13,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/LTO/LTOCodeGenerator.h"
|
||||
#include "llvm/ADT/Statistic.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
#include "llvm/Analysis/Passes.h"
|
||||
#include "llvm/Analysis/TargetLibraryInfo.h"
|
||||
@ -553,6 +554,10 @@ bool LTOCodeGenerator::compileOptimized(ArrayRef<raw_pwrite_stream *> Out) {
|
||||
RelocModel, CodeModel::Default, CGOptLevel, FileType,
|
||||
ShouldRestoreGlobalsLinkage);
|
||||
|
||||
// If statistics were requested, print them out after codegen.
|
||||
if (llvm::AreStatisticsEnabled())
|
||||
llvm::PrintStatistics();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
8
test/tools/lto/print-stats.ll
Normal file
8
test/tools/lto/print-stats.ll
Normal file
@ -0,0 +1,8 @@
|
||||
; RUN: llvm-as %s -o %t.o
|
||||
; RUN: %ld64 -lto_library %llvmshlibdir/libLTO.dylib -arch x86_64 -dylib -mllvm -stats -o %t.dylib %t.o 2>&1 | FileCheck --check-prefix=STATS %s
|
||||
; RUN: %ld64 -lto_library %llvmshlibdir/libLTO.dylib -arch x86_64 -dylib -o %t.dylib %t.o 2>&1 | FileCheck --check-prefix=NO_STATS %s
|
||||
|
||||
target triple = "x86_64-apple-macosx10.8.0"
|
||||
|
||||
; STATS: Statistics Collected
|
||||
; NO_STATS-NOT: Statistics Collected
|
Loading…
x
Reference in New Issue
Block a user