From 65e898eef8dea7d91c84f7749785fd43d9ac5378 Mon Sep 17 00:00:00 2001 From: Ryan Scott Date: Thu, 20 Apr 2023 14:15:40 -0400 Subject: [PATCH] Support up to LLVM 14 This adds support for LLVM versions up to 14 by: * Bumping the `llvm-pretty` submodule to bring in the changes from elliottt/llvm-pretty#109. * Bumping the `llvm-pretty-bc-parser` submodule to bring in the changes from GaloisInc/llvm-pretty-bc-parser#219. * Bumping the `crucible` submodule to bring in the changes from GaloisInc/crucible#1083. * Updating the surrounding documentation accordingly. --- CHANGES.md | 2 ++ README.md | 2 +- deps/crucible | 2 +- deps/llvm-pretty | 2 +- deps/llvm-pretty-bc-parser | 2 +- doc/manual/manual.md | 2 +- 6 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 344d02bb69..e3d7b56f8d 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -99,6 +99,8 @@ see the `mir_*` commands documented in the [SAW manual](https://github.com/GaloisInc/saw-script/blob/master/doc/manual/manual.md). +* Support LLVM versions up to 14. + # Version 0.9 ## New Features diff --git a/README.md b/README.md index e53dfc7bda..6d78db2fec 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ SAW can analyze LLVM programs (usually derived from C, but potentially for other languages). The only tool strictly required for this is a compiler that can generate LLVM bitcode, such as `clang`. However, having the full LLVM tool suite available can be useful. We have tested -SAW with LLVM and `clang` versions from 3.5 to 12.0, as well as the +SAW with LLVM and `clang` versions from 3.5 to 14.0, as well as the version of `clang` bundled with Apple Xcode. We welcome bug reports on any failure to parse bitcode from LLVM versions in that range. diff --git a/deps/crucible b/deps/crucible index ad4a553487..b4422dd2f7 160000 --- a/deps/crucible +++ b/deps/crucible @@ -1 +1 @@ -Subproject commit ad4a553487eeb5c6bbb5abf4bde26af905bf0254 +Subproject commit b4422dd2f75f5a7310bc038a6ca67a91f3692a42 diff --git a/deps/llvm-pretty b/deps/llvm-pretty index b13493fda7..d099d5d0fe 160000 --- a/deps/llvm-pretty +++ b/deps/llvm-pretty @@ -1 +1 @@ -Subproject commit b13493fda7276835a4e19bf13a9fb1b3e08083a9 +Subproject commit d099d5d0feab8066bc682f11c8a46c82fb7166b5 diff --git a/deps/llvm-pretty-bc-parser b/deps/llvm-pretty-bc-parser index d541adf5c1..59e6991e1b 160000 --- a/deps/llvm-pretty-bc-parser +++ b/deps/llvm-pretty-bc-parser @@ -1 +1 @@ -Subproject commit d541adf5c12e86058cbc1f211456b4ad4a7011a1 +Subproject commit 59e6991e1b89252d4a4aa28a84ab1ac022c18b8d diff --git a/doc/manual/manual.md b/doc/manual/manual.md index f34ed84e1c..b6c9727fd0 100644 --- a/doc/manual/manual.md +++ b/doc/manual/manual.md @@ -1580,7 +1580,7 @@ The resulting `LLVMModule` can be passed into the various functions described below to perform analysis of specific LLVM functions. The LLVM bitcode parser should generally work with LLVM versions between -3.5 and 9.0, though it may be incomplete for some versions. Debug +3.5 and 14.0, though it may be incomplete for some versions. Debug metadata has changed somewhat throughout that version range, so is the most likely case of incompleteness. We aim to support every version after 3.5, however, so report any parsing failures as [on