aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Target
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-10-18 22:40:57 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-10-18 22:40:57 +0000
commitf0a0cddbcda344a90b7217b744c78dccec71851c (patch)
treecfcdda0c59b826a9cc81f0b5b49ef5f0d401892f /include/llvm/Target
parent58184e6878fdab651bc7c9a59dab2687ca82ede2 (diff)
downloadexternal_llvm-f0a0cddbcda344a90b7217b744c78dccec71851c.zip
external_llvm-f0a0cddbcda344a90b7217b744c78dccec71851c.tar.gz
external_llvm-f0a0cddbcda344a90b7217b744c78dccec71851c.tar.bz2
- Added getOpcodeAfterMemoryUnfold(). It doesn't unfold an instruction, but only returns the opcode of the instruction post unfolding.
- Fix some copy+paste bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43153 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Target')
-rw-r--r--include/llvm/Target/MRegisterInfo.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/include/llvm/Target/MRegisterInfo.h b/include/llvm/Target/MRegisterInfo.h
index 12b022e..dd24f37 100644
--- a/include/llvm/Target/MRegisterInfo.h
+++ b/include/llvm/Target/MRegisterInfo.h
@@ -508,7 +508,7 @@ public:
const TargetRegisterClass *RC) const = 0;
virtual void storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVectorImpl<MachineOperand> Addr,
+ SmallVectorImpl<MachineOperand> &Addr,
const TargetRegisterClass *RC,
SmallVectorImpl<MachineInstr*> &NewMIs) const = 0;
@@ -518,7 +518,7 @@ public:
const TargetRegisterClass *RC) const = 0;
virtual void loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVectorImpl<MachineOperand> Addr,
+ SmallVectorImpl<MachineOperand> &Addr,
const TargetRegisterClass *RC,
SmallVectorImpl<MachineInstr*> &NewMIs) const =0;
@@ -577,6 +577,14 @@ public:
return false;
}
+ /// getOpcodeAfterMemoryUnfold - Returns the opcode of the would be new
+ /// instruction after load / store are unfolded from the specified opcode.
+ /// It returns zero if the specified unfolding is impossible.
+ virtual unsigned getOpcodeAfterMemoryUnfold(unsigned Opc,
+ bool UnfoldLoad, bool UnfoldStore) const {
+ return 0;
+ }
+
/// targetHandlesStackFrameRounding - Returns true if the target is
/// responsible for rounding up the stack frame (probably at emitPrologue
/// time).