Skip to content

0.8.0

Latest
Compare
Choose a tag to compare
@matthewseaman matthewseaman released this 26 Mar 22:58

LLVMSwift now tracks LLVM 11.0.

⚠️ Breaking Changes Ahead ⚠️

  • Minimum tools versions have been bumped to LLVM 11.0 and Swift tools 5.2 (h/t @twof & @ThatsJustCheesy).
  • Non-default brew install locations are now supported by the utils/make-pkgconfig.swift script (h/t @eonil).
  • DIBuilder methods now require explicitly-specified alignments. They previously defaulted to 0-alignment, which violates the DWARF standard.
  • A sourceFilename may now be set on a Module. This value still defaults to the value of name. (h/t @ColMcp)
  • In accordance with recent LLVM changes, alignments of 0 (the default) passed to IRBuilder's buildAlloca, buildStore, and buildLoad will result in the target choosing a default alignment that is convenient and compatible with the type. This will impact output IR files, which previously left out default aligns altogether.
  • Per LLVM 10.0, unnamed function arguments now get printed with their automatically generated name (e.g. “i32 %0”) in IR function definitions.
  • DIBuilder.buildCompileUnit now accepts parameters for sysRoot and sdkRoot.
  • Fixed an issue where the |= and <<= operators were inverted for Size types.
  • Fixed issues in the behavior of Alignment.log2 for zero-alignments and 64-bit results.