compiler: implement clear builtin for maps

This commit is contained in:
Ayke van Laethem
2023-07-07 15:47:49 +02:00
committed by Ron Evans
parent a2f886a67a
commit f1e25a18d2
7 changed files with 64 additions and 0 deletions
+4
View File
@@ -59,3 +59,7 @@ func clearSlice(s []int) {
func clearZeroSizedSlice(s []struct{}) {
clear(s)
}
func clearMap(m map[string]int) {
clear(m)
}
+9
View File
@@ -147,6 +147,15 @@ entry:
ret void
}
; Function Attrs: nounwind
define hidden void @main.clearMap(ptr dereferenceable_or_null(40) %m, ptr %context) unnamed_addr #2 {
entry:
call void @runtime.hashmapClear(ptr %m, ptr undef) #5
ret void
}
declare void @runtime.hashmapClear(ptr dereferenceable_or_null(40), ptr) #1
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i32 @llvm.smin.i32(i32, i32) #4