diff options
author | Vikram S. Adve <vadve@cs.uiuc.edu> | 2001-11-09 02:11:03 +0000 |
---|---|---|
committer | Vikram S. Adve <vadve@cs.uiuc.edu> | 2001-11-09 02:11:03 +0000 |
commit | 4938d4528f80dd015c58dec9d6d72bc27bf26bbd (patch) | |
tree | d2239e974bf8a3d17d6fdbd719bcd15568e9fdf1 /include | |
parent | cf1ae7cea168e59f347192b7452dc2a447745d40 (diff) | |
download | external_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.h | 17 | ||||
-rw-r--r-- | include/llvm/Target/TargetInstrInfo.h | 17 | ||||
-rw-r--r-- | include/llvm/Target/TargetMachine.h | 2 |
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 |