[llvm] [SelectionDAG] Optimize unaligned load stores to realign after offset (PR #145309)

Acthinks Yang via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 30 19:39:25 PDT 2025


================
@@ -4597,7 +4598,25 @@ void SelectionDAGBuilder::visitLoad(const LoadInst &I) {
   const MDNode *Ranges = getRangeMetadata(I);
   bool isVolatile = I.isVolatile();
   MachineMemOperand::Flags MMOFlags =
-      TLI.getLoadMemOperandFlags(I, DAG.getDataLayout(), AC, LibInfo);
+      TLI.getLoadMemOperandFlags(I, DL, AC, LibInfo);
+
+  // See visitStore comments.
+  int64_t Offset = 0;
+  if (auto *GEP = dyn_cast<GetElementPtrInst>(SV);
+      GEP && Alignment == Align(1)) {
----------------
Acthinks wrote:

@arsenm  The effective diff is here:
https://github.com/llvm/llvm-project/pull/145309/commits/c88643827d1f2bc24d53b52e61479868536f99e2#diff-3a6a2277cc3f8384ddfa04cb6458a8df0dabb8ee5275caac3e66213ae4d1d9a0

https://github.com/llvm/llvm-project/pull/145309


More information about the llvm-commits mailing list