Changelog for llvm-hs-pure-6.1.0
6.1.0 (2018-05-05)
- IRBuilder: Ensure that automatically generated block labels are
assigned smaller identifiers than the instructions following
them. This is only important when you use
llvm-hs-pretty.llvm-hsdoes not care about the order of identifiers assigned to unnamed values. - IRBuilder: add
currentBlockwhich returns name of the currently active block. - Remove the
MetadataNodeReferenceconstructor. References to metadata nodes are now encoded using the polymorphicMDReftype. - Add debug metadata to the AST in
LLVM.AST.Operand. Thanks to @xldenis who started that effort! - Drop support for GHC 7.10.
- Add
metadatafield toGlobalVariableandFunction.
6.0.0 (2018-03-06)
- Support for LLVM 6.0
- Add
StrictFPandSanitizeHWAddressfunction attributes. - Remove
UnsafeAlgebraconstructor fromFastMathFlags. - Add
allowReassoc,allowContractandapproxFuncfields toFastMathFlags. - Remove
NoFastMathFlagsconstructor since it is equivalent to setting all fields in theFastMathFlagsrecord toFalse. Existing uses ofNoFastMathFlagscan be replaced by thenoFastMathFlagsvalue.
- Add
- Add
AggregateZerofor zero-initializing structs, arrays and vectors. PreviouslyNullwas used for null pointers as well as zero-inializing aggregates. The new behavior reflects LLVM’s internal representation and the C++-API. Existing uses ofNullon non-pointer types must be changed toAggregateZero. - Fix recursive function calls in the
IRBuilderAPI.
5.1.2 (2018-01-06)
- Fixes and enhancements to the IRBuilder
sdivandudivno longer default to exact.- Fix type of global references.
- Add more instructions.
5.1.1 (2017-12-16)
- Add a completely new API for building modules in a monadic style similar to the IRBuilder provided by LLVM’s C++ API. The modules can be found in
LLVM.IRBuilder. An example can be found in the readme and in the test suite. - Add an API for getting the type of LLVM values in
LLVM.AST.Typed. This is primarily intended to be used in other libraries that build uponllvm-hs-puresuch asllvm-hs-pretty.
5.1.0 (2017-10-12)
Enhancements
- Suport string attributes as parameter attributes
- Support more calling conventions
- Support
NoTailTailCallKind
5.0.0 (2017-09-07)
-
Support for LLVM 5.0
We only give a summary of the changes affecting the public API of
llvm-hs-purehere. Please refer to the official release notes for LLVM 5.0 for an overview of all changes in LLVM 5.0.- The
X86_64_Win64calling convention is now calledWin64. - There is a new
Speculatablefunction attribute. - The
CrossThreadsynchronization scope has been removed. There is now a newSystemsynchronization scope.
- The
4.1.0 (2017-05-17)
- Switch AST to
ByteString/ShortByteStringreflecting LLVM’s use of C-style strings. preferredAlignmentis now aWord32instead ofMaybe Word32. To recover the old behavior set it to the same value as abiAlignment.GlobalAliasnow expects the element type of a pointer type instead of the pointer type itself. The address space is passed separately via theaddrSpacefield. This makesGlobalAliasconsistent withGlobalVariable.- The
FloatingPointTypeconstructor now takes aFloatingPointTypeargument instead of a width and aFloatingPointFormatto more closely match the LLVM IR language reference. - The
IsStringinstance ofNamenow throws an error on non-ASCII strings instead of silently discarding the upper bytes. There is also a newmkNamefunction with the same behavior for easier discoverability. Non-ASCII names need to be encoded using an arbitrary encoding to to aShortByteStringwhich can then be used as aName.
4.0.0 (initial release, changes in comparison to llvm-general)
- Move modules from
LLVM.General*toLLVM.* - Support for LLVM 4.0
- Improved support for LLVM’s exception handling instructions
-fshared-llvmis now supported on windows (thanks to @RyanGLScott)- Default to
-fshared-llvm - Expose
LLVM.Internal.*modules.