-
Notifications
You must be signed in to change notification settings - Fork 126
Llvm 16 #436
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
Open
zlonast
wants to merge
66
commits into
llvm-hs:llvm-12
Choose a base branch
from
zlonast:llvm-16
base: llvm-12
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Llvm 16 #436
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
There is still a lot of stuff missing but given that the existing API is going to go away in the next major LLVM release, I’m going to merge this in the current state so we have at least something after that.
Update llvm-hs from LLVM 9 to LLVM 12. List of changes: - Attributes - Various minor changes, not listed in detail. - Debug information - DIFlag: BlockByrefStruct and ArgumentNotModified removed. - DISubrange - New arguments: upperBound and stride. - Arguments {lowerBound,upperBound,stride} are generalized and may be DIVariable or DIExpression in addition to Constant Int64. - DIModule - New arguments: apiNotesFile and lineNo. - Removed arguments: isysroot. - Instructions - New instructions: freeze. - Modified instructions - shufflevector: now takes mask as [Int32] instead of Constant. - JIT - Some deprecated OrcJIT v1 APIs are now removed: VModuleKey, SymbolResolver. - Start updating APIs and tests using OrcJIT v2 APIs. Work-in-progress. - Target - Target option flag changes, not listed in detail. - Transforms - Some existing transforms were removed or merged into others. Some had options modified. - Newly added APIs - Added Triple (target triple) API to llvm-hs-pure, along with string conversion and parsing. - Added debugging utilities: dumpMetadata. - Tests - Textual LLVM IR changes - Function parameters are now printed with local identifiers (e.g. `%0`). - Instruction alignment arguments must now be explicit: 0 no longer seems like a valid default value. - Instrumentation tests - Update MemorySanitizer test to run only on supported platforms: matching the implementation at https://github.com/llvm/llvm-project/blob/release/12.x/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp. - Optimization tests - Add a more robust "is module vectorized?" check for the SLPVectorization test. Current status: all tests pass via `stack test`. Todos: - Relevant comments to resolve: `{FIXME,TODO,NOTE}(llvm-12)` - Lots of code cleanup and API design finalization for OrcJIT v2. - Update installation instructions for llvm-hs@llvm-12. - Fix CI for llvm-hs@llvm-12. - Vote for using GitHub Actions instead of Travis CI. Co-authored-by: Adam Paszke <apaszke@google.com>
dump() is only available in debug builds of LLVM.
* Add an `alignment` field to atomic instructions to match the new builder signatures.
The order of generated attributes has changed, so update the list.
- Add new attributes - Remove stack alignment from target options (it is not a module attribute) - Update curated pass tests with new inferred attributes - Remove illegal align annotations on tail call tests
- Slight updates to Attribute order - GetElementPtr instruction no longer supports pointee type inference. We should stop using that, as LLVM is migrating to opaque pointers.
Since LLVM 12 changed the mask argument of `shufflevector` to a constant vector of `Int32`, `ppLlvm` requires a `Typed` instance for `[Int32]` for the above snippet to work properly.
…y LLVM components, remove hardcoded parallelism limits and let cmake figure things out automatically
…e getElementPtrType or getElementType
As of the LLVM 13 commit linked below, the executor process control for interacting with an ORC session has been moved into the `ExecutionSession`. llvm-hs currently does also doesn't support the old way of interacting with these. This `UnsupportedExecutorProcessControl` is simply an empty implementation meant as a migration path for clients that don't already use `ExecutorProcessControl`-based APIs. llvm/llvm-project@2487db1
Fix build under LLVM 13 because of a missing argument in the ORC ExecutionSession
llvm-12 has gotten quite a few updates that weren't included here, so this is an attempt to sync them up.
Merge llvm-12 into llvm-head-unstable
They're being removed from LLVM as this is written and will soon break our build.
It's being removed as well and those functions are dead at this point.
Or else the build will be broken with latest LLVM
LLVM is in the process of removing the legacy PassManager APIs that llvm-hs depends on pretty heavily. To harden against future breakage this commit adds preliminary support for the new PassBuilder-based infrastructure. However, since it is quite different than the previous API, only curated pass specs are supported for now.
Co-authored-by: Fangrui Song <i@maskray.me>
LLVM doesn't like that we're not checking the error flags, so we have to make it more explicit.
Signed-off-by: Tao He <sighingnow@gmail.com>
Signed-off-by: Tao He <sighingnow@gmail.com>
# Conflicts: # llvm-hs-pure/llvm-hs-pure.cabal # llvm-hs-pure/src/LLVM/IRBuilder/Module.hs # llvm-hs-pure/src/LLVM/Triple.hs # llvm-hs/src/LLVM/Internal/FFI/OrcJITC.cpp
We need to link against the shared library when loading in GHCi and against the static libraries otherwise
Library has now been tested with LLVM 16.0 and can safely be used with it.
…ersion The library wouldn't compile because of ambiguous occurrences of unzip.
> > Co-authored-by: cassandracomar cass@ndra.io Co-authored-by: noahmartinwilliams noahmartinwilliams@gmail.com
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Some combination of patches that are already here