it is not the first time that I need to remove intrinsics from a bc and in the past I saw options like -strip-debug for opt. Now I would like to remove all the occurrences of llvm.lifetime.start and llvm.lifetime.end. I have done in just obtaining the .ll file, grep -v lifetime, redirecting it to another .ll and use llvm-as.
I was wondering if there is a standard way to decide which intrinsics to remove or if at the moment it is not possible.
Typically this isn’t done, debug information is a bit of a special case. I don’t see much of a reason to have tool support for this necessarily, but would be happy to hear about possible use cases etc?
Currently I’m mainly playing with interpreter and trying to understand how it exactly works. I have noticed that lli complains when llvm.dbg.value is encounter that why I wanted to remove it. Additionally, I would like to understand that performances with and without intrinsics and the impact they have on the interpreter in general.
Not a lot of us use the interpreter unfortunately - probably best to just change it to ignore those intrinsics rather than error or try to remove them.
I’ll spend some time on it and try to understand how to ignore them.