diff options
author | 2015-07-14 16:07:00 -0700 | |
---|---|---|
committer | 2015-07-20 10:25:26 -0700 | |
commit | 854a02b1b488327f80c544ca1119b386b8715c26 (patch) | |
tree | 7f48f01a7624d07b0c24bf589308673dcb05683c /compiler/optimizing/dead_code_elimination.cc | |
parent | 8ae3588989ea99d8c60f885e3d830e6e0c87ff5f (diff) |
Improved side effect analysis (field/array write/read).
Rationale:
Types (int, float etc.) and access type (field vs. array)
can be used to disambiguate write/read side-effects analysis.
This directly improves e.g. dead code elimination and licm.
Change-Id: I371f6909a3f42bda13190a03f04c4a867bde1d06
Diffstat (limited to 'compiler/optimizing/dead_code_elimination.cc')
-rw-r--r-- | compiler/optimizing/dead_code_elimination.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/optimizing/dead_code_elimination.cc b/compiler/optimizing/dead_code_elimination.cc index 5de629d605..6269d1628e 100644 --- a/compiler/optimizing/dead_code_elimination.cc +++ b/compiler/optimizing/dead_code_elimination.cc @@ -128,7 +128,7 @@ void HDeadCodeElimination::RemoveDeadInstructions() { for (i.Advance(); !i.Done(); i.Advance()) { HInstruction* inst = i.Current(); DCHECK(!inst->IsControlFlow()); - if (!inst->HasSideEffects() + if (!inst->DoesAnyWrite() && !inst->CanThrow() && !inst->IsSuspendCheck() // If we added an explicit barrier then we should keep it. |