diff options
| author | Nicolas Geoffray <ngeoffray@google.com> | 2016-07-15 10:46:17 +0100 |
|---|---|---|
| committer | Nicolas Geoffray <ngeoffray@google.com> | 2016-07-18 11:22:51 +0100 |
| commit | dac9b19b822e6cc6f1d7f40e27780515d1fddf22 (patch) | |
| tree | de163a82ef5f13394c4b467897e558571ed284b9 /compiler/optimizing/dead_code_elimination.h | |
| parent | 173f435e56acfd0501fc460747572a4796dcffe0 (diff) | |
| download | art-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.h | 5 |
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); }; |
