Consider activation frame for stack height metering (#2)

* Charge a base cost for calling a function

* Added regression test for empty functions

* Satisfy clippy
This commit is contained in:
Alexander Theißen
2022-01-18 19:04:17 +02:00
committed by GitHub
parent 4e3e6b598a
commit 57da96fb50
13 changed files with 120 additions and 38 deletions
+8
View File
@@ -0,0 +1,8 @@
(module
(func (;0;)
call 0
)
(func (;1;) (export "main")
call 0
)
)
+3 -3
View File
@@ -6,8 +6,8 @@
(func $i32.add (export "i32.add") (param i32 i32) (result i32)
get_local 0
get_local 1
i32.add
get_local 1
i32.add
)
(func (param $arg i32)
(local $tmp i32)
@@ -15,7 +15,7 @@
global.get 0
i32.const 1
i32.add
tee_local $tmp
tee_local $tmp
global.set $counter
get_local $tmp
+1 -1
View File
@@ -3,7 +3,7 @@
(import "env" "memory" (memory 1 1))
(start $start)
(func $start (export "exported_start")
(func $start
(local i32)
)
(func (export "call")
+6 -6
View File
@@ -1,15 +1,15 @@
(module
(import "env" "foo" (func $foo))
(func (param i32)
get_local 0
i32.const 0
call $i32.add
drop
get_local 0
i32.const 0
call $i32.add
drop
)
(func $i32.add (export "i32.add") (param i32 i32) (result i32)
get_local 0
get_local 1
i32.add
get_local 1
i32.add
)
(table 10 anyfunc)