LLVM/project 50e3d0cflang/test lit.cfg.py, flang/test/Driver asm-error-fix.s

[flang][driver] Improve diagnostic for assembly inputs

When an assembly file is passed to the Flang driver, it currently fails
with a confusing internal error mentioning the unsupported `-cc1as`
tool.

This update detects assembly inputs early in the driver and emits a
clear, user-facing diagnostic explaining that Flang does not support
assembly files as input. The logic is implemented in a small helper
function and is intentionally temporary, so it can be removed once Flang
gains support for assembling inputs.

Fixes: #173528
DeltaFile
+27-0flang/tools/flang-driver/driver.cpp
+9-0flang/test/Driver/asm-error-fix.s
+1-0flang/test/lit.cfg.py
+37-03 files

LLVM/project 7165353llvm/lib/Analysis VectorUtils.cpp, llvm/lib/Transforms/Vectorize VPlanRecipes.cpp

Revert "[LoopVectorize] Support vectorization of overflow intrinsics" (#179819)

Reverts llvm/llvm-project#174835, which causes clang crashes.

See
https://github.com/llvm/llvm-project/pull/174835#issuecomment-3844233831
and https://github.com/llvm/llvm-project/issues/179671 for details.
DeltaFile
+1-469llvm/test/Transforms/LoopVectorize/multiple-result-intrinsics.ll
+1-73llvm/test/Transforms/LoopVectorize/AArch64/multiple-result-intrinsics.ll
+15-18llvm/test/Transforms/LoopVectorize/struct-return.ll
+9-6llvm/lib/Analysis/VectorUtils.cpp
+1-6llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+27-5725 files

LLVM/project 79e0693llvm/lib/Support KnownFPClass.cpp, llvm/test/Transforms/Attributor nofpclass-powi.ll

It was the right way the first time
DeltaFile
+8-8llvm/test/Transforms/Attributor/nofpclass-powi.ll
+6-3llvm/lib/Support/KnownFPClass.cpp
+14-112 files

LLVM/project 158ec82llvm/lib/Support KnownFPClass.cpp, llvm/test/Transforms/Attributor nofpclass-powi.ll

ValueTracking: Handle tracking nan through powi

Nans should propagate simply, the infinity cases are complicated.
DeltaFile
+161-1llvm/test/Transforms/Attributor/nofpclass-powi.ll
+12-0llvm/lib/Support/KnownFPClass.cpp
+173-12 files

LLVM/project 6cef681llvm/lib/IR DebugInfo.cpp

Fix format.
DeltaFile
+3-2llvm/lib/IR/DebugInfo.cpp
+3-21 files

LLVM/project 779ce17llvm/lib/IR DebugInfo.cpp

[review] Reduce identation and remove unnecessary casts.
DeltaFile
+9-9llvm/lib/IR/DebugInfo.cpp
+9-91 files

LLVM/project 7c7f2dcllvm/lib/IR DebugInfo.cpp

[review] switch to doxygen style.
DeltaFile
+7-7llvm/lib/IR/DebugInfo.cpp
+7-71 files

LLVM/project e6560a3lldb/packages/Python/lldbsuite/test/tools/lldb-dap dap_server.py, lldb/test/API/tools/lldb-dap/evaluate TestDAP_evaluate.py

[lldb-dap] Allow evaluate requests without a frame context (#179667)

EvaluateRequests handler now uses the target's context if no valid
frameId is provided, enabling evaluation of
global variables without requiring a valid stack frame.

In repl mode it now uses the last `successful` variable or command
expression, if the provided user's expression is empty.
Try to evaluate the expression if the evaluation context is `Unknown`
DeltaFile
+77-37lldb/tools/lldb-dap/Handler/EvaluateRequestHandler.cpp
+32-5lldb/test/API/tools/lldb-dap/evaluate/TestDAP_evaluate.py
+11-5lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py
+3-4lldb/tools/lldb-dap/DAP.h
+123-514 files

LLVM/project 4f3ba73clang/include/clang/Analysis/Analyses/LifetimeSafety MovedLoans.h, clang/lib/Analysis/LifetimeSafety MovedLoans.cpp FactsGenerator.cpp

[LifetimeSafety] Revisit tracking moved objects (#178670)

Improve lifetime safety analysis by tracking moved objects and providing
more precise warnings for potentially false positive cases.

- Added support for detecting moves in function calls with rvalue
reference parameters
- Added a new `MovedOriginFact` to track when objects are moved
- Modified the lifetime checker to detect when a loan's storage has been
moved
- Added new diagnostic messages that indicate when a warning might be a
false positive due to moved storage
- Added notes in diagnostics to show where objects were potentially
moved
DeltaFile
+133-0clang/lib/Analysis/LifetimeSafety/MovedLoans.cpp
+38-18clang/test/Sema/warn-lifetime-safety.cpp
+32-24clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+46-0clang/include/clang/Analysis/Analyses/LifetimeSafety/MovedLoans.h
+24-12clang/lib/Analysis/LifetimeSafety/Checker.cpp
+26-9clang/lib/Sema/AnalysisBasedWarnings.cpp
+299-6315 files not shown
+433-10921 files

LLVM/project 52cdbbfllvm/lib/Target/SPIRV SPIRVISelLowering.cpp

[SPIRV] Show that getTypeReg doens't make any sense
DeltaFile
+3-0llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
+3-01 files

LLVM/project 05a2b14llvm/include/llvm/Analysis IVDescriptors.h, llvm/lib/Analysis IVDescriptors.cpp

[LV] Optimize FindLast recurrences to FindIV (NFCI). (#177870)

This patch restructures Find(First|Last)IV handling. Instead of
differentiating between FindLast, FindFirstIV and FindLastIV up front,
this patch simplifies the logic in IVDescriptor to just identify the
FindLast pattern up-front.

It then adds a new VPlan transformation to optimize FindLast reductions
to FindIV reductions if there is a suitable sentinel value.
Find(Last|First)IV recurrence kinds to a single FindIV kind.

This is simpler and more accurate, given selecting the first/last
induction of the final IV reduction is directly controlled by the
corresponding recurrence kind of the ComputeReductionResult.

The new structure also allows further optimizations, like vectorizing
FindLastIV with another boolean reduction that tracks if the condition
in the loop was ever true, if there is no suitable sentinel value.

PR: https://github.com/llvm/llvm-project/pull/177870
DeltaFile
+95-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+2-91llvm/lib/Analysis/IVDescriptors.cpp
+10-57llvm/include/llvm/Analysis/IVDescriptors.h
+5-27llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+3-12llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+13-1llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+128-1884 files not shown
+138-19210 files

LLVM/project 3b8876bmlir/include/mlir/IR BuiltinTypeInterfaces.td BuiltinTypeInterfaces.h, mlir/lib/IR BuiltinAttributes.cpp BuiltinTypes.cpp

getter / iterator via interface
DeltaFile
+36-112mlir/lib/IR/BuiltinAttributes.cpp
+68-56mlir/include/mlir/IR/BuiltinTypeInterfaces.td
+121-0mlir/lib/IR/BuiltinTypes.cpp
+26-32mlir/lib/IR/AsmPrinter.cpp
+34-0mlir/lib/IR/BuiltinTypeInterfaces.cpp
+24-0mlir/include/mlir/IR/BuiltinTypeInterfaces.h
+309-2004 files not shown
+332-21410 files

LLVM/project 5b5fdd0llvm/test/CodeGen/AArch64 clmul-fixed.ll, llvm/test/CodeGen/AMDGPU mad-mix.ll

Merge branch 'main' into users/usx95/01-29-revisit_handling_moved_origins
DeltaFile
+4,545-0llvm/test/CodeGen/AArch64/clmul-fixed.ll
+3,338-71llvm/test/CodeGen/AMDGPU/mad-mix.ll
+3,137-0llvm/test/CodeGen/NVPTX/atomicrmw-sm60.ll
+3,111-0llvm/test/CodeGen/NVPTX/atomicrmw-sm70.ll
+2,983-0llvm/test/CodeGen/NVPTX/atomicrmw-sm90.ll
+2,360-0llvm/test/MC/AMDGPU/gfx13_asm_sopc.s
+19,474-712,123 files not shown
+83,978-28,3112,129 files

LLVM/project 3ee7a2fllvm/test/CodeGen/AArch64 clmul-fixed.ll clmul-scalable.ll

Add clmul zext AArch64 lowering tests (#179641)

DeltaFile
+4,100-13llvm/test/CodeGen/AArch64/clmul-fixed.ll
+2,212-1,142llvm/test/CodeGen/AArch64/clmul-scalable.ll
+756-0llvm/test/CodeGen/AArch64/clmul.ll
+7,068-1,1553 files

LLVM/project d3e5e9bllvm/test/DebugInfo/Generic debuginfofinder-macros.ll

Simplify test.
DeltaFile
+17-18llvm/test/DebugInfo/Generic/debuginfofinder-macros.ll
+17-181 files

LLVM/project 80569fellvm/include/llvm/ADT FloatingPointMode.h

ADT: Mark DenormalMode comparison operators as constexpr (#179939)

Try to fix buildbot error with gcc.
DeltaFile
+5-7llvm/include/llvm/ADT/FloatingPointMode.h
+5-71 files

LLVM/project b9f3710clang/include/clang/CIR/Dialect Passes.td, clang/lib/CIR/Dialect/Transforms TargetLowering.cpp CXXABILowering.cpp

[CIR] Add TargetLowering pass (#179245)

This patch adds a new TargetLowering pass to the CIR pipeline. The new
pass is run immediately before CXXABILowering. This new pass does not
perform any heavy transformations yet -- for now it only converts sync
scopes attached to load and store operations according to the target
info, which was done in the LLVM lowering pass.

Related to #175968 .
DeltaFile
+68-0clang/lib/CIR/Dialect/Transforms/TargetLowering.cpp
+60-3clang/include/clang/CIR/Dialect/Passes.td
+6-20clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+10-13clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
+15-5clang/test/CIR/CodeGen/atomic-scoped.c
+10-8clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerModule.cpp
+169-496 files not shown
+182-5912 files

LLVM/project f002505lldb/packages/Python/lldbsuite/test/tools/lldb-dap dap_server.py, lldb/test/API/tools/lldb-dap/stopped-events TestDAP_stopped_events.py main.cpp

[lldb-dap] Fix flaky TestDAP_stopped_events.py (#179689)

We are waiting for both stopped event at once.
We may not get both events within the (0.25 seconds) time interval to
fetch more events. Retry with the `DEFAULT TIMEOUT` if we got one of the
event.

Increase the `EVENT_QUIET_PERIOD`'s value for ASAN mode

Fixes #179648
DeltaFile
+40-14lldb/test/API/tools/lldb-dap/stopped-events/TestDAP_stopped_events.py
+4-1lldb/test/API/tools/lldb-dap/stopped-events/main.cpp
+1-1lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py
+45-163 files

LLVM/project ac0c7f2llvm/lib/Target/SPIRV SPIRVISelLowering.cpp

[SPIRV][NFC] Replace `SPIRVType` with `SPIRVTypeInst`
DeltaFile
+8-5llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
+8-51 files

LLVM/project eb97fb6llvm/lib/Target/SPIRV SPIRVGlobalRegistry.h

[SPIRV] Add a `SPIRVTypeInst` type with some guardrails

Currently `SPIRVType` is an alias of `MachineInstr`:

```cpp
using SPIRVType = const MachineInstr;
```

Consider the function below from the backend:

```cpp
inline Register getTypeReg(MachineRegisterInfo *MRI, Register OpReg) {
    SPIRVType *TypeInst = MRI->getVRegDef(OpReg);
      return TypeInst && TypeInst->getOpcode() ==
      SPIRV::OpFunctionParameter
                   ? TypeInst->getOperand(1).getReg()
                                : OpReg;
}
```

    [10 lines not shown]
DeltaFile
+23-0llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+23-01 files

LLVM/project 2502e3bllvm/lib/AsmParser LLParser.cpp, llvm/test/Assembler denormal_fpenv.ll invalid_denormal_fpenv.ll

IR: Promote "denormal-fp-math" to a first class attribute (#174293)

Convert "denormal-fp-math" and "denormal-fp-math-f32" into a first
class denormal_fpenv attribute. Previously the query for the effective
denormal mode involved two string attribute queries with parsing. I'm
introducing more uses of this, so it makes sense to convert this
to a more efficient encoding. The old representation was also awkward
since it was split across two separate attributes. The new encoding
just stores the default and float modes as bitfields, largely avoiding
the need to consider if the other mode is set.

The syntax in the common cases looks like this:
  `denormal_fpenv(preservesign,preservesign)`
  `denormal_fpenv(float: preservesign,preservesign)`
  `denormal_fpenv(dynamic,dynamic float: preservesign,preservesign)`

I wasn't sure about reusing the float type name instead of adding a
new keyword. It's parsed as a type but only accepts float. I'm also
debating switching the name to subnormal to match the current

    [17 lines not shown]
DeltaFile
+378-0llvm/test/Bitcode/auto_upgrade_denormal_fp_math.ll
+295-0llvm/test/Assembler/denormal_fpenv.ll
+228-2llvm/test/Bitcode/compatibility.ll
+201-0llvm/test/Assembler/invalid_denormal_fpenv.ll
+57-57llvm/test/Transforms/Attributor/nofpclass-canonicalize.ll
+105-0llvm/lib/AsmParser/LLParser.cpp
+1,264-59230 files not shown
+2,520-1,034236 files

LLVM/project c08fc83llvm/lib/Transforms/Utils LowerMemIntrinsics.cpp

[NFC][LowerMemIntrinsics] Use TypeSize consistently for type sizes

PR #169040 already started using `TypeSize` for the return value of
`DataLayout::getType*Size` in the memset lowering, this PR adjusts other uses
in LowerMemIntrinsics to do the same. Currently, scalable vector types are not
supported as access types for the mem-intrinsic lowering.
DeltaFile
+14-10llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
+14-101 files

LLVM/project 96d2cb4llvm/lib/Target/DirectX DXILDataScalarization.cpp, llvm/lib/Target/DirectX/DXILWriter DXILBitcodeWriter.cpp

[LLVM][CodeGen][DirectX] Fix scalarisation when vector ConstantFP is used. (#172684)

When using -use-constant-fp-for-fixed-length-splat `splat (float C)`
becomes ConstantFP(C) rather than ConstantVector(C, C, C...).
DeltaFile
+26-0llvm/test/CodeGen/DirectX/scalarize-static-array-of-float-vectors.ll
+0-25llvm/test/CodeGen/DirectX/scalar-bug-117273.ll
+7-11llvm/lib/Target/DirectX/DXILDataScalarization.cpp
+1-1llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
+34-374 files

LLVM/project f3bd1b9llvm/include/llvm/CodeGen TargetLoweringObjectFileImpl.h, llvm/lib/CodeGen TargetLoweringObjectFileImpl.cpp

[SystemZ][z/OS] Use the text section for jump tables (#179793)

Jump tables are read only data, and the text section is the best choice
for them.
DeltaFile
+34-0llvm/test/CodeGen/SystemZ/zos-jumptable.ll
+5-0llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+2-0llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
+41-03 files

LLVM/project f0a4a91clang/lib/CodeGen ItaniumCXXABI.cpp, clang/test/CodeGenCXX zos-typename.cpp

[SystemZ][z/OS] Support both EBCDIC & ASCII form of type_info::name() (#179687)

On z/OS, typename is stored as 2 encodings: EBCDIC (default system
encoding) followed by ASCII.
DeltaFile
+14-0clang/test/CodeGenCXX/zos-typename.cpp
+12-2clang/lib/CodeGen/ItaniumCXXABI.cpp
+26-22 files

LLVM/project 3726e8dmlir/include/mlir/IR BuiltinTypeInterfaces.td BuiltinTypeInterfaces.h, mlir/lib/IR BuiltinTypes.cpp BuiltinAttributes.cpp

getter / iterator via interface
DeltaFile
+153-0mlir/lib/IR/BuiltinTypes.cpp
+32-110mlir/lib/IR/BuiltinAttributes.cpp
+68-56mlir/include/mlir/IR/BuiltinTypeInterfaces.td
+26-32mlir/lib/IR/AsmPrinter.cpp
+53-0mlir/lib/IR/BuiltinTypeInterfaces.cpp
+16-0mlir/include/mlir/IR/BuiltinTypeInterfaces.h
+348-1984 files not shown
+371-21210 files

LLVM/project 2d10684libcxx/docs/ReleaseNotes 23.rst, libcxx/include/__algorithm ranges_fold.h

[libcxx] Optimize `ranges::fold_left_with_iter` for segmented iterators (#177853)

Part of https://github.com/llvm/llvm-project/issues/102817.

This patch attempts to optimize the performance of
`ranges::fold_left_with_iter` for segmented iterators.

- before

```
# | rng::fold_left(vector<int>)/8             2.78 ns         2.78 ns    241953718
# | rng::fold_left(vector<int>)/32            12.2 ns         12.2 ns     57579851
# | rng::fold_left(vector<int>)/50            19.2 ns         19.2 ns     36487764
# | rng::fold_left(vector<int>)/8192          3226 ns         3226 ns       216811
# | rng::fold_left(vector<int>)/1048576     441842 ns       441839 ns         1592
# | rng::fold_left(deque<int>)/8              2.83 ns         2.83 ns    243888678
# | rng::fold_left(deque<int>)/32             16.6 ns         16.6 ns     42297458
# | rng::fold_left(deque<int>)/50             22.3 ns         22.3 ns     31387998
# | rng::fold_left(deque<int>)/8192           2492 ns         2492 ns       281637

    [26 lines not shown]
DeltaFile
+12-4libcxx/include/__algorithm/ranges_fold.h
+7-0libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/left_folds.pass.cpp
+4-0libcxx/docs/ReleaseNotes/23.rst
+23-43 files

LLVM/project 823e3e0libc/src/__support/math exp.h expm1.h

[libc][math] Resolve size issues on baremetal and cleanup code. (#179707)

DeltaFile
+21-20libc/src/__support/math/exp.h
+17-18libc/src/__support/math/expm1.h
+16-18libc/src/__support/math/exp10.h
+24-9libc/src/__support/math/sincosf_utils.h
+14-13libc/src/__support/math/acosf.h
+12-14libc/src/__support/math/exp2.h
+104-92110 files not shown
+336-322116 files

LLVM/project 744827ellvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 pr179489.ll

[X86] Fixed truncated masked stores (#179853)

Fixes: #179489
DeltaFile
+57-0llvm/test/CodeGen/X86/pr179489.ll
+10-2llvm/lib/Target/X86/X86ISelLowering.cpp
+67-22 files

LLVM/project db07843clang/lib/CodeGen/TargetBuiltins AMDGPU.cpp

Comment
DeltaFile
+0-2clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
+0-21 files