[llvm] [Offload] Refactor device/platform info queries (PR #146345)
Jan Patrick Lehr via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 30 05:38:11 PDT 2025
================
@@ -61,39 +61,39 @@ llvm::Error getInfoArray(size_t array_length, size_t ParamValueSize,
array_length * sizeof(T), memcpy);
}
-template <>
-inline llvm::Error
-getInfo<const char *>(size_t ParamValueSize, void *ParamValue,
- size_t *ParamValueSizeRet, const char *Value) {
- return getInfoArray(strlen(Value) + 1, ParamValueSize, ParamValue,
- ParamValueSizeRet, Value);
+llvm::Error getInfoString(size_t ParamValueSize, void *ParamValue,
+ size_t *ParamValueSizeRet, llvm::StringRef Value) {
+ return getInfoArray(Value.size() + 1, ParamValueSize, ParamValue,
+ ParamValueSizeRet, Value.data());
}
-class ReturnHelper {
+class InfoWriter {
public:
- ReturnHelper(size_t ParamValueSize, void *ParamValue,
- size_t *ParamValueSizeRet)
- : ParamValueSize(ParamValueSize), ParamValue(ParamValue),
- ParamValueSizeRet(ParamValueSizeRet) {}
+ InfoWriter(size_t Size, void *Target, size_t *SizeRet)
+ : Size(Size), Target(Target), SizeRet(SizeRet) {};
+ InfoWriter() = delete;
+ InfoWriter(InfoWriter &) = delete;
+ ~InfoWriter() = default;
- // A version where in/out info size is represented by a single pointer
- // to a value which is updated on return
- ReturnHelper(size_t *ParamValueSize, void *ParamValue)
- : ParamValueSize(*ParamValueSize), ParamValue(ParamValue),
- ParamValueSizeRet(ParamValueSize) {}
-
- // Scalar return Value
- template <class T> llvm::Error operator()(const T &t) {
- return getInfo(ParamValueSize, ParamValue, ParamValueSizeRet, t);
+ template <class T> llvm::Error Write(llvm::Expected<T> &&Val) {
----------------
jplehr wrote:
```suggestion
template <class T> llvm::Error write(llvm::Expected<T> &&Val) {
```
I think those method names should be lower case.
https://github.com/llvm/llvm-project/pull/146345
More information about the llvm-commits
mailing list