[MIB] Create a helper function getRegState to extract all register flags

llvm-svn: 269414
This commit is contained in:
Krzysztof Parzyszek 2016-05-13 13:01:19 +00:00
parent 78b1fb0146
commit b78c008c45
2 changed files with 11 additions and 12 deletions

View File

@ -386,6 +386,17 @@ inline unsigned getDebugRegState(bool B) {
return B ? RegState::Debug : 0;
}
/// Get all register state flags from machine operand \p RegOp.
inline unsigned getRegState(const MachineOperand &RegOp) {
assert(RegOp.isReg() && "Not a register operand");
return getDefRegState(RegOp.isDef()) |
getImplRegState(RegOp.isImplicit()) |
getKillRegState(RegOp.isKill()) |
getDeadRegState(RegOp.isDead()) |
getUndefRegState(RegOp.isUndef()) |
getInternalReadRegState(RegOp.isInternalRead()) |
getDebugRegState(RegOp.isDebug());
}
/// Helper class for constructing bundles of MachineInstrs.
///

View File

@ -108,18 +108,6 @@ INITIALIZE_PASS(HexagonSplitDoubleRegs, "hexagon-split-double",
"Hexagon Split Double Registers", false, false)
static inline uint32_t getRegState(const MachineOperand &R) {
assert(R.isReg());
return getDefRegState(R.isDef()) |
getImplRegState(R.isImplicit()) |
getKillRegState(R.isKill()) |
getDeadRegState(R.isDead()) |
getUndefRegState(R.isUndef()) |
getInternalReadRegState(R.isInternalRead()) |
(R.isDebug() ? RegState::Debug : 0);
}
void HexagonSplitDoubleRegs::dump_partition(raw_ostream &os,
const USet &Part, const TargetRegisterInfo &TRI) {
dbgs() << '{';