azabaznov added inline comments.

================
Comment at: clang/include/clang/Basic/OpenCLOptions.h:179
+  static bool isOpenCLOptionCoreIn(const LangOptions &LO, Args &&... args) {
+    return OpenCLOptionInfo(std::forward<Args>(args)...).isCoreIn(LO);
+  }
----------------
Anastasia wrote:
> Do you think we could avoid constructing the temporary objects somehow?
> 
> I.e. could we just check the condition `CLVer >= Avail` that is used in the 
> non-static member function directly?
> 
> We could then use these helpers in the non-static members perhaps to avoid 
> duplication.
In future I would like to have a file scope variable to to something like:

```
extern llvm::StringMap<OpenCLOptionInfo> OpenCLOptionsKV = {
#include "OpenCLExtensions.inc"
};
```

where `OpenCLExtensions.inc` will be generated from TableGen file. This 
file-scope variable will be initialized once and contain all the information 
about OpenCL options. As for now I think using variadics and creating a 
temporary variable is much more simple than obtaining a full list of arguments 
and choosing the proper one to call `CLVer >= Avail` and even for checking core 
:)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D101087

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to