LLVM/project 70970d0flang/lib/Lower Runtime.cpp, flang/test/Lower pause-statement.f90

[flang] Implement lowering for the PAUSE statement (Fixes #166821) (#167115)

Implements lowering for the Fortran `PAUSE` statement.

- Handles PAUSE with no operand.
- Handles PAUSE with integer argument.
- Handles PAUSE with character literal argument.
- Adds a new lowering test: flang/test/Lower/pause-statement.f90.

Unlike STOP, PAUSE does not unconditionally terminate control flow.
The lowering preserves labels and GOTOs, consistent with legacy Fortran
behavior.

Fixes: #166821

---------

Co-authored-by: aditya nath <adityanath5002 at gmail.com>
Co-authored-by: Eugene Epshteyn <eepshteyn at nvidia.com>
DeltaFile
+47-4flang/lib/Lower/Runtime.cpp
+26-2flang/test/Lower/pause-statement.f90
+73-62 files

LLVM/project 3de11e9mlir/lib/Dialect/ControlFlow/IR ControlFlowOps.cpp CMakeLists.txt, mlir/test/Dialect/ControlFlow canonicalize.mlir

[mlir][CF] Add `ub.unreachable` canonicalization (#169873)

Basic blocks with only a `ub.unreachable` terminator are unreachable.
This commit adds a canonicalization pattern that folds to `cf.cond_br`
to `cf.br` if one of the destination branches is unreachable.
DeltaFile
+33-1mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
+22-0mlir/test/Dialect/ControlFlow/canonicalize.mlir
+1-0mlir/lib/Dialect/ControlFlow/IR/CMakeLists.txt
+56-13 files

LLVM/project 143a40bmlir/include/mlir/Dialect/ControlFlow/IR ControlFlowOps.td, mlir/include/mlir/Dialect/UB/IR UBOps.h

remove UB canonicalization
DeltaFile
+0-26mlir/lib/Dialect/UB/IR/UBOps.cpp
+0-10mlir/test/Dialect/UB/canonicalize.mlir
+0-4mlir/include/mlir/Dialect/UB/IR/UBOps.h
+0-3mlir/test/Dialect/ControlFlow/canonicalize.mlir
+2-0mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
+1-1mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.td
+3-441 files not shown
+3-457 files

LLVM/project 92caacbmlir/include/mlir/Dialect/ControlFlow/IR ControlFlowOps.td, mlir/include/mlir/Dialect/UB/IR UBOps.td

remove UB canonicalization
DeltaFile
+0-26mlir/lib/Dialect/UB/IR/UBOps.cpp
+0-10mlir/test/Dialect/UB/canonicalize.mlir
+0-3mlir/test/Dialect/ControlFlow/canonicalize.mlir
+1-1mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.td
+2-0mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
+0-1mlir/include/mlir/Dialect/UB/IR/UBOps.td
+3-416 files

LLVM/project 04a3be8mlir/include/mlir/Dialect/ControlFlow/IR ControlFlowOps.td, mlir/include/mlir/Dialect/UB/IR UBOps.h

[mlir][UB] Add `ub.unreachable` canonicalization
DeltaFile
+31-1mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
+26-0mlir/lib/Dialect/UB/IR/UBOps.cpp
+25-0mlir/test/Dialect/ControlFlow/canonicalize.mlir
+10-0mlir/test/Dialect/UB/canonicalize.mlir
+4-0mlir/include/mlir/Dialect/UB/IR/UBOps.h
+1-1mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.td
+97-22 files not shown
+99-28 files

LLVM/project a8cffb8llvm/include/llvm/MC MCObjectFileInfo.h, llvm/lib/MC MCObjectFileInfo.cpp

Remove unused MCObjectFileInfo::SupportsWeakOmittedEHFrame

The code is related to pre-AsmPrinter legacy code (see
9cb0e94dc79657144d639c722619e1e4fc19040e in 2008). The only caller has
been removed by bb237c72a69e6294258874a40aaaf14ad2747710 in 2011.
DeltaFile
+0-7llvm/include/llvm/MC/MCObjectFileInfo.h
+0-4llvm/lib/MC/MCObjectFileInfo.cpp
+0-112 files

LLVM/project 75342d3

Merge branch 'users/meinersbur/openmp_hoist-module' into users/meinersbur/flang_builtin-mods_2
DeltaFile
+0-00 files

LLVM/project 0d10200llvm/test/CodeGen/AArch64 fixed-length-bf16-arith.ll, llvm/test/Transforms/AggressiveInstCombine umulh_carry4.ll umulh_ladder.ll

Merge remote-tracking branch 'official/main' into users/meinersbur/openmp_hoist-module
DeltaFile
+4,725-0llvm/test/tools/llvm-mca/RISCV/SpacemitX60/vlseg-vsseg.s
+3,019-0llvm/test/Transforms/AggressiveInstCombine/umulh_carry4.ll
+936-0llvm/test/CodeGen/AArch64/fixed-length-bf16-arith.ll
+858-0llvm/test/Transforms/AggressiveInstCombine/umulh_ladder.ll
+755-0llvm/test/Transforms/AggressiveInstCombine/umulh_carry.ll
+288-454mlir/lib/Dialect/Linalg/Utils/Utils.cpp
+10,581-454830 files not shown
+39,307-12,122836 files

LLVM/project ae89a20flang-rt/lib/runtime CMakeLists.txt, openmp CMakeLists.txt

Fix disabled flang_rt.quad.math
DeltaFile
+22-21flang-rt/lib/runtime/CMakeLists.txt
+1-1openmp/CMakeLists.txt
+23-222 files

LLVM/project 3ad9152llvm/test/tools/llvm-exegesis/RISCV/rvv filter.test, llvm/test/tools/llvm-exegesis/X86 snippet-generator-seed.test

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+16-0llvm/test/tools/llvm-exegesis/X86/snippet-generator-seed.test
+14-1llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp
+5-3llvm/test/tools/llvm-exegesis/RISCV/rvv/filter.test
+35-43 files

LLVM/project 2e3af9dllvm/test/tools/llvm-exegesis/X86 snippet-generator-seed.test, llvm/tools/llvm-exegesis/lib SnippetGenerator.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+16-0llvm/test/tools/llvm-exegesis/X86/snippet-generator-seed.test
+14-1llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp
+30-12 files

LLVM/project ee84344llvm/test/tools/llvm-exegesis/X86 snippet-generator-seed.test, llvm/tools/llvm-exegesis/lib SnippetGenerator.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+16-0llvm/test/tools/llvm-exegesis/X86/snippet-generator-seed.test
+14-1llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp
+30-12 files

LLVM/project d88c4bellvm/test/CodeGen/AArch64 fixed-length-bf16-arith.ll, llvm/test/Transforms/AggressiveInstCombine umulh_carry4.ll umulh_ladder.ll

Merge branch 'main' into users/meinersbur/flang_builtin-mods_2
DeltaFile
+4,725-0llvm/test/tools/llvm-mca/RISCV/SpacemitX60/vlseg-vsseg.s
+3,019-0llvm/test/Transforms/AggressiveInstCombine/umulh_carry4.ll
+936-0llvm/test/CodeGen/AArch64/fixed-length-bf16-arith.ll
+858-0llvm/test/Transforms/AggressiveInstCombine/umulh_ladder.ll
+755-0llvm/test/Transforms/AggressiveInstCombine/umulh_carry.ll
+288-454mlir/lib/Dialect/Linalg/Utils/Utils.cpp
+10,581-454830 files not shown
+39,307-12,122836 files

LLVM/project a39c5f7openmp CMakeLists.txt README.rst, openmp/module CMakeLists.txt

Replace LIBOMP_FORTRAN_MODULES with RUNTIMES_FLANG_MODULES_ENABLED

For some reason there were to different flags to build the Fortran modules:

1. LIBOMP_FORTRAN_MODULES=ON and CMAKE_Fortran_COMPILER

2. LIBOMP_FORTRAN_MODULES_COMPILER

When using the second, LIBOMP_FORTRAN_MODULES would be off. Trying to
keep the option available causes build failures by misinterpretation.
DeltaFile
+4-7openmp/CMakeLists.txt
+2-5openmp/README.rst
+5-2openmp/module/CMakeLists.txt
+1-1openmp/runtime/CMakeLists.txt
+1-1openmp/runtime/cmake/LibompExports.cmake
+13-165 files

LLVM/project 24b87b8llvm/lib/Transforms/Vectorize LoopVectorize.cpp, llvm/test/Transforms/LoopVectorize/RISCV gather-scatter-cost.ll

[VPlan] Skip cost verification for loops with EVL gather/scatter.

The VPlan-based cost model use vp_gather/vp_scatter for gather/scatter
costs, which is different to the legacy cost model and cannot be matched
there. Don't verify the costs match for plans containing gather/scatters
with EVL.

Fixes https://github.com/llvm/llvm-project/issues/169948.
DeltaFile
+116-0llvm/test/Transforms/LoopVectorize/RISCV/gather-scatter-cost.ll
+23-11llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+139-112 files

LLVM/project 9ffd2e4llvm/lib/Transforms/Utils BasicBlockUtils.cpp, llvm/test/Transforms/SimplifyCFG skip-merging-duplicate-convergence-instrinsics.ll

[SimplifyCFG] Fix `SimplifyCFG` pass to skip folding when both blocks contain convergence loop/entry intrinsics. (#166452)

Fixes a bug https://github.com/llvm/llvm-project/issues/165642. [Similar
fix](https://github.com/llvm/llvm-project/pull/165643) is being made in
`IndVarSimplify` pass to account for convergence tokens.

[LLVM
Spec](https://llvm.org/docs/ConvergentOperations.html#llvm-experimental-convergence-loop)
states that only a single loop / entry convergence token can be included
in a basic block.

This PR fixes the issue in `SimplifyCFG` pass so that when a basic block
and its predecessor both contain such convergence intrinsics, it skips
merging the two blocks.
DeltaFile
+68-0llvm/test/Transforms/SimplifyCFG/skip-merging-duplicate-convergence-instrinsics.ll
+16-0llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
+84-02 files

LLVM/project bd56806llvm/test/Transforms/WholeProgramDevirt import.ll

Fix RUN line
DeltaFile
+17-3llvm/test/Transforms/WholeProgramDevirt/import.ll
+17-31 files

LLVM/project da3a850flang/test CMakeLists.txt, openmp CMakeLists.txt

Always create libomp-mod target for robustness
DeltaFile
+3-3flang/test/CMakeLists.txt
+3-0openmp/CMakeLists.txt
+6-32 files

LLVM/project cd3192allvm/lib/Transforms/Vectorize VPlanConstruction.cpp, llvm/test/Transforms/LoopVectorize select-umin-last-index.ll select-smin-last-index.ll

[VPlan] Turn IVOp assertion into early exit.

Turn assertion added in 99addbf73 [0] into an early exit.
There are cases where the operand may not be a
VPWidenIntOrFpInductionRecipe, e.g. if the IV increment is selected,
as in the test cases.

[0] https://github.com/llvm/llvm-project/pull/141431
DeltaFile
+43-0llvm/test/Transforms/LoopVectorize/select-umin-last-index.ll
+43-0llvm/test/Transforms/LoopVectorize/select-smin-last-index.ll
+42-0llvm/test/Transforms/LoopVectorize/select-umax-last-index.ll
+42-0llvm/test/Transforms/LoopVectorize/select-smax-last-index.ll
+4-3llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+174-35 files

LLVM/project f571293llvm/lib/Target/ARC ARC.td

ARC: Override pseudos with pointers

This ports #159881 fix for other targets and fixes
```
error: missing target override for pseudoinstruction using PointerLikeRegClass
```
DeltaFile
+2-0llvm/lib/Target/ARC/ARC.td
+2-01 files

LLVM/project 435bafdclang/lib/CIR/CodeGen CIRGenBuiltinX86.cpp, clang/test/CIR/CodeGenBuiltins/X86 avx512bw-builtins.c avx512dq-builtins.c

[CIR][X86] Implement lowering for AVX512 mask builtins  (#169774)

This patch adds CIR codegen support for AVX512 mask operations on X86,
including kadd, kand, kandn, kor, kxor, knot, and kmov in all supported
mask widths. Each builtin now lowers to the expected vector<i1> form and
bitcast representations in CIR, matching the semantics of the
corresponding LLVM intrinsics.
DeltaFile
+350-0clang/test/CIR/CodeGenBuiltins/X86/avx512bw-builtins.c
+210-0clang/test/CIR/CodeGenBuiltins/X86/avx512dq-builtins.c
+151-0clang/test/CIR/CodeGenBuiltins/X86/avx512f-builtins.c
+69-2clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
+780-24 files

LLVM/project 246528cclang/lib/AST/ByteCode InterpBuiltin.cpp

[clang][bytecode] Unify elementwise integer builtins using callback pattern (#169957)

This patch refactors the handling of elementwise integer unary
operations to use a unified callback-based approach, eliminating code
duplication.

Changes:
- Extended interp__builtin_elementwise_int_unaryop to handle vector types
- Replaced BI__builtin_elementwise_popcount with callback invocation
- Replaced BI__builtin_elementwise_bitreverse with callback invocation
- Removed  interp__builtin_elementwise_popcount function

The new approach uses a lambda function to specify the operation
(popcount or reverseBits), which is applied uniformly to both scalar and
vector operands. This reduces code duplication and makes it easier to
add similar builtins in the future.

Fixes #169657
DeltaFile
+30-50clang/lib/AST/ByteCode/InterpBuiltin.cpp
+30-501 files

LLVM/project 8462cffclang/include/clang/AST CXXInheritance.h, clang/lib/AST CXXInheritance.cpp

[clang][NFC] Declare `CXXBasePaths::isAmbiguous` as `const` (#169944)

To make this change, we have to use `lookup` instead of `operator[]` on
a map. They both return the same thing: a default constructed value. The
difference is that `lookup` default constructs a value and then returns
it, whereas `operator[]` default constructs a value, inserts it into the
map, and then returns a reference to that. Given that we are using a
by-value return, the only way this is different is if a later use of the
map depends on a value being at that key.

The map is a private variable of the class, so the only possible users
are are other member functions. The only other use of the map that cares
about the contents of the map is in `lookupInBases`, and it accesses the
map with `operator[]`. This means that attempting to access the same
element in this function will default construct the value before doing
anything with it, which means it would do the exact thing it needs to do
in the case where we are looking up a non-existent key, therefore no
behavior has changed.


    [4 lines not shown]
DeltaFile
+2-2clang/lib/AST/CXXInheritance.cpp
+1-1clang/include/clang/AST/CXXInheritance.h
+3-32 files

LLVM/project a1b4509clang/include/clang/Analysis/Analyses/LifetimeSafety FactsGenerator.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp

std_move false positive
DeltaFile
+14-0clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+2-0clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
+16-02 files

LLVM/project a09c579mlir/lib/Dialect/Linalg/Utils Utils.cpp

[NFC][Linalg] Introduce ConvMatchBuilder + refactor Conv matchers (#169704)

-- This commit is a follow-up and third in the series of adding
matchers for conv/pool ops. Refer:
https://github.com/llvm/llvm-project/pull/163724
-- It introduces ConvMatchBuilder class in order to reduce the
   repetitive code across Conv1D/2D/3D/Depthwise/Pooling variants.
-- Refer to [Conv2D
thread](https://github.com/llvm/llvm-project/pull/168362#issuecomment-3575972133)
for further context.

Signed-off-by: Abhishek Varma <abhvarma at amd.com>
DeltaFile
+288-454mlir/lib/Dialect/Linalg/Utils/Utils.cpp
+288-4541 files

LLVM/project 349c748clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp, clang/test/Sema warn-lifetime-safety.cpp warn-lifetime-safety-dataflow.cpp

dereference_operator
DeltaFile
+11-11clang/test/Sema/warn-lifetime-safety.cpp
+4-0clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+3-0clang/test/Sema/warn-lifetime-safety-dataflow.cpp
+18-113 files

LLVM/project 363a78cclang/include/clang/Analysis/Analyses/LifetimeSafety LifetimeAnnotations.h, clang/lib/Analysis/LifetimeSafety LifetimeAnnotations.cpp FactsGenerator.cpp

Implicit lifetimebound for std namespace
DeltaFile
+82-0clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
+2-62clang/lib/Sema/CheckExprLifetime.cpp
+4-0clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeAnnotations.h
+2-1clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+90-634 files

LLVM/project 7925a9ellvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 kmov.ll

[X86] combineConcatVectorOps - add handling for vXi1 concat(logicop(),logicop()) patterns. (#169998)

DeltaFile
+14-30llvm/test/CodeGen/X86/kmov.ll
+12-2llvm/lib/Target/X86/X86ISelLowering.cpp
+26-322 files

LLVM/project 3e16aefclang/lib/CodeGen/Targets Sparc.cpp, clang/test/CodeGen/Sparc sparcv8-abi.c

[SPARC] Properly handle CC for long double on sparc32 (#162226)

Pass and return `long double`s indirectly, as specified in the psABI.
This continues the patch at https://reviews.llvm.org/D89130.

This should fix the issue at https://github.com/llvm/llvm-project/issues/41838.
DeltaFile
+93-108llvm/test/CodeGen/SPARC/llvm.sincos.ll
+118-59llvm/lib/Target/Sparc/SparcISelLowering.cpp
+89-0llvm/test/CodeGen/SPARC/fp128-abi.ll
+33-3clang/test/CodeGen/Sparc/sparcv8-abi.c
+25-9clang/lib/CodeGen/Targets/Sparc.cpp
+11-11clang/test/Preprocessor/init.c
+369-19011 files not shown
+405-21717 files

LLVM/project 3a1079fllvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll spill-scavenge-offset.ll, llvm/test/CodeGen/X86 2008-04-17-CoalescerBug.ll

Revert "[RegAlloc] Relax the split constrain on MBB prolog" (#169990)

Reverts llvm/llvm-project#168259

breaks hip buildot
DeltaFile
+2,852-2,897llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+283-284llvm/test/CodeGen/AMDGPU/spill-scavenge-offset.ll
+152-159llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+95-92llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+0-167llvm/test/CodeGen/AMDGPU/spill-before-exec2.mir
+38-40llvm/test/CodeGen/X86/2008-04-17-CoalescerBug.ll
+3,420-3,6395 files not shown
+3,458-3,73311 files