[PATCH] D109419: [GlobalISel] Implement merging of stores of truncates.

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 8 10:23:19 PDT 2021


arsenm added inline comments.


================
Comment at: llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h:76-80
+  bool NeedBSwap;
+  bool NeedRotate;
+  Register WideSrcVal;
+  GStore *LowestIdxStore;
+  SmallVector<GStore *> FoundStores;
----------------
Reverse the order of the fields?


================
Comment at: llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp:3857
+
+  // We only handle merging simple stores of 1-4 bytes.
+  if (!MemTy.isScalar())
----------------
This goes up to 8 bytes (also I don't see why bother limiting it)


================
Comment at: llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp:3923-3924
+    NumInstsChecked++;
+    if (II->isCall() || II->mayLoad() || II->hasUnmodeledSideEffects())
+      break;
+    GStore *NewStore = dyn_cast_or_null<GStore>(&*II);
----------------
isLoadFoldBarrier? Also need to watch out for volatile/atomic


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D109419



More information about the llvm-commits mailing list