New
0.6.0
⚠️ Breaking Changes Ahead ⚠️
- LLVMSwift now enforces deployment target constraints. In the future, we will continue to update this constraint in line with the LLVM homebrew package.
- The
PassPipelineris now provided as an alternative toFunctionPassManager, which may crash if used in many common situations. Please migrate accordingly. - The
FunctionPassManageris now deprecated - Documentation for core components continues to improve
- An analog to LLVM’s infamous target
TripleAPI has been added. APIs that previously dealt with Strings have been updated accordingly - The bindings to ObjectFile were not correct and were not nearly feature-rich enough. The API has been completely overhauled
- The
IRInstructionprotocol has been added to unify instruction values around a common protocol. - Metadata can now be attached to instructions
- The debug location accessor now supports being reset to
nilwithout crashing - DIFile now exposes file metadata, and file metadata now exposes its source text, directory, and name
- The Metadata Builder facility (
MDBuilder) has been ported from LLVM - Additional bit-manipulation primitives for setting and clearing bits and getting leading and trailing 1’s counts have been added to
APInt - The labels on
FunctionType's initializer have been removed - The internalize pass has been added
- All SROA passes no longer differentiate between their parameters. They are now deprecated - SROA is available under with the unified
scalarReplacementOfAggregatespass