Make sure to create a target data that matches the Module's target properties.
authorChris Lattner <sabre@nondot.org>
Thu, 24 Apr 2003 19:13:02 +0000 (19:13 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 24 Apr 2003 19:13:02 +0000 (19:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5904 91177308-0d34-0410-b5e6-96231b3b80d8

tools/analyze/analyze.cpp
tools/bugpoint/OptimizerDriver.cpp
tools/gccas/gccas.cpp
tools/gccld/gccld.cpp
tools/opt/opt.cpp

index 83cfda2354ac71dbbc436b4b07981b1f2c072bda..1119fccfa3340cc98f03005a818b7b1bcd41d6b7 100644 (file)
@@ -15,6 +15,7 @@
 #include "llvm/Bytecode/Reader.h"
 #include "llvm/Assembly/Parser.h"
 #include "llvm/Analysis/Verifier.h"
+#include "llvm/Target/TargetData.h"
 #include "llvm/Support/PassNameParser.h"
 #include "Support/Timer.h"
 #include <algorithm>
@@ -126,6 +127,9 @@ int main(int argc, char **argv) {
   //
   PassManager Passes;
 
+  // Add an appropriate TargetData instance for this module...
+  Passes.add(new TargetData("analyze", CurMod));
+
   // Make sure the input LLVM is well formed.
   Passes.add(createVerifierPass());
 
index 7c6e7c0a79392f60e34ef00f50a7c4f15b929e96..fefca73795157d2cb82b0d1ea530704fdb9a108c 100644 (file)
@@ -74,6 +74,9 @@ static void RunChild(Module *Program,const std::vector<const PassInfo*> &Passes,
   }
 
   PassManager PM;
+  // Make sure that the appropriate target data is always used...
+  PM.add(new TargetData("bugpoint", Program));
+
   for (unsigned i = 0, e = Passes.size(); i != e; ++i) {
     if (Passes[i]->getNormalCtor())
       PM.add(Passes[i]->getNormalCtor()());
index 043b0d2a8239d99fcf9cde91624ac4f40296770c..273e071ad2a4d86102e60da6bf8b473c3d764cb3 100644 (file)
@@ -66,8 +66,8 @@ void AddConfiguredTransformationPasses(PassManager &PM) {
   addPass(PM, createGlobalDCEPass());            // Kill unused uinit g-vars
   addPass(PM, createDeadTypeEliminationPass());  // Eliminate dead types
   addPass(PM, createConstantMergePass());        // Merge dup global constants
-  addPass(PM, createVerifierPass());             // Verify that input is correct
   addPass(PM, createCFGSimplificationPass());    // Merge & remove BBs
+  addPass(PM, createVerifierPass());             // Verify that input is correct
   addPass(PM, createDeadInstEliminationPass());  // Remove Dead code/vars
   addPass(PM, createRaiseAllocationsPass());     // call %malloc -> malloc inst
   addPass(PM, createIndVarSimplifyPass());       // Simplify indvars
@@ -145,6 +145,9 @@ int main(int argc, char **argv) {
   //
   PassManager Passes;
 
+  // Add an appropriate TargetData instance for this module...
+  Passes.add(new TargetData("gccas", M.get()));
+
   // Add all of the transformation passes to the pass manager to do the cleanup
   // and optimization of the GCC output.
   //
index 1d61d13a63f195b9f27f6305803d53598330ca9d..24c624ece2c93b72cda4a423771fa76ac752de93 100644 (file)
@@ -18,6 +18,7 @@
 #include "llvm/PassManager.h"
 #include "llvm/Bytecode/Reader.h"
 #include "llvm/Bytecode/WriteBytecodePass.h"
+#include "llvm/Target/TargetData.h"
 #include "llvm/Transforms/IPO.h"
 #include "llvm/Transforms/Scalar.h"
 #include "Support/CommandLine.h"
@@ -326,6 +327,9 @@ int main(int argc, char **argv) {
   //
   PassManager Passes;
 
+  // Add an appropriate TargetData instance for this module...
+  Passes.add(new TargetData("gccas", Composite.get()));
+
   // Linking modules together can lead to duplicated global constants, only keep
   // one copy of each constant...
   //
index d03a65040bb3bce2e3d8bcc59825a93726fba541..0127c53480f2b23e2a15ecdfc9f229e24803898c 100644 (file)
@@ -113,6 +113,9 @@ int main(int argc, char **argv) {
   //
   PassManager Passes;
 
+  // Add an appropriate TargetData instance for this module...
+  Passes.add(new TargetData("opt", M.get()));
+
   // Create a new optimization pass for each one specified on the command line
   for (unsigned i = 0; i < OptimizationList.size(); ++i) {
     const PassInfo *Opt = OptimizationList[i];