AFAIK, LTO can reduce dead codes and do some cross-file inlining. However, Objective-C is based on runtime. Whether a method is indeed called is resolved until runtime, so it's not possible to reduce dead methods in Objective-C at link time, right? For cross-file inlining, it couldn't happen either as a method's implementation can be replaced during runtime.
So, how could LTO affect Objective-C codes?
I'm new to LLVM, so any advice is appreciated.