aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2006-06-07 22:09:38 +0000
committerReid Spencer <rspencer@reidspencer.com>2006-06-07 22:09:38 +0000
commit454d85be66212323f6386ab8bffb77b0b57a2467 (patch)
tree6624d6630bb76a62780db1edb29bf0caa9db65f0
parent4f1bd9e9963239c119db70070db1d68286b3de7e (diff)
Previous version of this file wasn't supposed to be committed. This version
attempts to get all of libVMCore.a through the least number of declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28716 91177308-0d34-0410-b5e6-96231b3b80d8
-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;
}