summaryrefslogtreecommitdiff
path: root/include/llvm/Target/TargetRegisterInfo.h
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-05-03 16:26:20 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-05-03 16:26:20 +0000
commit309076ff76c61e03ddd3a0fbbfded3042d2da2e5 (patch)
treee23f9cda6f609d11487dc0a940a88b25d4907921 /include/llvm/Target/TargetRegisterInfo.h
parent71d56462a1bc885c97321eff2fc4b481fd3bf452 (diff)
downloadllvm-309076ff76c61e03ddd3a0fbbfded3042d2da2e5.tar.gz
llvm-309076ff76c61e03ddd3a0fbbfded3042d2da2e5.tar.bz2
llvm-309076ff76c61e03ddd3a0fbbfded3042d2da2e5.tar.xz
Don't override subreg functions in targets without subregisters.
Some targets have no sub-registers at all. Use the TargetRegisterInfo versions of composeSubRegIndices(), getSubClassWithSubReg(), and getMatchingSuperRegClass() for those targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156075 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Target/TargetRegisterInfo.h')
-rw-r--r--include/llvm/Target/TargetRegisterInfo.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/include/llvm/Target/TargetRegisterInfo.h b/include/llvm/Target/TargetRegisterInfo.h
index 8356ce4153..43541fe0cd 100644
--- a/include/llvm/Target/TargetRegisterInfo.h
+++ b/include/llvm/Target/TargetRegisterInfo.h
@@ -421,7 +421,9 @@ public:
/// TableGen will synthesize missing A sub-classes.
virtual const TargetRegisterClass *
getMatchingSuperRegClass(const TargetRegisterClass *A,
- const TargetRegisterClass *B, unsigned Idx) const =0;
+ const TargetRegisterClass *B, unsigned Idx) const {
+ llvm_unreachable("Target has no sub-registers");
+ }
/// getSubClassWithSubReg - Returns the largest legal sub-class of RC that
/// supports the sub-register index Idx.
@@ -436,7 +438,10 @@ public:
///
/// TableGen will synthesize missing RC sub-classes.
virtual const TargetRegisterClass *
- getSubClassWithSubReg(const TargetRegisterClass *RC, unsigned Idx) const =0;
+ getSubClassWithSubReg(const TargetRegisterClass *RC, unsigned Idx) const {
+ assert(Idx == 0 && "Target has no sub-registers");
+ return RC;
+ }
/// composeSubRegIndices - Return the subregister index you get from composing
/// two subregister indices.