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).
Esse commit está contido em:
@@ -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
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário