diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2017-02-28 17:41:45 +0000 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2017-03-24 14:02:54 +0000 |
commit | f6d4668c42933e2f85ddbc94e276c49db4e2b1dd (patch) | |
tree | 3343addb8cde45eb4070d4876f26bef1002248dc /compiler/driver/compiler_options.cc | |
parent | 0bbb750f6ff9a52bc4649995fc78ebea87e31dd1 (diff) |
Improvements in the Inliner.
- Change from a depth limit to a total number of HInstructions
inlined limit. Remove the dex2oat depth limit argument.
- Add more stats to diagnose reasons for not inlining.
- Clean up logging to easily parse output.
Individual Ritz benchmarks improve from 3 to 10%.
No change in other heuristics. There was already an instruction budget.
Note that the instruction budget is rarely hit in the "apps" I've tried
with.
Compile-times improve from 5 to 15%.
Code size go from 4% increase (Gms) to 1% decrease (Docs).
bug:35724239
test: test-art-host test-art-target
Change-Id: I5a35c4bd826cf21fead77859709553c5b57608d6
Diffstat (limited to 'compiler/driver/compiler_options.cc')
-rw-r--r-- | compiler/driver/compiler_options.cc | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/compiler/driver/compiler_options.cc b/compiler/driver/compiler_options.cc index 34ad1c5c08..a0c0a2acf6 100644 --- a/compiler/driver/compiler_options.cc +++ b/compiler/driver/compiler_options.cc @@ -27,7 +27,6 @@ CompilerOptions::CompilerOptions() small_method_threshold_(kDefaultSmallMethodThreshold), tiny_method_threshold_(kDefaultTinyMethodThreshold), num_dex_methods_threshold_(kDefaultNumDexMethodsThreshold), - inline_depth_limit_(kUnsetInlineDepthLimit), inline_max_code_units_(kUnsetInlineMaxCodeUnits), no_inline_from_(nullptr), boot_image_(false), @@ -62,7 +61,6 @@ CompilerOptions::CompilerOptions(CompilerFilter::Filter compiler_filter, size_t small_method_threshold, size_t tiny_method_threshold, size_t num_dex_methods_threshold, - size_t inline_depth_limit, size_t inline_max_code_units, const std::vector<const DexFile*>* no_inline_from, double top_k_profile_threshold, @@ -86,7 +84,6 @@ CompilerOptions::CompilerOptions(CompilerFilter::Filter compiler_filter, small_method_threshold_(small_method_threshold), tiny_method_threshold_(tiny_method_threshold), num_dex_methods_threshold_(num_dex_methods_threshold), - inline_depth_limit_(inline_depth_limit), inline_max_code_units_(inline_max_code_units), no_inline_from_(no_inline_from), boot_image_(false), @@ -130,10 +127,6 @@ void CompilerOptions::ParseNumDexMethods(const StringPiece& option, UsageFn Usag ParseUintOption(option, "--num-dex-methods", &num_dex_methods_threshold_, Usage); } -void CompilerOptions::ParseInlineDepthLimit(const StringPiece& option, UsageFn Usage) { - ParseUintOption(option, "--inline-depth-limit", &inline_depth_limit_, Usage); -} - void CompilerOptions::ParseInlineMaxCodeUnits(const StringPiece& option, UsageFn Usage) { ParseUintOption(option, "--inline-max-code-units", &inline_max_code_units_, Usage); } @@ -183,8 +176,6 @@ bool CompilerOptions::ParseCompilerOption(const StringPiece& option, UsageFn Usa ParseTinyMethodMax(option, Usage); } else if (option.starts_with("--num-dex-methods=")) { ParseNumDexMethods(option, Usage); - } else if (option.starts_with("--inline-depth-limit=")) { - ParseInlineDepthLimit(option, Usage); } else if (option.starts_with("--inline-max-code-units=")) { ParseInlineMaxCodeUnits(option, Usage); } else if (option == "--generate-debug-info" || option == "-g") { |