Skip to content

[Strings] Remove operations not included in imported strings #6589

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 3 additions & 20 deletions scripts/gen-s-parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -605,31 +605,14 @@
("ref.as_non_null", "makeRefAs(s, RefAsNonNull)"),
("extern.internalize", "makeRefAs(s, ExternInternalize)"),
("extern.externalize", "makeRefAs(s, ExternExternalize)"),
("string.new_utf8", "makeStringNew(s, StringNewUTF8, false)"),
("string.new_lossy_utf8", "makeStringNew(s, StringNewLossyUTF8, false)"),
("string.new_wtf8", "makeStringNew(s, StringNewWTF8, false)"),
("string.new_wtf16", "makeStringNew(s, StringNewWTF16, false)"),
("string.new_utf8_array", "makeStringNew(s, StringNewUTF8Array, false)"),
("string.new_lossy_utf8_array", "makeStringNew(s, StringNewLossyUTF8Array, false)"),
("string.new_wtf8_array", "makeStringNew(s, StringNewWTF8Array, false)"),
("string.new_wtf16_array", "makeStringNew(s, StringNewWTF16Array, false)"),
("string.from_code_point", "makeStringNew(s, StringNewFromCodePoint, false)"),
("string.new_utf8_try", "makeStringNew(s, StringNewUTF8, true)"),
("string.new_utf8_array_try", "makeStringNew(s, StringNewUTF8Array, true)"),
("string.new_lossy_utf8_array", "makeStringNew(s, StringNewLossyUTF8Array)"),
("string.new_wtf16_array", "makeStringNew(s, StringNewWTF16Array)"),
("string.from_code_point", "makeStringNew(s, StringNewFromCodePoint)"),
("string.const", "makeStringConst(s)"),
("string.measure_utf8", "makeStringMeasure(s, StringMeasureUTF8)"),
("string.measure_wtf8", "makeStringMeasure(s, StringMeasureWTF8)"),
("string.measure_wtf16", "makeStringMeasure(s, StringMeasureWTF16)"),
("stringview_wtf16.length", "makeStringMeasure(s, StringMeasureWTF16)"),
("string.is_usv_sequence", "makeStringMeasure(s, StringMeasureIsUSV)"),
("string.hash", "makeStringMeasure(s, StringMeasureHash)"),
("string.encode_utf8", "makeStringEncode(s, StringEncodeUTF8)"),
("string.encode_lossy_utf8", "makeStringEncode(s, StringEncodeLossyUTF8)"),
("string.encode_wtf8", "makeStringEncode(s, StringEncodeWTF8)"),
("string.encode_wtf16", "makeStringEncode(s, StringEncodeWTF16)"),
("string.encode_utf8_array", "makeStringEncode(s, StringEncodeUTF8Array)"),
("string.encode_lossy_utf8_array", "makeStringEncode(s, StringEncodeLossyUTF8Array)"),
("string.encode_wtf8_array", "makeStringEncode(s, StringEncodeWTF8Array)"),
("string.encode_wtf16_array", "makeStringEncode(s, StringEncodeWTF16Array)"),
("string.concat", "makeStringConcat(s)"),
("string.eq", "makeStringEq(s, StringEqEqual)"),
Expand Down
86 changes: 21 additions & 65 deletions src/binaryen-c.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1019,12 +1019,6 @@ BinaryenOp BinaryenBrOnNull(void) { return BrOnNull; }
BinaryenOp BinaryenBrOnNonNull(void) { return BrOnNonNull; }
BinaryenOp BinaryenBrOnCast(void) { return BrOnCast; }
BinaryenOp BinaryenBrOnCastFail(void) { return BrOnCastFail; };
BinaryenOp BinaryenStringNewUTF8(void) { return StringNewUTF8; }
BinaryenOp BinaryenStringNewWTF8(void) { return StringNewWTF8; }
BinaryenOp BinaryenStringNewLossyUTF8(void) { return StringNewLossyUTF8; }
BinaryenOp BinaryenStringNewWTF16(void) { return StringNewWTF16; }
BinaryenOp BinaryenStringNewUTF8Array(void) { return StringNewUTF8Array; }
BinaryenOp BinaryenStringNewWTF8Array(void) { return StringNewWTF8Array; }
BinaryenOp BinaryenStringNewLossyUTF8Array(void) {
return StringNewLossyUTF8Array;
}
Expand All @@ -1033,18 +1027,10 @@ BinaryenOp BinaryenStringNewFromCodePoint(void) {
return StringNewFromCodePoint;
}
BinaryenOp BinaryenStringMeasureUTF8(void) { return StringMeasureUTF8; }
BinaryenOp BinaryenStringMeasureWTF8(void) { return StringMeasureWTF8; }
BinaryenOp BinaryenStringMeasureWTF16(void) { return StringMeasureWTF16; }
BinaryenOp BinaryenStringMeasureIsUSV(void) { return StringMeasureIsUSV; }
BinaryenOp BinaryenStringEncodeUTF8(void) { return StringEncodeUTF8; }
BinaryenOp BinaryenStringEncodeLossyUTF8(void) { return StringEncodeLossyUTF8; }
BinaryenOp BinaryenStringEncodeWTF8(void) { return StringEncodeWTF8; }
BinaryenOp BinaryenStringEncodeWTF16(void) { return StringEncodeWTF16; }
BinaryenOp BinaryenStringEncodeUTF8Array(void) { return StringEncodeUTF8Array; }
BinaryenOp BinaryenStringEncodeLossyUTF8Array(void) {
return StringEncodeLossyUTF8Array;
}
BinaryenOp BinaryenStringEncodeWTF8Array(void) { return StringEncodeWTF8Array; }
BinaryenOp BinaryenStringEncodeWTF16Array(void) {
return StringEncodeWTF16Array;
}
Expand Down Expand Up @@ -1848,19 +1834,11 @@ BinaryenExpressionRef BinaryenArrayCopy(BinaryenModuleRef module,
BinaryenExpressionRef BinaryenStringNew(BinaryenModuleRef module,
BinaryenOp op,
BinaryenExpressionRef ptr,
BinaryenExpressionRef length,
BinaryenExpressionRef start,
BinaryenExpressionRef end,
bool try_) {
BinaryenExpressionRef end) {
Builder builder(*(Module*)module);
return static_cast<Expression*>(
length ? builder.makeStringNew(
StringNewOp(op), (Expression*)ptr, (Expression*)length, try_)
: builder.makeStringNew(StringNewOp(op),
(Expression*)ptr,
(Expression*)start,
(Expression*)end,
try_));
return static_cast<Expression*>(builder.makeStringNew(
StringNewOp(op), (Expression*)ptr, (Expression*)start, (Expression*)end));
}
BinaryenExpressionRef BinaryenStringConst(BinaryenModuleRef module,
const char* name) {
Expand Down Expand Up @@ -4444,29 +4422,17 @@ void BinaryenStringNewSetOp(BinaryenExpressionRef expr, BinaryenOp op) {
assert(expression->is<StringNew>());
static_cast<StringNew*>(expression)->op = StringNewOp(op);
}
BinaryenExpressionRef BinaryenStringNewGetPtr(BinaryenExpressionRef expr) {
auto* expression = (Expression*)expr;
assert(expression->is<StringNew>());
return static_cast<StringNew*>(expression)->ptr;
}
void BinaryenStringNewSetPtr(BinaryenExpressionRef expr,
BinaryenExpressionRef ptrExpr) {
BinaryenExpressionRef BinaryenStringNewGetRef(BinaryenExpressionRef expr) {
auto* expression = (Expression*)expr;
assert(expression->is<StringNew>());
assert(ptrExpr);
static_cast<StringNew*>(expression)->ptr = (Expression*)ptrExpr;
return static_cast<StringNew*>(expression)->ref;
}
BinaryenExpressionRef BinaryenStringNewGetLength(BinaryenExpressionRef expr) {
auto* expression = (Expression*)expr;
assert(expression->is<StringNew>());
return static_cast<StringNew*>(expression)->length;
}
void BinaryenStringNewSetLength(BinaryenExpressionRef expr,
BinaryenExpressionRef lengthExpr) {
void BinaryenStringNewSetRef(BinaryenExpressionRef expr,
BinaryenExpressionRef refExpr) {
auto* expression = (Expression*)expr;
assert(expression->is<StringNew>());
// may be null (linear memory only)
static_cast<StringNew*>(expression)->length = (Expression*)lengthExpr;
assert(refExpr);
static_cast<StringNew*>(expression)->ref = (Expression*)refExpr;
}
BinaryenExpressionRef BinaryenStringNewGetStart(BinaryenExpressionRef expr) {
auto* expression = (Expression*)expr;
Expand All @@ -4492,16 +4458,6 @@ void BinaryenStringNewSetEnd(BinaryenExpressionRef expr,
// may be null (GC only)
static_cast<StringNew*>(expression)->end = (Expression*)endExpr;
}
void BinaryenStringNewSetTry(BinaryenExpressionRef expr, bool try_) {
auto* expression = (Expression*)expr;
assert(expression->is<StringNew>());
static_cast<StringNew*>(expression)->try_ = try_;
}
bool BinaryenStringNewIsTry(BinaryenExpressionRef expr) {
auto* expression = (Expression*)expr;
assert(expression->is<StringNew>());
return static_cast<StringNew*>(expression)->try_;
}
// StringConst
const char* BinaryenStringConstGetString(BinaryenExpressionRef expr) {
auto* expression = (Expression*)expr;
Expand Down Expand Up @@ -4549,29 +4505,29 @@ void BinaryenStringEncodeSetOp(BinaryenExpressionRef expr, BinaryenOp op) {
assert(expression->is<StringEncode>());
static_cast<StringEncode*>(expression)->op = StringEncodeOp(op);
}
BinaryenExpressionRef BinaryenStringEncodeGetRef(BinaryenExpressionRef expr) {
BinaryenExpressionRef BinaryenStringEncodeGetStr(BinaryenExpressionRef expr) {
auto* expression = (Expression*)expr;
assert(expression->is<StringEncode>());
return static_cast<StringEncode*>(expression)->ref;
return static_cast<StringEncode*>(expression)->str;
}
void BinaryenStringEncodeSetRef(BinaryenExpressionRef expr,
BinaryenExpressionRef refExpr) {
void BinaryenStringEncodeSetStr(BinaryenExpressionRef expr,
BinaryenExpressionRef strExpr) {
auto* expression = (Expression*)expr;
assert(expression->is<StringEncode>());
assert(refExpr);
static_cast<StringEncode*>(expression)->ref = (Expression*)refExpr;
assert(strExpr);
static_cast<StringEncode*>(expression)->str = (Expression*)strExpr;
}
BinaryenExpressionRef BinaryenStringEncodeGetPtr(BinaryenExpressionRef expr) {
BinaryenExpressionRef BinaryenStringEncodeGetArray(BinaryenExpressionRef expr) {
auto* expression = (Expression*)expr;
assert(expression->is<StringEncode>());
return static_cast<StringEncode*>(expression)->ptr;
return static_cast<StringEncode*>(expression)->array;
}
void BinaryenStringEncodeSetPtr(BinaryenExpressionRef expr,
BinaryenExpressionRef ptrExpr) {
void BinaryenStringEncodeSetArray(BinaryenExpressionRef expr,
BinaryenExpressionRef arrayExpr) {
auto* expression = (Expression*)expr;
assert(expression->is<StringEncode>());
assert(ptrExpr);
static_cast<StringEncode*>(expression)->ptr = (Expression*)ptrExpr;
assert(arrayExpr);
static_cast<StringEncode*>(expression)->array = (Expression*)arrayExpr;
}
BinaryenExpressionRef BinaryenStringEncodeGetStart(BinaryenExpressionRef expr) {
auto* expression = (Expression*)expr;
Expand Down
39 changes: 9 additions & 30 deletions src/binaryen-c.h
Original file line number Diff line number Diff line change
Expand Up @@ -682,26 +682,12 @@ BINARYEN_API BinaryenOp BinaryenBrOnNull(void);
BINARYEN_API BinaryenOp BinaryenBrOnNonNull(void);
BINARYEN_API BinaryenOp BinaryenBrOnCast(void);
BINARYEN_API BinaryenOp BinaryenBrOnCastFail(void);
BINARYEN_API BinaryenOp BinaryenStringNewUTF8(void);
BINARYEN_API BinaryenOp BinaryenStringNewWTF8(void);
BINARYEN_API BinaryenOp BinaryenStringNewLossyUTF8(void);
BINARYEN_API BinaryenOp BinaryenStringNewWTF16(void);
BINARYEN_API BinaryenOp BinaryenStringNewUTF8Array(void);
BINARYEN_API BinaryenOp BinaryenStringNewWTF8Array(void);
BINARYEN_API BinaryenOp BinaryenStringNewLossyUTF8Array(void);
BINARYEN_API BinaryenOp BinaryenStringNewWTF16Array(void);
BINARYEN_API BinaryenOp BinaryenStringNewFromCodePoint(void);
BINARYEN_API BinaryenOp BinaryenStringMeasureUTF8(void);
BINARYEN_API BinaryenOp BinaryenStringMeasureWTF8(void);
BINARYEN_API BinaryenOp BinaryenStringMeasureWTF16(void);
BINARYEN_API BinaryenOp BinaryenStringMeasureIsUSV(void);
BINARYEN_API BinaryenOp BinaryenStringEncodeUTF8(void);
BINARYEN_API BinaryenOp BinaryenStringEncodeLossyUTF8(void);
BINARYEN_API BinaryenOp BinaryenStringEncodeWTF8(void);
BINARYEN_API BinaryenOp BinaryenStringEncodeWTF16(void);
BINARYEN_API BinaryenOp BinaryenStringEncodeUTF8Array(void);
BINARYEN_API BinaryenOp BinaryenStringEncodeLossyUTF8Array(void);
BINARYEN_API BinaryenOp BinaryenStringEncodeWTF8Array(void);
BINARYEN_API BinaryenOp BinaryenStringEncodeWTF16Array(void);
BINARYEN_API BinaryenOp BinaryenStringEqEqual(void);
BINARYEN_API BinaryenOp BinaryenStringEqCompare(void);
Expand Down Expand Up @@ -1092,11 +1078,9 @@ BinaryenArrayCopy(BinaryenModuleRef module,
BINARYEN_API BinaryenExpressionRef
BinaryenStringNew(BinaryenModuleRef module,
BinaryenOp op,
BinaryenExpressionRef ptr,
BinaryenExpressionRef length,
BinaryenExpressionRef ref,
BinaryenExpressionRef start,
BinaryenExpressionRef end,
bool try_);
BinaryenExpressionRef end);
BINARYEN_API BinaryenExpressionRef BinaryenStringConst(BinaryenModuleRef module,
const char* name);
BINARYEN_API BinaryenExpressionRef BinaryenStringMeasure(
Expand Down Expand Up @@ -2522,14 +2506,10 @@ BINARYEN_API BinaryenOp BinaryenStringNewGetOp(BinaryenExpressionRef expr);
BINARYEN_API void BinaryenStringNewSetOp(BinaryenExpressionRef expr,
BinaryenOp op);
BINARYEN_API BinaryenExpressionRef
BinaryenStringNewGetPtr(BinaryenExpressionRef expr);
BINARYEN_API void BinaryenStringNewSetPtr(BinaryenExpressionRef expr,
BinaryenStringNewGetRef(BinaryenExpressionRef expr);
BINARYEN_API void BinaryenStringNewSetRef(BinaryenExpressionRef expr,
BinaryenExpressionRef ptrExpr);
BINARYEN_API BinaryenExpressionRef
BinaryenStringNewGetLength(BinaryenExpressionRef expr);
BINARYEN_API void BinaryenStringNewSetLength(BinaryenExpressionRef expr,
BinaryenExpressionRef lengthExpr);
BINARYEN_API BinaryenExpressionRef
BinaryenStringNewGetStart(BinaryenExpressionRef expr);
BINARYEN_API void BinaryenStringNewSetStart(BinaryenExpressionRef expr,
BinaryenExpressionRef startExpr);
Expand All @@ -2539,7 +2519,6 @@ BINARYEN_API void BinaryenStringNewSetEnd(BinaryenExpressionRef expr,
BinaryenExpressionRef endExpr);
BINARYEN_API void BinaryenStringNewSetTry(BinaryenExpressionRef expr,
bool try_);
BINARYEN_API bool BinaryenStringNewIsTry(BinaryenExpressionRef expr);

// StringConst

Expand All @@ -2564,13 +2543,13 @@ BINARYEN_API BinaryenOp BinaryenStringEncodeGetOp(BinaryenExpressionRef expr);
BINARYEN_API void BinaryenStringEncodeSetOp(BinaryenExpressionRef expr,
BinaryenOp op);
BINARYEN_API BinaryenExpressionRef
BinaryenStringEncodeGetRef(BinaryenExpressionRef expr);
BINARYEN_API void BinaryenStringEncodeSetRef(BinaryenExpressionRef expr,
BinaryenStringEncodeGetStr(BinaryenExpressionRef expr);
BINARYEN_API void BinaryenStringEncodeSetStr(BinaryenExpressionRef expr,
BinaryenExpressionRef refExpr);
BINARYEN_API BinaryenExpressionRef
BinaryenStringEncodeGetPtr(BinaryenExpressionRef expr);
BINARYEN_API void BinaryenStringEncodeSetPtr(BinaryenExpressionRef expr,
BinaryenExpressionRef ptrExpr);
BinaryenStringEncodeGetArray(BinaryenExpressionRef expr);
BINARYEN_API void BinaryenStringEncodeSetArray(BinaryenExpressionRef expr,
BinaryenExpressionRef ptrExpr);
BINARYEN_API BinaryenExpressionRef
BinaryenStringEncodeGetStart(BinaryenExpressionRef expr);
BINARYEN_API void BinaryenStringEncodeSetStart(BinaryenExpressionRef expr,
Expand Down
Loading