Skip to content

Fast ABI forwarder optimizations#406

Merged
Scottj1s merged 8 commits into
masterfrom
scottj1s_fast_fwd_lib
May 16, 2019
Merged

Fast ABI forwarder optimizations#406
Scottj1s merged 8 commits into
masterfrom
scottj1s_fast_fwd_lib

Conversation

@Scottj1s

Copy link
Copy Markdown
Member

This PR resolves some bloat issues related to fast ABI:

For components:
Shrank x64 thunks from 32 to 16 bytes by removing a 6 byte padding (the thunk code itself is only 12 bytes).

For clients:
There is no easy way to implement /Gy-like behavior (function-level linking, or “COMDAT packaging”) in assembler, which is required for /OPT:REF to discard unneeded thunks. To address this, the nuget now includes a lib instead.

@Scottj1s

Copy link
Copy Markdown
Member Author

Discussed with VS team the potential for ABI breaking changes between toolset versions of lib.exe and link.exe, and was assured there is no risk.

@DefaultRyan

Copy link
Copy Markdown
Member

Might want to look into that failed Windows build. Seems due to a dependency on the 142 toolset?

@Scottj1s

Copy link
Copy Markdown
Member Author

Might want to look into that failed Windows build. Seems due to a dependency on the 142 toolset?

Yes, thanks!

@Scottj1s Scottj1s merged commit e655fd0 into master May 16, 2019
@Scottj1s Scottj1s deleted the scottj1s_fast_fwd_lib branch May 16, 2019 15:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants