[llvm-dev] Function name demangling in llvm ir

David Blaikie via llvm-dev llvm-dev at lists.llvm.org
Wed Jun 24 13:31:22 PDT 2020


On Wed, Jun 24, 2020 at 1:26 PM sangeeta chowdhary
<sangitachowdhary at gmail.com> wrote:
>
> Any particular reason to avoid demangling?

It's not part of the semantics of LLVM IR - so optimization should not
rely on it (different mangling schemes might be used on different
platforms - breaking the analysis/optimizations based on them - other
optimizations might not preserve the properties you're looking
for/assuming exist because of the mangled name, etc)

>
> On Wed, Jun 24, 2020 at 4:20 PM David Blaikie <dblaikie at gmail.com> wrote:
>>
>> (though, usual caveat: you /usually/ shouldn't be doing that - instead
>> relying only on whatever semantics the IR actually carries, rather
>> than implying extra semantics based on the demangled name)
>>
>> On Wed, Jun 24, 2020 at 12:48 PM Johannes Doerfert via llvm-dev
>> <llvm-dev at lists.llvm.org> wrote:
>> >
>> > I have not tried it but maybe
>> >
>> > `std::string llvm::demangle(const std::string &MangledName)`
>> >
>> > in `llvm/Demangle/Demangle.h`
>> >
>> > is already what you want.
>> >
>> >
>> >
>> > On 6/24/20 2:10 PM, sangeeta chowdhary via llvm-dev wrote:
>> >
>> > Hello,
>> >
>> > I am doing some program analysis with C++ programs. I need to check if some
>> > particular function is called in the program, for that I need the name of
>> > the function being called in the call instruction. Since C++ mangles the
>> > name of the function, I need a way to demangle the function name in llvm
>> > IR. Is there any way to achieve that in llvm pass?
>> >
>> > Regards,
>> > Sangeeta
>> >
>> >
>> > _______________________________________________
>> > LLVM Developers mailing list
>> > llvm-dev at lists.llvm.org
>> > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>> >
>> > _______________________________________________
>> > LLVM Developers mailing list
>> > llvm-dev at lists.llvm.org
>> > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


More information about the llvm-dev mailing list