Avatar for the ArkScript-lang user
ArkScript-lang
Ark
BlogDocsChangelog

Optimize non-tailrec recursive function calls

#561Merged
Comparing
opti/self-calls
(
804553f
) with
dev
(
4f99b4e
)
CodSpeed Performance Gauge
+21%
Improvement
7
Untouched
10

Benchmarks

17 total
fibonacci
tests/benchmarks/main.cpp
CodSpeed Performance Gauge
+21%
33.6 ms27.8 ms
ackermann
tests/benchmarks/main.cpp
CodSpeed Performance Gauge
+12%
347.2 ms309.9 ms
binary_trees
tests/benchmarks/main.cpp
CodSpeed Performance Gauge
+9%
5.1 s4.7 s
create_closure
tests/benchmarks/main.cpp
CodSpeed Performance Gauge
+7%
4.8 ms4.5 ms
quicksort
tests/benchmarks/main.cpp
CodSpeed Performance Gauge
+4%
1.1 ms1.1 ms
create_list
tests/benchmarks/main.cpp
CodSpeed Performance Gauge
+2%
6.7 ms6.6 ms
n_queens
tests/benchmarks/main.cpp
CodSpeed Performance Gauge
+2%
113.3 ms110.8 ms
Welder - Simple - 39 nodes[0]
Welder - Simple - 39 nodes[
CodSpeed Performance Gauge
0%
928.3 µs924.8 µs
New parser - Medium - 83 nodes[1]
New parser - Medium - 83 nodes[
CodSpeed Performance Gauge
0%
853.5 µs851.5 µs
New parser - Big - 665 nodes[2]
New parser - Big - 665 nodes[
CodSpeed Performance Gauge
0%
9.7 ms9.6 ms
Welder - Big - 665 nodes[2]
Welder - Big - 665 nodes[
CodSpeed Performance Gauge
0%
34.2 ms34.1 ms
New parser - Bigger[3]
New parser - Bigger[
CodSpeed Performance Gauge
0%
39.2 ms39.2 ms
Welder - Bigger[3]
Welder - Bigger[
CodSpeed Performance Gauge
0%
63 ms63 ms
for_sum
tests/benchmarks/main.cpp
CodSpeed Performance Gauge
0%
977.2 ms977.2 ms
builtins
tests/benchmarks/main.cpp
CodSpeed Performance Gauge
0%
3.7 ms3.7 ms
New parser - Simple - 39 nodes[0]
New parser - Simple - 39 nodes[
CodSpeed Performance Gauge
0%
336.1 µs336.2 µs
Welder - Medium - 83 nodes[1]
Welder - Medium - 83 nodes[
CodSpeed Performance Gauge
0%
1.8 ms1.8 ms

Commits

Click on a commit to change the comparison range
Base
dev
4f99b4e
+21.04%
feat(compiler, vm): new GET_CURRENT_PAGE_ADDRESS instruction and CALL_CURRENT_PAGE super instruction to avoid a local variable lookup when performing a recursive non-tail call
804553f
7 months ago
by SuperFola
© 2026 CodSpeed Technology
Home Terms Privacy Docs