Skip to content

Commit dcfe195

Browse files
authored
[MCP][NFC] Opinionated refactoring (#186239)
There are a few minor inconsistencies across the pass which I found mildly distracting: * The use of `Def`/`Dest`/`Dst` to refer to the same thing * Inconsistent declaration order of `Dst`/`Src` vs `Src`/`Dst` * Lots of `->getReg()->asMCReg()`, and uses of `Register` when the pass is always running after RA anyway. * Some places explicitly `assert(isCopyInstr)` while others just deref the `optional`. Standardize on `Dst`/`Src` to match the metaphor and ordering of `DestSourcePair`. Assume `std::optional::operator*` will assert in any reasonable implementation, even though this may technically be undefined behavior. When asserts are disabled it would be anyway. The refactor uses structured bindings for a couple reasons: * Naturally enforces consistent order of `Dst`-then-`Src` * Requires the use of `auto`, which ensures the declaration is not implicitly converting from `MCRegister` back to `Register`. In both cases the explicitness of the name `getDstSrcMCRegs` hopefully makes the meaning at the callsite clear (`Dst, Src = DstSrc`, and explicitly mentioning `MCReg`). Change-Id: Ic58f555e03535d726cdad38dbe3f9c6df1b86460
1 parent 7aa2b04 commit dcfe195

1 file changed

Lines changed: 163 additions & 194 deletions

File tree

0 commit comments

Comments
 (0)