OSDN Git Service

Perform profile file analysis in dex2oat
authorCalin Juravle <calin@google.com>
Mon, 21 Dec 2015 13:39:33 +0000 (15:39 +0200)
committerCalin Juravle <calin@google.com>
Thu, 7 Jan 2016 16:23:18 +0000 (16:23 +0000)
commit998c21661b5074c293cae818d0ab7c44dcda3a66
treec9abd63c18abc18f9d9206ca8c22c318523d0544
parent5e2b971e468ca73a8e10a120730b3b6f17fad408
Perform profile file analysis in dex2oat

Dex2oat can accept now multiple profile files to drive a profile based
compilation. --profile-file and --reference-profile-file speficy a pair
of profile files which will be evaluated for significant differences
before starting the compilation. If the difference is insignificant
(according to some internal metric) the compilation is skipped and a
message is logged.

Multiple pairs of --profile-file and --reference-profile-file can be
specified. This effectively enables multi user support since profiles
for different users will be kept separately.

--reference-profile-file can be left out, case in which the decision is
solely based on --profile-file. If both flags are present, then their
repetition should form unique pairs.

If the compilation is performed and --reference-profile-file is given
then its data is merged with the data from the corresponding --profile-
file and saved back to the file.

If no profile flags are given, dex2oat proceeds as before and compiles
the dex files unconditionally.

As part of this change
- merge ProfileCompilationInfo and OfflineProfilingInfo under the same
object. There was no use to keep them separate anymore.
- SaveProfilingInfo now merges the data with what was in
the file before instead of overwriting it.

Bug: 26080105

Change-Id: Ia8c8b55587d468bca5179f78941854285426234d
17 files changed:
compiler/Android.mk
compiler/common_compiler_test.cc
compiler/dex/quick/quick_cfi_test.cc
compiler/dex/quick/x86/quick_assemble_x86_test.cc
compiler/driver/compiled_method_storage_test.cc
compiler/driver/compiler_driver.cc
compiler/driver/compiler_driver.h
compiler/jit/jit_compiler.cc
compiler/linker/relative_patcher_test.h
compiler/oat_test.cc
compiler/profile_assistant.cc [new file with mode: 0644]
compiler/profile_assistant.h [new file with mode: 0644]
dex2oat/dex2oat.cc
runtime/jit/offline_profiling_info.cc
runtime/jit/offline_profiling_info.h
runtime/jit/profile_saver.cc
runtime/jit/profile_saver.h