Skip to content

Instantly share code, notes, and snippets.

@dominictarr
Created April 15, 2020 07:16
Show Gist options
  • Save dominictarr/ff00c27a6ce48c23bc36dfb0a25c5496 to your computer and use it in GitHub Desktop.
Save dominictarr/ff00c27a6ce48c23bc36dfb0a25c5496 to your computer and use it in GitHub Desktop.
(module
;; an operation defined inside a macro
(def op_mac (mac (a b) (block
&[i32_load (mod a 1000)]
)))
;;a function that contains that macro
(def op_fun (fun (a b) (op_mac a b) ))
(def N 10000000)
;;do the function call inside a loop
(export calls (fun () {block
(def i 0)
(loop
(lt i N)
(block
(def i (add i 1))
(op_fun i 10) ;;call a small function
)
)
}))
;;inline the op into the loop (so no calls)
(export inlines (fun () {block
(def i 0)
(loop
(lt i N)
(block
(def i (add i 1))
(op_mac i 0)
)
)
}))
;; macro to inline N ops
(def unroll (mac R [n op]
(if n
(block
(def n (sub n 1))
&(block (R n op) op)
)
op
)))
;; a loop with the op inlined in batches of 100
(export unrolled (fun () {block
(def i 0)
(loop
(lt i N)
(block
(def i (add i 100))
;;(op_mac)
(unroll 100 (op_mac i 0))
0
)
)
}))
)
(module (memory (export "memory")
1)
(global $FREE (mut i32) (i32.const 0))
(func (result i32)
(local $i i32)
(local $batch i32)
(local $1 i32)
(local.set $i (i32.const 0))
(local.set $batch (i32.const 1000))
(loop (if
(i32.lt_s (local.get $i) (i32.const 10000000))
(then
(local.set $i (i32.add (local.get $i) (i32.const 100)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(i32.load (i32.rem_s (local.get $i) (i32.const 1000)))
(local.set $1 (i32.const 0))
(br 1))))
(local.get $1)
)
(func (result i32)
(local $i i32)
(local $1 i32)
(local.set $i (i32.const 0))
(loop (if
(i32.lt_s (local.get $i) (i32.const 10000000))
(then
(local.set $i (i32.add (local.get $i) (i32.const 1)))
(local.set
$1 (i32.load (i32.rem_s (local.get $i) (i32.const 1000))))
(br 1))))
(local.get $1))
(func (param $a i32) (param $b i32) (result i32)
(i32.load (i32.rem_s (local.get $a) (i32.const 1000))))
(func (result i32)
(local $i i32)
(local $1 i32)
(local.set $i (i32.const 0))
(loop (if
(i32.lt_s (local.get $i) (i32.const 10000000))
(then
(local.set $i (i32.add (local.get $i) (i32.const 1)))
(local.set $1
(call 2
(local.get $i)
(i32.const 10)))
(br 1))))
(local.get $1))
(export "calls" (func 3))
(export "inlines" (func 1))
(export "unrolled" (func 0))
)
@manslie3
Copy link

VoIP facilitates advanced collaboration through a variety of tools that enhance remote work capabilities. Video conferencing features, for example, not only enable face-to-face meetings but also support screen sharing and virtual whiteboards, fostering interactive discussions and real-time collaboration on documents and presentations https://onecloudnetworks.com/voip-for-car-dealerships/. These tools are essential for remote teams, allowing them to maintain productivity and engagement regardless of their physical location. Additionally, VoIP's integration with collaboration platforms like Microsoft Teams and Slack further enhances teamwork by centralizing communication channels and project management tools in one unified interface.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment