Cross-module inlining across a big program has huge memory
and processing overhead in the compiler. To address this,
Google developed Lightweight IPO (LIPO) [18], which performs
certain interprocedural optimizations (IPO) [22] without
doing global analysis in the compiler. LIPO achieves this by
shifting some of the analysis from compile time to runtime
of the FDO feedback collection stage. A LIPO instrumented
binary produces some information that would be produced by
a global analysis.