Skip to content

Commit 634508d

Browse files
committed
LLVMCodeBuilder: Rewrite createInitialValueStore()
1 parent ebef1af commit 634508d

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

src/dev/engine/internal/llvm/llvmcodebuilder.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -523,14 +523,14 @@ std::shared_ptr<ExecutableCode> LLVMCodeBuilder::finalize()
523523
// If there's enough space, use the allocated memory
524524
m_builder.SetInsertPoint(ifBlock);
525525
llvm::Value *itemPtr = getListItem(listPtr, size, func);
526-
createInitialValueStore(arg.second, itemPtr, type);
526+
createReusedValueStore(arg.second, itemPtr, type);
527527
m_builder.CreateStore(m_builder.CreateAdd(size, m_builder.getInt64(1)), listPtr.sizePtr);
528528
m_builder.CreateBr(nextBlock);
529529

530530
// Otherwise call appendEmpty()
531531
m_builder.SetInsertPoint(elseBlock);
532532
itemPtr = m_builder.CreateCall(resolve_list_append_empty(), listPtr.ptr);
533-
createInitialValueStore(arg.second, itemPtr, type);
533+
createReusedValueStore(arg.second, itemPtr, type);
534534
m_builder.CreateStore(m_builder.getInt1(true), listPtr.dataPtrDirty);
535535
m_builder.CreateBr(nextBlock);
536536

@@ -555,8 +555,8 @@ std::shared_ptr<ExecutableCode> LLVMCodeBuilder::finalize()
555555
// Insert
556556
llvm::Value *index = m_builder.CreateFPToUI(castValue(indexArg.second, indexArg.first), m_builder.getInt64Ty());
557557
llvm::Value *itemPtr = m_builder.CreateCall(resolve_list_insert_empty(), { listPtr.ptr, index });
558-
createInitialValueStore(valueArg.second, itemPtr, type);
559558
// TODO: Implement list type prediction
559+
createReusedValueStore(valueArg.second, itemPtr, type);
560560
break;
561561
}
562562

src/dev/engine/internal/llvm/llvmcodebuilder.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ class LLVMCodeBuilder : public ICodeBuilder
121121
LLVMInstruction &createOp(LLVMInstruction::Type type, Compiler::StaticType retType, const std::vector<Compiler::StaticType> &argTypes, size_t argCount);
122122

123123
void createValueStore(LLVMRegisterPtr reg, llvm::Value *targetPtr, Compiler::StaticType sourceType, Compiler::StaticType targetType);
124-
void createInitialValueStore(LLVMRegisterPtr reg, llvm::Value *targetPtr, Compiler::StaticType sourceType);
124+
void createReusedValueStore(LLVMRegisterPtr reg, llvm::Value *targetPtr, Compiler::StaticType sourceType);
125125
void createValueCopy(llvm::Value *source, llvm::Value *target);
126126
void copyStructField(llvm::Value *source, llvm::Value *target, int index, llvm::StructType *structType, llvm::Type *fieldType);
127127
llvm::Value *getListItem(const LLVMListPtr &listPtr, llvm::Value *index, llvm::Function *func);

0 commit comments

Comments
 (0)