X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FLinkAllVMCore.h;h=ae1e1cd025bb6a412172b45fcec1f2e53ff96006;hb=2c783e46c3480c7fa8b91b10610a8e0d92e33ccd;hp=28d088e2d041918b1c9754b3ce32f03b5736cd8f;hpb=6df60a9effe4d20a48cfd9d105c0ab3c5dc3e690;p=oota-llvm.git diff --git a/include/llvm/LinkAllVMCore.h b/include/llvm/LinkAllVMCore.h index 28d088e2d04..ae1e1cd025b 100644 --- a/include/llvm/LinkAllVMCore.h +++ b/include/llvm/LinkAllVMCore.h @@ -7,51 +7,49 @@ // //===----------------------------------------------------------------------===// // -// 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 -#include -#include -#include -#include -#include -#include +#include "llvm/System/IncludeFile.h" + +#include "llvm/Module.h" +#include "llvm/Instructions.h" +#include "llvm/IntrinsicInst.h" +#include "llvm/InlineAsm.h" +#include "llvm/Analysis/Verifier.h" +#include "llvm/System/Alarm.h" +#include "llvm/System/DynamicLibrary.h" +#include "llvm/System/MappedFile.h" +#include "llvm/System/Memory.h" +#include "llvm/System/Mutex.h" +#include "llvm/System/Path.h" +#include "llvm/System/Process.h" +#include "llvm/System/Program.h" +#include "llvm/System/Signals.h" +#include "llvm/System/TimeValue.h" +#include "llvm/Support/Dwarf.h" +#include "llvm/Support/Mangler.h" +#include "llvm/Support/MathExtras.h" +#include "llvm/Support/SlowOperationInformer.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; }