[PATCH] D146988: [CodeGen] Enable processing of interconnected complex number operations

Nicholas Guy via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 28 03:29:46 PDT 2023


NickGuy added inline comments.


================
Comment at: llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp:143
-  // the multiply instructions of a partial multiply operation.
-  SmallVector<Instruction *> InternalInstructions;
   ComplexDeinterleavingRotation Rotation;
----------------
What's the rationale behind removing this? I might be missing something, but it looks like you're removing it then looking for the internal instructions on-demand in `checkNodes` later


================
Comment at: llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp:905-910
+    if (!FinalInstructions.count(I)) {
+      for (Value *Op : I->operands()) {
+        if (auto *OpI = dyn_cast<Instruction>(Op))
+          ToDo.emplace_back(OpI);
+      }
     }
----------------
How is this expected to behave with operands that leave the chain? (i.e. Phi nodes or instructions in a different basic block). Is there a risk of `AllInstructions` containing the most of the function in some cases?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D146988



More information about the llvm-commits mailing list