diff options
author | Vladimir Marko <vmarko@google.com> | 2014-10-07 15:01:57 +0100 |
---|---|---|
committer | Vladimir Marko <vmarko@google.com> | 2014-10-15 18:44:33 +0100 |
commit | 312eb25273dc0e2f8880d80f00c5b0998febaf7b (patch) | |
tree | 17e5320af33efc462a38fe907e5b526dec39c388 /compiler/dex/bb_optimizations.h | |
parent | 7baa6f8783b12bb4b159ed4648145be5912215f2 (diff) | |
download | art-312eb25273dc0e2f8880d80f00c5b0998febaf7b.zip art-312eb25273dc0e2f8880d80f00c5b0998febaf7b.tar.gz art-312eb25273dc0e2f8880d80f00c5b0998febaf7b.tar.bz2 |
Quick: Improve the BBCombine pass.
Eliminate exception edges for insns that cannot throw even
when inside a try-block. Run the BBCombine pass before the
SSA transformation to reduce the compilation time.
Bug: 16398693
Change-Id: I8e91df593e316c994679b9d482b0ae20700b9499
Diffstat (limited to 'compiler/dex/bb_optimizations.h')
-rw-r--r-- | compiler/dex/bb_optimizations.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/dex/bb_optimizations.h b/compiler/dex/bb_optimizations.h index 3b1be51..fba0863 100644 --- a/compiler/dex/bb_optimizations.h +++ b/compiler/dex/bb_optimizations.h @@ -271,7 +271,8 @@ class BBCombine : public PassME { DCHECK(data != nullptr); CompilationUnit* c_unit = down_cast<const PassMEDataHolder*>(data)->c_unit; DCHECK(c_unit != nullptr); - return ((c_unit->disable_opt & (1 << kSuppressExceptionEdges)) != 0); + return c_unit->mir_graph->HasTryCatchBlocks() || + ((c_unit->disable_opt & (1 << kSuppressExceptionEdges)) != 0); } bool Worker(PassDataHolder* data) const; |