summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Sparc
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-12-01 02:07:52 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-12-01 02:07:52 +0000
commit69fda0a7167048ae647675536fd7b2e4bb02f5a6 (patch)
treed1c03a1a47b4bf6b6c5199e5b85394c8a95a8320 /llvm/lib/Target/Sparc
parente62b441b516089f04648120d5ed9b4581d4fafe4 (diff)
downloadbcm5719-llvm-69fda0a7167048ae647675536fd7b2e4bb02f5a6.tar.gz
bcm5719-llvm-69fda0a7167048ae647675536fd7b2e4bb02f5a6.zip
Allow some reloads to be folded in multi-use cases. Specifically testl r, r -> cmpl [mem], 0.
llvm-svn: 44479
Diffstat (limited to 'llvm/lib/Target/Sparc')
-rw-r--r--llvm/lib/Target/Sparc/SparcRegisterInfo.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Target/Sparc/SparcRegisterInfo.h b/llvm/lib/Target/Sparc/SparcRegisterInfo.h
index dec01e02769..cecbc8a87d9 100644
--- a/llvm/lib/Target/Sparc/SparcRegisterInfo.h
+++ b/llvm/lib/Target/Sparc/SparcRegisterInfo.h
@@ -63,11 +63,23 @@ struct SparcRegisterInfo : public SparcGenRegisterInfo {
int FrameIndex) const;
virtual MachineInstr* foldMemoryOperand(MachineInstr* MI,
+ SmallVectorImpl<unsigned> &UseOps,
+ int FrameIndex) const {
+ return 0;
+ }
+
+ virtual MachineInstr* foldMemoryOperand(MachineInstr* MI,
unsigned OpNum,
MachineInstr* LoadMI) const {
return 0;
}
+ virtual MachineInstr* foldMemoryOperand(MachineInstr* MI,
+ SmallVectorImpl<unsigned> &UseOps,
+ MachineInstr* LoadMI) const {
+ return 0;
+ }
+
const unsigned *getCalleeSavedRegs(const MachineFunction *MF = 0) const;
const TargetRegisterClass* const* getCalleeSavedRegClasses(
OpenPOWER on IntegriCloud