From 1cde05849f2057b11e3a149144a1d02245d22060 Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Wed, 13 Jan 2016 13:56:20 +0000 Subject: [PATCH] HDeoptimize can also trigger GC. bug:26532563 Change-Id: Idaa294fb500ab820c7b45e37747e96f0b455f663 --- compiler/optimizing/nodes.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h index 35944ec1c..b65d0f575 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); } -- 2.11.0