summaryrefslogtreecommitdiff
path: root/compiler/optimizing
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2016-01-13 13:56:20 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2016-01-13 13:56:20 +0000
commit1cde05849f2057b11e3a149144a1d02245d22060 (patch)
tree6ee7b558c082124c5fb45048e33ae18b8c13d790 /compiler/optimizing
parent185be57ccf1ffe059fc7a0d5acca81446b732411 (diff)
HDeoptimize can also trigger GC.
bug:26532563 Change-Id: Idaa294fb500ab820c7b45e37747e96f0b455f663
Diffstat (limited to 'compiler/optimizing')
-rw-r--r--compiler/optimizing/nodes.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h
index 35944ec1ce..b65d0f5750 100644
--- a/compiler/optimizing/nodes.h
+++ b/compiler/optimizing/nodes.h
@@ -2491,8 +2491,10 @@ class HTryBoundary : public HTemplateInstruction<0> {
// Deoptimize to interpreter, upon checking a condition.
class HDeoptimize : public HTemplateInstruction<1> {
public:
+ // We set CanTriggerGC to prevent any intermediate address to be live
+ // at the point of the `HDeoptimize`.
HDeoptimize(HInstruction* cond, uint32_t dex_pc)
- : HTemplateInstruction(SideEffects::None(), dex_pc) {
+ : HTemplateInstruction(SideEffects::CanTriggerGC(), dex_pc) {
SetRawInputAt(0, cond);
}