зеркало из https://github.com/microsoft/clang-1.git
make -ftime-report work even in -disable-free mode. Woo, finally.
rdar://7781603 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99878 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
bfb7a1d6eb
Коммит
30bc7e8e56
|
@ -31,6 +31,7 @@
|
|||
#include "llvm/ADT/OwningPtr.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include "llvm/Support/ManagedStatic.h"
|
||||
#include "llvm/Support/Timer.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "llvm/System/DynamicLibrary.h"
|
||||
#include "llvm/Target/TargetSelect.h"
|
||||
|
@ -272,6 +273,10 @@ int cc1_main(const char **ArgBegin, const char **ArgEnd,
|
|||
}
|
||||
}
|
||||
|
||||
// If any timers were active but haven't been destroyed yet, print their
|
||||
// results now. This happens in -disable-free mode.
|
||||
llvm::TimerGroup::printAll(llvm::errs());
|
||||
|
||||
// When running with -disable-free, don't do any destruction or shutdown.
|
||||
if (Clang->getFrontendOpts().DisableFree) {
|
||||
Clang.take();
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include "llvm/Support/ManagedStatic.h"
|
||||
#include "llvm/Support/PrettyStackTrace.h"
|
||||
#include "llvm/Support/Regex.h"
|
||||
#include "llvm/Support/Timer.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "llvm/System/Host.h"
|
||||
#include "llvm/System/Path.h"
|
||||
|
@ -73,10 +74,10 @@ static const char *SaveStringInSet(std::set<std::string> &SavedStrings,
|
|||
/// \param Args - The vector of command line arguments.
|
||||
/// \param Edit - The override command to perform.
|
||||
/// \param SavedStrings - Set to use for storing string representations.
|
||||
void ApplyOneQAOverride(llvm::raw_ostream &OS,
|
||||
std::vector<const char*> &Args,
|
||||
llvm::StringRef Edit,
|
||||
std::set<std::string> &SavedStrings) {
|
||||
static void ApplyOneQAOverride(llvm::raw_ostream &OS,
|
||||
std::vector<const char*> &Args,
|
||||
llvm::StringRef Edit,
|
||||
std::set<std::string> &SavedStrings) {
|
||||
// This does not need to be efficient.
|
||||
|
||||
if (Edit[0] == '^') {
|
||||
|
@ -140,8 +141,9 @@ void ApplyOneQAOverride(llvm::raw_ostream &OS,
|
|||
|
||||
/// ApplyQAOverride - Apply a comma separate list of edits to the
|
||||
/// input argument lists. See ApplyOneQAOverride.
|
||||
void ApplyQAOverride(std::vector<const char*> &Args, const char *OverrideStr,
|
||||
std::set<std::string> &SavedStrings) {
|
||||
static void ApplyQAOverride(std::vector<const char*> &Args,
|
||||
const char *OverrideStr,
|
||||
std::set<std::string> &SavedStrings) {
|
||||
llvm::raw_ostream *OS = &llvm::errs();
|
||||
|
||||
if (OverrideStr[0] == '#') {
|
||||
|
@ -265,6 +267,11 @@ int main(int argc, const char **argv) {
|
|||
if (C.get())
|
||||
Res = TheDriver.ExecuteCompilation(*C);
|
||||
|
||||
|
||||
// If any timers were active but haven't been destroyed yet, print their
|
||||
// results now. This happens in -disable-free mode.
|
||||
llvm::TimerGroup::printAll(llvm::errs());
|
||||
|
||||
llvm::llvm_shutdown();
|
||||
|
||||
return Res;
|
||||
|
|
Загрузка…
Ссылка в новой задаче