This change adds support for accessing information about inline assembly calls through the C API, enough to be able to round-trip the information. This partially addresses https://github.com/llvm/llvm-project/issues/42037 which points out gaps in the C API
Getters for each of the parameters to LLVMGetInlineAsm/InlineAsm::get have been added, such that the C API now has enough surface to clone inline assembly calls
NB: LLVMGetInlineAsm has been changed to accept a const char* for its assembly and constraint strings. This isn't strictly needed, but does make using the API a bit easier to use since the results of LLVMGetInlineAsmAsmString/LLVMGetInlineAsmConstraintString can be passed to LLVMGetInlineAsm without having to make an explicit mutable copy. As far as I understand, changing this from char* to const char* shouldn't break existing users, but if it's something we want to avoid I can leave it
This API currently only returns the raw constraint string via LLVMGetInlineAsmConstraintString: it may be prudent to also expose the parsed constraints via InlineAsm::ParseConstraints, but I wasn't sure how that should look like. This at least exposes the information for clients
This is my first patch sent to LLVM, so if there's anything I've missed please let me know