LLVM/project 465807eflang/lib/Semantics check-declarations.cpp, flang/test/Semantics resolve58.f90 call14.f90

[flang] Catch missing "not a dummy argument" cases (#90268)

Declaration checking is looking for inappropriate usage of the INTENT,
VALUE, & OPTIONAL attributes in multiple places, and some oddball cases
like ENTRY points are not checked. Centralize the check for attributes
that apply only to dummy arguments into one spot.
DeltaFile
+11-26flang/lib/Semantics/check-declarations.cpp
+4-4flang/test/Semantics/resolve58.f90
+1-1flang/test/Semantics/call14.f90
+16-313 files

LLVM/project 7111304flang/lib/Semantics mod-file.cpp

[flang] Fix CHECK() crash in module file generator (#90234)

A sanity CHECK() in mod-file.cpp needs to allow for USE association of a
derived type that has the same name as a locally defined generic
interface.

Fixes https://github.com/llvm/llvm-project/issues/90192.
DeltaFile
+1-1flang/lib/Semantics/mod-file.cpp
+1-11 files

LLVM/project f0fbccbclang-tools-extra/test CMakeLists.txt lit.site.cfg.py.in

[clang-tidy] Enable plugin tests with LLVM_INSTALL_TOOLCHAIN_ONLY (#90370)

The only reason for the removed condition was that there was a
dependency for `CTTestTidyModule` on the `clang-tidy-headers` target,
which was only created under the same `NOT LLVM_INSTALL_TOOLCHAIN_ONLY`
condition. It looks like this target is not needed for
`CTTestTidyModule` to build and run, so the dependency can be removed
along with the condition.

See also https://reviews.llvm.org/D111100 for earlier discussions.
DeltaFile
+22-25clang-tools-extra/test/CMakeLists.txt
+1-1clang-tools-extra/test/lit.site.cfg.py.in
+23-262 files

LLVM/project 6d44a1elld/ELF OutputSections.cpp Driver.cpp, lld/docs ld.lld.1

[ELF] Adjust --compress-sections to support compression level

zstd excels at scaling from low-ratio-very-fast to
high-ratio-pretty-slow. Some users prioritize speed and prefer disk read
speed, while others focus on achieving the highest compression ratio
possible, similar to traditional high-ratio codecs like LZMA.

Add an optional `level` to `--compress-sections` (#84855) to cater to
these diverse needs. While we initially aimed for a one-size-fits-all
approach, this no longer seems to work.
(https://richg42.blogspot.com/2015/11/the-lossless-decompression-pareto.html)

When --compress-debug-sections is used together, make
--compress-sections take precedence since --compress-sections is usually
more specific.

Remove the level distinction between -O/-O1 and -O2 for
--compress-debug-sections=zlib for a more consistent user experience.

Pull Request: https://github.com/llvm/llvm-project/pull/90567
DeltaFile
+11-11lld/ELF/OutputSections.cpp
+14-4lld/test/ELF/compress-sections.s
+6-8lld/test/ELF/compressed-debug-level.test
+10-2lld/ELF/Driver.cpp
+6-6lld/docs/ld.lld.1
+3-2lld/ELF/Options.td
+50-332 files not shown
+56-358 files

LLVM/project 20b9ed6llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV pr90652.ll

[RISCV][ISel] Fix types in `tryFoldSelectIntoOp` (#90659)

```
SelectionDAG has 17 nodes:
  t0: ch,glue = EntryToken
    t6: i64,ch = CopyFromReg t0, Register:i64 %2
  t8: i1 = truncate t6
          t4: i64,ch = CopyFromReg t0, Register:i64 %1
        t7: i1 = truncate t4
            t2: i64,ch = CopyFromReg t0, Register:i64 %0
          t10: i64,i1 = saddo t2, Constant:i64<1>
        t11: i1 = or t8, t10:1
      t12: i1 = select t7, t8, t11
    t13: i64 = any_extend t12
  t15: ch,glue = CopyToReg t0, Register:i64 $x10, t13
  t16: ch = RISCVISD::RET_GLUE t15, Register:i64 $x10, t15:1
```

`OtherOpVT` should be i1, but `OtherOp->getValueType(0)` returns `i64`,

    [5 lines not shown]
DeltaFile
+19-0llvm/test/CodeGen/RISCV/pr90652.ll
+1-1llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+20-12 files

LLVM/project ece9d35llvm/include/llvm/CodeGen/GlobalISel LoadStoreOpt.h, llvm/lib/CodeGen/GlobalISel LoadStoreOpt.cpp

[GlobalISel] Fix store merging incorrectly classifying an unknown index expr as 0. (#90375)

During analysis, we incorrectly leave the offset part of an address info
struct
as zero, when in actual fact we failed to decompose it into base +
offset.
This results in incorrectly assuming that the address is adjacent to
another store
addr. To fix this we wrap the offset in an optional<> so we can
distinguish between
real zero and unknown.

Fixes issue #90242

(cherry picked from commit 19f4d68252b70c81ebb1686a5a31069eda5373de)
DeltaFile
+52-10llvm/test/CodeGen/AArch64/GlobalISel/store-merging.mir
+28-20llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp
+16-4llvm/include/llvm/CodeGen/GlobalISel/LoadStoreOpt.h
+19-0llvm/test/CodeGen/AArch64/GlobalISel/store-merging.ll
+115-344 files

LLVM/project 91fef00lld/ELF OutputSections.cpp

[ELF] Catch zlib deflateInit2 error

The function may return Z_MEM_ERROR or Z_STREAM_ERR. The former does not
have a good way of testing. The latter will be possible with a pending
change that allows setting the compression level, which will come with a
test.
DeltaFile
+5-1lld/ELF/OutputSections.cpp
+5-11 files

LLVM/project a7b8b89llvm/lib/TargetParser Host.cpp

[X86] Enable EVEX512 when host CPU has AVX512 (#90479)

This is used when -march=native run on an unknown CPU to old version of
LLVM.

(cherry picked from commit b3291793f11924a3b62601aabebebdcfbb12a9a1)
DeltaFile
+4-1llvm/lib/TargetParser/Host.cpp
+4-11 files

LLVM/project 4da5b14llvm/lib/CodeGen/GlobalISel CombinerHelper.cpp, llvm/test/CodeGen/AArch64/Atomics aarch64-atomic-load-rcpc_immo.ll

[GlobalISel] Don't form anyextending atomic loads.

Until we can reliably check the legality and improve our selection of these,
don't form them at all.

(cherry picked from commit 60fc4ac67a613e4e36cef019fb2d13d70a06cfe8)
DeltaFile
+28-28llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll
+40-15llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-load-rcpc_immo.ll
+47-0llvm/test/CodeGen/AArch64/GlobalISel/atomic-anyextending-load-crash.ll
+14-14llvm/test/CodeGen/AArch64/GlobalISel/arm64-pcsections.ll
+2-2llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
+131-595 files

LLVM/project 1ca6005clang/lib/StaticAnalyzer/Checkers/WebKit PtrTypesSemantics.cpp, clang/test/Analysis/Checkers/WebKit uncounted-obj-arg.cpp

[alpha.webkit.UncountedCallArgsChecker] Support more trivial expressions. (#90414)

Treat a compound operator such as |=, array subscription, sizeof, and
non-type template parameter as trivial so long as subexpressions are
also trivial.

Also treat true/false boolean literal as trivial.
DeltaFile
+22-1clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
+23-0clang/test/Analysis/Checkers/WebKit/uncounted-obj-arg.cpp
+45-12 files

LLVM/project aca5117libc/include/llvm-libc-macros/linux fcntl-macros.h, libc/include/llvm-libc-types struct_flock.h struct_flock64.h

[libc] Implement fcntl() function (#89507)

Fixes #84968. 

Implements the `fcntl()` function defined in the `fcntl.h` header.
DeltaFile
+155-0libc/test/src/fcntl/fcntl_test.cpp
+93-0libc/src/fcntl/linux/fcntl.cpp
+31-0libc/include/llvm-libc-macros/linux/fcntl-macros.h
+25-0libc/include/llvm-libc-types/struct_flock.h
+25-0libc/include/llvm-libc-types/struct_flock64.h
+25-0libc/include/llvm-libc-types/struct_f_owner_ex.h
+354-016 files not shown
+545-022 files

LLVM/project d1b3648flang/include/flang/Tools CLOptions.inc, flang/lib/Optimizer/Transforms PolymorphicOpConversion.cpp

[flang] always run PolymorphicOpConversion sequentially (#90721)

It was pointed out in post commit review of
https://github.com/llvm/llvm-project/pull/90597 that the pass should
never have been run in parallel over all functions (and now other top
level operations) in the first place. The mutex used in the pass was
ineffective at preventing races since each instance of the pass would
have a different mutex.
DeltaFile
+4-16flang/lib/Optimizer/Transforms/PolymorphicOpConversion.cpp
+4-15flang/test/Driver/mlir-pass-pipeline.f90
+1-10flang/test/Fir/basic-program.fir
+2-4flang/test/Driver/mlir-debug-pass-pipeline.f90
+2-4flang/test/Driver/bbc-mlir-pass-pipeline.f90
+1-1flang/include/flang/Tools/CLOptions.inc
+14-501 files not shown
+15-517 files

LLVM/project 28869a7llvm/lib/Bitcode/Reader BitcodeReader.cpp, llvm/lib/Bitcode/Writer BitcodeWriter.cpp

Reapply "Use an abbrev to reduce size of VALUE_GUID records in ThinLTO summaries" (#90610) (#90692)

This reverts commit 2aabfc811670beb843074c765c056fff4a7b443b.

Add fixes to LLD and Gold tests missed in original change.

Co-authored-by: Jan Voung <jvoung at google.com>
DeltaFile
+38-38llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
+29-24llvm/test/Assembler/thinlto-summary.ll
+26-4llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
+8-8llvm/test/ThinLTO/X86/distributed_indexes.ll
+5-5llvm/test/tools/gold/X86/thinlto.ll
+7-2llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+113-8116 files not shown
+146-11422 files

LLVM/project cf3c714llvm/include/llvm/TargetParser RISCVISAInfo.h, llvm/lib/TargetParser RISCVISAInfo.cpp

[RISCV] Merge RISCVISAInfo::updateFLen/MinVLen/MaxELen into a single function. (#90665)

This simplifies the callers.
DeltaFile
+32-35llvm/lib/TargetParser/RISCVISAInfo.cpp
+7-8llvm/include/llvm/TargetParser/RISCVISAInfo.h
+39-432 files

LLVM/project 09f4b06clang/test/Driver riscv-profiles.c riscv-arch.c, llvm/lib/TargetParser RISCVISAInfo.cpp

[RISCV] Refactor profile selection in RISCVISAInfo::parseArchString. (#90700)

Instead of hardcoding the 4 current profile prefixes, treat profile
selection as a fallback if we don't find "rv32" or "rv64".

Update the error message accordingly.
DeltaFile
+22-23llvm/lib/TargetParser/RISCVISAInfo.cpp
+4-2llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
+1-1clang/test/Driver/riscv-profiles.c
+1-1llvm/test/MC/RISCV/invalid-attribute.s
+1-1clang/test/Driver/riscv-arch.c
+29-285 files

LLVM/project 7396ab1llvm/lib/Target/NVPTX NVPTXInstrInfo.td, llvm/test/CodeGen/NVPTX rotate.ll

[NVPTX] Fix 64 bits rotations with large shift values (#89399)

ROTL and ROTR can take a shift amount larger than the element size, in
which case the effective shift amount should be the shift amount modulo
the element size.

This patch adds the modulo step when the shift amount isn't known at
compile time. Without it the existing implementation would end up
shifting beyond the type size and give incorrect results.
DeltaFile
+314-25llvm/test/CodeGen/NVPTX/rotate.ll
+6-4llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
+320-292 files

LLVM/project 0cb7f13lldb/docs lldb-gdb-remote.txt, lldb/docs/resources lldbgdbremote.md

address PR reviewer comments and rebase

Created using spr 1.3.4
DeltaFile
+2,399-0lldb/docs/resources/lldbgdbremote.md
+0-2,286lldb/docs/lldb-gdb-remote.txt
+0-1,451llvm/lib/Support/RISCVISAInfo.cpp
+1,383-0llvm/lib/TargetParser/RISCVISAInfo.cpp
+928-0llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
+0-928llvm/unittests/Support/RISCVISAInfoTest.cpp
+4,710-4,6651,241 files not shown
+70,957-17,2031,247 files

LLVM/project cf2f32cllvm/include/llvm/CodeGen MIRYamlMapping.h, llvm/lib/CodeGen MIRPrinter.cpp

[MIR] Serialize MachineFrameInfo::isCalleeSavedInfoValid() (#90561)

In case of functions without a stack frame no "stack" field is
serialized into MIR which leads to isCalleeSavedInfoValid being false
when reading a MIR file back in. To fix this we should serialize
MachineFrameInfo::isCalleeSavedInfoValid() into MIR.
DeltaFile
+41-0llvm/test/CodeGen/MIR/AArch64/calleesavedinfovalid.mir
+5-1llvm/include/llvm/CodeGen/MIRYamlMapping.h
+1-0llvm/lib/CodeGen/MIRParser/MIRParser.cpp
+1-0llvm/lib/CodeGen/MIRPrinter.cpp
+1-0llvm/test/CodeGen/MIR/Generic/frame-info.mir
+49-15 files

LLVM/project 4911164lldb/docs lldb-gdb-remote.txt, lldb/docs/resources lldbgdbremote.md

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.4

[skip ci]
DeltaFile
+2,399-0lldb/docs/resources/lldbgdbremote.md
+0-2,286lldb/docs/lldb-gdb-remote.txt
+0-1,451llvm/lib/Support/RISCVISAInfo.cpp
+1,383-0llvm/lib/TargetParser/RISCVISAInfo.cpp
+0-928llvm/unittests/Support/RISCVISAInfoTest.cpp
+928-0llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
+4,710-4,6651,236 files not shown
+70,911-17,1581,242 files

LLVM/project b1a2afalldb/docs lldb-gdb-remote.txt, lldb/docs/resources lldbgdbremote.md

rebase

Created using spr 1.3.4
DeltaFile
+2,399-0lldb/docs/resources/lldbgdbremote.md
+0-2,286lldb/docs/lldb-gdb-remote.txt
+0-1,451llvm/lib/Support/RISCVISAInfo.cpp
+1,383-0llvm/lib/TargetParser/RISCVISAInfo.cpp
+0-928llvm/unittests/Support/RISCVISAInfoTest.cpp
+928-0llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
+4,710-4,6651,236 files not shown
+70,911-17,1581,242 files

LLVM/project 8ba2a33lldb/docs lldb-gdb-remote.txt, lldb/docs/resources lldbgdbremote.md

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.4

[skip ci]
DeltaFile
+2,399-0lldb/docs/resources/lldbgdbremote.md
+0-2,286lldb/docs/lldb-gdb-remote.txt
+0-1,451llvm/lib/Support/RISCVISAInfo.cpp
+1,383-0llvm/lib/TargetParser/RISCVISAInfo.cpp
+928-0llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
+0-928llvm/unittests/Support/RISCVISAInfoTest.cpp
+4,710-4,6651,236 files not shown
+70,911-17,1581,242 files

LLVM/project 3788ceblldb/docs lldb-gdb-remote.txt, lldb/docs/resources lldbgdbremote.md

rebase

Created using spr 1.3.4
DeltaFile
+2,399-0lldb/docs/resources/lldbgdbremote.md
+0-2,286lldb/docs/lldb-gdb-remote.txt
+0-1,451llvm/lib/Support/RISCVISAInfo.cpp
+1,383-0llvm/lib/TargetParser/RISCVISAInfo.cpp
+0-928llvm/unittests/Support/RISCVISAInfoTest.cpp
+928-0llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
+4,710-4,6651,236 files not shown
+70,911-17,1581,242 files

LLVM/project 357aad7lldb/docs lldb-gdb-remote.txt, lldb/docs/resources lldbgdbremote.md

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.4

[skip ci]
DeltaFile
+2,399-0lldb/docs/resources/lldbgdbremote.md
+0-2,286lldb/docs/lldb-gdb-remote.txt
+0-1,451llvm/lib/Support/RISCVISAInfo.cpp
+1,383-0llvm/lib/TargetParser/RISCVISAInfo.cpp
+928-0llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
+0-928llvm/unittests/Support/RISCVISAInfoTest.cpp
+4,710-4,6651,236 files not shown
+70,911-17,1581,242 files

LLVM/project 85e48c7lldb/docs lldb-gdb-remote.txt, lldb/docs/resources lldbgdbremote.md

update

Created using spr 1.3.4
DeltaFile
+2,399-0lldb/docs/resources/lldbgdbremote.md
+0-2,286lldb/docs/lldb-gdb-remote.txt
+0-1,451llvm/lib/Support/RISCVISAInfo.cpp
+1,383-0llvm/lib/TargetParser/RISCVISAInfo.cpp
+0-928llvm/unittests/Support/RISCVISAInfoTest.cpp
+928-0llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
+4,710-4,6651,236 files not shown
+70,911-17,1581,242 files

LLVM/project 6c369cfclang/lib/Basic CMakeLists.txt, clang/lib/CodeGen CMakeLists.txt

[AArch64] Changes missing from cfca97742723 (#90314)
DeltaFile
+5-0llvm/include/module.modulemap
+3-0clang/lib/Basic/CMakeLists.txt
+3-0clang/tools/driver/CMakeLists.txt
+3-0clang/lib/CodeGen/CMakeLists.txt
+3-0clang/lib/Driver/CMakeLists.txt
+2-0llvm/include/module.install.modulemap
+19-06 files

LLVM/project c3cac19llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

Address comment

Created using spr 1.3.5
DeltaFile
+2-2llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+2-21 files

LLVM/project 987c036utils/bazel/llvm-project-overlay/clang/unittests BUILD.bazel

[bazel][clang] Add missing dependency for 6e31714d249f857f15262518327b0f0c9509db72
DeltaFile
+1-0utils/bazel/llvm-project-overlay/clang/unittests/BUILD.bazel
+1-01 files

LLVM/project 477c705clang/include/clang/Serialization ASTWriter.h, clang/lib/Serialization ASTWriter.cpp

[clang][modules] Allow including module maps to be non-affecting (#89992)

The dependency scanner only puts top-level affecting module map files on
the command line for explicitly building a module. This is done because
any affecting child module map files should be referenced by the
top-level one, meaning listing them explicitly does not have any meaning
and only makes the command lines longer.

However, a problem arises whenever the definition of an affecting module
lives in a module map that is not top-level. Considering the rules
explained above, such module map file would not make it to the command
line. That's why 83973cf157f7850eb133a4bbfa0f8b7958bad215 started
marking the parents of an affecting module map file as affecting too.
This way, the top-level file does make it into the command line.

This can be problematic, though. On macOS, for example, the Darwin
module lives in "/usr/include/Darwin.modulemap" one of many module map
files included by "/usr/include/module.modulemap". Reporting the parent
on the command line forces explicit builds to parse all the other module

    [8 lines not shown]
DeltaFile
+59-33clang/lib/Serialization/ASTWriter.cpp
+8-12clang/test/ClangScanDeps/modules-extern-unrelated.m
+9-0clang/include/clang/Serialization/ASTWriter.h
+76-453 files

LLVM/project 754072elibcxx/include stdexcept

[NFC][libc++] Fixes comment indention.

The output on eel.is has similar oddities, so I expect this was copy
pasted.
DeltaFile
+7-7libcxx/include/stdexcept
+7-71 files

LLVM/project a764f49llvm/lib/Target/DirectX DXContainerGlobals.cpp, llvm/test/CodeGen/DirectX/ContainerData EmptySignature.ll

[DirectX backend] generate ISG1, OSG1 part for compute shader (#90508)

Empty ISG1 and OSG1 parts are generated for compute shader since there's
no signature for compute shader.

Fixes #88778
DeltaFile
+40-11llvm/lib/Target/DirectX/DXContainerGlobals.cpp
+26-0llvm/test/CodeGen/DirectX/ContainerData/EmptySignature.ll
+66-112 files