<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/82659>82659</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[CodeGen] Refactor MachineInstr findRegisterDefOperandIdx/findRegisterDefOperand etc. to stop missing TRI args
</td>
</tr>
<tr>
<th>Labels</th>
<td>
good first issue,
llvm:codegen
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
RKSimon
</td>
</tr>
</table>
<pre>
As noticed by @AtariDreams on #82411, by having the TargetRegisterInfo argument at the end of a long line of optional args, we are often missing it in our function calls and not correctly testing for super reg kill state etc.
```cpp
int findRegisterUseOperandIdx(Register Reg, bool isKill = false, const TargetRegisterInfo *TRI = nullptr) const;
MachineOperand *findRegisterUseOperand(Register Reg, bool isKill = false, const TargetRegisterInfo *TRI = nullptr);
... etc ...
```
ideally we need to refactor the calls so the TRI is no longer optional, so when we don't care about super-registers we explicitly have to set it nullptr.
```cpp
int findRegisterUseOperandIdx(Register Reg, const TargetRegisterInfo *TRI, bool isKill = false) const;
MachineOperand *findRegisterUseOperand(Register Reg, const TargetRegisterInfo *TRI, bool isKill = false);
... etc ...
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VO1q6zgQfRr5z1Bjy_FHfvhH2pAllGUh230AWRrb2lUkI43b5u0X2Um3W8q9F3ovhBiNZjRnzjmMCEEPFrFl5T0r94mYaXS-PT3-qc_OJp1Tl3YXwDrSEhV0F2CbbEfC671HcQ7gLDBeNHyT54w_xIRRPGs7AI0IT8IPSCccdCD0R9s7EH6Yz2gJBC0paBW4HgQYZwcw2mI8uom0s8LE9BDffUEQPl4RWjjrEGILTaAtuNlDP1sZK0AKYwIIqyJkkM57lGQuQBgolvTOQ5gn9OBxgH-0MRBIEAKSTFm2Z9nu-l9l609O0xoB0Jag11bdBvor4B8TemHVUb0y3tzicMJhIcM5Azo8xi6s2EMvTMB4IZ0N9Bk7jO-eTscl2c7GTOQZ367prLi_4fhdyFHbW-9Y9DmqXwfpHZg0TSN58fuBufWoFQpjLlFBi6iAHHjshSTnFwOsigW3GuZ0BB3tttgB_ZsRIsTg4GVEG19SzjJeE8hoCtG5mVZV7_wVeohZ-DoZLXXUfxTPGFsHpGib6yQfEX9B6-_w9w3uf6q-X4DxQ5omqi3UttiKBNu8zpqKFzyrk7HNyk5VedNldd5gk9VZvm1E3W15VVYFiiLRLc_4JuOc53VR8CLNKyXrTV5VZS-qaiPZJsOz0CY15vmcOj8kOoQZ24ZX5TYxokMTljXF-eCcgl77QLDkMM4Zf2Ccx1JW7KRTOKCN4XKf-DaG77p5CGyTGR0o_NeDNJll-z04hb-hZeUeTjd_XoU42kD-f27YY__eDYfP75alsriO3PS2taLH41pLZm_akWgKrNgxfmD8MGga5y6V7sz4YZll_dxN3v2Nkhg_LPMGxg8LLf8GAAD__36L4iw">