Fix memory leak in isInternalSPIRVBuiltin (#3961)
itaniumDemangle returns a malloc'd buffer that the caller must free, but
its result was assigned directly to a StringRef, so the buffer was never
released.
This leaked on every internal FP4/FP8/int4 conversion builtin
processed by transFunctionDecl and transDirectCallInst.
The demangled name is simply the length-prefixed identifier already
present in the mangled name, so extract it as a substring of Name (the
same pattern used by the other demanglers above) instead of calling
itaniumDemangle.
This removes the allocation entirely, so there is nothing to leak.
Original commit:
https://github.com/KhronosGroup/SPIRV-LLVM-Translator/commit/c18063630e33cce