Skip to content

Commit 66c81b0

Browse files
committed
LLVMCodeBuilder: Do not recreate var pointers when vars are used
1 parent 7a86400 commit 66c81b0

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/engine/internal/llvm/llvmcodebuilder.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1251,7 +1251,9 @@ CompilerValue *LLVMCodeBuilder::addVariableValue(Variable *variable)
12511251
{
12521252
LLVMInstruction ins(LLVMInstruction::Type::ReadVariable);
12531253
ins.workVariable = variable;
1254-
m_variablePtrs[variable] = LLVMVariablePtr();
1254+
1255+
if (m_variablePtrs.find(variable) == m_variablePtrs.cend())
1256+
m_variablePtrs[variable] = LLVMVariablePtr();
12551257

12561258
auto ret = std::make_shared<LLVMRegister>(Compiler::StaticType::Unknown);
12571259
ret->isRawValue = false;
@@ -1506,8 +1508,10 @@ void LLVMCodeBuilder::createVariableWrite(Variable *variable, CompilerValue *val
15061508
{
15071509
LLVMInstruction ins(LLVMInstruction::Type::WriteVariable);
15081510
ins.workVariable = variable;
1509-
m_variablePtrs[variable] = LLVMVariablePtr();
15101511
createOp(ins, Compiler::StaticType::Void, Compiler::StaticType::Unknown, { value });
1512+
1513+
if (m_variablePtrs.find(variable) == m_variablePtrs.cend())
1514+
m_variablePtrs[variable] = LLVMVariablePtr();
15111515
}
15121516

15131517
void LLVMCodeBuilder::createListClear(List *list)

0 commit comments

Comments
 (0)