Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Conversation

zlonast
Copy link

@zlonast zlonast commented Mar 13, 2025

Some combination of patches that are already here

cocreature and others added 30 commits January 5, 2021 23:19
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
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.
apaszke and others added 28 commits September 8, 2022 11:59
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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Morty Proxy This is a proxified and sanitized view of the page, visit original site.