diff options
| author | Nic Gaffney <gaffney_nic@protonmail.com> | 2025-10-23 13:32:11 -0500 |
|---|---|---|
| committer | Nic Gaffney <gaffney_nic@protonmail.com> | 2025-10-23 13:32:11 -0500 |
| commit | d7e8440accbcc4abea96531264addbc9ee627a07 (patch) | |
| tree | 5177af4c37aadb96ba754b434aaefb9bced8d614 | |
| parent | b888a221f832fd378db9e22f10155146c4fa4c5a (diff) | |
| download | sloth-struct.tar.gz | |
cleanupstruct
| -rw-r--r-- | output | 425 | ||||
| -rw-r--r-- | test.sloth | 10 |
2 files changed, 0 insertions, 435 deletions
@@ -1,425 +0,0 @@ -declare void @print(ptr %0) -declare ptr @readln() -declare ptr @filer(ptr %0) -declare void @curshide() -declare void @cursshow() -declare i32 @wait(i32 %0) -declare i32 @slen(ptr %0) -declare i32 @parse_int(ptr %0) -declare void @termpos(i32 %0, i32 %1) -declare i32 @as_int(float %0) -declare float @as_float(i32 %0) -declare ptr @istr(i32 %0) -declare i32 @system(ptr %0) -declare i1 @sequals(ptr %0, ptr %1) -declare void @termclear() -declare i32 @randGen(i32 %0, i32 %1) -declare i32 @serversock(i32 %0, ptr %1, i32 %2) -declare i32 @clientsock(i32 %0, ptr %1) -declare void @closesock(i32 %0, i1 %1) -declare void @sendsock(ptr %0, i32 %1) -declare ptr @recvsock(i32 %0) -define i32 @abs(i32 %0) { -entrypoint: - %x = alloca i32, align 4 - store i32 %0, ptr %x, align 4 - %1 = load i32, ptr %x, align 4 - %lt = icmp slt i32 %1, 0 - br i1 %lt, label %then, label %else - -then: ; preds = %entrypoint - %2 = load i32, ptr %x, align 4 - %neg = sub i32 0, %2 - ret i32 %neg - br label %continue - -else: ; preds = %entrypoint - br label %continue - -continue: ; preds = %else, %then - %3 = load i32, ptr %x, align 4 - ret i32 %3 -} -define float @fabs(float %0) { -entrypoint: - %x = alloca float, align 4 - store float %0, ptr %x, align 4 - %1 = load float, ptr %x, align 4 - %lt = fcmp olt float %1, 0.000000e+00 - br i1 %lt, label %then, label %else - -then: ; preds = %entrypoint - %2 = load float, ptr %x, align 4 - %neg = fneg float %2 - ret float %neg - br label %continue - -else: ; preds = %entrypoint - br label %continue - -continue: ; preds = %else, %then - %3 = load float, ptr %x, align 4 - ret float %3 -} -define i32 @max(i32 %0, i32 %1) { -entrypoint: - %y = alloca i32, align 4 - %x = alloca i32, align 4 - store i32 %0, ptr %x, align 4 - store i32 %1, ptr %y, align 4 - %2 = load i32, ptr %x, align 4 - %3 = load i32, ptr %y, align 4 - %gt = icmp sgt i32 %2, %3 - br i1 %gt, label %then, label %else - -then: ; preds = %entrypoint - %4 = load i32, ptr %x, align 4 - ret i32 %4 - br label %continue - -else: ; preds = %entrypoint - br label %continue - -continue: ; preds = %else, %then - %5 = load i32, ptr %y, align 4 - ret i32 %5 -} -define i32 @min(i32 %0, i32 %1) { -entrypoint: - %y = alloca i32, align 4 - %x = alloca i32, align 4 - store i32 %0, ptr %x, align 4 - store i32 %1, ptr %y, align 4 - %2 = load i32, ptr %x, align 4 - %3 = load i32, ptr %y, align 4 - %lt = icmp slt i32 %2, %3 - br i1 %lt, label %then, label %else - -then: ; preds = %entrypoint - %4 = load i32, ptr %x, align 4 - ret i32 %4 - br label %continue - -else: ; preds = %entrypoint - br label %continue - -continue: ; preds = %else, %then - %5 = load i32, ptr %y, align 4 - ret i32 %5 -} -define float @fmax(float %0, float %1) { -entrypoint: - %y = alloca float, align 4 - %x = alloca float, align 4 - store float %0, ptr %x, align 4 - store float %1, ptr %y, align 4 - %2 = load float, ptr %x, align 4 - %3 = load float, ptr %y, align 4 - %gt = fcmp ogt float %2, %3 - br i1 %gt, label %then, label %else - -then: ; preds = %entrypoint - %4 = load float, ptr %x, align 4 - ret float %4 - br label %continue - -else: ; preds = %entrypoint - br label %continue - -continue: ; preds = %else, %then - %5 = load float, ptr %y, align 4 - ret float %5 -} -define float @fmin(float %0, float %1) { -entrypoint: - %y = alloca float, align 4 - %x = alloca float, align 4 - store float %0, ptr %x, align 4 - store float %1, ptr %y, align 4 - %2 = load float, ptr %x, align 4 - %3 = load float, ptr %y, align 4 - %lt = fcmp olt float %2, %3 - br i1 %lt, label %then, label %else - -then: ; preds = %entrypoint - %4 = load float, ptr %x, align 4 - ret float %4 - br label %continue - -else: ; preds = %entrypoint - br label %continue - -continue: ; preds = %else, %then - %5 = load float, ptr %y, align 4 - ret float %5 -} -define float @pow(float %0, float %1) { -entrypoint: - %power = alloca float, align 4 - %y = alloca float, align 4 - %x = alloca float, align 4 - store float %0, ptr %x, align 4 - store float %1, ptr %y, align 4 - %2 = load float, ptr %x, align 4 - store float %2, ptr %power, align 4 - br label %loop - -loop: ; preds = %"loop body", %entrypoint - %3 = load float, ptr %y, align 4 - %gt = fcmp ogt float %3, 1.000000e+00 - br i1 %gt, label %"loop body", label %"after loop" - -"loop body": ; preds = %loop - %4 = load float, ptr %power, align 4 - %5 = load float, ptr %x, align 4 - %mul = fmul float %4, %5 - store float %mul, ptr %x, align 4 - %6 = load float, ptr %y, align 4 - %sub = fsub float %6, 1.000000e+00 - store float %sub, ptr %y, align 4 - br label %loop - -"after loop": ; preds = %loop - %7 = load float, ptr %x, align 4 - ret float %7 -} -define i32 @floor(float %0) { -entrypoint: - %x = alloca float, align 4 - store float %0, ptr %x, align 4 - %1 = load float, ptr %x, align 4 - %2 = load float, ptr %x, align 4 - %mod = frem float %2, 1.000000e+00 - %3 = call float @fabs(float %mod) - %sub = fsub float %1, %3 - %4 = call i32 @as_int(float %sub) - ret i32 %4 -} -define i32 @ceil(float %0) { -entrypoint: - %x = alloca float, align 4 - store float %0, ptr %x, align 4 - %1 = load float, ptr %x, align 4 - %lt = fcmp olt float %1, 0.000000e+00 - br i1 %lt, label %then, label %else - -then: ; preds = %entrypoint - %2 = load float, ptr %x, align 4 - %3 = call i32 @floor(float %2) - %sub = sub i32 %3, 1 - ret i32 %sub - br label %continue - -else: ; preds = %entrypoint - br label %continue - -continue: ; preds = %else, %then - %4 = load float, ptr %x, align 4 - %5 = call i32 @floor(float %4) - %add = add i32 %5, 1 - ret i32 %add -} -define i32 @round(float %0) { -entrypoint: - %ret = alloca i32, align 4 - %x = alloca float, align 4 - store float %0, ptr %x, align 4 - %1 = load float, ptr %x, align 4 - %2 = call i32 @floor(float %1) - store i32 %2, ptr %ret, align 4 - %3 = load float, ptr %x, align 4 - %mod = frem float %3, 1.000000e+00 - %4 = call float @fabs(float %mod) - %gt = fcmp oge float %4, 5.000000e-01 - br i1 %gt, label %then, label %else - -then: ; preds = %entrypoint - %5 = load float, ptr %x, align 4 - %6 = call i32 @ceil(float %5) - store i32 %6, ptr %ret, align 4 - br label %continue - -else: ; preds = %entrypoint - br label %continue - -continue: ; preds = %else, %then - %7 = load i32, ptr %ret, align 4 - ret i32 %7 -} -define void @println(ptr %0) { -entrypoint: - %str = alloca ptr, align 8 - store ptr %0, ptr %str, align 8 - %1 = load ptr, ptr %str, align 8 - call void @print(ptr %1) - %str1 = tail call ptr @malloc(i32 mul (i32 ptrtoint (ptr getelementptr (i8, ptr null, i32 1) to i32), i32 7)) - store [2 x i8] c"\0A\00", ptr %str1, align 1 - call void @print(ptr %str1) - ret void -} -define void @printMan(float %0, float %1, float %2, float %3, i32 %4, i32 %5) { -entrypoint: - %temp = alloca float, align 4 - %count = alloca float, align 4 - %zImg = alloca float, align 4 - %zReal = alloca float, align 4 - %cImg = alloca float, align 4 - %cReal = alloca float, align 4 - %y = alloca i32, align 4 - %x = alloca i32, align 4 - %plane = alloca float, align 4 - %maxIter = alloca float, align 4 - %maxVal = alloca float, align 4 - %size = alloca float, align 4 - store float %0, ptr %size, align 4 - store float %1, ptr %maxVal, align 4 - store float %2, ptr %maxIter, align 4 - store float %3, ptr %plane, align 4 - store i32 %4, ptr %x, align 4 - store i32 %5, ptr %y, align 4 - %6 = load i32, ptr %x, align 4 - %7 = call float @as_float(i32 %6) - %8 = load float, ptr %plane, align 4 - %mul = fmul float %7, %8 - %9 = load float, ptr %size, align 4 - %div = fdiv float %mul, %9 - %sub = fsub float %div, 2.000000e+00 - store float %sub, ptr %cReal, align 4 - %10 = load i32, ptr %y, align 4 - %11 = call float @as_float(i32 %10) - %12 = load float, ptr %plane, align 4 - %mul1 = fmul float %11, %12 - %13 = load float, ptr %size, align 4 - %div2 = fdiv float %mul1, %13 - %sub3 = fsub float %div2, 2.000000e+00 - store float %sub3, ptr %cImg, align 4 - store float 0.000000e+00, ptr %zReal, align 4 - store float 0.000000e+00, ptr %zImg, align 4 - store float 0.000000e+00, ptr %count, align 4 - br label %loop - -loop: ; preds = %continue, %entrypoint - %14 = load float, ptr %zReal, align 4 - %15 = load float, ptr %zReal, align 4 - %mul4 = fmul float %14, %15 - %16 = load float, ptr %zImg, align 4 - %17 = load float, ptr %zImg, align 4 - %mul5 = fmul float %16, %17 - %add = fadd float %mul4, %mul5 - %18 = load float, ptr %maxVal, align 4 - %le = fcmp ole float %add, %18 - %19 = load float, ptr %count, align 4 - %20 = load float, ptr %maxIter, align 4 - %lt = fcmp olt float %19, %20 - %logand = and i1 %le, %lt - br i1 %logand, label %"loop body", label %"after loop" - -"loop body": ; preds = %loop - %21 = load float, ptr %zReal, align 4 - %22 = load float, ptr %zReal, align 4 - %mul6 = fmul float %21, %22 - %23 = load float, ptr %zImg, align 4 - %24 = load float, ptr %zImg, align 4 - %mul7 = fmul float %23, %24 - %sub8 = fsub float %mul6, %mul7 - %25 = load float, ptr %cReal, align 4 - %add9 = fadd float %sub8, %25 - store float %add9, ptr %temp, align 4 - %26 = load float, ptr %zReal, align 4 - %mul10 = fmul float 2.000000e+00, %26 - %27 = load float, ptr %zImg, align 4 - %mul11 = fmul float %mul10, %27 - %28 = load float, ptr %cImg, align 4 - %add12 = fadd float %mul11, %28 - store float %add12, ptr %zImg, align 4 - %29 = load float, ptr %temp, align 4 - store float %29, ptr %zReal, align 4 - %30 = load float, ptr %count, align 4 - %add13 = fadd float %30, 1.000000e+00 - store float %add13, ptr %count, align 4 - %31 = load float, ptr %count, align 4 - %32 = call i32 @as_int(float %31) - %33 = load float, ptr %maxIter, align 4 - %34 = call i32 @as_int(float %33) - %35 = icmp eq i32 %32, %34 - br i1 %35, label %then, label %else - -"after loop": ; preds = %loop - ret void - -then: ; preds = %"loop body" - %36 = load i32, ptr %x, align 4 - %37 = load i32, ptr %y, align 4 - call void @termpos(i32 %36, i32 %37) - %str = tail call ptr @malloc(i32 mul (i32 ptrtoint (ptr getelementptr (i8, ptr null, i32 1) to i32), i32 9)) - store [4 x i8] c"\E2\96\88\00", ptr %str, align 1 - call void @print(ptr %str) - br label %continue - -else: ; preds = %"loop body" - br label %continue - -continue: ; preds = %else, %then - br label %loop -} -define i32 @main() { -entrypoint: - %range4 = alloca { i32, i32 }, align 8 - %range = alloca { i32, i32 }, align 8 - %plane = alloca float, align 4 - %maxIter = alloca float, align 4 - %maxVal = alloca float, align 4 - %size = alloca float, align 4 - store float 1.000000e+03, ptr %size, align 4 - store float 4.000000e+00, ptr %maxVal, align 4 - store float 5.000000e+01, ptr %maxIter, align 4 - store float 4.000000e+00, ptr %plane, align 4 - %0 = load float, ptr %size, align 4 - %1 = call i32 @as_int(float %0) - store { i32, i32 } { i32 0, i32 %1 }, ptr %range, align 4 - %current = getelementptr inbounds { i32, i32 }, ptr %range, i32 0, i32 0 - %end = getelementptr inbounds { i32, i32 }, ptr %range, i32 0, i32 1 - br label %loop - -loop: ; preds = %"after loop3", %entrypoint - %2 = load i32, ptr %current, align 4 - %3 = load i32, ptr %end, align 4 - %4 = icmp slt i32 %2, %3 - br i1 %4, label %"loop body", label %"after loop" - -"loop body": ; preds = %loop - %5 = load float, ptr %size, align 4 - %6 = call i32 @as_int(float %5) - store { i32, i32 } { i32 0, i32 %6 }, ptr %range4, align 4 - %current5 = getelementptr inbounds { i32, i32 }, ptr %range4, i32 0, i32 0 - %end6 = getelementptr inbounds { i32, i32 }, ptr %range4, i32 0, i32 1 - br label %loop1 - -"after loop": ; preds = %loop - ret i32 0 - -loop1: ; preds = %"loop body2", %"loop body" - %7 = load i32, ptr %current5, align 4 - %8 = load i32, ptr %end6, align 4 - %9 = icmp slt i32 %7, %8 - br i1 %9, label %"loop body2", label %"after loop3" - -"loop body2": ; preds = %loop1 - %10 = load float, ptr %size, align 4 - %11 = load float, ptr %maxVal, align 4 - %12 = load float, ptr %maxIter, align 4 - %13 = load float, ptr %plane, align 4 - %14 = load i32, ptr %current, align 4 - %15 = load i32, ptr %current5, align 4 - call void @printMan(float %10, float %11, float %12, float %13, i32 %14, i32 %15) - %16 = load i32, ptr %current5, align 4 - %17 = add i32 %16, 1 - store i32 %17, ptr %current5, align 4 - br label %loop1 - -"after loop3": ; preds = %loop1 - %18 = load i32, ptr %current, align 4 - %19 = add i32 %18, 1 - store i32 %19, ptr %current, align 4 - br label %loop -} diff --git a/test.sloth b/test.sloth deleted file mode 100644 index be3b1de..0000000 --- a/test.sloth +++ /dev/null @@ -1,10 +0,0 @@ - -fn getStr() Bool -{ - return true; -} - -fn main() Int { - val poggers: Int = getStr(); - return 0; -} |
