aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/LinkAllVMCore.h42
1 files changed, 12 insertions, 30 deletions
diff --git a/include/llvm/LinkAllVMCore.h b/include/llvm/LinkAllVMCore.h
index 28d088e2d0..fa7c39995b 100644
--- a/include/llvm/LinkAllVMCore.h
+++ b/include/llvm/LinkAllVMCore.h
@@ -7,51 +7,33 @@
//
//===----------------------------------------------------------------------===//
//
-// This header file pulls in all analysis passes for tools like analyze and
-// bugpoint that need this functionality.
+// This header file pulls in all the object modules of the VMCore library so
+// that tools like llc, opt, and lli can ensure they are linked with all symbols
+// from libVMCore.a It should only be used from a tool's main program.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_LINKALLVMCORE_H
#define LLVM_LINKALLVMCORE_H
-#include <llvm/Support/IncludeFile.h>
-#include <llvm/Module.h>
-#include <llvm/IntrinsicInst.h>
-#include <llvm/IntrinsicInst.h>
-#include <llvm/Instructions.h>
-#include <llvm/Analysis/Dominators.h>
-#include <llvm/Analysis/Verifier.h>
+#include "llvm/Support/IncludeFile.h"
+#include "llvm/Module.h"
+#include "llvm/Instructions.h"
+#include "llvm/IntrinsicInst.h"
+#include "llvm/Analysis/Verifier.h"
namespace {
struct ForceVMCoreLinking {
ForceVMCoreLinking() {
- // We must reference the passes in such a way that compilers will not
+ // We must reference VMCore in such a way that compilers will not
// delete it all as dead code, even with whole program optimization,
// yet is effectively a NO-OP. As the compiler isn't smart enough
// to know that getenv() never returns -1, this will do the job.
if (std::getenv("bar") != (char*) -1)
return;
-
- (void)new llvm::LocalDataStructures();
- (void)new llvm::BUDataStructures();
- (void)new llvm::TDDataStructures();
- (void)new llvm::CompleteBUDataStructures();
- (void)new llvm::EquivClassGraphs();
- (void)llvm::createDataStructureStatsPass();
- (void)llvm::createDataStructureGraphCheckerPass();
- (void)llvm::createProfileLoaderPass();
- (void)llvm::createNoProfileInfoPass();
- (void)llvm::createInstCountPass();
- (void)new llvm::IntervalPartition();
- (void)new llvm::ImmediateDominators();
- (void)new llvm::PostDominatorSet();
- (void)new llvm::FindUsedTypes();
- (void)new llvm::ScalarEvolution();
- (void)new llvm::CallTargetFinder();
- ((llvm::Function*)0)->viewCFGOnly();
- llvm::AliasSetTracker X(*(llvm::AliasAnalysis*)0);
- X.add((llvm::Value*)0, 0); // for -print-alias-sets
+ (void)new llvm::Module("");
+ (void)new llvm::UnreachableInst();
+ (void) llvm::createVerifierPass();
}
} ForceVMCoreLinking;
}