[llvm] [Codegen] Remove redundant instruction using machinelateCleanup (PR #139716)
Rohit Aggarwal via llvm-commits
llvm-commits at lists.llvm.org
Sun May 18 23:36:04 PDT 2025
================
@@ -186,13 +186,24 @@ static bool isCandidate(const MachineInstr *MI, Register &DefedReg,
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
const MachineOperand &MO = MI->getOperand(i);
if (MO.isReg()) {
- if (MO.isDef() && DefedReg == MCRegister::NoRegister) {
+ if (MO.isDef()) {
if (i == 0 && !MO.isImplicit() && !MO.isDead())
DefedReg = MO.getReg();
- else
+ else if (i != 0 && DefedReg != MCRegister::NoRegister) {
+ if (MO.isDead() && MO.isImplicit()) {
+ continue;
+ } else if (MO.isImplicit() &&
+ MI->getParent()
+ ->getParent()
+ ->getSubtarget()
+ .getRegisterInfo()
+ ->isSubRegister(MO.getReg(), DefedReg)) {
----------------
rohitaggarwal007 wrote:
Done
https://github.com/llvm/llvm-project/pull/139716
More information about the llvm-commits
mailing list