Skip to content

Instantly share code, notes, and snippets.

@androm3da
Created January 20, 2026 15:32
Show Gist options
  • Select an option

  • Save androm3da/60677f41611f6bde8520f96342fa1b9b to your computer and use it in GitHub Desktop.

Select an option

Save androm3da/60677f41611f6bde8520f96342fa1b9b to your computer and use it in GitHub Desktop.
release reports

Hexagon Backend Release Report: LLVM 21.x

Timeframe: January 29, 2025 - July 15, 2025 Report Generated: January 20, 2026

Summary

During the LLVM 21.x development cycle, the Hexagon backend saw 27 merged pull requests and 10 issues reported.

Merged Pull Requests by Category

Compiler (Backend/CodeGen/Frontend): 23 PRs

PR # Title Merge Date
148752 [hexagon] Add support for llvm.thread.pointer 2025-07-15
148671 Hexagon: Add frexp intrinsic test 2025-07-15
148664 Hexagon: Add test for llvm.exp10 intrinsic 2025-07-14
147482 Hexagon: Move runtime libcall config to tablegen 2025-07-13
147481 DAG: Use fast variants of fast math libcalls 2025-07-13
148132 [Hexagon] Add saturating add instructions 2025-07-11
147476 [Hexagon] Handle truncate of v4i8/v2i16 -> v4i1/v2i1 2025-07-11
147466 [Hexagon] Handle bitcast of i32/v2i16/v4i8 -> v32i1 2025-07-11
145878 [MachinePipeliner] Add validation for memory deps 2025-07-11
147664 [TargetLowering] Change getOptimalMemOpType signature 2025-07-10
147474 Hexagon: Add sincos intrinsic test 2025-07-10
136546 [Hexagon] Handle Call Operand vxi1 without HVX 2025-07-08
147287 [NFC] Remove undef in swp-const-tc1.ll test 2025-07-07
147240 DAG: Remove verifyReturnAddressArgumentIsConstant 2025-07-07
147157 [Hexagon] Use range-based for loops (NFC) 2025-07-05
147099 [llvm] Use llvm::fill (NFC) 2025-07-05
146452 [Hexagon] Implement shouldConvertConstantLoadToIntImm 2025-07-01
146310 [Hexagon] Remove unused flag from HexagonGenExtract 2025-06-30
144975 Hexagon: Add libcall declarations for special memcpy 2025-06-27
145812 [Hexagon] NFC: Reduce version-specific code 2025-06-27
145718 [Hexagon] Remove emplace workaround (NFC) 2025-06-26
142543 Hexagon: Move RuntimeLibcall setting out of TargetLowering 2025-06-06
138637 [Hexagon] Use TargetInstrInfo::RegSubRegPair 2025-05-12

Binutils (LLD/LLVM Tools): 4 PRs

PR # Title Merge Date
148098 [LLD] Merge .hexagon.attributes sections 2025-07-15
146197 [llvm] Use std::tie in comparison functors (NFC) 2025-06-28
144584 Hexagon v87 v89 elf flags 2025-06-18
142082 [Hexagon][llvm-objdump] Fix crash at truncated instruction 2025-05-30

Issues Reported

Total Issues: 10

  • Fixed/Closed: 5
  • Unfixed/Open: 5

Fixed Issues (5)

Issue # Title Category
141740 [Hexagon] llvm-objdump -D crashes in .debug_info Binutils
134659 [Hexagon] Cannot select: t89: v4i1 = HexagonISD::PFALSE Compiler
132766 [lld] [hexagon] Assertion auxIdx == 0 Binutils
138195 [hexagon] Change the default linker to be eld Compiler (duplicate)
131250 Request Commit Access For aankit-ca Administrative

Unfixed Issues (5)

Issue # Title Created Category
148673 Coverage on Multiple Architectures Fails 2025-07-14 Compiler
145206 Program generates incorrect outputs at -O2 -ftree-vectorize -mhvx 2025-06-22 Compiler
138438 [Hexagon] Small data constants cause duplicate symbols 2025-05-04 Binutils
137249 Window scheduler ignores IMPLICIT_DEF instructions 2025-04-24 Compiler
135200 [hexagon] switch to eld as the default linker 2025-04-10 Feature Request

Statistics Summary

Metric Compiler Binutils Total
Merged PRs 23 (85%) 4 (15%) 27
Issues Fixed 2 2 4*
Issues Unfixed 3 1 4**

*Excluding administrative issues **Excluding feature requests

Notable Improvements

  1. HVX Vector Support: Multiple PRs improved handling of vector types (v4i1, v2i1, v32i1) and bitcast operations
  2. Intrinsic Support: Added tests and support for thread.pointer, frexp, exp10, and sincos intrinsics
  3. Runtime Library Improvements: Moved libcall configuration to TableGen for better maintainability
  4. LLD Enhancements: Added support for merging .hexagon.attributes sections and new v87/v89 ELF flags
  5. Bug Fixes: Fixed llvm-objdump crash and linker assertion failures

Known Outstanding Issues

The most significant unfixed issue is #145206 - a miscompilation bug with HVX vectorization that produces incorrect outputs at -O2. This affects correctness and should be prioritized for the next release cycle.

Hexagon Backend Release Report: LLVM 22.x

Timeframe: July 15, 2025 - January 13, 2026 Report Generated: January 20, 2026

Summary

During the LLVM 22.x development cycle, the Hexagon backend saw 19 merged pull requests and 9 issues reported. This release focused heavily on compiler improvements with zero binutils-related changes.

Merged Pull Requests by Category

