big optimization round

This commit is contained in:
sergeych committed 2025-11-10 22:14:21 +01:00
1 parent 029fde2883
commit 38c1b3c209
39 files changed
+1914 -143

No files matched your search

@@ -0,0 +1,20 @@
package net.sergeych.lyng
import net.sergeych.lyng.obj.Obj
actual object ArgBuilderProvider {
actual fun acquire(): ArgsBuilder = WasmArgsBuilder()
}
private class WasmArgsBuilder : ArgsBuilder {
private var buf: MutableList<Obj> = ArrayList()
override fun reset(expectedSize: Int) {
buf = ArrayList(expectedSize.coerceAtLeast(0))
}
override fun add(v: Obj) { buf.add(v) }
override fun addAll(vs: List<Obj>) { if (vs.isNotEmpty()) buf.addAll(vs) }
override fun build(tailBlockMode: Boolean): Arguments = Arguments(buf.toList(), tailBlockMode)
override fun release() { /* no-op */ }
}
@@ -0,0 +1,19 @@
package net.sergeych.lyng
actual object PerfDefaults {
actual val LOCAL_SLOT_PIC: Boolean = true
actual val EMIT_FAST_LOCAL_REFS: Boolean = true
actual val ARG_BUILDER: Boolean = true
actual val SKIP_ARGS_ON_NULL_RECEIVER: Boolean = true
actual val SCOPE_POOL: Boolean = false
actual val FIELD_PIC: Boolean = true
actual val METHOD_PIC: Boolean = true
actual val PIC_DEBUG_COUNTERS: Boolean = false
actual val PRIMITIVE_FASTOPS: Boolean = true
// Conservative default for non-JVM until validated
actual val RVAL_FASTPATH: Boolean = false
}