Skip to content

v2.3.1 — LLVM 20 Regression Test Suite Complete

Choose a tag to compare

@shaglama shaglama released this 16 Jun 23:46
· 13 commits to main since this release

What's Fixed

All 162 non-skipped regression tests now pass across all three import test suites (no_optimization, basic_optimization, aggressive_optimization). Previously 40+ tests were failing due to AR output differences between LLVM 14 and LLVM 20 that weren't caught locally because the system ikos-import was built against LLVM 14.

Fixed

  • no_optimization/ — 37 files: concrete scalar alloca types (allocate opaque → allocate si32/float/etc.), bitcast elimination cascades, struct layout resolution, SSA renumbering
  • basic_optimization/ — 3 files: bitfield signedness (ui16 → si16), struct alloca types, PHI node renumbering
  • aggressive_optimization/ — 1 file: vtable bitcast chain

Added

  • script/regen_checks.py — auto-regenerates ; CHECK: lines in .ll test files from actual ikos-import output. Use this instead of hand-editing after any future LLVM upgrade.
  • doc/LLVM20_AR_CHANGES.md — reference guide covering every AR output behavioral change between LLVM 14 and LLVM 20, with before/after examples and a troubleshooting checklist.
  • README — new "Working with the Test Suite" section linking to the above.

Full Changelog

See CHANGELOG.md for complete details.

Full diff: v2.3.0...v2.3.1