We can mostly get this from the operand info in MCInstrDesc.
The exception is the _TIED pseudos so I've added a new flag for those.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
| llvm/lib/Target/RISCV/RISCVMCInstLower.cpp | ||
|---|---|---|
| 176 ↗ | (On Diff #529059) | I notice that code checks getNumExplicitDefs but isFirstDefTiedToFirstUse checks jut getNumDefs - is this significant? The number of "explicit" defs seems more correct to me. If that were fixed up, could this code use isFirstDefTiedToFirstUse? |
| llvm/lib/Target/RISCV/RISCVMCInstLower.cpp | ||
|---|---|---|
| 176 ↗ | (On Diff #529059) | isFirstDefTiedToFirstUse uses getNumDefs from MCInstrDesc. There is no getNumExplicitDefs in MCInstrDesc. I can use isFirstDefTiedToFirstUse here but it doesn't remove the need to check OpNo == MI->getNumExplicitDefs() first. We still need to know we're on the loop iteration corresponding to the first use. isFirstDefTiedToFirstUse is only an instruction property not an operand property. |
| llvm/lib/Target/RISCV/RISCVMCInstLower.cpp | ||
|---|---|---|
| 176 ↗ | (On Diff #529059) | I think I want to leave it as getOperandConstaint using the operand numbers we are currently processing. |