Skip to content

Commit c1fe63b

Browse files
committed
Swap source and target type parameters in create store methods
1 parent f29970a commit c1fe63b

File tree

3 files changed

+13
-13
lines changed

3 files changed

+13
-13
lines changed

src/engine/internal/llvm/instructions/lists.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,14 @@ LLVMInstruction *Lists::buildAppendToList(LLVMInstruction *ins)
123123
// If there's enough space, use the allocated memory
124124
m_builder.SetInsertPoint(ifBlock);
125125
llvm::Value *itemPtr = m_utils.getListItem(listPtr, size);
126-
m_utils.createReusedValueStore(arg.second, itemPtr, type, listType);
126+
m_utils.createReusedValueStore(arg.second, itemPtr, listType, type);
127127
m_builder.CreateStore(m_builder.CreateAdd(size, m_builder.getInt64(1)), listPtr.sizePtr);
128128
m_builder.CreateBr(nextBlock);
129129

130130
// Otherwise call appendEmpty()
131131
m_builder.SetInsertPoint(elseBlock);
132132
itemPtr = m_builder.CreateCall(m_utils.functions().resolve_list_append_empty(), listPtr.ptr);
133-
m_utils.createReusedValueStore(arg.second, itemPtr, type, listType);
133+
m_utils.createReusedValueStore(arg.second, itemPtr, listType, type);
134134
m_builder.CreateBr(nextBlock);
135135

136136
m_builder.SetInsertPoint(nextBlock);
@@ -164,7 +164,7 @@ LLVMInstruction *Lists::buildInsertToList(LLVMInstruction *ins)
164164
m_builder.SetInsertPoint(insertBlock);
165165
index = m_builder.CreateFPToUI(index, m_builder.getInt64Ty());
166166
llvm::Value *itemPtr = m_builder.CreateCall(m_utils.functions().resolve_list_insert_empty(), { listPtr.ptr, index });
167-
m_utils.createReusedValueStore(valueArg.second, itemPtr, type, listType);
167+
m_utils.createReusedValueStore(valueArg.second, itemPtr, listType, type);
168168

169169
m_builder.CreateBr(nextBlock);
170170

@@ -199,7 +199,7 @@ LLVMInstruction *Lists::buildListReplace(LLVMInstruction *ins)
199199
m_builder.SetInsertPoint(replaceBlock);
200200
index = m_builder.CreateFPToUI(index, m_builder.getInt64Ty());
201201
llvm::Value *itemPtr = m_utils.getListItem(listPtr, index);
202-
m_utils.createValueStore(valueArg.second, itemPtr, type, listType);
202+
m_utils.createValueStore(valueArg.second, itemPtr, listType, type);
203203
m_builder.CreateBr(nextBlock);
204204

205205
m_builder.SetInsertPoint(nextBlock);

src/engine/internal/llvm/instructions/variables.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ LLVMInstruction *Variables::buildWriteVariable(LLVMInstruction *ins)
134134
m_builder.CreateStore(m_builder.getInt32(static_cast<uint32_t>(mappedType)), typeField);
135135
}*/
136136

137-
m_utils.createValueStore(arg.second, varPtr.stackPtr, argType, ins->targetType);
137+
m_utils.createValueStore(arg.second, varPtr.stackPtr, ins->targetType, argType);
138138
return ins->next;
139139
}
140140

src/engine/internal/llvm/llvmbuildutils.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -628,15 +628,15 @@ void LLVMBuildUtils::createValueStore(LLVMRegister *reg, llvm::Value *targetPtr,
628628
{
629629
llvm::Value *converted = nullptr;
630630

631-
if (sourceType != Compiler::StaticType::Unknown)
632-
converted = castValue(reg, sourceType);
631+
if (targetType != Compiler::StaticType::Unknown)
632+
converted = castValue(reg, targetType);
633633

634-
auto it = std::find_if(TYPE_MAP.begin(), TYPE_MAP.end(), [sourceType](const std::pair<ValueType, Compiler::StaticType> &pair) { return pair.second == sourceType; });
634+
auto it = std::find_if(TYPE_MAP.begin(), TYPE_MAP.end(), [targetType](const std::pair<ValueType, Compiler::StaticType> &pair) { return pair.second == targetType; });
635635
const ValueType mappedType = it == TYPE_MAP.cend() ? ValueType::Number : it->first; // unknown type can be ignored
636636

637-
switch (sourceType) {
637+
switch (targetType) {
638638
case Compiler::StaticType::Number:
639-
switch (targetType) {
639+
switch (sourceType) {
640640
case Compiler::StaticType::Number: {
641641
// Write number to number directly
642642
llvm::Value *ptr = m_builder.CreateStructGEP(m_valueDataType, targetPtr, 0);
@@ -661,7 +661,7 @@ void LLVMBuildUtils::createValueStore(LLVMRegister *reg, llvm::Value *targetPtr,
661661
break;
662662

663663
case Compiler::StaticType::Bool:
664-
switch (targetType) {
664+
switch (sourceType) {
665665
case Compiler::StaticType::Number: {
666666
// Write bool to number value directly and change type
667667
llvm::Value *ptr = m_builder.CreateStructGEP(m_valueDataType, targetPtr, 0);
@@ -705,10 +705,10 @@ void LLVMBuildUtils::createReusedValueStore(LLVMRegister *reg, llvm::Value *targ
705705
// Same as createValueStore(), but ensures that type is updated
706706
createValueStore(reg, targetPtr, sourceType, targetType);
707707

708-
auto it = std::find_if(TYPE_MAP.begin(), TYPE_MAP.end(), [sourceType](const std::pair<ValueType, Compiler::StaticType> &pair) { return pair.second == sourceType; });
708+
auto it = std::find_if(TYPE_MAP.begin(), TYPE_MAP.end(), [targetType](const std::pair<ValueType, Compiler::StaticType> &pair) { return pair.second == targetType; });
709709
const ValueType mappedType = it == TYPE_MAP.cend() ? ValueType::Number : it->first; // unknown type can be ignored
710710

711-
if ((sourceType == Compiler::StaticType::Number || sourceType == Compiler::StaticType::Bool) && sourceType == targetType) {
711+
if ((targetType == Compiler::StaticType::Number || targetType == Compiler::StaticType::Bool) && targetType == sourceType) {
712712
// Update type when writing number to number and bool to bool
713713
llvm::Value *typePtr = m_builder.CreateStructGEP(m_valueDataType, targetPtr, 1);
714714
m_builder.CreateStore(m_builder.getInt32(static_cast<uint32_t>(mappedType)), typePtr);

0 commit comments

Comments
 (0)