Added UltraSparcInstrInfo class to specialize class MachineInstrInfo.
authorVikram S. Adve <vadve@cs.uiuc.edu>
Sat, 28 Jul 2001 04:19:10 +0000 (04:19 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Sat, 28 Jul 2001 04:19:10 +0000 (04:19 +0000)
Relevant changes elsewhere:
Added MachineInstrInfo class and moved instruction-related members there.
Added several fields to MachineInstrDescriptor (and renamed it from
MachineInstrInfo.  Latency fields are to support scheduling.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/TargetMachine/Sparc/Sparc.cpp

index 68270fae60198fc104e473d6815d9c8767b9d778..a9ea1da02cc5933054516a308b2f8420ab9a7c3b 100644 (file)
 
 #include "llvm/CodeGen/Sparc.h"
 
-//************************ Exported Constants ******************************/
-
-
-// Set external object describing the machine instructions
-// 
-const MachineInstrInfo* TargetMachineInstrInfo = SparcMachineInstrInfo; 
-
-
 //************************ Class Implementations **************************/
 
 
+
 //---------------------------------------------------------------------------
 // class UltraSparcMachine 
 // 
 // Purpose:
-//   Machine description.
+//   Primary interface to machine description for the UltraSPARC.
+//   Primarily just initializes machine-dependent parameters in
+//   class TargetMachine, and creates machine-dependent subclasses
+//   for classes such as MachineInstrInfo. 
 // 
 //---------------------------------------------------------------------------
 
 UltraSparc::UltraSparc()
-  : TargetMachine()
+  : TargetMachine(new UltraSparcInstrInfo)
 {
   optSizeForSubWordData = 4;
   intSize = 4; 
@@ -42,8 +38,12 @@ UltraSparc::UltraSparc()
   pointerSize = 8;
   minMemOpWordSize = 8; 
   maxAtomicMemOpWordSize = 8;
-  machineInstrInfo = SparcMachineInstrInfo;
   zeroRegNum = 0;                      // %g0 always gives 0 on Sparc
 }
 
+UltraSparc::~UltraSparc()
+{
+  delete (UltraSparcInstrInfo*) machineInstrInfo;
+}
+
 //**************************************************************************/