[Mlir-commits] [clang] [llvm] [mlir] [NVPTX] Convert vector function nvvm.annotations to attributes (PR #127736)
Alex MacLean
llvmlistbot at llvm.org
Wed Feb 19 12:53:14 PST 2025
================
@@ -196,6 +198,36 @@ static std::optional<unsigned> getFnAttrParsedInt(const Function &F,
: std::nullopt;
}
+static SmallVector<unsigned, 3> getFnAttrParsedVector(const Function &F,
+ StringRef Attr) {
+ SmallVector<unsigned, 3> V;
+ auto &Ctx = F.getContext();
+
+ if (F.hasFnAttribute(Attr)) {
+ StringRef S = F.getFnAttribute(Attr).getValueAsString();
+ for (unsigned I = 0; I < 3 && !S.empty(); I++) {
+ auto [First, Rest] = S.split(",");
+ unsigned IntVal;
+ if (First.trim().getAsInteger(0, IntVal))
+ Ctx.emitError("can't parse integer attribute " + First + " in " + Attr);
+
+ V.push_back(IntVal);
+ S = Rest;
+ }
+ }
+ return V;
+}
+
+static std::optional<unsigned> getVectorProduct(ArrayRef<unsigned> V) {
+ if (V.empty())
+ return std::nullopt;
+
+ unsigned Product = 1;
+ for (const unsigned E : V)
+ Product *= E;
+ return Product;
+}
+
----------------
AlexMaclean wrote:
Nice. I've moved to uint64_t
https://github.com/llvm/llvm-project/pull/127736
More information about the Mlir-commits
mailing list