summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/dead_code_elimination.h
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2016-07-15 10:46:17 +0100
committerNicolas Geoffray <ngeoffray@google.com>2016-07-18 11:22:51 +0100
commitdac9b19b822e6cc6f1d7f40e27780515d1fddf22 (patch)
treede163a82ef5f13394c4b467897e558571ed284b9 /compiler/optimizing/dead_code_elimination.h
parent173f435e56acfd0501fc460747572a4796dcffe0 (diff)
downloadart-dac9b19b822e6cc6f1d7f40e27780515d1fddf22.tar.gz
art-dac9b19b822e6cc6f1d7f40e27780515d1fddf22.tar.bz2
art-dac9b19b822e6cc6f1d7f40e27780515d1fddf22.zip
Add a new control flow simplifier.
Run it in the dead code elimination phase, as it relates to creating dead branches. From 0.04 to 0.07% less code size framework/gms/docs/fb (70K saved on fb) 3%-5% runtime performance improvements on Richards/DeltaBlue/Ritz. Compile-time is mixed, so in the noise (from 2% slower to 1% faster). test:611-checker-simplify-if Change-Id: Ife8b7882d57b5481f5ca9dc163beba655d7e78bf
Diffstat (limited to 'compiler/optimizing/dead_code_elimination.h')
-rw-r--r--compiler/optimizing/dead_code_elimination.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/optimizing/dead_code_elimination.h b/compiler/optimizing/dead_code_elimination.h
index 8d6008b845..0ce0ec1402 100644
--- a/compiler/optimizing/dead_code_elimination.h
+++ b/compiler/optimizing/dead_code_elimination.h
@@ -41,8 +41,11 @@ class HDeadCodeElimination : public HOptimization {
private:
void MaybeRecordDeadBlock(HBasicBlock* block);
- void RemoveDeadBlocks();
+ void MaybeRecordSimplifyIf();
+ bool RemoveDeadBlocks();
void RemoveDeadInstructions();
+ bool SimplifyIfs();
+ void ConnectSuccessiveBlocks();
DISALLOW_COPY_AND_ASSIGN(HDeadCodeElimination);
};