summaryrefslogtreecommitdiffstats
path: root/compiler/dex/compiler_enums.h
diff options
context:
space:
mode:
authorRazvan A Lupusoru <razvan.a.lupusoru@intel.com>2014-09-29 16:42:11 -0700
committerRazvan A Lupusoru <razvan.a.lupusoru@intel.com>2014-10-14 13:06:52 -0700
commit5c5676b26a08454b3f0133783778991bbe5dd681 (patch)
tree233f278fb590036beaf327e0a345f177b070df43 /compiler/dex/compiler_enums.h
parente4228d93de256c72df9d57f0def938b11cfe21a1 (diff)
downloadandroid_art-5c5676b26a08454b3f0133783778991bbe5dd681.tar.gz
android_art-5c5676b26a08454b3f0133783778991bbe5dd681.tar.bz2
android_art-5c5676b26a08454b3f0133783778991bbe5dd681.zip
ART: Add div/rem zero check elimination flag
Just as with other throwing bytecodes, it is possible to prove in some cases that a divide/remainder won't throw ArithmeticException. For example, in case two divides with same denominator are in order, then provably the second one cannot throw if the first one did not. This patch adds the elimination flag and updates the signature of several Mir2Lir methods to take the instruction optimization flags into account. Change-Id: I0b078cf7f29899f0f059db1f14b65a37444b84e8 Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Diffstat (limited to 'compiler/dex/compiler_enums.h')
-rw-r--r--compiler/dex/compiler_enums.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/dex/compiler_enums.h b/compiler/dex/compiler_enums.h
index e4003bf088..763c34b26c 100644
--- a/compiler/dex/compiler_enums.h
+++ b/compiler/dex/compiler_enums.h
@@ -306,6 +306,7 @@ enum MIROptimizationFlagPositions {
kMIRIgnoreRangeCheck,
kMIRRangeCheckOnly,
kMIRIgnoreClInitCheck,
+ kMirIgnoreDivZeroCheck,
kMIRInlined, // Invoke is inlined (ie dead).
kMIRInlinedPred, // Invoke is inlined via prediction.
kMIRCallee, // Instruction is inlined from callee.