[PATCH] D118441: Preserve aliasing info during memory intrinsics lowering

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 31 07:37:36 PST 2022


arsenm added a comment.

Needs some lit tests that show the metadata after expansion



================
Comment at: llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp:80
                                                 PartSrcAlign, SrcIsVolatile);
+    if (!CanOverlap)
+      // Set alias scope for loads.
----------------
Braces


================
Comment at: llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp:89
+        Load, DstGEP, PartDstAlign, DstIsVolatile);
+    if (!CanOverlap)
+      // Indicate that stores don't overlap loads.
----------------
Braces


================
Comment at: llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp:132
           RBuilder.CreateAlignedLoad(OpTy, SrcGEP, PartSrcAlign, SrcIsVolatile);
+      if (!CanOverlap)
+        // Set alias scope for loads.
----------------
Braces


================
Comment at: llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp:146
+                                                     DstIsVolatile);
+      if (!CanOverlap)
+        // Indicate that stores don't overlap loads.
----------------
Braces


================
Comment at: llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp:217
+                                                 PartSrcAlign, SrcIsVolatile);
+  if (!CanOverlap)
+    // Set alias scope for loads.
----------------
Braces


================
Comment at: llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp:224
+      LoopBuilder.CreateAlignedStore(Load, DstGEP, PartDstAlign, DstIsVolatile);
+  if (!CanOverlap)
+    // Indicate that stores don't overlap loads.
----------------
Braces


================
Comment at: llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp:279
+                                                  PartSrcAlign, SrcIsVolatile);
+    if (!CanOverlap)
+      // Set alias scope for loads.
----------------
Braces


================
Comment at: llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp:288
+                                                     DstIsVolatile);
+    if (!CanOverlap)
+      // Indicate that stores don't overlap loads.
----------------
Braces


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D118441



More information about the llvm-commits mailing list