Skip to content

Commit 651f2d3

Browse files
committed
[Strings] Remove operations not included in imported strings
The stringref proposal has been superseded by the imported JS strings proposal, but the former has many more operations than the latter. To reduce complexity, remove all operations that are part of stringref but not part of imported strings.
1 parent 8fa2cc9 commit 651f2d3

32 files changed

+362
-2131
lines changed

scripts/gen-s-parser.py

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -605,31 +605,14 @@
605605
("ref.as_non_null", "makeRefAs(s, RefAsNonNull)"),
606606
("extern.internalize", "makeRefAs(s, ExternInternalize)"),
607607
("extern.externalize", "makeRefAs(s, ExternExternalize)"),
608-
("string.new_utf8", "makeStringNew(s, StringNewUTF8, false)"),
609-
("string.new_lossy_utf8", "makeStringNew(s, StringNewLossyUTF8, false)"),
610-
("string.new_wtf8", "makeStringNew(s, StringNewWTF8, false)"),
611-
("string.new_wtf16", "makeStringNew(s, StringNewWTF16, false)"),
612-
("string.new_utf8_array", "makeStringNew(s, StringNewUTF8Array, false)"),
613-
("string.new_lossy_utf8_array", "makeStringNew(s, StringNewLossyUTF8Array, false)"),
614-
("string.new_wtf8_array", "makeStringNew(s, StringNewWTF8Array, false)"),
615-
("string.new_wtf16_array", "makeStringNew(s, StringNewWTF16Array, false)"),
616-
("string.from_code_point", "makeStringNew(s, StringNewFromCodePoint, false)"),
617-
("string.new_utf8_try", "makeStringNew(s, StringNewUTF8, true)"),
618-
("string.new_utf8_array_try", "makeStringNew(s, StringNewUTF8Array, true)"),
608+
("string.new_lossy_utf8_array", "makeStringNew(s, StringNewLossyUTF8Array)"),
609+
("string.new_wtf16_array", "makeStringNew(s, StringNewWTF16Array)"),
610+
("string.from_code_point", "makeStringNew(s, StringNewFromCodePoint)"),
619611
("string.const", "makeStringConst(s)"),
620612
("string.measure_utf8", "makeStringMeasure(s, StringMeasureUTF8)"),
621-
("string.measure_wtf8", "makeStringMeasure(s, StringMeasureWTF8)"),
622613
("string.measure_wtf16", "makeStringMeasure(s, StringMeasureWTF16)"),
623614
("stringview_wtf16.length", "makeStringMeasure(s, StringMeasureWTF16)"),
624-
("string.is_usv_sequence", "makeStringMeasure(s, StringMeasureIsUSV)"),
625-
("string.hash", "makeStringMeasure(s, StringMeasureHash)"),
626-
("string.encode_utf8", "makeStringEncode(s, StringEncodeUTF8)"),
627-
("string.encode_lossy_utf8", "makeStringEncode(s, StringEncodeLossyUTF8)"),
628-
("string.encode_wtf8", "makeStringEncode(s, StringEncodeWTF8)"),
629-
("string.encode_wtf16", "makeStringEncode(s, StringEncodeWTF16)"),
630-
("string.encode_utf8_array", "makeStringEncode(s, StringEncodeUTF8Array)"),
631615
("string.encode_lossy_utf8_array", "makeStringEncode(s, StringEncodeLossyUTF8Array)"),
632-
("string.encode_wtf8_array", "makeStringEncode(s, StringEncodeWTF8Array)"),
633616
("string.encode_wtf16_array", "makeStringEncode(s, StringEncodeWTF16Array)"),
634617
("string.concat", "makeStringConcat(s)"),
635618
("string.eq", "makeStringEq(s, StringEqEqual)"),

src/binaryen-c.cpp

