Skip to content

Commit c76eb81

Browse files
authored
Update Binaryen to latest
Also adds bindings for `BinaryenGetAllowInliningFunctionsWithLoops` and `BinaryenSetAllowInliningFunctionsWithLoops`.
1 parent c474db4 commit c76eb81

File tree

4 files changed

+28
-15
lines changed

4 files changed

+28
-15
lines changed

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"url": "https://github.com/AssemblyScript/assemblyscript/issues"
2222
},
2323
"dependencies": {
24-
"binaryen": "95.0.0-nightly.20200813",
24+
"binaryen": "96.0.0-nightly.20200911",
2525
"long": "^4.0.0",
2626
"source-map-support": "^0.5.19",
2727
"ts-node": "^6.2.0"

src/glue/binaryen.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -986,3 +986,5 @@ export declare function _BinaryenGetFlexibleInlineMaxSize(): BinaryenIndex;
986986
export declare function _BinaryenSetFlexibleInlineMaxSize(size: BinaryenIndex): void;
987987
export declare function _BinaryenGetOneCallerInlineMaxSize(): BinaryenIndex;
988988
export declare function _BinaryenSetOneCallerInlineMaxSize(size: BinaryenIndex): void;
989+
export declare function _BinaryenGetAllowInliningFunctionsWithLoops(): bool;
990+
export declare function _BinaryenSetAllowInliningFunctionsWithLoops(enabled: bool): void;

src/module.ts

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1434,6 +1434,14 @@ export class Module {
14341434
binaryen._BinaryenSetOneCallerInlineMaxSize(size);
14351435
}
14361436

1437+
getAllowInliningFunctionsWithLoops(): bool {
1438+
return binaryen._BinaryenGetAllowInliningFunctionsWithLoops();
1439+
}
1440+
1441+
setAllowInliningFunctionsWithLoops(enabled: bool): void {
1442+
binaryen._BinaryenSetAllowInliningFunctionsWithLoops(enabled);
1443+
}
1444+
14371445
// meta (module)
14381446

14391447
getFeatures(): FeatureFlags {
@@ -1474,23 +1482,26 @@ export class Module {
14741482
// Implicitly run costly non-LLVM optimizations on -O3 or -Oz
14751483
if (optimizeLevel >= 3 || shrinkLevel >= 2) optimizeLevel = 4;
14761484

1477-
binaryen._BinaryenSetOptimizeLevel(optimizeLevel);
1478-
binaryen._BinaryenSetShrinkLevel(shrinkLevel);
1479-
binaryen._BinaryenSetDebugInfo(debugInfo);
1485+
this.setOptimizeLevel(optimizeLevel);
1486+
this.setShrinkLevel(shrinkLevel);
1487+
this.setDebugInfo(debugInfo);
1488+
this.clearPassArguments();
14801489

14811490
// Tweak inlining limits based on optimization levels
1482-
if (optimizeLevel >= 2 && shrinkLevel === 0) {
1483-
binaryen._BinaryenSetAlwaysInlineMaxSize(12);
1484-
binaryen._BinaryenSetFlexibleInlineMaxSize(70);
1485-
binaryen._BinaryenSetOneCallerInlineMaxSize(200);
1491+
if (optimizeLevel >= 2 && shrinkLevel == 0) {
1492+
this.setAlwaysInlineMaxSize(12);
1493+
this.setFlexibleInlineMaxSize(70);
1494+
this.setOneCallerInlineMaxSize(200);
1495+
this.setAllowInliningFunctionsWithLoops(optimizeLevel >= 3);
14861496
} else {
1487-
binaryen._BinaryenSetAlwaysInlineMaxSize(
1497+
this.setAlwaysInlineMaxSize(
14881498
optimizeLevel == 0 && shrinkLevel >= 0
14891499
? 2
14901500
: 4
14911501
);
1492-
binaryen._BinaryenSetFlexibleInlineMaxSize(65);
1493-
binaryen._BinaryenSetOneCallerInlineMaxSize(80);
1502+
this.setFlexibleInlineMaxSize(65);
1503+
this.setOneCallerInlineMaxSize(80);
1504+
this.setAllowInliningFunctionsWithLoops(false);
14941505
}
14951506

14961507
// Pass order here differs substantially from Binaryen's defaults
@@ -1596,7 +1607,7 @@ export class Module {
15961607
if (optimizeLevel >= 2 || shrinkLevel >= 2) {
15971608
passes.push("inlining-optimizing");
15981609
}
1599-
if (binaryen._BinaryenGetLowMemoryUnused()) {
1610+
if (this.getLowMemoryUnused()) {
16001611
if (optimizeLevel >= 3 || shrinkLevel >= 1) {
16011612
passes.push("optimize-added-constants-propagate");
16021613
} else {

0 commit comments

Comments
 (0)