Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate CDT to LLVM 16.0.6 #327

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

Migrate CDT to LLVM 16.0.6 #327

wants to merge 2 commits into from

Conversation

ericpassmore
Copy link
Contributor

Updated CDT to LLVM 16.0.6

Status

  • Issues: Not able to export symbols from wasm
  • Tests Do No Run
  • All code compiles
  • Update version to 5.0.0-dev

Issue Tracking

#325

Changes

  • Removed old submodule cdt-llvm
  • Created new submodule directly from llvm using tag llvm-16.0.6
  • Created cdt-llvm-extensions
    • Holds cmake files and code to patch llvm, patched via cmake
    • Contains clang attribute definitions, parsing, and code generation
    • Contains wasm-ld hooks for wasm generation of ABI, Actions, and Notification
    • Contains llvm to add EosioApply and EosioSoftFloat logic
  • Updated cmake for external modules to reference the new llvm submodule and directory structure
  • Updated cdt tools to reference clang-16 in versions
  • Modernized cmake files under cdt/tools
  • Updated compiler options to use export in place of only-export
  • removed stack-canary option as it is removed from wasm/Driver.cpp
  • Updated tools/include/eosio migrate to template_arguments from getNumArgs
  • Updated tools/include/eosio dereferencing by adding .str()
  • Updated tool replacing deprecated llvm::Nome with std::nulltopt
  • Removed const value_or function that did not allow for value to mutate, keeping same func without the const value.
  • Consolidated to a single static_assert

- Issues: Not able to export symbols from wasm
- Tests Do No Run
- All code compiles

- Removed old submodule cdt-llvm
- Created new submodule directly from llvm using tag llvm-16.0.6
- Created `cdt-llvm-extensions`
   - Holds cmake files and code to patch llvm, patched via cmake
   - Contains `clang` attribute definitions, parsing, and code generation
   - Contains `wasm-ld` hooks for wasm generation of ABI, Actions, and Notification
   - Contains `llvm` to add EosioApply and EosioSoftFloat logic
- Updated cmake for external modules to reference the new llvm submodule and directory structure
- Updated cdt tools to reference clang-16 in versions
- Modernized cmake files under cdt/tools
- Updated compiler options to use `export` in place of `only-export`
- removed `stack-canary` option as it is removed from `wasm/Driver.cpp`
- Updated `tools/include/eosio` migrate to `template_arguments` from `getNumArgs`
- Updated `tools/include/eosio` dereferencing by adding `.str()`
- Updated `tool` replacing deprecated llvm::Nome with std::nulltopt
- Removed const `value_or` function that did not allow for value to mutate, keeping same func without the const value.
- Consolidated to a single `static_assert`
@ericpassmore ericpassmore added this to the C++20 and LLVM Upgrade milestone Dec 16, 2024
@ericpassmore ericpassmore self-assigned this Dec 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant