Added class MachineCacheInfo.
authorVikram S. Adve <vadve@cs.uiuc.edu>
Fri, 9 Nov 2001 02:11:03 +0000 (02:11 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Fri, 9 Nov 2001 02:11:03 +0000 (02:11 +0000)
Also added function to convert float to int by copying via memory.

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

include/llvm/Target/MachineInstrInfo.h
include/llvm/Target/TargetInstrInfo.h
include/llvm/Target/TargetMachine.h

index abe6a81362aa1372b90490e7e3054b0ecb4bd807..465776b015824aca07e85798f53fbfacef1a0cf7 100644 (file)
@@ -236,9 +236,9 @@ public:
                                       vector<MachineInstr*>& minstrVec,
                                       vector<TmpInstruction*>& temps) const =0;
 
-  // Create an instruction sequence to copy an integer value `val' from an
-  // integer to a floating point register `dest'.  val must be an integral
-  // type.  dest must be a Float or Double.
+  // Create an instruction sequence to copy an integer value `val'
+  // to a floating point value `dest' by copying to memory and back.
+  // val must be an integral type.  dest must be a Float or Double.
   // The generated instructions are returned in `minstrVec'.
   // Any temp. registers (TmpInstruction) created are returned in `tempVec'.
   // 
@@ -248,6 +248,17 @@ public:
                                            vector<MachineInstr*>& minstrVec,
                                            vector<TmpInstruction*>& tempVec,
                                            TargetMachine& target) const = 0;
+
+  // Similarly, create an instruction sequence to copy an FP value
+  // `val' to an integer value `dest' by copying to memory and back.
+  // See the previous function for information about return values.
+  // 
+  virtual void  CreateCodeToCopyFloatToInt(Method* method,
+                                           Value* val,
+                                           Instruction* dest,
+                                           vector<MachineInstr*>& minstrVec,
+                                           vector<TmpInstruction*>& tempVec,
+                                           TargetMachine& target) const = 0;
 };
 
 #endif
index abe6a81362aa1372b90490e7e3054b0ecb4bd807..465776b015824aca07e85798f53fbfacef1a0cf7 100644 (file)
@@ -236,9 +236,9 @@ public:
                                       vector<MachineInstr*>& minstrVec,
                                       vector<TmpInstruction*>& temps) const =0;
 
-  // Create an instruction sequence to copy an integer value `val' from an
-  // integer to a floating point register `dest'.  val must be an integral
-  // type.  dest must be a Float or Double.
+  // Create an instruction sequence to copy an integer value `val'
+  // to a floating point value `dest' by copying to memory and back.
+  // val must be an integral type.  dest must be a Float or Double.
   // The generated instructions are returned in `minstrVec'.
   // Any temp. registers (TmpInstruction) created are returned in `tempVec'.
   // 
@@ -248,6 +248,17 @@ public:
                                            vector<MachineInstr*>& minstrVec,
                                            vector<TmpInstruction*>& tempVec,
                                            TargetMachine& target) const = 0;
+
+  // Similarly, create an instruction sequence to copy an FP value
+  // `val' to an integer value `dest' by copying to memory and back.
+  // See the previous function for information about return values.
+  // 
+  virtual void  CreateCodeToCopyFloatToInt(Method* method,
+                                           Value* val,
+                                           Instruction* dest,
+                                           vector<MachineInstr*>& minstrVec,
+                                           vector<TmpInstruction*>& tempVec,
+                                           TargetMachine& target) const = 0;
 };
 
 #endif
index ee3effa280f7b7f626986373cf4bd7656e9bfd7a..4f0b934bb92541886d6f24ece940f2b4460b5c34 100644 (file)
@@ -16,6 +16,7 @@ class MachineInstrDescriptor;
 class MachineSchedInfo;
 class MachineRegInfo;
 class MachineFrameInfo;
+class MachineCacheInfo;
 
 //---------------------------------------------------------------------------
 // Data types used to define information about a single machine instruction
@@ -65,6 +66,7 @@ public:
   virtual const MachineSchedInfo&       getSchedInfo() const = 0;
   virtual const MachineRegInfo&                getRegInfo()   const = 0;
   virtual const MachineFrameInfo&       getFrameInfo() const = 0;
+  virtual const MachineCacheInfo&       getCacheInfo() const = 0;
   
   //
   // Data storage information