ajohnson-uoregon added a comment.

I still need to write tests but: I do have a use case for these over here: 
https://github.com/ajohnson-uoregon/llvm-project/blob/feature-ajohnson/clang-tools-extra/clang-rewrite/ConstructMatchers.cpp#L472
 
tl;dr, we'd like to match the kernel launch arguments (i.e., the arguments to 
`__cudaPushCallConfiguration()`) and these matchers made writing the code to 
generate those AST matchers much easier.

Without at least the `hasKernelConfig()` matcher, it's actually currently 
impossible to match the kernel launch args. (I wasn't able to find a way after 
quite a while poking at the AST, at least.) As for the others, it's not clear 
how to match the kernel launch args without exposing the fact that there's a 
second CallExpr inside the CUDAKernelCallExpr to the user and writing a pretty 
messy matcher, along the lines of 
`cudaKernelCallExpr(hasKernelConfig(callExpr(hasArgument(0, expr()))))` for the 
grid dim. `cudaKernelCallExpr(cudaGridDim())` is a lot cleaner and easier to 
understand.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D120952

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

Reply via email to