@scriptc/compiler 0.0.24 → 0.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ambient/scriptc-node-fallback.d.ts +15 -7
- package/dist/backend/cc.d.ts +3 -0
- package/dist/backend/cc.js +37 -4
- package/dist/backend/cc.js.map +1 -1
- package/dist/backend/emission/emit-exprs.js +81 -10
- package/dist/backend/emission/emit-exprs.js.map +1 -1
- package/dist/backend/emission/emitter.d.ts +14 -1
- package/dist/backend/emission/emitter.js +117 -11
- package/dist/backend/emission/emitter.js.map +1 -1
- package/dist/backend/emission/may-throw.js +11 -1
- package/dist/backend/emission/may-throw.js.map +1 -1
- package/dist/backend/ffi-callbacks.d.ts +11 -0
- package/dist/backend/ffi-callbacks.js +33 -0
- package/dist/backend/ffi-callbacks.js.map +1 -0
- package/dist/backend/llvm/classes.js +21 -21
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +7 -4
- package/dist/backend/llvm/dyn.js +145 -141
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +7 -1
- package/dist/backend/llvm/emitter.js +950 -300
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/shapes.d.ts +4 -0
- package/dist/backend/llvm/shapes.js +26 -24
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/unsupported.js +1 -1
- package/dist/backend/llvm/unsupported.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +2 -0
- package/dist/backend/llvm/walkers.js +50 -46
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/coverage/surface-manifest.js +1 -1
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +1 -1
- package/dist/diagnostics/diagnostic.js +3 -2
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/ffi/profile.d.ts +20 -2
- package/dist/ffi/profile.js +130 -6
- package/dist/ffi/profile.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +58 -22
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.js +17 -7
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +5 -0
- package/dist/frontend/lowering/lower-server.js +129 -37
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +8 -1
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +3 -2
- package/dist/frontend/lowering/surfaces.js +4 -3
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/npm.d.ts +16 -0
- package/dist/frontend/npm.js +257 -0
- package/dist/frontend/npm.js.map +1 -1
- package/dist/index.d.ts +7 -4
- package/dist/index.js +152 -5
- package/dist/index.js.map +1 -1
- package/dist/ir/nodes.d.ts +48 -13
- package/dist/ir/nodes.js +49 -7
- package/dist/ir/nodes.js.map +1 -1
- package/dist/ir/validate.js +10 -22
- package/dist/ir/validate.js.map +1 -1
- package/dist/wasi-paths.d.ts +5 -0
- package/dist/wasi-paths.js +22 -0
- package/dist/wasi-paths.js.map +1 -0
- package/package.json +2 -2
- package/surface-manifest.json +2 -2
|
@@ -5,6 +5,10 @@ export interface ShapeHost {
|
|
|
5
5
|
declare(decl: string): void;
|
|
6
6
|
/** Request the shared OOM abort helper (@sc_oom) — emitted once. */
|
|
7
7
|
needOom(): void;
|
|
8
|
+
/** The target C ABI's `size_t` / refcount integer type. */
|
|
9
|
+
readonly sizeType: "i32" | "i64";
|
|
10
|
+
/** Byte offset from an object pointer back to ScrCycHdr.color. */
|
|
11
|
+
readonly cycleColorOffset: number;
|
|
8
12
|
readonly tracedShapes: Set<string>;
|
|
9
13
|
readonly tracedUnions: Set<string>;
|
|
10
14
|
readonly recordsById: Map<string, IrRecordShape>;
|
|
@@ -479,12 +479,12 @@ export function arrNewCall(host, elem, capText) {
|
|
|
479
479
|
elem.kind === "regex" || // RegExp values: scr_regex_* adapters, no trace (no refs inside)
|
|
480
480
|
(elem.kind === "array" && traceAdapter(host, elem) !== null);
|
|
481
481
|
if (!useRef) {
|
|
482
|
-
host.declare(`declare ptr @scr_arr_new(i32,
|
|
483
|
-
return `call ptr @scr_arr_new(i32 ${elemKindNum(elem)},
|
|
482
|
+
host.declare(`declare ptr @scr_arr_new(i32, ${host.sizeType})`);
|
|
483
|
+
return `call ptr @scr_arr_new(i32 ${elemKindNum(elem)}, ${host.sizeType} ${capText})`;
|
|
484
484
|
}
|
|
485
485
|
const v = vAdapters(host, elem);
|
|
486
|
-
host.declare(`declare ptr @scr_arr_new_ref(ptr, ptr, ptr,
|
|
487
|
-
return `call ptr @scr_arr_new_ref(ptr ${v.retain}, ptr ${v.release}, ptr ${traceArg(host, elem)},
|
|
486
|
+
host.declare(`declare ptr @scr_arr_new_ref(ptr, ptr, ptr, ${host.sizeType})`);
|
|
487
|
+
return `call ptr @scr_arr_new_ref(ptr ${v.retain}, ptr ${v.release}, ptr ${traceArg(host, elem)}, ${host.sizeType} ${capText})`;
|
|
488
488
|
}
|
|
489
489
|
/* ── capture boxes ────────────────────────────────────────────────────── */
|
|
490
490
|
/** Box construction call text (boxNewC's dispatch): plain-kind boxes for
|
|
@@ -609,24 +609,26 @@ function rcMembers(shape) {
|
|
|
609
609
|
];
|
|
610
610
|
}
|
|
611
611
|
/** The immortal-skip + mark-live retain body shared by every shape. The
|
|
612
|
-
* cycle header sits
|
|
612
|
+
* cycle header sits before the object; `color` is at obj-16 on 64-bit
|
|
613
|
+
* targets and obj-12 on wasm32,
|
|
613
614
|
* so mark-live is one i32 store at obj-16 (scr_cyc_mark_live inlined —
|
|
614
615
|
* the runtime's is a static inline with no external symbol). */
|
|
615
|
-
function retainBody(fnName, traced) {
|
|
616
|
+
function retainBody(host, fnName, traced) {
|
|
617
|
+
const S = host.sizeType;
|
|
616
618
|
return [
|
|
617
619
|
`define internal ptr @${fnName}(ptr %o) ${FN_ATTRS} {`,
|
|
618
620
|
`entry:`,
|
|
619
621
|
` %isnull = icmp eq ptr %o, null`,
|
|
620
622
|
` br i1 %isnull, label %done, label %check`,
|
|
621
623
|
`check:`,
|
|
622
|
-
` %rc = load
|
|
623
|
-
` %imm = icmp eq
|
|
624
|
+
` %rc = load ${S}, ptr %o`,
|
|
625
|
+
` %imm = icmp eq ${S} %rc, -1`,
|
|
624
626
|
` br i1 %imm, label %done, label %inc`,
|
|
625
627
|
`inc:`,
|
|
626
|
-
` %n = add
|
|
627
|
-
` store
|
|
628
|
+
` %n = add ${S} %rc, 1`,
|
|
629
|
+
` store ${S} %n, ptr %o`,
|
|
628
630
|
...(traced
|
|
629
|
-
? [` %colorp = getelementptr i8, ptr %o,
|
|
631
|
+
? [` %colorp = getelementptr i8, ptr %o, ${S} -${host.cycleColorOffset}`, ` store i32 0, ptr %colorp ; mark live`]
|
|
630
632
|
: []),
|
|
631
633
|
` br label %done`,
|
|
632
634
|
`done:`,
|
|
@@ -653,7 +655,7 @@ export function emitRecordShapes(host, mod) {
|
|
|
653
655
|
const fieldTys = shape.fields.map((f) => llFieldType(f.type));
|
|
654
656
|
if (shape.indexValue)
|
|
655
657
|
fieldTys.push("ptr"); // the overflow ScrMap *
|
|
656
|
-
typeDefs.push(`%${struct} = type {
|
|
658
|
+
typeDefs.push(`%${struct} = type { ${host.sizeType}${fieldTys.length ? ", " + fieldTys.join(", ") : ""} } ` +
|
|
657
659
|
`; record ${shape.id} { ${shape.fields.map((f) => f.name).join("; ")}${shape.indexValue ? "; [key: string]" : ""} }`);
|
|
658
660
|
}
|
|
659
661
|
for (const shape of records) {
|
|
@@ -661,8 +663,8 @@ export function emitRecordShapes(host, mod) {
|
|
|
661
663
|
const traced = host.tracedShapes.has(`record:${shape.id}`);
|
|
662
664
|
const members = rcMembers(shape);
|
|
663
665
|
const refMembers = members.filter((m) => isRefCounted(m.type));
|
|
664
|
-
const sizeOf = `ptrtoint (ptr getelementptr (%${struct}, ptr null, i32 1) to
|
|
665
|
-
defs.push(...retainBody(mangleRecordRetain(shape.id), traced), ``);
|
|
666
|
+
const sizeOf = `ptrtoint (ptr getelementptr (%${struct}, ptr null, i32 1) to ${host.sizeType})`;
|
|
667
|
+
defs.push(...retainBody(host, mangleRecordRetain(shape.id), traced), ``);
|
|
666
668
|
// release: NULL-tolerant, immortal-skip; at rc == 0 release every
|
|
667
669
|
// refcounted member (runtime releases are NULL-tolerant) and free —
|
|
668
670
|
// traced shapes route through the collector (on_dead/on_release,
|
|
@@ -673,13 +675,13 @@ export function emitRecordShapes(host, mod) {
|
|
|
673
675
|
` %isnull = icmp eq ptr %o, null`,
|
|
674
676
|
` br i1 %isnull, label %done, label %check`,
|
|
675
677
|
`check:`,
|
|
676
|
-
` %rc = load
|
|
677
|
-
` %imm = icmp eq
|
|
678
|
+
` %rc = load ${host.sizeType}, ptr %o`,
|
|
679
|
+
` %imm = icmp eq ${host.sizeType} %rc, -1`,
|
|
678
680
|
` br i1 %imm, label %done, label %dec`,
|
|
679
681
|
`dec:`,
|
|
680
|
-
` %n = sub
|
|
681
|
-
` store
|
|
682
|
-
` %dead = icmp eq
|
|
682
|
+
` %n = sub ${host.sizeType} %rc, 1`,
|
|
683
|
+
` store ${host.sizeType} %n, ptr %o`,
|
|
684
|
+
` %dead = icmp eq ${host.sizeType} %n, 0`,
|
|
683
685
|
` br i1 %dead, label %free, label %${traced ? "root" : "done"}`,
|
|
684
686
|
`free:`,
|
|
685
687
|
];
|
|
@@ -712,15 +714,15 @@ export function emitRecordShapes(host, mod) {
|
|
|
712
714
|
`entry:`,
|
|
713
715
|
];
|
|
714
716
|
if (traced) {
|
|
715
|
-
host.declare(`declare ptr @scr_cyc_alloc(
|
|
716
|
-
nw.push(` %o = call ptr @scr_cyc_alloc(
|
|
717
|
+
host.declare(`declare ptr @scr_cyc_alloc(${host.sizeType}, ptr, ptr)`);
|
|
718
|
+
nw.push(` %o = call ptr @scr_cyc_alloc(${host.sizeType} ${sizeOf}, ptr @${mangleRecordTrace(shape.id)}, ptr @${mangleRecordGcFree(shape.id)})`);
|
|
717
719
|
}
|
|
718
720
|
else {
|
|
719
|
-
host.declare(`declare ptr @calloc(
|
|
721
|
+
host.declare(`declare ptr @calloc(${host.sizeType}, ${host.sizeType})`);
|
|
720
722
|
host.needOom();
|
|
721
|
-
nw.push(` %o = call ptr @calloc(
|
|
723
|
+
nw.push(` %o = call ptr @calloc(${host.sizeType} 1, ${host.sizeType} ${sizeOf})`, ` %isnull = icmp eq ptr %o, null`, ` br i1 %isnull, label %oom, label %ok`, `oom:`, ` call void @sc_oom()`, ` unreachable`, `ok:`);
|
|
722
724
|
}
|
|
723
|
-
nw.push(` store
|
|
725
|
+
nw.push(` store ${host.sizeType} 1, ptr %o`);
|
|
724
726
|
if (shape.indexValue) {
|
|
725
727
|
// The overflow map (string-keyed): value handling is type-directed
|
|
726
728
|
// exactly like emit-shapes.ts's overflowNewC.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shapes.js","sourceRoot":"","sources":["../../../src/backend/llvm/shapes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shapes.js","sourceRoot":"","sources":["../../../src/backend/llvm/shapes.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ export class LlvmUnsupportedError extends Error {
|
|
|
3
3
|
loc;
|
|
4
4
|
constructor(kind, loc) {
|
|
5
5
|
super(`the LLVM backend does not support this construct yet (${kind}); ` +
|
|
6
|
-
`build with the
|
|
6
|
+
`build with the debugging C backend (--backend c, or the native default's transparent fallback)`);
|
|
7
7
|
this.kind = kind;
|
|
8
8
|
this.loc = loc;
|
|
9
9
|
this.name = "LlvmUnsupportedError";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unsupported.js","sourceRoot":"","sources":["../../../src/backend/llvm/unsupported.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAElC;IACA;IAFX,YACW,IAAY,EACZ,GAAY;QAErB,KAAK,CACH,yDAAyD,IAAI,KAAK;YAChE,
|
|
1
|
+
{"version":3,"file":"unsupported.js","sourceRoot":"","sources":["../../../src/backend/llvm/unsupported.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAElC;IACA;IAFX,YACW,IAAY,EACZ,GAAY;QAErB,KAAK,CACH,yDAAyD,IAAI,KAAK;YAChE,gGAAgG,CACnG,CAAC;QANO,SAAI,GAAJ,IAAI,CAAQ;QACZ,QAAG,GAAH,GAAG,CAAS;QAMrB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -23,6 +23,8 @@ export declare class LlWalkers {
|
|
|
23
23
|
/** Emitted function definitions, in interning order. */
|
|
24
24
|
readonly defs: string[];
|
|
25
25
|
constructor(host: WalkerHost);
|
|
26
|
+
private get S();
|
|
27
|
+
private abiOffset;
|
|
26
28
|
/** The value-parameter LLVM type of a writer for `t`. */
|
|
27
29
|
private valTy;
|
|
28
30
|
private putc;
|
|
@@ -22,6 +22,10 @@ export class LlWalkers {
|
|
|
22
22
|
constructor(host) {
|
|
23
23
|
this.host = host;
|
|
24
24
|
}
|
|
25
|
+
get S() { return this.host.sizeType; }
|
|
26
|
+
abiOffset(native64, wasm32) {
|
|
27
|
+
return this.S === "i32" ? wasm32 : native64;
|
|
28
|
+
}
|
|
25
29
|
/** The value-parameter LLVM type of a writer for `t`. */
|
|
26
30
|
valTy(t) {
|
|
27
31
|
return t.kind === "f64" ? "double" : t.kind === "bool" ? "i1" : "ptr";
|
|
@@ -41,11 +45,11 @@ export class LlWalkers {
|
|
|
41
45
|
const len = B.tmp();
|
|
42
46
|
const data = B.tmp();
|
|
43
47
|
B.line(`${lenp} = getelementptr inbounds %ScrStr, ptr ${s}, i64 0, i32 1`);
|
|
44
|
-
B.line(`${len} = load
|
|
45
|
-
B.line(`${data} = getelementptr inbounds i8, ptr ${s}, i64 24 ; ->data`);
|
|
48
|
+
B.line(`${len} = load ${this.S}, ptr ${lenp}`);
|
|
49
|
+
B.line(`${data} = getelementptr inbounds i8, ptr ${s}, i64 ${this.abiOffset(24, 12)} ; ->data`);
|
|
46
50
|
const jSlot = B.slot();
|
|
47
|
-
B.entryAllocas.push(`${jSlot} = alloca
|
|
48
|
-
B.line(`store
|
|
51
|
+
B.entryAllocas.push(`${jSlot} = alloca ${this.S}`);
|
|
52
|
+
B.line(`store ${this.S} 0, ptr ${jSlot}`);
|
|
49
53
|
const lc = B.newLabel("ps.c");
|
|
50
54
|
const lb = B.newLabel("ps.b");
|
|
51
55
|
const le = B.newLabel("ps.e");
|
|
@@ -53,18 +57,18 @@ export class LlWalkers {
|
|
|
53
57
|
B.startBlock(lc);
|
|
54
58
|
const j = B.tmp();
|
|
55
59
|
const cont = B.tmp();
|
|
56
|
-
B.line(`${j} = load
|
|
57
|
-
B.line(`${cont} = icmp ult
|
|
60
|
+
B.line(`${j} = load ${this.S}, ptr ${jSlot}`);
|
|
61
|
+
B.line(`${cont} = icmp ult ${this.S} ${j}, ${len}`);
|
|
58
62
|
B.condBr(cont, lb, le);
|
|
59
63
|
B.startBlock(lb);
|
|
60
64
|
const cp = B.tmp();
|
|
61
65
|
const c = B.tmp();
|
|
62
|
-
B.line(`${cp} = getelementptr inbounds i8, ptr ${data},
|
|
66
|
+
B.line(`${cp} = getelementptr inbounds i8, ptr ${data}, ${this.S} ${j}`);
|
|
63
67
|
B.line(`${c} = load i8, ptr ${cp}`);
|
|
64
68
|
this.putc(B, buf, c);
|
|
65
69
|
const j2 = B.tmp();
|
|
66
|
-
B.line(`${j2} = add
|
|
67
|
-
B.line(`store
|
|
70
|
+
B.line(`${j2} = add ${this.S} ${j}, 1`);
|
|
71
|
+
B.line(`store ${this.S} ${j2}, ptr ${jSlot}`);
|
|
68
72
|
B.br(lc);
|
|
69
73
|
B.startBlock(le);
|
|
70
74
|
}
|
|
@@ -108,8 +112,8 @@ export class LlWalkers {
|
|
|
108
112
|
B.line(`call void @scr_jb_edge_prop(ptr %b, ptr ${this.host.cstr(name)}) ; ${JSON.stringify(name)}`);
|
|
109
113
|
}
|
|
110
114
|
jbEdgeIdx(B, idx) {
|
|
111
|
-
this.host.declare(`declare void @scr_jb_edge_idx(ptr,
|
|
112
|
-
B.line(`call void @scr_jb_edge_idx(ptr %b,
|
|
115
|
+
this.host.declare(`declare void @scr_jb_edge_idx(ptr, ${this.S})`);
|
|
116
|
+
B.line(`call void @scr_jb_edge_idx(ptr %b, ${this.S} ${idx})`);
|
|
113
117
|
}
|
|
114
118
|
/* ── type-directed JSON serializers (jsonWriteHelper, ported) ─────────── */
|
|
115
119
|
jsonWriteHelper(t) {
|
|
@@ -332,7 +336,7 @@ export class LlWalkers {
|
|
|
332
336
|
B.line(`${val} = call ptr @scr_map_get_str_ref(ptr ${ovf}, ptr ${k}) ; value (+1)`);
|
|
333
337
|
}
|
|
334
338
|
// Undefined-valued entries drop, exactly the optional-field rule: a
|
|
335
|
-
// dyn value whose dyn kind
|
|
339
|
+
// dyn value whose dyn kind follows its size_t RC word (enum
|
|
336
340
|
// member 6 — scr_runtime.h's ScrDynKind), or a union holding its
|
|
337
341
|
// undefined arm.
|
|
338
342
|
let skipUndef = null;
|
|
@@ -340,7 +344,7 @@ export class LlWalkers {
|
|
|
340
344
|
const kp = B.tmp();
|
|
341
345
|
const kd = B.tmp();
|
|
342
346
|
const isu = B.tmp();
|
|
343
|
-
B.line(`${kp} = getelementptr inbounds i8, ptr ${val}, i64 8 ; ->kind`);
|
|
347
|
+
B.line(`${kp} = getelementptr inbounds i8, ptr ${val}, i64 ${this.abiOffset(8, 4)} ; ->kind`);
|
|
344
348
|
B.line(`${kd} = load i32, ptr ${kp}`);
|
|
345
349
|
B.line(`${isu} = icmp eq i32 ${kd}, 6 ; SCR_DYN_UNDEF (NULL is 0 — null members DO serialize)`);
|
|
346
350
|
skipUndef = isu;
|
|
@@ -432,7 +436,7 @@ export class LlWalkers {
|
|
|
432
436
|
B.startBlock(lj);
|
|
433
437
|
if (cyclic) {
|
|
434
438
|
const idx = B.tmp();
|
|
435
|
-
B.line(`${idx} = fptoui double ${i} to
|
|
439
|
+
B.line(`${idx} = fptoui double ${i} to ${this.S}`);
|
|
436
440
|
this.jbEdgeIdx(B, idx);
|
|
437
441
|
}
|
|
438
442
|
if (elem.kind === "f64" || elem.kind === "bool") {
|
|
@@ -524,24 +528,24 @@ export class LlWalkers {
|
|
|
524
528
|
host.declare(`declare ptr @scr_jb_finish(ptr)`);
|
|
525
529
|
host.declare(`declare void @scr_jb_putc(ptr, i8)`);
|
|
526
530
|
// The newline + depth * indent writer, shared by the three break sites.
|
|
527
|
-
this.defs.push(`define internal void @sc_ji_ind(ptr %b,
|
|
531
|
+
this.defs.push(`define internal void @sc_ji_ind(ptr %b, ${this.S} %depth, ptr %ind, ${this.S} %ilen) ${FN_ATTRS} { ; stringify gap indent`, `entry:`, ` call void @scr_jb_putc(ptr %b, i8 10)`, ` br label %oc`, `oc:`, ` %d = phi ${this.S} [ 0, %entry ], [ %d2, %ie ]`, ` %ocont = icmp ult ${this.S} %d, %depth`, ` br i1 %ocont, label %ic0, label %done`, `ic0:`, ` br label %ic`, `ic:`, ` %k = phi ${this.S} [ 0, %ic0 ], [ %k2, %ib ]`, ` %icont = icmp ult ${this.S} %k, %ilen`, ` br i1 %icont, label %ib, label %ie`, `ib:`, ` %cp = getelementptr inbounds i8, ptr %ind, ${this.S} %k`, ` %c = load i8, ptr %cp`, ` call void @scr_jb_putc(ptr %b, i8 %c)`, ` %k2 = add ${this.S} %k, 1`, ` br label %ic`, `ie:`, ` %d2 = add ${this.S} %d, 1`, ` br label %oc`, `done:`, ` ret void`, `}`, ``);
|
|
528
532
|
const B = new BlockBuilder();
|
|
529
533
|
const buf = "%jb";
|
|
530
534
|
B.entryAllocas.push(`${buf} = alloca %ScrJsonBuf`);
|
|
531
535
|
const depth = "%depth";
|
|
532
536
|
const instr = "%instr";
|
|
533
537
|
const iSlot = "%i";
|
|
534
|
-
B.entryAllocas.push(`${depth} = alloca
|
|
538
|
+
B.entryAllocas.push(`${depth} = alloca ${this.S}`, `${instr} = alloca i1`, `${iSlot} = alloca ${this.S}`);
|
|
535
539
|
B.line(`call void @scr_jb_init(ptr ${buf})`);
|
|
536
|
-
B.line(`store
|
|
540
|
+
B.line(`store ${this.S} 0, ptr ${depth}`);
|
|
537
541
|
B.line(`store i1 false, ptr ${instr}`);
|
|
538
|
-
B.line(`store
|
|
542
|
+
B.line(`store ${this.S} 0, ptr ${iSlot}`);
|
|
539
543
|
const np = B.tmp();
|
|
540
544
|
const n = B.tmp();
|
|
541
545
|
const data = B.tmp();
|
|
542
546
|
B.line(`${np} = getelementptr inbounds %ScrStr, ptr %compact, i64 0, i32 1`);
|
|
543
|
-
B.line(`${n} = load
|
|
544
|
-
B.line(`${data} = getelementptr inbounds i8, ptr %compact, i64 24 ; ->data`);
|
|
547
|
+
B.line(`${n} = load ${this.S}, ptr ${np}`);
|
|
548
|
+
B.line(`${data} = getelementptr inbounds i8, ptr %compact, i64 ${this.abiOffset(24, 12)} ; ->data`);
|
|
545
549
|
const loop = B.newLabel("ji.c");
|
|
546
550
|
const body = B.newLabel("ji.b");
|
|
547
551
|
const inc = B.newLabel("ji.n");
|
|
@@ -550,13 +554,13 @@ export class LlWalkers {
|
|
|
550
554
|
B.startBlock(loop);
|
|
551
555
|
const i = B.tmp();
|
|
552
556
|
const cont = B.tmp();
|
|
553
|
-
B.line(`${i} = load
|
|
554
|
-
B.line(`${cont} = icmp ult
|
|
557
|
+
B.line(`${i} = load ${this.S}, ptr ${iSlot}`);
|
|
558
|
+
B.line(`${cont} = icmp ult ${this.S} ${i}, ${n}`);
|
|
555
559
|
B.condBr(cont, body, end);
|
|
556
560
|
B.startBlock(body);
|
|
557
561
|
const cp = B.tmp();
|
|
558
562
|
const c = B.tmp();
|
|
559
|
-
B.line(`${cp} = getelementptr inbounds i8, ptr ${data},
|
|
563
|
+
B.line(`${cp} = getelementptr inbounds i8, ptr ${data}, ${this.S} ${i}`);
|
|
560
564
|
B.line(`${c} = load i8, ptr ${cp}`);
|
|
561
565
|
const ins = B.tmp();
|
|
562
566
|
B.line(`${ins} = load i1, ptr ${instr}`);
|
|
@@ -571,8 +575,8 @@ export class LlWalkers {
|
|
|
571
575
|
const hasNext = B.tmp();
|
|
572
576
|
const escTake = B.tmp();
|
|
573
577
|
B.line(`${isbs} = icmp eq i8 ${c}, 92 ; backslash`);
|
|
574
|
-
B.line(`${i1p} = add
|
|
575
|
-
B.line(`${hasNext} = icmp ult
|
|
578
|
+
B.line(`${i1p} = add ${this.S} ${i}, 1`);
|
|
579
|
+
B.line(`${hasNext} = icmp ult ${this.S} ${i1p}, ${n}`);
|
|
576
580
|
B.line(`${escTake} = and i1 ${isbs}, ${hasNext}`);
|
|
577
581
|
const esc = B.newLabel("ji.se");
|
|
578
582
|
const noesc = B.newLabel("ji.sq");
|
|
@@ -580,10 +584,10 @@ export class LlWalkers {
|
|
|
580
584
|
B.startBlock(esc);
|
|
581
585
|
const ecp = B.tmp();
|
|
582
586
|
const ec = B.tmp();
|
|
583
|
-
B.line(`${ecp} = getelementptr inbounds i8, ptr ${data},
|
|
587
|
+
B.line(`${ecp} = getelementptr inbounds i8, ptr ${data}, ${this.S} ${i1p}`);
|
|
584
588
|
B.line(`${ec} = load i8, ptr ${ecp}`);
|
|
585
589
|
this.putc(B, buf, ec);
|
|
586
|
-
B.line(`store
|
|
590
|
+
B.line(`store ${this.S} ${i1p}, ptr ${iSlot} ; consumed the escaped char`);
|
|
587
591
|
B.br(inc);
|
|
588
592
|
B.startBlock(noesc);
|
|
589
593
|
const isq = B.tmp();
|
|
@@ -614,8 +618,8 @@ export class LlWalkers {
|
|
|
614
618
|
this.putc(B, buf, c);
|
|
615
619
|
const i1b = B.tmp();
|
|
616
620
|
const hasNextB = B.tmp();
|
|
617
|
-
B.line(`${i1b} = add
|
|
618
|
-
B.line(`${hasNextB} = icmp ult
|
|
621
|
+
B.line(`${i1b} = add ${this.S} ${i}, 1`);
|
|
622
|
+
B.line(`${hasNextB} = icmp ult ${this.S} ${i1b}, ${n}`);
|
|
619
623
|
const chk = B.newLabel("ji.opc");
|
|
620
624
|
const deep = B.newLabel("ji.opd");
|
|
621
625
|
const inline = B.newLabel("ji.opi");
|
|
@@ -624,25 +628,25 @@ export class LlWalkers {
|
|
|
624
628
|
const ncp = B.tmp();
|
|
625
629
|
const nc = B.tmp();
|
|
626
630
|
const isClose = B.tmp();
|
|
627
|
-
B.line(`${ncp} = getelementptr inbounds i8, ptr ${data},
|
|
631
|
+
B.line(`${ncp} = getelementptr inbounds i8, ptr ${data}, ${this.S} ${i1b}`);
|
|
628
632
|
B.line(`${nc} = load i8, ptr ${ncp}`);
|
|
629
633
|
B.line(`${isClose} = icmp eq i8 ${nc}, ${closer}`);
|
|
630
634
|
B.condBr(isClose, inline, deep);
|
|
631
635
|
B.startBlock(inline);
|
|
632
636
|
const nc2p = B.tmp();
|
|
633
637
|
const nc2 = B.tmp();
|
|
634
|
-
B.line(`${nc2p} = getelementptr inbounds i8, ptr ${data},
|
|
638
|
+
B.line(`${nc2p} = getelementptr inbounds i8, ptr ${data}, ${this.S} ${i1b}`);
|
|
635
639
|
B.line(`${nc2} = load i8, ptr ${nc2p}`);
|
|
636
640
|
this.putc(B, buf, nc2);
|
|
637
|
-
B.line(`store
|
|
641
|
+
B.line(`store ${this.S} ${i1b}, ptr ${iSlot} ; empty {} / [] stay inline, like Node`);
|
|
638
642
|
B.br(inc);
|
|
639
643
|
B.startBlock(deep);
|
|
640
644
|
const d0 = B.tmp();
|
|
641
645
|
const d1 = B.tmp();
|
|
642
|
-
B.line(`${d0} = load
|
|
643
|
-
B.line(`${d1} = add
|
|
644
|
-
B.line(`store
|
|
645
|
-
B.line(`call void @sc_ji_ind(ptr ${buf},
|
|
646
|
+
B.line(`${d0} = load ${this.S}, ptr ${depth}`);
|
|
647
|
+
B.line(`${d1} = add ${this.S} ${d0}, 1`);
|
|
648
|
+
B.line(`store ${this.S} ${d1}, ptr ${depth}`);
|
|
649
|
+
B.line(`call void @sc_ji_ind(ptr ${buf}, ${this.S} ${d1}, ptr %ind, ${this.S} %ilen)`);
|
|
646
650
|
B.br(inc);
|
|
647
651
|
};
|
|
648
652
|
openBody(lOpenB, 125); // '{' closes with '}'
|
|
@@ -650,17 +654,17 @@ export class LlWalkers {
|
|
|
650
654
|
B.startBlock(lClose);
|
|
651
655
|
const dc0 = B.tmp();
|
|
652
656
|
const dc1 = B.tmp();
|
|
653
|
-
B.line(`${dc0} = load
|
|
654
|
-
B.line(`${dc1} = sub
|
|
655
|
-
B.line(`store
|
|
656
|
-
B.line(`call void @sc_ji_ind(ptr ${buf},
|
|
657
|
+
B.line(`${dc0} = load ${this.S}, ptr ${depth}`);
|
|
658
|
+
B.line(`${dc1} = sub ${this.S} ${dc0}, 1`);
|
|
659
|
+
B.line(`store ${this.S} ${dc1}, ptr ${depth}`);
|
|
660
|
+
B.line(`call void @sc_ji_ind(ptr ${buf}, ${this.S} ${dc1}, ptr %ind, ${this.S} %ilen)`);
|
|
657
661
|
this.putc(B, buf, c);
|
|
658
662
|
B.br(inc);
|
|
659
663
|
B.startBlock(lComma);
|
|
660
664
|
this.putc(B, buf, "44");
|
|
661
665
|
const dm = B.tmp();
|
|
662
|
-
B.line(`${dm} = load
|
|
663
|
-
B.line(`call void @sc_ji_ind(ptr ${buf},
|
|
666
|
+
B.line(`${dm} = load ${this.S}, ptr ${depth}`);
|
|
667
|
+
B.line(`call void @sc_ji_ind(ptr ${buf}, ${this.S} ${dm}, ptr %ind, ${this.S} %ilen)`);
|
|
664
668
|
B.br(inc);
|
|
665
669
|
B.startBlock(lColon);
|
|
666
670
|
this.putc(B, buf, "58");
|
|
@@ -672,15 +676,15 @@ export class LlWalkers {
|
|
|
672
676
|
B.startBlock(inc);
|
|
673
677
|
const iN = B.tmp();
|
|
674
678
|
const iN2 = B.tmp();
|
|
675
|
-
B.line(`${iN} = load
|
|
676
|
-
B.line(`${iN2} = add
|
|
677
|
-
B.line(`store
|
|
679
|
+
B.line(`${iN} = load ${this.S}, ptr ${iSlot}`);
|
|
680
|
+
B.line(`${iN2} = add ${this.S} ${iN}, 1`);
|
|
681
|
+
B.line(`store ${this.S} ${iN2}, ptr ${iSlot}`);
|
|
678
682
|
B.br(loop);
|
|
679
683
|
B.startBlock(end);
|
|
680
684
|
const r = B.tmp();
|
|
681
685
|
B.line(`${r} = call ptr @scr_jb_finish(ptr ${buf})`);
|
|
682
686
|
B.terminate(`ret ptr ${r}`);
|
|
683
|
-
this.defs.push(`define internal ptr @${name}(ptr %compact, ptr %ind,
|
|
687
|
+
this.defs.push(`define internal ptr @${name}(ptr %compact, ptr %ind, ${this.S} %ilen) ${FN_ATTRS} { ; stringify space re-indent (Node's gap algorithm)`, B.render(), `}`, ``);
|
|
684
688
|
return name;
|
|
685
689
|
}
|
|
686
690
|
/* ── the per-union ToString / Array#join pair (ported) ────────────────── */
|