From: Chris Lattner Date: Mon, 13 Oct 2003 05:33:01 +0000 (+0000) Subject: * Remove extraneous #includes X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;ds=sidebyside;h=3e58d9bb320f247740672aeb3129c4755d02b599;p=oota-llvm.git * Remove extraneous #includes * Fix a nasty initializer ordering bug. Any only-CFG passes which registered themselves before the CFGOnlyAnalysis vector initialized got forgotten and thus got invalidated and recomputed. In particular, in my compiled version of gccas, the Loop information pass was being recomputed unnecessarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9074 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/VMCore/Pass.cpp b/lib/VMCore/Pass.cpp index 0d25afc7698..c9b97c879a6 100644 --- a/lib/VMCore/Pass.cpp +++ b/lib/VMCore/Pass.cpp @@ -1,4 +1,4 @@ -//===- Pass.cpp - LLVM Pass Infrastructure Impementation ------------------===// +//===- Pass.cpp - LLVM Pass Infrastructure Implementation -----------------===// // // This file implements the LLVM Pass infrastructure. It is primarily // responsible with ensuring that passes are executed and batched together @@ -11,9 +11,6 @@ #include "llvm/Module.h" #include "Support/STLExtras.h" #include "Support/TypeInfo.h" -#include "Config/sys/resource.h" -#include "Config/sys/time.h" -#include "Config/unistd.h" #include // IncludeFile - Stub function used to help linking out. @@ -23,10 +20,15 @@ IncludeFile::IncludeFile(void*) {} // AnalysisID Class Implementation // -static std::vector CFGOnlyAnalyses; +// getCFGOnlyAnalyses - A wrapper around the CFGOnlyAnalyses which make it +// initializer order independent. +static std::vector &getCFGOnlyAnalyses() { + static std::vector CFGOnlyAnalyses; + return CFGOnlyAnalyses; +} void RegisterPassBase::setOnlyUsesCFG() { - CFGOnlyAnalyses.push_back(PIObj); + getCFGOnlyAnalyses().push_back(PIObj); } //===----------------------------------------------------------------------===// @@ -56,7 +58,7 @@ void AnalysisUsage::setPreservesCFG() { // that only depend on the CFG (like dominators, loop info, etc...) // Preserved.insert(Preserved.end(), - CFGOnlyAnalyses.begin(), CFGOnlyAnalyses.end()); + getCFGOnlyAnalyses().begin(), getCFGOnlyAnalyses().end()); }