diff options
author | 2016-01-13 14:10:34 +0000 | |
---|---|---|
committer | 2016-01-13 14:10:34 +0000 | |
commit | a38e418fb2d9b817309c54b54ca85039907c2bbb (patch) | |
tree | 6ee7b558c082124c5fb45048e33ae18b8c13d790 /compiler/optimizing | |
parent | 185be57ccf1ffe059fc7a0d5acca81446b732411 (diff) | |
parent | 1cde05849f2057b11e3a149144a1d02245d22060 (diff) |
Merge "HDeoptimize can also trigger GC."
Diffstat (limited to 'compiler/optimizing')
-rw-r--r-- | compiler/optimizing/nodes.h | 4 |
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); } |