Skip to content

HOT: One LLVM To Compile Them All #60

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

Merged
merged 27 commits into from
May 5, 2025

Conversation

Victor-Jung
Copy link
Member

@Victor-Jung Victor-Jung commented Apr 23, 2025

This super hot PR unifies the LLVM versions between the platforms Deeploy supports. Previously, we were using a pre-compiled LLVM 12 for Snitch. Additionally, it consolidates several aspects of the CD infrastructure.

Added

  • Build flow and its Docker integration for LLVM 15 tagged `15.0.0-snitch-0.1.0'
  • Picolibc build flow for v32im, v32ima, rv32imc and rv32imafd. Previously, it was only for rv32imc.
  • LLVM Compiler RT for rv32im, rv32ima, and rv32imafd.
  • Appropriate linking of picolibc and compiler RT.
  • Build and install a flow for XTensor, XTL, and XSIMD. These libraries are used in some GVSoC models, and they used to live in the PULP SDK, as a header-only library. Keeping only the library headers in the PULP SDK makes it hard to bump new versions.

Changed

  • Officially depreciate Banshee as a simulator for Snitch Cluster in the CI. Maintaining this is a burden and unnecessary, as GVSoC is now the standard simulator. Additionally, newer versions of the Snitch runtime don't support Banshee anymore.
  • Bump XTensor's version to 0.25.0 to fix a bug with Intel's SSE.
  • Update snitch cluster patch to link to picolibc and add explicit target.
  • Update README to include Snitch in the Getting Started and the D&T Journal.

Removed

  • Remove the link to the precompiled LLVM 12 in the testRunner for Snitch and in the CI.
  • Remove the sourcing of the cursed PULP SDK script.

PR Merge Checklist

  1. The PR is rebased on the latest devel commit and pointing to devel.
  2. Your PR reviewed and approved.
  3. All checks are passing.
  4. The CHANGELOG.md file has been updated.
  5. If the docker was modified, change back its link after review.

@Victor-Jung Victor-Jung self-assigned this Apr 23, 2025
@Victor-Jung Victor-Jung requested a review from Xeratec as a code owner April 23, 2025 20:28
Copy link
Member

@Xeratec Xeratec left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good except that some tests are not passing, and I think MemPool does not support RV32IMC but only RV32IM

@FrancescoConti
Copy link
Member

Three toolchains for drone researchers under the sky,
Seven for the RTL developers in their halls of cement,
Nine for software guys doomed to suffer,
One for the Dark Deeployers in their torment,
In the Land of Zurich where overflows the buffer.
One LLVM to compile them all, One LLVM to find them,
One LLVM to bring them all and in the binary link them
In the Land of Zurich where overflows the buffer.

@Xeratec
Copy link
Member

Xeratec commented Apr 25, 2025

Three toolchains for drone researchers under the sky,
Seven for the RTL developers in their halls of cement,
Nine for software guys doomed to suffer,
One for the Dark Deeployers in their torment,
In the Land of Zurich where overflows the buffer.
One LLVM to compile them all, One LLVM to find them,
One LLVM to bring them all and in the binary link them
In the Land of Zurich where overflows the buffer.

Love it! I made the same reference when he told me about this PR 😂

573695d6-5ac6-411a-8aca-07ca88130a48

@Victor-Jung
Copy link
Member Author

All my future Deeploy-related talks will be "One Framework to Deeploy them All" ;)

@Victor-Jung
Copy link
Member Author

@Xeratec Ready for review

Copy link
Member

@Xeratec Xeratec left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just have one question. Feel free to merge.

@Victor-Jung Victor-Jung merged commit fdde994 into pulp-platform:devel May 5, 2025
2 of 121 checks passed
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.

3 participants