Draft: Support up to LLVM 20 #2763
Draft
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 is not yet ready for review. I am opening this primarily to run the CI and produce binary artifacts.
This bumps the
llvm-pretty,llvm-pretty-bc-parser, andcruciblesubmodules in order to bring in several downstream changes that, in total, allow SAW to support LLVM versions up to 20. These include:llvm-pretty: Add support for LLVM 19. llvm-pretty#168, Add flags to cast-related instructions (ZExt,UiToFp, andTrunc) llvm-pretty#169, and Addsamesignflag toICmpllvm-pretty#170llvm-pretty-bc-parser: Add support for LLVM 19 llvm-pretty-bc-parser#316, Support parsing flags in cast-related instructions (ZExt,UiToFp, andTrunc) llvm-pretty-bc-parser#317, and Support parsingsamesignflags inicmpinstructions llvm-pretty-bc-parser#318crucible:crucible-llvm: Adapt to revampedLayoutSpecs inllvm-prettycrucible#1600,crucible-llvm: Supportsamesignflags inicmpinstructions crucible#1602,crucible-llvm: Support flags in cast-related instructions (zext,uitofp, andtrunc) crucible#1603, andcrucible-llvm: Adapt to LLVM debug records andgetelementptrattributes crucible#1606The only code changes that had to be made in SAW itself involve the LLVM backend's skeleton-related commands, which look up debug metadata to figure out which variables are declared. For the time being, I have opted not to make these commands look into LLVM's new debug records to find equivalent information, although it probably should. (TODO RGS: Open an issue about this.)
Fixes #2579.