summaryrefslogtreecommitdiff
path: root/compiler/optimizing/dead_code_elimination.h
diff options
context:
space:
mode:
author Aart Bik <ajcbik@google.com> 2018-01-09 11:01:02 -0800
committer Aart Bik <ajcbik@google.com> 2018-01-16 09:44:28 -0800
commita8b8e9b12a9740d71cff2fa65d47825b74f72c37 (patch)
tree301275759cf145711175992a503fcc7d710c2d2f /compiler/optimizing/dead_code_elimination.h
parent6d4c343ee5db18f039aeb3e07ff8d3c1fd37c3a0 (diff)
Improve code sinking near "always throwing" method calls
Rationale: With simple dex bytecode analysis, the inliner marks methods that always throw to help subsequent code sinking. This reduces overhead of non-nullable enforcing calls found in e.g the Kotlin runtime library (1%-2% improvement on tree microbenchmark, about 5% on Denis' benchmark). Test: test-art-host test-art-target Change-Id: I45348f049721476828eb5443738021720d2857c0
Diffstat (limited to 'compiler/optimizing/dead_code_elimination.h')
-rw-r--r--compiler/optimizing/dead_code_elimination.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/optimizing/dead_code_elimination.h b/compiler/optimizing/dead_code_elimination.h
index 84fd890eee..92a7f562e1 100644
--- a/compiler/optimizing/dead_code_elimination.h
+++ b/compiler/optimizing/dead_code_elimination.h
@@ -40,6 +40,7 @@ class HDeadCodeElimination : public HOptimization {
void MaybeRecordSimplifyIf();
bool RemoveDeadBlocks();
void RemoveDeadInstructions();
+ bool SimplifyAlwaysThrows();
bool SimplifyIfs();
void ConnectSuccessiveBlocks();