Skip to content

Commit

Permalink
[wasm] Add optimization flags to bitcode compilation (dotnet#101538)
Browse files Browse the repository at this point in the history
* [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>
  • Loading branch information
2 people authored and michaelgsharp committed May 8, 2024
1 parent 06c5775 commit 0cd9618
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/mono/browser/build/BrowserWasmApp.targets
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,8 @@
<EmccCompileOptimizationFlag Condition="'$(EmccCompileOptimizationFlag)' == ''">$(_EmccOptimizationFlagDefault)</EmccCompileOptimizationFlag>
<!-- FIXME: which one should take precedence? -->
<WasmCompileOptimizationFlag>$(EmccCompileOptimizationFlag)</WasmCompileOptimizationFlag>
<WasmBitcodeCompileOptimizationFlag Condition="'$(WasmBitcodeCompileOptimizationFlag)' == '' and '$(Configuration)' == 'Release'">-O2</WasmBitcodeCompileOptimizationFlag>
<WasmBitcodeCompileOptimizationFlag Condition="'$(WasmBitcodeCompileOptimizationFlag)' == '' ">$(WasmCompileOptimizationFlag)</WasmBitcodeCompileOptimizationFlag>
<EmccLinkOptimizationFlag Condition="'$(EmccLinkOptimizationFlag)' == '' and '$(Configuration)' == 'Release'">-O2</EmccLinkOptimizationFlag>
<EmccLinkOptimizationFlag Condition="'$(EmccLinkOptimizationFlag)' == ''" >$(WasmCompileOptimizationFlag)</EmccLinkOptimizationFlag>
<WasmLinkOptimizationFlag>$(EmccLinkOptimizationFlag)</WasmLinkOptimizationFlag>
Expand Down Expand Up @@ -406,6 +408,7 @@

<Target Name="_BrowserWasmBeforeWriteCompileBitcodeRsp" BeforeTargets="_WasmWriteRspForCompilingBitcode">
<ItemGroup>
<_BitcodeCompileFlags Include="$(WasmBitcodeCompileOptimizationFlag)" />
<_BitcodeCompileFlags Include="@(_EmccCommonFlags)" />
<_BitcodeCompileFlags Include="$(EmccExtraBitcodeCompilationFlags)" />
</ItemGroup>
Expand Down
3 changes: 3 additions & 0 deletions src/mono/wasi/build/WasiApp.targets
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@

<WasiClangCompileOptimizationFlag Condition="'$(WasiClangCompileOptimizationFlag)' == ''">$(_WasiClangOptimizationFlagDefault)</WasiClangCompileOptimizationFlag>
<WasmCompileOptimizationFlag>$(WasiClangCompileOptimizationFlag)</WasmCompileOptimizationFlag>
<WasiBitcodeCompileOptimizationFlag Condition="'$(WasiBitcodeCompileOptimizationFlag)' == '' and '$(Configuration)' == 'Release'">-O2</WasiBitcodeCompileOptimizationFlag>
<WasiBitcodeCompileOptimizationFlag Condition="'$(WasiBitcodeCompileOptimizationFlag)' == ''" >$(WasiClangCompileOptimizationFlag)</WasiBitcodeCompileOptimizationFlag>
<WasiClangLinkOptimizationFlag Condition="'$(WasiClangLinkOptimizationFlag)' == '' and '$(Configuration)' == 'Release'">-O2</WasiClangLinkOptimizationFlag>
<WasiClangLinkOptimizationFlag Condition="'$(WasiClangLinkOptimizationFlag)' == ''" >$(WasiClangCompileOptimizationFlag)</WasiClangLinkOptimizationFlag>
<WasmLinkOptimizationFlag>$(WasiClangLinkOptimizationFlag)</WasmLinkOptimizationFlag>
Expand Down Expand Up @@ -265,6 +267,7 @@
<!-- FIXME: merge with some other target -->
<Target Name="_WasiBeforeWriteRspForCompilingBitcodeRsp" BeforeTargets="_WasmWriteRspForCompilingBitcode">
<ItemGroup>
<_BitcodeCompileFlags Include="@(WasiBitcodeCompileOptimizationFlag)" />
<_BitcodeCompileFlags Include="@(_WasiClangCommonFlags)" />
<_BitcodeCompileFlags Include="$(WasiClangExtraBitcodeCompileFlags)" />
</ItemGroup>
Expand Down
2 changes: 2 additions & 0 deletions src/mono/wasm/build/WasmApp.Common.targets
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
- $(EmccLinkOptimizationFlag) - Optimization flag to use for the link step
- $(EmccCompileOptimizationFlag) - Optimization flag to use for compiling native files
- $(WasmBitcodeCompileOptimizationFlag)
- Optimization flag to use for compiling bitcode files
- $(EmccFlags) - Emcc flags used for both compiling native files, and linking
- $(EmccExtraLDFlags) - Extra emcc flags for linking
Expand Down

0 comments on commit 0cd9618

Please sign in to comment.