[Stats] Collect IR/LLVM always-on stats correctly when multithreading.

This commit is contained in:
Graydon Hoare
2017-08-16 19:40:14 -04:00
parent b52b5c50a4
commit 04d11afdad
3 changed files with 36 additions and 27 deletions

View File

@@ -67,7 +67,6 @@
#include "llvm/ADT/Statistic.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/ValueSymbolTable.h"
#include "llvm/IRReader/IRReader.h"
#include "llvm/Option/Option.h"
#include "llvm/Option/OptTable.h"
@@ -463,25 +462,6 @@ static void countStatsPostSema(UnifiedStatsReporter &Stats,
}
}
static void countStatsPostIRGen(UnifiedStatsReporter &Stats,
const llvm::Module& Module) {
auto &C = Stats.getFrontendCounters();
// FIXME: calculate these in constant time if possible.
C.NumIRGlobals = Module.getGlobalList().size();
C.NumIRFunctions = Module.getFunctionList().size();
C.NumIRAliases = Module.getAliasList().size();
C.NumIRIFuncs = Module.getIFuncList().size();
C.NumIRNamedMetaData = Module.getNamedMDList().size();
C.NumIRValueSymbols = Module.getValueSymbolTable().size();
C.NumIRComdatSymbols = Module.getComdatSymbolTable().size();
for (auto const &Func : Module) {
for (auto const &BB : Func) {
C.NumIRBasicBlocks++;
C.NumIRInsts += BB.size();
}
}
}
static void countStatsPostSILGen(UnifiedStatsReporter &Stats,
const SILModule& Module) {
auto &C = Stats.getFrontendCounters();
@@ -1027,10 +1007,6 @@ static bool performCompile(CompilerInstance &Instance,
return HadError;
}
if (Stats) {
countStatsPostIRGen(*Stats, *IRModule);
}
bool allSymbols = false;
switch (opts.ValidateTBDAgainstIR) {
case FrontendOptions::TBDValidationMode::None: