Skip to content

Commit b8f96af

Browse files
radekdouliklewing
andauthored
[wasm] Add optimization flags to bitcode compilation (#101538)
* [wasm] Add optimization flag to bitcode compilation comping from LD optimization flags. This should also fix the recent size regression. * Document the new property * Update src/mono/browser/build/BrowserWasmApp.targets Co-authored-by: Larry Ewing <lewing@microsoft.com> * Fix the conditions --------- Co-authored-by: Larry Ewing <lewing@microsoft.com>
1 parent c29b591 commit b8f96af

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

src/mono/browser/build/BrowserWasmApp.targets

+3
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,8 @@
260260
<EmccCompileOptimizationFlag Condition="'$(EmccCompileOptimizationFlag)' == ''">$(_EmccOptimizationFlagDefault)</EmccCompileOptimizationFlag>
261261
<!-- FIXME: which one should take precedence? -->
262262
<WasmCompileOptimizationFlag>$(EmccCompileOptimizationFlag)</WasmCompileOptimizationFlag>
263+
<WasmBitcodeCompileOptimizationFlag Condition="'$(WasmBitcodeCompileOptimizationFlag)' == '' and '$(Configuration)' == 'Release'">-O2</WasmBitcodeCompileOptimizationFlag>
264+
<WasmBitcodeCompileOptimizationFlag Condition="'$(WasmBitcodeCompileOptimizationFlag)' == '' ">$(WasmCompileOptimizationFlag)</WasmBitcodeCompileOptimizationFlag>
263265
<EmccLinkOptimizationFlag Condition="'$(EmccLinkOptimizationFlag)' == '' and '$(Configuration)' == 'Release'">-O2</EmccLinkOptimizationFlag>
264266
<EmccLinkOptimizationFlag Condition="'$(EmccLinkOptimizationFlag)' == ''" >$(WasmCompileOptimizationFlag)</EmccLinkOptimizationFlag>
265267
<WasmLinkOptimizationFlag>$(EmccLinkOptimizationFlag)</WasmLinkOptimizationFlag>
@@ -406,6 +408,7 @@
406408

407409
<Target Name="_BrowserWasmBeforeWriteCompileBitcodeRsp" BeforeTargets="_WasmWriteRspForCompilingBitcode">
408410
<ItemGroup>
411+
<_BitcodeCompileFlags Include="$(WasmBitcodeCompileOptimizationFlag)" />
409412
<_BitcodeCompileFlags Include="@(_EmccCommonFlags)" />
410413
<_BitcodeCompileFlags Include="$(EmccExtraBitcodeCompilationFlags)" />
411414
</ItemGroup>

src/mono/wasi/build/WasiApp.targets

+3
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,8 @@
148148

149149
<WasiClangCompileOptimizationFlag Condition="'$(WasiClangCompileOptimizationFlag)' == ''">$(_WasiClangOptimizationFlagDefault)</WasiClangCompileOptimizationFlag>
150150
<WasmCompileOptimizationFlag>$(WasiClangCompileOptimizationFlag)</WasmCompileOptimizationFlag>
151+
<WasiBitcodeCompileOptimizationFlag Condition="'$(WasiBitcodeCompileOptimizationFlag)' == '' and '$(Configuration)' == 'Release'">-O2</WasiBitcodeCompileOptimizationFlag>
152+
<WasiBitcodeCompileOptimizationFlag Condition="'$(WasiBitcodeCompileOptimizationFlag)' == ''" >$(WasiClangCompileOptimizationFlag)</WasiBitcodeCompileOptimizationFlag>
151153
<WasiClangLinkOptimizationFlag Condition="'$(WasiClangLinkOptimizationFlag)' == '' and '$(Configuration)' == 'Release'">-O2</WasiClangLinkOptimizationFlag>
152154
<WasiClangLinkOptimizationFlag Condition="'$(WasiClangLinkOptimizationFlag)' == ''" >$(WasiClangCompileOptimizationFlag)</WasiClangLinkOptimizationFlag>
153155
<WasmLinkOptimizationFlag>$(WasiClangLinkOptimizationFlag)</WasmLinkOptimizationFlag>
@@ -265,6 +267,7 @@
265267
<!-- FIXME: merge with some other target -->
266268
<Target Name="_WasiBeforeWriteRspForCompilingBitcodeRsp" BeforeTargets="_WasmWriteRspForCompilingBitcode">
267269
<ItemGroup>
270+
<_BitcodeCompileFlags Include="@(WasiBitcodeCompileOptimizationFlag)" />
268271
<_BitcodeCompileFlags Include="@(_WasiClangCommonFlags)" />
269272
<_BitcodeCompileFlags Include="$(WasiClangExtraBitcodeCompileFlags)" />
270273
</ItemGroup>

src/mono/wasm/build/WasmApp.Common.targets

+2
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444
4545
- $(EmccLinkOptimizationFlag) - Optimization flag to use for the link step
4646
- $(EmccCompileOptimizationFlag) - Optimization flag to use for compiling native files
47+
- $(WasmBitcodeCompileOptimizationFlag)
48+
- Optimization flag to use for compiling bitcode files
4749
4850
- $(EmccFlags) - Emcc flags used for both compiling native files, and linking
4951
- $(EmccExtraLDFlags) - Extra emcc flags for linking

0 commit comments

Comments
 (0)