LLVM Flang Feature Enabled Drop 22.3.0 rocm-afar-10004-drop-22.3.0 (31-Dec-2025) Packages: https://repo.radeon.com/rocm/misc/flang wget https://repo.radeon.com/rocm/misc/flang/rocm-afar-10004-drop-22.3.0.tar.bz2 wget https://repo.radeon.com/rocm/misc/flang/libhipblaslt-rocm-afar-10004-drop-22.3.0.tar.bz2 md5sum: 5e8de03369ba6ea8d28adf41c7568a5d rocm-afar-10004-drop-22.3.0.tar.bz2 596e0a23d77194657d8e8f8ec65e094c rocm-afar-10004-drop-22.3.0.txt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Notes: - One distribution (AlmaLinux) now provided which is installable on any OS - libhipblaslt provided separately for applications which need it Drop 22.3.0 new functionality: - User definied reductions are now supported - Improved support for split distribute and parallel - Flang runtime for the GPU is now built as generic amdgcn-amd-amdhsa - Reduces size of library ~28x, improves link time - The previous fat library -lflang_rt.hostdevice is no longer provided - Flang runtime for the GPU now linked by default - To not link the GPU flang-rt use: -fno-gpu-flang-rt - Add debug type support for procedure pointers - Swap to attach semantics for descriptor mapping - Emit module summary for Full LTO to improve link times - Set REQUIRES flags on program unit symbol - Fix USM `close` semantics and `use_device_ptr` - Many more fixes (see "Patches of interest' below) Known issues: - Runtime issue calling HIP kernels from Fortran - Regression in UMT, currently fails at runtime - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Patches of interest: (48b0fff371fe...3d034651e263) c3e8a29a4d60 [OpenMP] Define remaining OpenMP 6.0 clauses, add flang skeleton https://github.com/llvm/llvm-project/pull/172080 469e5245987b [OpenMP] Restore alphabetical order to clause definitions, NFC https://github.com/llvm/llvm-project/pull/173008 603904fa193c [flang][OpenMP] Make OmpDependenceKind be a common enum, NFC https://github.com/llvm/llvm-project/pull/172871 755f298ddcd4 [flang][OpenMP] Implement COMBINER clause https://github.com/llvm/llvm-project/pull/172036 1deee91bf52c [flang][OpenMP] Move some class definitions into right place, NFC https://github.com/llvm/llvm-project/pull/172736 6ac581975940 [flang][OpenMP] Convert more clauses in pre-lowering https://github.com/llvm/llvm-project/pull/172334 12cb3763216d [flang][OpenMP] Diagnose whole assumed-size arrays on two clauses https://github.com/llvm/llvm-project/pull/172510 06e4728f83e5 [Polly] Recalculate dependencies after import-jscop https://github.com/llvm/llvm-project/pull/172640 aa7a95c8e96c [flang][OpenMP] Make function name more accurate, NFC https://github.com/llvm/llvm-project/pull/172328 6e01ea4babc8 [flang][OpenMP] Generalize checks of loop construct structure https://github.com/llvm/llvm-project/pull/170735 8176194f36b9 [OpenMPOpt] Allow spmdization in presence of functions taking callbacks. https://github.com/ROCm/llvm-project/pull/828 5ee641d85612 [MLIR][OpenMP] Fix allocation location with split distribute and parallel. https://github.com/ROCm/llvm-project/pull/827 1451f3d9b008 [flang][OpenMP] Use StylizedInstance in converted clauses https://github.com/llvm/llvm-project/pull/171907 0096bda38a67 [flang][OpenMP] Rename few types to spec names, NFC https://github.com/llvm/llvm-project/pull/171845 41ceaf968f0b [flang][OpenMP] Implement loop construct iterator range https://github.com/llvm/llvm-project/pull/170734 ceb9649eff91 [Flang-RT] Add preprocessor guard for GPU compilation https://github.com/ROCm/llvm-project/pull/815 dd63dff83aed [flang][OpenMP] Parse OpenMP 6.0 syntax of INIT clause https://github.com/llvm/llvm-project/pull/171702 4b92bcfaef36 [Flang-RT] Changes required for embedded GPU LLVM IR Flang runtime https://github.com/ROCm/llvm-project/pull/757 126748840d35 [flang][OpenMP] Frontend support for DIMS modifier https://github.com/llvm/llvm-project/pull/171454 bfce02548d8a [flang][OpenMP] Store list of expressions in InitializerT https://github.com/llvm/llvm-project/pull/170923 548901000dee [Flang-rt] Implement same behavior as -O3 for zero-length arrays https://github.com/llvm/llvm-project/pull/171480 cc25ac424a85 [flang][OpenMP] Use DirId() instead of DirName().v, NFC https://github.com/llvm/llvm-project/pull/171484 7675fc79c802 [Flang] Move builtin .mod generation into runtimes (Reapply #137828) https://github.com/llvm/llvm-project/pull/169638 8c8074f0fa51 [Flang][OpenMP] Fix OpenMP static scheduling when trip count is zero https://github.com/llvm/llvm-project/pull/170863 b08c72b26c95 [Flang][OpenMP] Enables parsing of threadset clause https://github.com/llvm/llvm-project/pull/169856 830ef4e4e2d0 [openmp][NFCI] Move .mod code out of runtimes subdir https://github.com/llvm/llvm-project/pull/169909 fbea8fa386b7 [llvm][mlir][OpenMP] Support translation for linear clause in omp.wsloop and omp.simd https://github.com/llvm/llvm-project/pull/139386 03c37160a173 [flang][OpenMP] Reject END DO on construct that crosses label-DO https://github.com/llvm/llvm-project/pull/169714 23b8711da9f2 [llvm][mlir][OpenMP] Support translation for linear clause in omp.wsloop and omp.simd https://github.com/llvm/llvm-project/pull/139386 b360a782ca5d Reland "[Flang][OpenMP] Add lowering support for is_device_ptr clause (#169331)" https://github.com/llvm/llvm-project/pull/170851 685d2cf275e4 [Flang][OpenMP] Add lowering support for is_device_ptr clause (#169331) https://github.com/ROCm/llvm-project/pull/764 290b32a699ae [llvm][mlir][OpenMP] Support translation for linear clause in omp.wsloop and omp.simd https://github.com/llvm/llvm-project/pull/139386 e73b8036f82b [flang][OpenMP] Extract check into separate function, NFC https://github.com/llvm/llvm-project/pull/170728 01737c1fd1d6 [Flang][OpenMP] Only allow implicit mappers for Allocatables. https://github.com/llvm/llvm-project/pull/170701 a77c4948a568 [Flang][OpenMP] Add lowering support for is_device_ptr clause https://github.com/llvm/llvm-project/pull/169331 68caa8b2ef19 [flang][OpenMP] Add explicit return type to visitor function https://github.com/llvm/llvm-project/pull/170677 04bc0af1034d [flang][OpenMP] Expand GetOmpObjectList to all subclasses of OmpClause https://github.com/llvm/llvm-project/pull/170351 7c33b8247d7e [flang][OpenMP] Move two functions to check-omp-loop.cpp, NFC https://github.com/llvm/llvm-project/pull/170526 cb5362a43329 [flang][OpenMP] Rename OmpLoopRangeClause to OmpLooprangeClause, NFC https://github.com/llvm/llvm-project/pull/170370 6b17525b290c [Flang] Add switch for disabling implicit linking of Flang GPU https://github.com/ROCm/llvm-project/pull/677 867d353cff54 [OpenMP][flang] Support GPU team-reductions on allocatables https://github.com/llvm/llvm-project/pull/169651 8a3891ceadad [AMDGPU][NPM] Preserve analyses in AMDGPURewriteAGPRCopyMFMA for NPM https://github.com/llvm/llvm-project/pull/170130 f3cce97ba79e [flang][OpenMP] Remove directive-specific code from GetOmpDirectiveNa… https://github.com/llvm/llvm-project/pull/170157 a3d772490885 [flang][OpenMP] Make OmpDirectiveSpecification::Flags an EnumSet https://github.com/llvm/llvm-project/pull/169713 d989ff93e2a0 [flang][OpenMP] Add lowering of subroutine calls in custom reduction combiners https://github.com/llvm/llvm-project/pull/169808 1cea4a0841da [AMDGPU][NPM] Fix CFG invalidation detection in insertSimulatedTrap https://github.com/llvm/llvm-project/pull/169290 bf43b9502512 [flang][OpenMP] Remove unused #include "dump-parse-tree.h", NFC https://github.com/llvm/llvm-project/pull/169708 f481f5bef90d [OpenMP][flang] Add initial support for by-ref reductions on the GPU https://github.com/llvm/llvm-project/pull/165714 00aca530b1e4 [Flang-rt] Remove COMPILE_ONLY from flang-rt CMake file. https://github.com/llvm/llvm-project/pull/169534 fd22706e937f [flang][OpenMP] Skip compiler directives in getCollapsedLoopEval https://github.com/llvm/llvm-project/pull/169565 86fbaef99a53 [Flang] Move builtin .mod generation into runtimes https://github.com/llvm/llvm-project/pull/137828 28fde6850103 [Flang] - Enhance testing for strictly-nested teams in target regions. https://github.com/llvm/llvm-project/pull/168437 9cff3f51d35c [flang][OpenMP] Tolerate compiler directives in loop constructs https://github.com/llvm/llvm-project/pull/169346 3e86f056217a [OpenMP][flang] Lowering of OpenMP custom reductions to MLIR https://github.com/llvm/llvm-project/pull/168417 173600880b8f [Flang][OpenMP][MLIR] Initial declare target to for variables implementation https://github.com/llvm/llvm-project/pull/119589 20929abb8563 [MLIR][OpenMP] Introduce overlapped record type map support https://github.com/llvm/llvm-project/pull/119588 06fc87bcd3d6 [flang][OpenMP] Better diagnostics for invalid or misplaced directives https://github.com/llvm/llvm-project/pull/168885 2d051adc75b4 [flang] Add missing include, fix build break after c81a189c50 https://github.com/llvm/llvm-project/pull/169192 c81a189c5083 [flang][OpenMP] Canonicalize loops with intervening OpenMP constructs https://github.com/llvm/llvm-project/pull/169191 ebb0c9c559b5 [flang][OpenMP] Move some utilities from openmp-parsers to openmp-uti… https://github.com/llvm/llvm-project/pull/169188 e83cc896e7c2 [flang][OpenMP] Fix build with gcc 7.5.0 https://github.com/llvm/llvm-project/pull/169184 c2d659b9b8ef [flang][OpenMP] Implement loop nest parser https://github.com/llvm/llvm-project/pull/168884 9daf4345ec83 [Flang] Add -ffast-real-mod back for further control of MOD optimizations https://github.com/llvm/llvm-project/pull/167118 b6dadc7e4d26 Revert "[OpenMP] Fix firstprivate pointer handling in target regions" https://github.com/llvm/llvm-project/pull/169143 3005886fee04 [flang][OpenMP] Fix some typo-like things in test case https://github.com/llvm/llvm-project/pull/168582 d69320e775a7 [OpenMP] Introduce "loop sequence" as directive association https://github.com/llvm/llvm-project/pull/168934 2ab9492d8163 [llc][NPM] Use buffer_ostream support for non-seekable streams https://github.com/llvm/llvm-project/pull/168842 7b7ff69b97a4 [Flang] Support generic execution of parallel regions https://github.com/ROCm/llvm-project/pull/414 0e8222b84b60 [flang][debug] Make common blocks data extraction more robust. https://github.com/llvm/llvm-project/pull/168752 c32c1d0d21ce [Runtimes] Default build must use its own output dirs https://github.com/llvm/llvm-project/pull/168266 c88ae6eb2120 [flang][OpenMP] Move two utilities from Semantics to Parser, NFC https://github.com/llvm/llvm-project/pull/168549 4be0ab659e6a [flang][OpenMP] Undeprecate accidentally deprecated TARGET LOOP https://github.com/llvm/llvm-project/pull/167495 8c674f04aa57 [OpenMP][Flang] Change the OmpDefaultMapperName suffix https://github.com/llvm/llvm-project/pull/168399 38811bea5a56 [Flang] [OpenMP] Add support for spaces in between the name https://github.com/llvm/llvm-project/pull/168311 e70e9ec3b837 [flang][OpenMP] Store Block in OpenMPLoopConstruct, add access functions https://github.com/llvm/llvm-project/pull/168078 f12ad9599114 [Polly] Remove ScopPass infrastructure https://github.com/llvm/llvm-project/pull/125783 739a5a468559 [Flang][OpenMP] Fix defaultmap(none) being overly aggressive with symbol checks https://github.com/llvm/llvm-project/pull/167806 8aa7d823b0cb [OpenMP][Flang] Emit default declare mappers implicitly for derived types https://github.com/llvm/llvm-project/pull/140562 928393b29a92 [flang][OpenMP] Remove dead code left over after PR143715, NFC https://github.com/llvm/llvm-project/pull/167941 6e7e6eda5ec9 [Flang][NFC] Un-xfail tests that had to be xfailed in f4093c8 https://github.com/ROCm/llvm-project/pull/583 7a0f7dbf2dcc [Polly] Introduce PhaseManager and remove LPM support (#125442) https://github.com/llvm/llvm-project/pull/167560 471d80415875 [CMake][unittests] Teach export_executable_symbols about ALIAS targets https://github.com/llvm/llvm-project/pull/167932 833ffa54f25f [Flang][OpenMP] Update declare mapper lookup via use-module https://github.com/llvm/llvm-project/pull/167903 e1324a937786 Revert "[Flang][OpenMP] Update declare mapper lookup via use-module" https://github.com/llvm/llvm-project/pull/167896 bb5f3a08b6ee [Flang][OpenMP] Update declare mapper lookup via use-module https://github.com/llvm/llvm-project/pull/163860 7129d76fe56e Revert "[lldb][NFC] Mark ValueObject library with NO_PLUGIN_DEPENDENCIES" https://github.com/llvm/llvm-project/pull/167886 c3103eb9ca6b [OpenMP] Fix small merge artifact in OpenMP device runtime https://github.com/ROCm/llvm-project/pull/568 66da12ae6975 [flang][OpenMP] Delete include of unused header, NFC https://github.com/llvm/llvm-project/pull/167762 19043b2d507c [OpenMP] Report errors when construct decomposition fails https://github.com/llvm/llvm-project/pull/167568 33a352f2d58f [Flang][OpenMP] - Fix the mapping flags used on descriptors mapped by MapsForPrivatizedSymbolsPass https://github.com/llvm/llvm-project/pull/167554 0df5dee28a11 [OpenMP] Apply COLLAPSE to innermost leaf that allows it https://github.com/llvm/llvm-project/pull/167565 c5eb7eb3dcd5 [OpenMP] Add more comments to `ConstructDecompositionT.h`, NFC https://github.com/llvm/llvm-project/pull/167564 0957656a4077 [runtimes][GTest] LLVM-independent unittests https://github.com/llvm/llvm-project/pull/164794 cfc56c982fe1 [flang][debug] Track dummy argument positions explicitly. https://github.com/llvm/llvm-project/pull/167489 f1b550483114 [OpenMP] Sort clause-specific application functions, NFC https://github.com/llvm/llvm-project/pull/167501 17e67b0d9a13 [flang][OpenMP] Semantic checks for DYN_GROUPPRIVATE https://github.com/llvm/llvm-project/pull/166214 5d062bf0cc45 [flang][OpenMP] Replace modifiers in DYN_GROUPPRIVATE clause https://github.com/llvm/llvm-project/pull/166199 86fa018a1dca [Flang][OpenMP] Initial defaultmap(none) implementation https://github.com/llvm/llvm-project/pull/166715 89577e910eab [flang][OpenMP] Detect complex part designators in atomic variables https://github.com/llvm/llvm-project/pull/166612 08222caf28b6 [Flang][OpenMP] Move char box bounds generation for Maps to DirectiveCommons.h https://github.com/llvm/llvm-project/pull/165918 b9e22ccd9509 [Flang][driver] Do not emit -latomic on link line on Windows https://github.com/llvm/llvm-project/pull/164648 cf1f871023e4 [Flang] Add parser support for prefetch directive https://github.com/llvm/llvm-project/pull/139702 893387ab30e4 [Flang][OpenMP] Unify MapInfoFinalization's BoxChar handling with other Box types https://github.com/llvm/llvm-project/pull/165954 67198d1997cf [libc] Fix wrapper headers for `at_quick_exit` on GLIBC for C++11 https://github.com/llvm/llvm-project/pull/166960 a7c0e78fa1e5 [Flang][OpenMP] Unify MapInfoFinalization's BoxChar handling with other Box types https://github.com/llvm/llvm-project/pull/165954 3c81587f6a55 [OpenMP] Add definitions for DECLARE_INDUCTION and related clauses https://github.com/llvm/llvm-project/pull/166235 70f5fd47a497 [flang][debug] Add debug type support for procedure pointers https://github.com/llvm/llvm-project/pull/166764 305cf623d7ab [Polly] Check for ISL errors after schedule optimization https://github.com/llvm/llvm-project/pull/166551 2dc0fa1000d6 [Flang] Nested directives are comments https://github.com/llvm/llvm-project/pull/166348 e987ab11a6f3 [Polly] Introduce PhaseManager and remove LPM support https://github.com/llvm/llvm-project/pull/125442 24c22b7de620 [flang][OpenMP] Sort and move macro-based clause checks to the end, NFC https://github.com/llvm/llvm-project/pull/166175 3d3fab17f5ea [flang][OpenMP] Use OmpDirectiveSpecification in ALLOCATE https://github.com/llvm/llvm-project/pull/165865 ab049891cd7c [flang][OpenMP] Reorganize ALLOCATE-related semantic checks https://github.com/llvm/llvm-project/pull/165719 fb80160bf2c5 [Flang][OpenMP] Swap to attach semantics for descriptor mapping https://github.com/ROCm/llvm-project/pull/357 8c87f3eb35d5 [Polly][CodePreparation] Extract common code of LPM and NPM https://github.com/llvm/llvm-project/pull/140419 09318c6bffcf [MLIR][OpenMP] Fix and simplify bounds offset calculation for 1-D GEP offsets https://github.com/llvm/llvm-project/pull/165486 f0d809261bf1 [flang] One more fix for dumping evaluate::Expr https://github.com/llvm/llvm-project/pull/165730 cd40bc487a8d [flang][OpenMP] Implement OpenMP stylized expressions https://github.com/llvm/llvm-project/pull/165049 585b6e2d449e [flang][OpenMP] Allocate `allocatable` init temps on the stack for GPUs https://github.com/llvm/llvm-project/pull/164761 48cc443a72d6 [flang][OpenMP] Anonymous BLOCK DATA may not have Symbol at all https://github.com/llvm/llvm-project/pull/165250 20a742cb4fa0 [openmp][cmake] Don't glob for build dependencies https://github.com/llvm/llvm-project/pull/165231 b2c8b07f79ca [flang][OpenMP] Rename some AST classes to follow spec naming, NFC https://github.com/llvm/llvm-project/pull/164870 4d80e0c4446b [flang][OpenMP] Add missing forward declarations and includes https://github.com/llvm/llvm-project/pull/164860 1031f1b293ca [Flang][Driver] Emit module summary for Full LTO https://github.com/llvm/llvm-project/pull/164302 e2ad55499197 [Flang][mlir] - Translation of delayed privatization for deferred target-tasks https://github.com/llvm/llvm-project/pull/155348 322dd6300438 [flang][OpenMP] Refactor/update semantic checks for ALLOCATE directive https://github.com/llvm/llvm-project/pull/164420 e6af0a40acc6 [flang][OpenMP] Keep track of scoping units in OmpStructureChecker https://github.com/llvm/llvm-project/pull/164419 6e0553f545df Reapply "[Polly] Update ScopInliner for NPM (#125427)" https://github.com/llvm/llvm-project/pull/164601 65f253d003bd [OpenMP][Flang] PR 164043 reference merge PR https://github.com/ROCm/llvm-project/pull/333 f2b20d3410e4 [Flang][OpenMP][Dialect] Swap to using MLIR dialect enum to encode map flags https://github.com/llvm/llvm-project/pull/164043 a58544890310 [flang][OpenMP] Move check of ALIGN clause to visitor function https://github.com/llvm/llvm-project/pull/164261 be2c6c1960e5 [flang] Fix dumping type names for clang in DumpEvExpr https://github.com/llvm/llvm-project/pull/164256 a042f693d6ee [flang][OpenMP] Remember to set source in OmpBlockConstruct https://github.com/llvm/llvm-project/pull/164131 34cf8bb413a6 [flang][OpenMP] Use parser::UnwrapRef instead of thing/value, NFC https://github.com/llvm/llvm-project/pull/164087 3590a912daba [flang][OpenMP] Frontend support for DEVICE_SAFESYNC https://github.com/llvm/llvm-project/pull/163560 0b9a7b80c067 [Polly] Update ScopInliner for NPM https://github.com/llvm/llvm-project/pull/125427 527f7f5c36b8 [flang][OpenMP] Handle conflicts between REQUIRES and ATOMIC restrict… https://github.com/llvm/llvm-project/pull/163805 467487f2a15d [flang][OpenMP] Reuse semantic check for "constantness" of alignment https://github.com/llvm/llvm-project/pull/163624 0ca14470fc9f [flang][OpenMP] Add optional argument to requirement clauses https://github.com/llvm/llvm-project/pull/163557 a45bbd402216 [flang][OpenMP] Dump requirement clauses/flags in WithOmpDeclarative https://github.com/llvm/llvm-project/pull/163450 d55879de5002 [flang][OpenMP] Emit requirements in module files https://github.com/llvm/llvm-project/pull/163449 9d0c211b14a1 [flang][OpenMP] Frontend support for ATTACH modifier https://github.com/llvm/llvm-project/pull/163608 c8b8fa26a2f0 [flang][OpenMP] Format check-omp-structure.cpp, NFC https://github.com/llvm/llvm-project/pull/163750 bd79667fc26b [flang][OpenMP] Set REQUIRES flags on program unit symbol https://github.com/llvm/llvm-project/pull/163448 c46fec840dd1 [Polly] Remove PolyhedralInfo https://github.com/llvm/llvm-project/pull/124437 bd2ba04ee60c [Flang][OpenMP] Fix USM `close` semantics and `use_device_ptr` https://github.com/llvm/llvm-project/pull/163258