Compiler (Backend/CodeGen/Frontend): 19 PRs

PR # Title Merge Date
176790 Hexagon: Use -mtriple instead of -march in tests 2026-01-19
176715 [HexagonConstantPropagation] Use getSigned() 2026-01-19
176374 Hexagon: Avoid using getLibcallName for special memcpy 2026-01-16
176115 [Hexagon] Use getSigned() for negative values in va_arg 2026-01-15
169434 [Hexagon] Enable Machine Combiner pass 2026-01-15
174390 [MachinePipeliner] Remove cheap check in dependence analysis 2026-01-15
175413 [Hexagon] Fix PIC crash when lowering HVX vector constants 2026-01-13
175581 [CodeGen][InlineSpiller] Add SubReg argument to loadRegFromStackSlot 2026-01-13
170704 [Hexagon] Add HVX patterns for vector arithmetic 2025-12-11
170560 [Hexagon] Fix HWBF16 PatLeaf type 2025-12-11
170680 [Hexagon] Add HVX V81 builtins 2025-12-09
171205 [LLVM] Mark reloc-none test unsupported on Hexagon 2025-12-08
170646 [Hexagon] Fix assignment 2025-12-04
170643 [Hexagon] Fix assert: = -> == 2025-12-04
168272 [Hexagon] TableGen-erate SDNode descriptions 2025-12-31
167924 [Hexagon] Enable soft bf16 in hexagon 2025-11-19
167637 [Hexagon] Implement isUsedByReturnOnly 2025-11-14
174466 [NFC][Hexagon] Fix unused variable warning 2026-01-05
174419 Honor alignment for HVX masked loads/stores 2026-01-05

Binutils (LLD/LLVM Tools): 0 PRs

No binutils-related Hexagon changes were merged during the 22.x cycle.

Issues Reported

Total Issues: 9

  • Fixed/Closed: 4
  • Unfixed/Open: 5

Fixed Issues (4)

Issue # Title Category
176004 assertion APInt while building musl for hexagon Compiler
171557 error: register `R0' modified more than once Compiler
161050 [Hexagon] Assertion about StageScheduled in ModuloSchedule Compiler
164942 Request Commit Access For pkarveti Administrative

Unfixed Issues (5)

Issue # Title Created Category
176822 [Hexagon] Assertion about DBG_VALUE after terminator 2026-01-19 Compiler
176176 [Hexagon] pr53645-2 fails to build: operand #1 must have type i32 2026-01-15 Compiler
170124 Issues found PVS studio static analyzer 2025-12-01 Compiler
163851 MultiSource/Benchmarks/VersaBench/dbms/dbms.test fails at O0 2025-10-16 Compiler
156787 clang runs loop-idiom-vectorize at -O0 for AArch64, RISCV, Hexagon 2025-09-04 Compiler

Statistics Summary

Metric Compiler Binutils Total
Merged PRs 19 (100%) 0 (0%) 19
Issues Fixed 3 0 3*
Issues Unfixed 5 0 5

*Excluding administrative issues

Notable Improvements

  1. BF16 Support: Added soft bfloat16 support and fixed HWBF16 PatLeaf type issues
  2. HVX Enhancements:
    • Added HVX V81 builtins
    • Added HVX patterns for vector arithmetic
    • Fixed PIC crash when lowering HVX vector constants
    • Improved alignment handling for HVX masked loads/stores
  3. Machine Combiner: Enabled the Machine Combiner pass for better instruction selection
  4. Bug Fixes: Fixed multiple assertion failures and code generation issues
  5. Code Quality: TableGen-erated SDNode descriptions for better maintainability

Comparison with 21.x

Metric 21.x 22.x Change
Total PRs Merged 27 19 -30%
Compiler PRs 23 19 -17%
Binutils PRs 4 0 -100%
Issues Fixed 4 3 -25%
Issues Unfixed 4 5 +25%

Known Outstanding Issues

High Priority

  1. #176822 - DBG_VALUE assertion failure - newly reported, affects debug info generation
  2. #176176 - Build failure for pr53645-2 test - type mismatch in HexagonISD::VASR operation
  3. #163851 - Test failure at O0 with floating-point corruption

Medium Priority

  1. #156787 - Unexpected vectorization at -O0 (affects multiple architectures)
  2. #170124 - Static analyzer findings in HexagonMCChecker.cpp

Carryover Issues from Previous Releases

The following issues remain open from before the 22.x cycle:

Issue # Title Created Age
145206 Program generates incorrect outputs at -O2 -mhvx 2025-06-22 7 months
138438 Small data constants cause duplicate symbols 2025-05-04 8 months
135200 Switch to eld as the default linker 2025-04-10 9 months
82319 BitTracker::UseQueueType::Uses uninitialized 2024-02-20 23 months
80185 Big compile time regression for Linux kernel 2024-01-31 24 months
65946 Long compilation time with VLIWMachineScheduler 2023-09-11 28 months
53976 Invalid Cast with builtin HEXAGON_V6_vandvrt 2022-02-21 47 months
27171 Hexagon Scheduling Models are incomplete 2016-03-01 118 months

Recommendations

  1. Prioritize #176822 and #176176 - These are recent regressions that should be addressed before the 22.x release stabilizes
  2. Address long-standing compile time issues - Issues #65946 and #80185 have been open for over 2 years
  3. Complete scheduling model - Issue #27171 about incomplete scheduling models has been open since 2016
  4. Consider binutils improvements - No binutils work was done in 22.x; consider LLD/tools improvements for 23.x
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment