aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2001-11-09 02:11:03 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2001-11-09 02:11:03 +0000
commit4938d4528f80dd015c58dec9d6d72bc27bf26bbd (patch)
treed2239e974bf8a3d17d6fdbd719bcd15568e9fdf1 /include
parentcf1ae7cea168e59f347192b7452dc2a447745d40 (diff)
downloadexternal_llvm-4938d4528f80dd015c58dec9d6d72bc27bf26bbd.zip
external_llvm-4938d4528f80dd015c58dec9d6d72bc27bf26bbd.tar.gz
external_llvm-4938d4528f80dd015c58dec9d6d72bc27bf26bbd.tar.bz2
Added class MachineCacheInfo.
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
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Target/MachineInstrInfo.h17
-rw-r--r--include/llvm/Target/TargetInstrInfo.h17
-rw-r--r--include/llvm/Target/TargetMachine.h2
3 files changed, 30 insertions, 6 deletions
diff --git a/include/llvm/Target/MachineInstrInfo.h b/include/llvm/Target/MachineInstrInfo.h
index abe6a81..465776b 100644
--- a/include/llvm/Target/MachineInstrInfo.h
+++ b/include/llvm/Target/MachineInstrInfo.h
@@ -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
diff --git a/include/llvm/Target/TargetInstrInfo.h b/include/llvm/Target/TargetInstrInfo.h
index abe6a81..465776b 100644
--- a/include/llvm/Target/TargetInstrInfo.h
+++ b/include/llvm/Target/TargetInstrInfo.h
@@ -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
diff --git a/include/llvm/Target/TargetMachine.h b/include/llvm/Target/TargetMachine.h
index ee3effa..4f0b934 100644
--- a/include/llvm/Target/TargetMachine.h
+++ b/include/llvm/Target/TargetMachine.h
@@ -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