summaryrefslogtreecommitdiff
path: root/compiler/driver/compiler_options_map-inl.h
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2018-10-15 09:44:35 -0700
committerMathieu Chartier <mathieuc@google.com>2018-10-16 13:13:26 -0700
commitcd0f38fcbda3e578ac27e483a1ffb7718f83fb7a (patch)
tree5a8a89ca8cb04ae22d2c43aff38ab50717801581 /compiler/driver/compiler_options_map-inl.h
parent8677e4bd3a091588c3b8058439f7022edab57f6e (diff)
Add logic to eagerly resolve const-string for startup methods
Added dex2oat option --resolve-startup-const-strings=<true|false> If true, this option causes the compiler driver to resolve all const-strings that are referenced from methods marked as "startup" in the profile. Bug: 116059983 Test: test-art-host Change-Id: I61cf9e945c125671fc4ab4b50458a911318a837f
Diffstat (limited to 'compiler/driver/compiler_options_map-inl.h')
-rw-r--r--compiler/driver/compiler_options_map-inl.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/driver/compiler_options_map-inl.h b/compiler/driver/compiler_options_map-inl.h
index d4a582fb35..5a844959c4 100644
--- a/compiler/driver/compiler_options_map-inl.h
+++ b/compiler/driver/compiler_options_map-inl.h
@@ -80,6 +80,7 @@ inline bool ReadCompilerOptions(Base& map, CompilerOptions* options, std::string
if (map.Exists(Base::CountHotnessInCompiledCode)) {
options->count_hotness_in_compiled_code_ = true;
}
+ map.AssignIfExists(Base::ResolveStartupConstStrings, &options->resolve_startup_const_strings_);
if (map.Exists(Base::DumpTimings)) {
options->dump_timings_ = true;
@@ -184,6 +185,11 @@ inline void AddCompilerOptionsArgumentParserOptions(Builder& b) {
.template WithType<std::string>()
.IntoKey(Map::RegisterAllocationStrategy)
+ .Define("--resolve-startup-const-strings=_")
+ .template WithType<bool>()
+ .WithValueMap({{"false", false}, {"true", true}})
+ .IntoKey(Map::ResolveStartupConstStrings)
+
.Define("--verbose-methods=_")
.template WithType<ParseStringList<','>>()
.IntoKey(Map::VerboseMethods);