@@ -6902,32 +6902,13 @@ namespace LCompilers {
6902
6902
}
6903
6903
6904
6904
void LLVMSetLinearProbing::set_clear (llvm::Value* set, llvm::Module* module , ASR::ttype_t * el_asr_type) {
6905
- get_builder0 ();
6906
- llvm::Value* occupancy_ptr = get_pointer_to_occupancy (set);
6907
- llvm::Value* capacity_ptr = get_pointer_to_capacity (set);
6908
- llvm::Value* llvm_zero = llvm::ConstantInt::get (llvm::Type::getInt32Ty (context), llvm::APInt (32 , 0 ));
6909
- LLVM::CreateStore (*builder, llvm_zero, occupancy_ptr);
6910
- LLVM::CreateStore (*builder, llvm_zero, capacity_ptr);
6911
6905
6912
6906
llvm::Value* el_list = get_el_list (set);
6913
- llvm::DataLayout data_layout (module );
6914
- size_t mask_size = data_layout.getTypeAllocSize (llvm::Type::getInt8Ty (context));
6915
- llvm::Value* llvm_mask_size = llvm::ConstantInt::get (llvm::Type::getInt32Ty (context),
6916
- llvm::APInt (32 , mask_size));
6917
- llvm::Value* new_el_mask = LLVM::lfortran_calloc (context, *module , *builder, llvm_zero,
6918
- llvm_mask_size);
6919
- std::string el_type_code = ASRUtils::get_type_code (el_asr_type);
6920
- llvm::Type* el_llvm_type = std::get<2 >(typecode2settype[el_type_code]);
6921
- int32_t el_type_size = std::get<1 >(typecode2settype[el_type_code]);
6922
-
6923
- llvm::Value* new_el_list = builder0.CreateAlloca (llvm_utils->list_api ->get_list_type (el_llvm_type,
6924
- el_type_code, el_type_size), nullptr );
6925
- llvm_utils->list_api ->list_init (el_type_code, el_list, *module , llvm_zero, llvm_zero);
6926
6907
6927
6908
llvm_utils->list_api ->free_data (el_list, *module );
6928
6909
LLVM::lfortran_free (context, *module , *builder, LLVM::CreateLoad (*builder, get_pointer_to_mask (set)));
6929
- LLVM::CreateStore (*builder, LLVM::CreateLoad (*builder, new_el_list), el_list);
6930
- LLVM::CreateStore (*builder, new_el_mask, get_pointer_to_mask (set) );
6910
+
6911
+ set_init ( ASRUtils::get_type_code (el_asr_type), set, module , 0 );
6931
6912
}
6932
6913
6933
6914
void LLVMSetSeparateChaining::set_clear (llvm::Value* set, llvm::Module* module , ASR::ttype_t * el_asr_type) {
0 commit comments