It would be awesome if llvm-dialects could use the tablegen definitions to generate a C-API automatically.
But how to do so is probably worth some discussion.
As an example this is the current IRBuilder API:
https://github.com/llvm/llvm-project/blob/7fe29e585723c8a90e798b3d852f2c54efb6f5dd/llvm/include/llvm-c/Core.h#L3742-L3753
But there are also delightful enums like: https://github.com/llvm/llvm-project/blob/7fe29e585723c8a90e798b3d852f2c54efb6f5dd/llvm/include/llvm-c/Core.h#L60