This allows discouraging the use of specific build methods of an op by having TableGen generate C++ code, instructing the C++ compiler to warn on use of the build method.
The implementation uses the C++14 [[deprecated(...)]] for this purpose. I considered using LLVM_DEPRECATED`, but thought requiring a fix-it was not necassery, nor would the syntax in ODS have been very nice.
My motivation for this change is that in the future I'd like to deprecate the use build methods in the LLVM Dialect, not using explicit pointer types for ops such as llvm.load or llvm.alloca, which makes the code not future proof for opaque pointers. In-tree has to be clean first before I could commit such a change of course, but I thought the initial infrastructure change could already be submitted.
qq: I assume this is relatively portable?