[PATCH] D146872: [1/11][IR] Permit load/store/alloca for struct of the same scalable vector type

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 13 01:12:06 PDT 2023


nikic added inline comments.


================
Comment at: llvm/docs/LangRef.rst:745
+<vscale x 2 x i32>} contains the same type while {<vscale x 2 x i32>,
+<vscale x 2 x i64>} doesn't). These kind of structs (we may call them
+homogeneous scalable vector structs) are considered sized and can used in
----------------
The types should probably be wrapped in double backticks.


================
Comment at: llvm/include/llvm/IR/DerivedTypes.h:223
+    SCDB_ContainScalableVector = 16,
+    SCDB_NotConatinScalableVector = 32
   };
----------------
NotContain


================
Comment at: llvm/include/llvm/IR/DerivedTypes.h:292
+  /// Returns true if this struct contains homogeneous scalable vector types.
+  /// Note that the definition homogeneous scalable vector type is not recursive
+  /// here. That means the following structure will return a false when calling
----------------
definition of


================
Comment at: llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp:160
+              (isa<StructType>(Ty) &&
+               cast<StructType>(Ty)->containsScalableVectorType())) {
             MF->getFrameInfo().setStackID(FrameIndex,
----------------
Use `isScalableTy()`?


================
Comment at: llvm/lib/IR/DataLayout.cpp:62
     // Add padding if necessary to align the data element properly.
-    if (!isAligned(TyAlign, StructSize)) {
+    // Currently the only structure with scalable size will be the be the
+    // homogeneous scalable vector types. Homogeneous scalable vector types
----------------
double "be the"


================
Comment at: llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp:527
+        if (STy->containsScalableVectorType())
+          break;
         if (const SCEVConstant *C = dyn_cast<SCEVConstant>(Ops[0]))
----------------
Can this be an assertion? As this is related to GEP handling.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D146872



More information about the llvm-commits mailing list