[NativeAOT-LLVM] Add a native WASM object writer #2643
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds an object writer that directly emits WASM object files (see https://github.com/WebAssembly/tool-conventions/blob/main/Linking.md) and uses it to emit data symbols. It is anticipated that future changes will use it for code (compiler-generated helpers) as well.
We have also decided to delete the LLVM-based object writer, since doing otherwise would imply either maintaining it (duplication of effort) or letting it bitrot. It means that ILC will no longer produce all output as LLVM bitcode.
There are two motivations for this change: