clean up load and stores alot
[oota-llvm.git] / lib / Target / TargetMachine.cpp
index d71bd3f9542f0bdbf0f710297c0d7720ff37eb49..22df91faeb8127870a9fdb6d18353dbc5bc92ba5 100644 (file)
@@ -14,7 +14,7 @@
 #include "llvm/Target/TargetMachine.h"
 #include "llvm/Type.h"
 #include "llvm/CodeGen/IntrinsicLowering.h"
 #include "llvm/Target/TargetMachine.h"
 #include "llvm/Type.h"
 #include "llvm/CodeGen/IntrinsicLowering.h"
-#include "Support/CommandLine.h"
+#include "llvm/Support/CommandLine.h"
 using namespace llvm;
 
 //---------------------------------------------------------------------------
 using namespace llvm;
 
 //---------------------------------------------------------------------------
@@ -24,6 +24,7 @@ using namespace llvm;
 namespace llvm {
   bool PrintMachineCode;
   bool NoFramePointerElim;
 namespace llvm {
   bool PrintMachineCode;
   bool NoFramePointerElim;
+  bool NoExcessFPPrecision;
 };
 namespace {
   cl::opt<bool, true> PrintCode("print-machineinstrs",
 };
 namespace {
   cl::opt<bool, true> PrintCode("print-machineinstrs",
@@ -35,6 +36,11 @@ namespace {
                   cl::desc("Disable frame pointer elimination optimization"),
                   cl::location(NoFramePointerElim),
                   cl::init(false));
                   cl::desc("Disable frame pointer elimination optimization"),
                   cl::location(NoFramePointerElim),
                   cl::init(false));
+  cl::opt<bool, true>
+  DisableExcessPrecision("disable-excess-fp-precision",
+                         cl::desc("Disable optimizations that may increase FP precision"),
+                         cl::location(NoExcessFPPrecision),
+                         cl::init(false));
 };
 
 //---------------------------------------------------------------------------
 };
 
 //---------------------------------------------------------------------------
@@ -45,12 +51,20 @@ TargetMachine::TargetMachine(const std::string &name, IntrinsicLowering *il,
                              unsigned char PtrSize, unsigned char PtrAl,
                              unsigned char DoubleAl, unsigned char FloatAl,
                              unsigned char LongAl, unsigned char IntAl,
                              unsigned char PtrSize, unsigned char PtrAl,
                              unsigned char DoubleAl, unsigned char FloatAl,
                              unsigned char LongAl, unsigned char IntAl,
-                             unsigned char ShortAl, unsigned char ByteAl)
+                             unsigned char ShortAl, unsigned char ByteAl,
+                             unsigned char BoolAl)
   : Name(name), DataLayout(name, LittleEndian,
                            PtrSize, PtrAl, DoubleAl, FloatAl, LongAl,
   : Name(name), DataLayout(name, LittleEndian,
                            PtrSize, PtrAl, DoubleAl, FloatAl, LongAl,
-                           IntAl, ShortAl, ByteAl) {
+                           IntAl, ShortAl, ByteAl, BoolAl) {
   IL = il ? il : new DefaultIntrinsicLowering();
 }
   IL = il ? il : new DefaultIntrinsicLowering();
 }
+
+TargetMachine::TargetMachine(const std::string &name, IntrinsicLowering *il,
+                             const TargetData &TD)
+  : Name(name), DataLayout(TD) {
+  IL = il ? il : new DefaultIntrinsicLowering();
+}
+
 TargetMachine::TargetMachine(const std::string &name, IntrinsicLowering *il,
                              const Module &M)
   : Name(name), DataLayout(name, &M) {
 TargetMachine::TargetMachine(const std::string &name, IntrinsicLowering *il,
                              const Module &M)
   : Name(name), DataLayout(name, &M) {