Lines changed: 21 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1019,12 +1019,6 @@ BinaryenOp BinaryenBrOnNull(void) { return BrOnNull; }
10191019
BinaryenOp BinaryenBrOnNonNull(void) { return BrOnNonNull; }
10201020
BinaryenOp BinaryenBrOnCast(void) { return BrOnCast; }
10211021
BinaryenOp BinaryenBrOnCastFail(void) { return BrOnCastFail; };
1022-
BinaryenOp BinaryenStringNewUTF8(void) { return StringNewUTF8; }
1023-
BinaryenOp BinaryenStringNewWTF8(void) { return StringNewWTF8; }
1024-
BinaryenOp BinaryenStringNewLossyUTF8(void) { return StringNewLossyUTF8; }
1025-
BinaryenOp BinaryenStringNewWTF16(void) { return StringNewWTF16; }
1026-
BinaryenOp BinaryenStringNewUTF8Array(void) { return StringNewUTF8Array; }
1027-
BinaryenOp BinaryenStringNewWTF8Array(void) { return StringNewWTF8Array; }
10281022
BinaryenOp BinaryenStringNewLossyUTF8Array(void) {
10291023
return StringNewLossyUTF8Array;
10301024
}
@@ -1033,18 +1027,10 @@ BinaryenOp BinaryenStringNewFromCodePoint(void) {
10331027
return StringNewFromCodePoint;
10341028
}
10351029
BinaryenOp BinaryenStringMeasureUTF8(void) { return StringMeasureUTF8; }
1036-
BinaryenOp BinaryenStringMeasureWTF8(void) { return StringMeasureWTF8; }
10371030
BinaryenOp BinaryenStringMeasureWTF16(void) { return StringMeasureWTF16; }
1038-
BinaryenOp BinaryenStringMeasureIsUSV(void) { return StringMeasureIsUSV; }
1039-
BinaryenOp BinaryenStringEncodeUTF8(void) { return StringEncodeUTF8; }
1040-
BinaryenOp BinaryenStringEncodeLossyUTF8(void) { return StringEncodeLossyUTF8; }
1041-
BinaryenOp BinaryenStringEncodeWTF8(void) { return StringEncodeWTF8; }
1042-
BinaryenOp BinaryenStringEncodeWTF16(void) { return StringEncodeWTF16; }
1043-
BinaryenOp BinaryenStringEncodeUTF8Array(void) { return StringEncodeUTF8Array; }
10441031
BinaryenOp BinaryenStringEncodeLossyUTF8Array(void) {
10451032
return StringEncodeLossyUTF8Array;
10461033
}
1047-
BinaryenOp BinaryenStringEncodeWTF8Array(void) { return StringEncodeWTF8Array; }
10481034
BinaryenOp BinaryenStringEncodeWTF16Array(void) {
10491035
return StringEncodeWTF16Array;
10501036
}
@@ -1848,19 +1834,11 @@ BinaryenExpressionRef BinaryenArrayCopy(BinaryenModuleRef module,
18481834
BinaryenExpressionRef BinaryenStringNew(BinaryenModuleRef module,
18491835
BinaryenOp op,
18501836
BinaryenExpressionRef ptr,
1851-
BinaryenExpressionRef length,
18521837
BinaryenExpressionRef start,
1853-
BinaryenExpressionRef end,
1854-
bool try_) {
1838+
BinaryenExpressionRef end) {
18551839
Builder builder(*(Module*)module);
1856-
return static_cast<Expression*>(
1857-
length ? builder.makeStringNew(
1858-
StringNewOp(op), (Expression*)ptr, (Expression*)length, try_)
1859-
: builder.makeStringNew(StringNewOp(op),
1860-
(Expression*)ptr,
1861-
(Expression*)start,
1862-
(Expression*)end,
1863-
try_));
1840+
return static_cast<Expression*>(builder.makeStringNew(
1841+
StringNewOp(op), (Expression*)ptr, (Expression*)start, (Expression*)end));
18641842
}
18651843
BinaryenExpressionRef BinaryenStringConst(BinaryenModuleRef module,
18661844
const char* name) {
@@ -4444,29 +4422,17 @@ void BinaryenStringNewSetOp(BinaryenExpressionRef expr, BinaryenOp op) {
44444422
assert(expression->is<StringNew>());
44454423
static_cast<StringNew*>(expression)->op = StringNewOp(op);
44464424
}
4447-
BinaryenExpressionRef BinaryenStringNewGetPtr(BinaryenExpressionRef expr) {
4448-
auto* expression = (Expression*)expr;
4449-
assert(expression->is<StringNew>());
4450-
return static_cast<StringNew*>(expression)->ptr;
4451-
}
4452-
void BinaryenStringNewSetPtr(BinaryenExpressionRef expr,
4453-
BinaryenExpressionRef ptrExpr) {
4425+
BinaryenExpressionRef BinaryenStringNewGetRef(BinaryenExpressionRef expr) {
44544426
auto* expression = (Expression*)expr;
44554427
assert(expression->is<StringNew>());
4456-
assert(ptrExpr);
4457-
static_cast<StringNew*>(expression)->ptr = (Expression*)ptrExpr;
4428+
return static_cast<StringNew*>(expression)->ref;
44584429
}
4459-
BinaryenExpressionRef BinaryenStringNewGetLength(BinaryenExpressionRef expr) {
4460-
auto* expression = (Expression*)expr;
4461-
assert(expression->is<StringNew>());
4462-
return static_cast<StringNew*>(expression)->length;
4463-
}
4464-
void BinaryenStringNewSetLength(BinaryenExpressionRef expr,
4465-
BinaryenExpressionRef lengthExpr) {
4430+
void BinaryenStringNewSetRef(BinaryenExpressionRef expr,
4431+
BinaryenExpressionRef refExpr) {
44664432
auto* expression = (Expression*)expr;
44674433
assert(expression->is<StringNew>());
4468-
// may be null (linear memory only)
4469-
static_cast<StringNew*>(expression)->length = (Expression*)lengthExpr;
4434+
assert(refExpr);
4435+
static_cast<StringNew*>(expression)->ref = (Expression*)refExpr;
44704436
}
44714437
BinaryenExpressionRef BinaryenStringNewGetStart(BinaryenExpressionRef expr) {
44724438
auto* expression = (Expression*)expr;
@@ -4492,16 +4458,6 @@ void BinaryenStringNewSetEnd(BinaryenExpressionRef expr,
44924458
// may be null (GC only)
44934459
static_cast<StringNew*>(expression)->end = (Expression*)endExpr;
44944460
}
4495-
void BinaryenStringNewSetTry(BinaryenExpressionRef expr, bool try_) {
4496-
auto* expression = (Expression*)expr;
4497-
assert(expression->is<StringNew>());
4498-
static_cast<StringNew*>(expression)->try_ = try_;
4499-
}
4500-
bool BinaryenStringNewIsTry(BinaryenExpressionRef expr) {
4501-
auto* expression = (Expression*)expr;
4502-
assert(expression->is<StringNew>());
4503-
return static_cast<StringNew*>(expression)->try_;
4504-
}
45054461
// StringConst
45064462
const char* BinaryenStringConstGetString(BinaryenExpressionRef expr) {
45074463
auto* expression = (Expression*)expr;
@@ -4549,29 +4505,29 @@ void BinaryenStringEncodeSetOp(BinaryenExpressionRef expr, BinaryenOp op) {
45494505
assert(expression->is<StringEncode>());
45504506
static_cast<StringEncode*>(expression)->op = StringEncodeOp(op);
45514507
}
4552-
BinaryenExpressionRef BinaryenStringEncodeGetRef(BinaryenExpressionRef expr) {
4508+
BinaryenExpressionRef BinaryenStringEncodeGetStr(BinaryenExpressionRef expr) {
45534509
auto* expression = (Expression*)expr;
45544510
assert(expression->is<StringEncode>());
4555-
return static_cast<StringEncode*>(expression)->ref;
4511+
return static_cast<StringEncode*>(expression)->str;
45564512
}
4557-
void BinaryenStringEncodeSetRef(BinaryenExpressionRef expr,
4558-
BinaryenExpressionRef refExpr) {
4513+
void BinaryenStringEncodeSetStr(BinaryenExpressionRef expr,
4514+
BinaryenExpressionRef strExpr) {
45594515
auto* expression = (Expression*)expr;
45604516
assert(expression->is<StringEncode>());
4561-
assert(refExpr);
4562-
static_cast<StringEncode*>(expression)->ref = (Expression*)refExpr;
4517+
assert(strExpr);
4518+
static_cast<StringEncode*>(expression)->str = (Expression*)strExpr;
45634519
}
4564-
BinaryenExpressionRef BinaryenStringEncodeGetPtr(BinaryenExpressionRef expr) {
4520+
BinaryenExpressionRef BinaryenStringEncodeGetArray(BinaryenExpressionRef expr) {
45654521
auto* expression = (Expression*)expr;
45664522
assert(expression->is<StringEncode>());
4567-
return static_cast<StringEncode*>(expression)->ptr;
4523+
return static_cast<StringEncode*>(expression)->array;
45684524
}
4569-
void BinaryenStringEncodeSetPtr(BinaryenExpressionRef expr,
4570-
BinaryenExpressionRef ptrExpr) {
4525+
void BinaryenStringEncodeSetArray(BinaryenExpressionRef expr,
4526+
BinaryenExpressionRef arrayExpr) {
45714527
auto* expression = (Expression*)expr;
45724528
assert(expression->is<StringEncode>());
4573-
assert(ptrExpr);
4574-
static_cast<StringEncode*>(expression)->ptr = (Expression*)ptrExpr;
4529+
assert(arrayExpr);
4530+
static_cast<StringEncode*>(expression)->array = (Expression*)arrayExpr;
45754531
}
45764532
BinaryenExpressionRef BinaryenStringEncodeGetStart(BinaryenExpressionRef expr) {
45774533
auto* expression = (Expression*)expr;

src/binaryen-c.h

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -682,26 +682,12 @@ BINARYEN_API BinaryenOp BinaryenBrOnNull(void);
682682
BINARYEN_API BinaryenOp BinaryenBrOnNonNull(void);
683683
BINARYEN_API BinaryenOp BinaryenBrOnCast(void);
684684
BINARYEN_API BinaryenOp BinaryenBrOnCastFail(void);
685-
BINARYEN_API BinaryenOp BinaryenStringNewUTF8(void);
686-
BINARYEN_API BinaryenOp BinaryenStringNewWTF8(void);
687-
BINARYEN_API BinaryenOp BinaryenStringNewLossyUTF8(void);
688-
BINARYEN_API BinaryenOp BinaryenStringNewWTF16(void);
689-
BINARYEN_API BinaryenOp BinaryenStringNewUTF8Array(void);
690-
BINARYEN_API BinaryenOp BinaryenStringNewWTF8Array(void);
691685
BINARYEN_API BinaryenOp BinaryenStringNewLossyUTF8Array(void);
692686
BINARYEN_API BinaryenOp BinaryenStringNewWTF16Array(void);
693687
BINARYEN_API BinaryenOp BinaryenStringNewFromCodePoint(void);
694688
BINARYEN_API BinaryenOp BinaryenStringMeasureUTF8(void);
695-
BINARYEN_API BinaryenOp BinaryenStringMeasureWTF8(void);
696689
BINARYEN_API BinaryenOp BinaryenStringMeasureWTF16(void);
697-
BINARYEN_API BinaryenOp BinaryenStringMeasureIsUSV(void);
698-
BINARYEN_API BinaryenOp BinaryenStringEncodeUTF8(void);
699-
BINARYEN_API BinaryenOp BinaryenStringEncodeLossyUTF8(void);
700-
BINARYEN_API BinaryenOp BinaryenStringEncodeWTF8(void);
701-
BINARYEN_API BinaryenOp BinaryenStringEncodeWTF16(void);
702-
BINARYEN_API BinaryenOp BinaryenStringEncodeUTF8Array(void);
703690
BINARYEN_API BinaryenOp BinaryenStringEncodeLossyUTF8Array(void);
704-
BINARYEN_API BinaryenOp BinaryenStringEncodeWTF8Array(void);
705691
BINARYEN_API BinaryenOp BinaryenStringEncodeWTF16Array(void);
706692
BINARYEN_API BinaryenOp BinaryenStringEqEqual(void);
707693
BINARYEN_API BinaryenOp BinaryenStringEqCompare(void);
@@ -1092,11 +1078,9 @@ BinaryenArrayCopy(BinaryenModuleRef module,
10921078
BINARYEN_API BinaryenExpressionRef
10931079
BinaryenStringNew(BinaryenModuleRef module,
10941080
BinaryenOp op,
1095-
BinaryenExpressionRef ptr,
1096-
BinaryenExpressionRef length,
1081+
BinaryenExpressionRef ref,
10971082
BinaryenExpressionRef start,
1098-
BinaryenExpressionRef end,
1099-
bool try_);
1083+
BinaryenExpressionRef end);
11001084
BINARYEN_API BinaryenExpressionRef BinaryenStringConst(BinaryenModuleRef module,
11011085
const char* name);
11021086
BINARYEN_API BinaryenExpressionRef BinaryenStringMeasure(
@@ -2522,14 +2506,10 @@ BINARYEN_API BinaryenOp BinaryenStringNewGetOp(BinaryenExpressionRef expr);
25222506
BINARYEN_API void BinaryenStringNewSetOp(BinaryenExpressionRef expr,
25232507
BinaryenOp op);
25242508
BINARYEN_API BinaryenExpressionRef
2525-
BinaryenStringNewGetPtr(BinaryenExpressionRef expr);
2526-
BINARYEN_API void BinaryenStringNewSetPtr(BinaryenExpressionRef expr,
2509+
BinaryenStringNewGetRef(BinaryenExpressionRef expr);
2510+
BINARYEN_API void BinaryenStringNewSetRef(BinaryenExpressionRef expr,
25272511
BinaryenExpressionRef ptrExpr);
25282512
BINARYEN_API BinaryenExpressionRef
2529-
BinaryenStringNewGetLength(BinaryenExpressionRef expr);
2530-
BINARYEN_API void BinaryenStringNewSetLength(BinaryenExpressionRef expr,
2531-
BinaryenExpressionRef lengthExpr);
2532-
BINARYEN_API BinaryenExpressionRef
25332513
BinaryenStringNewGetStart(BinaryenExpressionRef expr);
25342514
BINARYEN_API void BinaryenStringNewSetStart(BinaryenExpressionRef expr,
25352515
BinaryenExpressionRef startExpr);
@@ -2539,7 +2519,6 @@ BINARYEN_API void BinaryenStringNewSetEnd(BinaryenExpressionRef expr,
25392519
BinaryenExpressionRef endExpr);
25402520
BINARYEN_API void BinaryenStringNewSetTry(BinaryenExpressionRef expr,
25412521
bool try_);
2542-
BINARYEN_API bool BinaryenStringNewIsTry(BinaryenExpressionRef expr);
25432522

25442523
// StringConst
25452524

@@ -2564,13 +2543,13 @@ BINARYEN_API BinaryenOp BinaryenStringEncodeGetOp(BinaryenExpressionRef expr);
25642543
BINARYEN_API void BinaryenStringEncodeSetOp(BinaryenExpressionRef expr,
25652544
BinaryenOp op);
25662545
BINARYEN_API BinaryenExpressionRef
2567-
BinaryenStringEncodeGetRef(BinaryenExpressionRef expr);
2568-
BINARYEN_API void BinaryenStringEncodeSetRef(BinaryenExpressionRef expr,
2546+
BinaryenStringEncodeGetStr(BinaryenExpressionRef expr);
2547+
BINARYEN_API void BinaryenStringEncodeSetStr(BinaryenExpressionRef expr,
25692548
BinaryenExpressionRef refExpr);
25702549
BINARYEN_API BinaryenExpressionRef
2571-
BinaryenStringEncodeGetPtr(BinaryenExpressionRef expr);
2572-
BINARYEN_API void BinaryenStringEncodeSetPtr(BinaryenExpressionRef expr,
2573-
BinaryenExpressionRef ptrExpr);
2550+
BinaryenStringEncodeGetArray(BinaryenExpressionRef expr);
2551+
BINARYEN_API void BinaryenStringEncodeSetArray(BinaryenExpressionRef expr,
2552+
BinaryenExpressionRef ptrExpr);
25742553
BINARYEN_API BinaryenExpressionRef
25752554
BinaryenStringEncodeGetStart(BinaryenExpressionRef expr);
25762555
BINARYEN_API void BinaryenStringEncodeSetStart(BinaryenExpressionRef expr,

0 commit comments

Comments
 (0)