Changelog for llvm-pretty-0.14.0.0
Revision history for llvm-pretty
0.14.0.0 -- 2026-01-22
-
Changes to support LLVM 19 (some of these changes are not backward-compatible):
-
Changes to
LayoutSpecfor DataLayout:- Size specification fields use a common sub-structure
Storagewhich itself contains anAlignmentcommon sub-structure:IntegerSize,VectorSize,FloatSize, andStackObjSize. - The pointer size specification field uses a
PointerSizesub-structure that itself contains aStoragesub-structure. - Updated
AggregateSizeto make first field optional (it was dropped in LLVM 4) and the remaining fields are now provided via theAlignmentsub-structure. - Added
ProgramAddrSpace,GlobalAddrSpace, andAllocaAddrSpaceconstructors, each defined via anAddressSpacesub-structure. - Added
NonIntegralPointerSpacesto record address spaces with an unspecified bitwise representation. - Added
GoffMangling,WindowsX86CoffMangling, andXCoffManglingforms of Mangling.
- Size specification fields use a common sub-structure
-
Added
GEPAttrflags forGEPinstruction and constant expression, withRangeSpecfor the latter. -
Added
numExtraInhabitantstoDIBasicType. -
Added support for
DebugRecordparsing, specifically for:FUNC_CODE_DEBUG_RECORD_VALUEFUNC_CODE_DEBUG_RECORD_DECLAREFUNC_CODE_DEBUG_RECORD_ASSIGNFUNC_CODE_DEBUG_RECORD_VALUE_SIMPLEFUNC_CODE_DEBUG_RECORD_LABEL
This adds a new field to both the
ResultandEffectconstructors of theStmttype. -
Pretty-printing with an LLVM version >= 19 now generates an error for
icmp,fcmp, andshlconstant expressions that are no longer supported as of LLVM 19.
-
-
Changes to cast-related instructions:
- Add a
Boolfield toZExtwhich, ifTrue, indicates that the argument must be non-negative. This is used by LLVM 18 and up. - Add a
Boolfield toUiToFpwhich, ifTrue, indicates that the argument must be non-negative. This is used by LLVM 19 and up. - Add
Boolfields toTruncto check if the truncation would cause unsigned or signed overflow. These are used by LLVM 20 and up.
- Add a
-
Add a
Boolfield toICmp, which indicates that the arguments must have the same sign. This is used by LLVM 20 and up. -
Add
dlAtomGroupanddlAtomRankfields toDebugLoc', which were introduced in LLVM 21. -
Add
dilColumn,dilIsArtificial, anddilCoroSuspendIdxfields toDILabel', which were introduced in LLVM 21. -
The following debug-related fields have had their types changed from
Word64toMaybe (ValMd' lab):DIBasicType':dibtSizeDICompositeType':dictSizeanddictOffsetDIDerivedType':didtSizeanddidtOffset
This allows them to encode non-constant sizes and offsets (a capability used by Ada, for instance) in LLVM 21 or later.
-
Added the
bbStmtModifierwhich can be used to modify individual statements as they are emitted from the top-level instruction generator functions (e.g to add Debug Metadata to each statement). -
Fix a bug that would cause
indirectbrstatements to be pretty-printed incorrectly.
0.13.1.0 (October 2025)
- Add a
FunctionPointerAlignconstructor toLayoutSpec.
0.13.0.0 (March 2025)
- Changed some of the signatures of helper functions in the AST to make them more
flexible by using
Type' identrather thanTypein their signatures (the latter fixesidentto beIdent). Changed functions:isAlias,isPrimTypeOf,isVector,isVectorOf,isArray, andisPointer.
0.12.1.0 (August 2024)
-
Fix for printing NaN and infinite floating point values.
-
Add support for more AtomicRWOps.
0.12.0.0 (January 2024)
- Add preliminary support for LLVM versions up through 17.