Keep list of dex files for oat file in CompilerDriver.
Use this list to improve invoke-static/-direct dispatch for intra-oat calls. Also fix a latent ArmBaseRelativePatcher::ReserveSpaceEnd() bug exposed by a buggy early version of this CL: when we have unresolved patches at the end of all code, we need to emit a final thunk. Though the OatWriter will try to patch the unresolved call to a trampoline at the beginning of the oat file, that trampoline may be too far and the relative patcher doesn't know about it anyway, so it needs to assume that a thunk is needed. This reduces the overall size of oat files present in dalvik cache on Nexus 9 after first boot by over 1MiB, AOSP ToT, aosp_flounder-userdebug build. Change-Id: I98604b70cb17377eed057c1c23971865cf344e43
Loading
Please sign in to comment