[PATCH] D123857: [CodeGen] Add separate UseList for each ResNo of SDNode

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 15 14:50:10 PDT 2022


craig.topper added a comment.

IR like this is discouraged. I think it's almost considered a historical design mistake that you can store an entire aggregate in one IR instruction.

  %struct.large = type { [65535 x i8] }
  define void @foo(%struct.large %s, %struct.large* %p) {
    store %struct.large %s, %struct.large* %p, align 1
    ret void
  }



================
Comment at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:583
+  /// Lists of uses for each value of this SDNode.
+  SmallVector<SDUse *> ResNoToUseList;
+  /// List of all uses. Duplicates info from ResNoToUseList but is easier
----------------
How many inline values does this SmallVector end up creating? 1 or 2 results is by far the most common so I wonder if we should explicitly use 2 instead of leaving it up to the SmallVector to decide.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D123857



More information about the llvm-commits mailing list