[PATCH] D122533: [AVR] Remove AVRRelaxMemOperations

Ben Shi via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Mar 27 05:40:45 PDT 2022


benshi001 added inline comments.


================
Comment at: llvm/lib/Target/AVR/AVRExpandPseudoInsts.cpp:1174
 
-  auto MIBLO = buildMI(MBB, MBBI, OpLo)
-                   .addReg(DstReg)
-                   .addImm(Imm)
-                   .addReg(SrcLoReg, getKillRegState(SrcIsKill));
+    buildMI(MBB, MBBI, AVR::SBCIWRdK)
+        .addReg(DstReg, RegState::Define)
----------------
benshi001 wrote:
> Patryk27 wrote:
> > benshi001 wrote:
> > > The above built error is caused by this line, this should be a SUBI other than a SBCI.
> > Out of curiosity, why SUBI? (just trying to understand what is the difference between both)
> > 
> > It looks like currently - https://github.com/llvm/llvm-project/blob/d9cea8d3a8fff86672174780312674871729578c/llvm/lib/Target/AVR/AVRRelaxMemOperations.cpp#L101 - we expand to SBCI.
> I thought this should be an old bug which has never been triggered. Actually if C bit in SREG is set before current `STWPtrPdRr`, then it is sure to run into  wrong.
Sorry, I think this should be a SUBIW, neither SBCIW nor SUBI.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D122533/new/

https://reviews.llvm.org/D122533



More information about the cfe-commits mailing list