mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
Remove use of find_len and len_from_list. Rename lenof to lengthof
This commit is contained in:
@@ -12,7 +12,7 @@ macro quicksort(list, cmp = null)
|
||||
{
|
||||
var $Type = $typeof(list);
|
||||
var $CmpType = $typeof(cmp);
|
||||
usz len = sort::len_from_list(list);
|
||||
usz len = lengthof(list);
|
||||
test_generic::sort{$Type, $CmpType}(list, 0, (isz)len - 1, cmp);
|
||||
}
|
||||
|
||||
@@ -70,7 +70,6 @@ entry:
|
||||
%tc = alloca %"int[]", align 8
|
||||
%list = alloca %"int[]", align 8
|
||||
%len = alloca i64, align 8
|
||||
%list9 = alloca %"int[]", align 8
|
||||
store %"int[]" zeroinitializer, ptr %literal, align 8
|
||||
%ptradd = getelementptr inbounds i8, ptr %literal, i64 16
|
||||
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %literal1, ptr align 4 @.__const, i32 8, i1 false)
|
||||
@@ -111,15 +110,14 @@ loop.body: ; preds = %loop.cond
|
||||
%ptroffset = getelementptr inbounds [16 x i8], ptr %12, i64 %13
|
||||
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %tc, ptr align 8 %ptroffset, i32 16, i1 false)
|
||||
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %list, ptr align 8 %tc, i32 16, i1 false)
|
||||
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %list9, ptr align 8 %list, i32 16, i1 false)
|
||||
%ptradd10 = getelementptr inbounds i8, ptr %list9, i64 8
|
||||
%14 = load i64, ptr %ptradd10, align 8
|
||||
%ptradd9 = getelementptr inbounds i8, ptr %list, i64 8
|
||||
%14 = load i64, ptr %ptradd9, align 8
|
||||
store i64 %14, ptr %len, align 8
|
||||
%15 = load i64, ptr %len, align 8
|
||||
%sub = sub i64 %15, 1
|
||||
%lo = load ptr, ptr %list, align 8
|
||||
%ptradd11 = getelementptr inbounds i8, ptr %list, i64 8
|
||||
%hi = load i64, ptr %ptradd11, align 8
|
||||
%ptradd10 = getelementptr inbounds i8, ptr %list, i64 8
|
||||
%hi = load i64, ptr %ptradd10, align 8
|
||||
call void @"test_generic$sa$int$fn$int$int$$int$$.sort"(ptr %lo, i64 %hi, i64 0, i64 %sub, ptr @sort_test.cmp_int_value)
|
||||
%16 = load i64, ptr %.anon, align 8
|
||||
%addnuw = add nuw i64 %16, 1
|
||||
@@ -130,7 +128,6 @@ loop.exit: ; preds = %loop.cond
|
||||
ret void
|
||||
}
|
||||
|
||||
; Function Attrs:
|
||||
define void @sort_test.quicksort_with_value2() #0 {
|
||||
entry:
|
||||
%tcases = alloca %"int[][]", align 8
|
||||
@@ -143,7 +140,6 @@ entry:
|
||||
%tc = alloca %"int[]", align 8
|
||||
%list = alloca %"int[]", align 8
|
||||
%len = alloca i64, align 8
|
||||
%list9 = alloca %"int[]", align 8
|
||||
store %"int[]" zeroinitializer, ptr %literal, align 8
|
||||
%ptradd = getelementptr inbounds i8, ptr %literal, i64 16
|
||||
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %literal1, ptr align 4 @.__const.4, i32 8, i1 false)
|
||||
@@ -184,15 +180,14 @@ loop.body: ; preds = %loop.cond
|
||||
%ptroffset = getelementptr inbounds [16 x i8], ptr %12, i64 %13
|
||||
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %tc, ptr align 8 %ptroffset, i32 16, i1 false)
|
||||
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %list, ptr align 8 %tc, i32 16, i1 false)
|
||||
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %list9, ptr align 8 %list, i32 16, i1 false)
|
||||
%ptradd10 = getelementptr inbounds i8, ptr %list9, i64 8
|
||||
%14 = load i64, ptr %ptradd10, align 8
|
||||
%ptradd9 = getelementptr inbounds i8, ptr %list, i64 8
|
||||
%14 = load i64, ptr %ptradd9, align 8
|
||||
store i64 %14, ptr %len, align 8
|
||||
%15 = load i64, ptr %len, align 8
|
||||
%sub = sub i64 %15, 1
|
||||
%lo = load ptr, ptr %list, align 8
|
||||
%ptradd11 = getelementptr inbounds i8, ptr %list, i64 8
|
||||
%hi = load i64, ptr %ptradd11, align 8
|
||||
%ptradd10 = getelementptr inbounds i8, ptr %list, i64 8
|
||||
%hi = load i64, ptr %ptradd10, align 8
|
||||
call void @"test_generic$sa$int$fn$int$int$$int$$.sort"(ptr %lo, i64 %hi, i64 0, i64 %sub, ptr @sort_test.cmp_int_value2)
|
||||
%16 = load i64, ptr %.anon, align 8
|
||||
%addnuw = add nuw i64 %16, 1
|
||||
|
||||
@@ -8,13 +8,13 @@ fn void lenof_test() @test
|
||||
l.push(123);
|
||||
l.push(222);
|
||||
l.push(111);
|
||||
test::eq(lenof(l), 3);
|
||||
test::eq(lengthof(l), 3);
|
||||
int[] x = { 1, 2 };
|
||||
test::eq(lenof(x), 2);
|
||||
test::eq(lengthof(x), 2);
|
||||
l.push(111);
|
||||
test::eq(lenof(l), 4);
|
||||
assert(!$defined(lenof(1)));
|
||||
assert($defined(lenof(x)));
|
||||
test::eq(lengthof(l), 4);
|
||||
assert(!$defined(lengthof(1)));
|
||||
assert($defined(lengthof(x)));
|
||||
int* zz;
|
||||
assert(!$defined(lenof(zz)));
|
||||
assert(!$defined(lengthof(zz)));
|
||||
}
|
||||
@@ -120,7 +120,7 @@ fn int[] to_ints(TestL l) => @map(tmem, l.array_view(), fn int(Test x) => x.test
|
||||
import std::core::array @public;
|
||||
macro @map(Allocator alloc, array, operation)
|
||||
{
|
||||
var res = allocator::alloc_array(alloc, $typeof(operation).returns, array::find_len(array));
|
||||
var res = allocator::alloc_array(alloc, $typeof(operation).returns, lengthof(array));
|
||||
foreach (i, val : array) res[i] = operation(val);
|
||||
return res;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user