Standard way to remove llvm intrinsics

Hi all,
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.

Thanks
Alberto

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?

Thanks!

-eric

Hi Eric,
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.

Thanks
Alberto

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.

-eric

Thanks Eric,
I’ll spend some time on it and try to understand how to ignore them.

Alberto