FDO: Only support locally
The issues: - The size increase from utilizing FDO is quite large while utilizing runtime profiles in build. - By default, FDO is utilized globally if the target arch variant profiles exist. - Not all modules can show statistical significance in performance comparison, yet still suffer the size increase. The solution: - Only enable FDO locally with LOCAL_FDO_SUPPORT for modules which may benefit enough to justify the size tradeoff. Solution notes: - I've noted statistical significance in libwebcore and libskia thus far from utilizing FDO. - Analysis included sunspider, drawcanvas benchmarks, as well as gooda analysis on both arm and x86 - To support runtime profile generation in modules which have LOCAL_FDO_SUPPORT specified, BUILD_FDO_INSTRUMENTATION is still used. Otherwise, if the target arch variant profiles exist, FDO is utilized for specified modules. Change-Id: I7e95266943ff47c7d82b02e6200fd09911d0bb57
Loading
Please register or sign in to comment