summaryrefslogtreecommitdiff
path: root/lib/Target/Hexagon/HexagonBitTracker.h
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2017-09-25 19:12:55 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2017-09-25 19:12:55 +0000
commit3fcdad2025e704eddab667ddf68bd37e68795f5b (patch)
treee8d38242b9aa9dac59fc3131ba42cd72e45fece7 /lib/Target/Hexagon/HexagonBitTracker.h
parent737f60180af3d2ede18a7425d9bcdca879dcf5f1 (diff)
[Hexagon] Better determination of register classes in bit tracker
Add two callbacks to MachineEvaluator, so that specific implementations can specify more details about register classes: - composeWithSubRegIndex(RC,Idx), to provide the register class for a register from RC used in conjunction with a subregister index Idx. - getPhysRegBitWidth(Reg), to provide the size in bits of the given physical register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314136 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Hexagon/HexagonBitTracker.h')
-rw-r--r--lib/Target/Hexagon/HexagonBitTracker.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Target/Hexagon/HexagonBitTracker.h b/lib/Target/Hexagon/HexagonBitTracker.h
index 94accb17fab..d9dd04e1b08 100644
--- a/lib/Target/Hexagon/HexagonBitTracker.h
+++ b/lib/Target/Hexagon/HexagonBitTracker.h
@@ -39,6 +39,11 @@ struct HexagonEvaluator : public BitTracker::MachineEvaluator {
BitTracker::BitMask mask(unsigned Reg, unsigned Sub) const override;
+ uint16_t getPhysRegBitWidth(unsigned Reg) const override;
+
+ const TargetRegisterClass &composeWithSubRegIndex(
+ const TargetRegisterClass &RC, unsigned Idx) const override;
+
MachineFunction &MF;
MachineFrameInfo &MFI;
const HexagonInstrInfo &TII;