From 0cd31868193e6e3e10b56d703ea62dbe8dde7391 Mon Sep 17 00:00:00 2001 From: Guilherme Ottoni Date: Fri, 3 May 2013 18:54:17 -0700 Subject: [PATCH] Fix trace exit type for IncDecL of boxed values For accesses to boxed locals, if the inner type changes, we can retranslate using HHIR: the new translation will inspect the live type and be able to execute the instruction. While looking at something else, I noticed that in such cases IncDecL was taking a slow exit (which avoids using HHIR). --- hphp/runtime/vm/translator/hopt/hhbctranslator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hphp/runtime/vm/translator/hopt/hhbctranslator.cpp b/hphp/runtime/vm/translator/hopt/hhbctranslator.cpp index e84318ee1..6acc9837e 100644 --- a/hphp/runtime/vm/translator/hopt/hhbctranslator.cpp +++ b/hphp/runtime/vm/translator/hopt/hhbctranslator.cpp @@ -660,7 +660,7 @@ void HhbcTranslator::emitSetL(int32_t id) { void HhbcTranslator::emitIncDecL(bool pre, bool inc, uint32_t id) { // Handle only integer inc/dec for now - Trace* exitTrace = getExitSlowTrace(); + Trace* exitTrace = getExitTrace(); SSATmp* src = m_tb->genLdLocAsCell(id, exitTrace); if (src->isA(Type::Bool)) { // inc/dec of a bool is a no-op