Remove usage of MachineBasicBlock::get
[oota-llvm.git] / lib / Target / TargetMachine.cpp
index 83bd2f3a3d8895b1a05a091217ec917e490865b0..31277ff3cda384fc1d681f12609075a9d73cfcaa 100644 (file)
@@ -1,12 +1,14 @@
 //===-- TargetMachine.cpp - General Target Information ---------------------==//
 //
 // This file describes the general parts of a Target machine.
-// This file also implements the InstInfo interface as well...
+// This file also implements MachineInstrInfo and MachineCacheInfo.
 //
 //===----------------------------------------------------------------------===//
 
+#include "llvm/Target/TargetMachine.h"
 #include "llvm/Target/MachineInstrInfo.h"
-#include "llvm/DerivedTypes.h"
+#include "llvm/Target/MachineCacheInfo.h"
+#include "llvm/Function.h"
 
 //---------------------------------------------------------------------------
 // class TargetMachine
@@ -77,6 +79,10 @@ MachineInstrInfo::constantFitsInImmedField(MachineOpCode opCode,
   uint64_t maxImmedValue = maxImmedConstant(opCode, isSignExtended);
   if (maxImmedValue != 0)
     {
+      // NEED TO HANDLE UNSIGNED VALUES SINCE THEY MAY BECOME MUCH
+      // SMALLER AFTER CASTING TO SIGN-EXTENDED int, short, or char.
+      // See CreateUIntSetInstruction in SparcInstrInfo.cpp.
+      
       // Now check if the constant fits
       if (intValue <= (int64_t) maxImmedValue &&
          intValue >= -((int64_t) maxImmedValue+1))
@@ -85,3 +91,27 @@ MachineInstrInfo::constantFitsInImmedField(MachineOpCode opCode,
   
   return false;
 }
+
+
+//---------------------------------------------------------------------------
+// class MachineCacheInfo 
+// 
+// Purpose:
+//   Describes properties of the target cache architecture.
+//---------------------------------------------------------------------------
+
+/*ctor*/
+MachineCacheInfo::MachineCacheInfo(const TargetMachine& tgt)
+  : target(tgt)
+{
+  Initialize();
+}
+
+void
+MachineCacheInfo::Initialize()
+{
+  numLevels = 2;
+  cacheLineSizes.push_back(16);  cacheLineSizes.push_back(32); 
+  cacheSizes.push_back(1 << 15); cacheSizes.push_back(1 << 20);
+  cacheAssoc.push_back(1);       cacheAssoc.push_back(4);
+}