LLVM/project d0bdc5dlldb/test/API/functionalities/postmortem/netbsd-core TestNetBSDCore.py

[lldb][test] Disable parallel module loading for TestNetBSDCore.py (#159395)

Since #157170 this test has been flakey on several LLDB buildbots. I
suspect it's to do with mutli-threading, there are more details in
#159377.

Disable parallel loading for now so we are not spamming people making
unrelated changes.
DeltaFile
+2-0lldb/test/API/functionalities/postmortem/netbsd-core/TestNetBSDCore.py
+2-01 files

LLVM/project c928516llvm/include/llvm/MC MCSection.h, llvm/lib/MC MCSFrame.cpp MCAssembler.cpp

[SFrames] Emit and relax FREs (#158154)

This PR emits and relaxes the FREs generated in the previous PR.

After this change llvm emits usable sframe sections that can be
linked with the gnu linker. There are a few remaining cfi directives to 
handle before they are generally usable, however.

The output isn't identical with gnu-gas in every case (this code
produces
fewer identical FREs in a row than gas), but I'm reasonably sure that
they are correct regardless. There are even more size optimizations that
can be done later.

Also, while working on the tests, I found a few bugs in older portions
and cleaned those up.

This is a fairly big commit, but I'm not sure how to make it smaller.
DeltaFile
+156-16llvm/lib/MC/MCSFrame.cpp
+114-0llvm/test/MC/ELF/cfi-sframe-fre-cases.s
+87-0llvm/test/MC/ELF/cfi-sframe-encoding.s
+28-23llvm/test/MC/ELF/cfi-sframe.s
+25-0llvm/include/llvm/MC/MCSection.h
+24-0llvm/lib/MC/MCAssembler.cpp
+434-397 files not shown
+472-4013 files

LLVM/project 97dfc09clang/docs ReleaseNotes.rst, clang/lib/Sema SemaDecl.cpp

[clang] Do not diagnose conflicting types for cfi_unchecked_callee (#157762)

Clang would complain about conflicting types between a function
declaration and definition if the declaraion was marked with the
attribute but the definition wasn't. Do not treat this as an error. It
should only be necessary to mark the declaration with the attribute.
DeltaFile
+17-0clang/lib/Sema/SemaDecl.cpp
+9-0clang/test/AST/cfi-unchecked-callee.cpp
+4-0clang/test/Frontend/cfi-unchecked-callee-attribute.cpp
+3-0clang/docs/ReleaseNotes.rst
+33-04 files

LLVM/project 2ce04d0llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

[SLP][NFC] Refactor a long `if` into an early `return` (#156410)

DeltaFile
+122-123llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+122-1231 files

LLVM/project 48f00e8clang/lib/StaticAnalyzer/Core HTMLDiagnostics.cpp PlistDiagnostics.cpp, clang/test/Analysis/diagnostics/Inputs/expected-plists plist-html.c.plist

[analyzer] Prevent triplicate warnings for `sarif-html` (#158112)

When `-analyzer-output=sarif-html` is specified, the analyzer was
reporting each warning to the console three times. This is because the
code to create the diagnostic consumers for `sarif-html` was calling the
code for `sarif` and `html` separately, each of which also creates its
own console text consumer. Then the `sarif-html` code itself created a
third.

The fix is to factor out the creation of the SARIF and HTML consumers
from the text consumers, so `sarif-html` just calls the code to create
the SARIF and HTML consumers without the text consumers.

The same fix applies for `plist-html`.

I've updated one of the SARIF tests to specify `sarif-html`. This test
would fail in the regular `-verify` validation due to the triplicated
warnings, but now passes with my fix.

Fixes #158103 
rdar://160383710
DeltaFile
+197-0clang/test/Analysis/diagnostics/Inputs/expected-plists/plist-html.c.plist
+29-21clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
+20-10clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
+27-0clang/lib/StaticAnalyzer/Core/PlistDiagnostics.h
+25-0clang/lib/StaticAnalyzer/Core/SarifDiagnostics.h
+13-2clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
+311-333 files not shown
+324-369 files

LLVM/project eb00930

Merge branch 'fix-blockfreq-unroll-no-runtime' into fix-blockfreq-unroll-epilogue
DeltaFile
+0-00 files

LLVM/project 77fccd4llvm/utils/lit/lit TestRunner.py

remove unused variable

Created using spr 1.3.6
DeltaFile
+1-1llvm/utils/lit/lit/TestRunner.py
+1-11 files

LLVM/project fcf3442llvm/test/CodeGen/AArch64 sme-streaming-checkvl.ll, llvm/test/CodeGen/Mips atomic-min-max.ll

Rebase to main

Created using spr 1.3.6
DeltaFile
+2,190-2,179llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-writeback.s
+1,913-1,903llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-writeback.s
+1,456-1,455llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-writeback.s
+702-0mlir/test/Dialect/SCF/trip_count.mlir
+521-0llvm/test/CodeGen/Mips/atomic-min-max.ll
+478-0llvm/test/CodeGen/AArch64/sme-streaming-checkvl.ll
+7,260-5,537379 files not shown
+15,169-8,497385 files

LLVM/project c1d1b84llvm/utils/lit/lit TestRunner.py

Remove print

Created using spr 1.3.6
DeltaFile
+0-1llvm/utils/lit/lit/TestRunner.py
+0-11 files

LLVM/project d90a313llvm/lib/Target/AArch64/GISel AArch64LegalizerInfo.cpp, llvm/test/CodeGen/AArch64 vecreduce-fmax-legalization.ll vecreduce-fmin-legalization.ll

[AArch64][GlobalISel] Legalize more G_VECREDUCE_FMIN/FMAX operations. (#159082)

Enabling scalarisation for `G_VECREDUCE_FMIN` and `G_VECREDUCE_FMAX`
allows for more instructions to be handled such as `v2fp128`.
DeltaFile
+107-35llvm/test/CodeGen/AArch64/vecreduce-fmax-legalization.ll
+107-35llvm/test/CodeGen/AArch64/vecreduce-fmin-legalization.ll
+83-23llvm/test/CodeGen/AArch64/vecreduce-fmax-legalization-nan.ll
+62-18llvm/test/CodeGen/AArch64/vecreduce-fmaximum.ll
+62-18llvm/test/CodeGen/AArch64/vecreduce-fminimum.ll
+1-0llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+422-1296 files

LLVM/project 654a23bllvm/lib/Transforms/Scalar StructurizeCFG.cpp

amdgpu_use_ssaupdaterbulk_in_structurizecfg
DeltaFile
+15-10llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
+15-101 files

LLVM/project 6722e83llvm/include/llvm/Transforms/Utils SSAUpdaterBulk.h, llvm/lib/Transforms/Utils SSAUpdaterBulk.cpp

ssaupdaterbulk_add_phi_optimization
DeltaFile
+220-0llvm/unittests/Transforms/Utils/SSAUpdaterBulkTest.cpp
+92-1llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp
+4-1llvm/include/llvm/Transforms/Utils/SSAUpdaterBulk.h
+316-23 files

LLVM/project 1599e05llvm/utils/lit/lit TestRunner.py, llvm/utils/lit/tests shtest-readfile.py

feedback

Created using spr 1.3.6
DeltaFile
+8-4llvm/utils/lit/lit/TestRunner.py
+5-1llvm/utils/lit/tests/shtest-readfile.py
+4-0llvm/utils/lit/tests/Inputs/shtest-readfile/file-does-not-exist.txt
+17-53 files

LLVM/project ae46b9eflang-rt/lib/runtime namelist.cpp

[flang][runtime] Fix bug with NAMELIST in child input (#159173)

Don't let "hitSlash_" flag in child input propagate back to the parent
input statement's state when the child input was NAMELIST and the
NAMELIST input has properly consumed the terminal '/' character. (It can
get set if NAMELIST item input ran into it.) The current failure to
reset that flag is causing list-directed parent input to stop early.

Fixes https://github.com/llvm/llvm-project/issues/159127.
DeltaFile
+6-0flang-rt/lib/runtime/namelist.cpp
+6-01 files

LLVM/project 59c77e7flang/lib/Semantics check-do-forall.cpp check-do-forall.h, flang/test/Semantics definable07.f90

[flang] Check I/O implied DO indices better (#159150)

We're not checking READ statement implied DO index variables at all, and
we're not checking them for definability.
DeltaFile
+17-4flang/lib/Semantics/check-do-forall.cpp
+8-0flang/test/Semantics/definable07.f90
+2-0flang/lib/Semantics/check-do-forall.h
+27-43 files

LLVM/project fdd989dflang/lib/Parser characters.cpp, flang/test/Parser utf8-01.f90

[flang] Fix UTF-8 minimality checks (#159142)

UTF-8 encodings are required to be minimal, but the checks for
minimality of 3-byte and 4-byte sequences were incorrect. Fix.
DeltaFile
+15-0flang/test/Parser/utf8-01.f90
+9-6flang/lib/Parser/characters.cpp
+24-62 files

LLVM/project a20f123llvm/lib/Target/RISCV RISCVInstrInfo.td

[RISCV] Remove unused SDTypeProfile. NFC (#159156)

DeltaFile
+0-3llvm/lib/Target/RISCV/RISCVInstrInfo.td
+0-31 files

LLVM/project 1b77775flang-rt/lib/runtime unit.cpp

[flang][runtime] Block bad left tabbing in child I/O (#158758)

Child I/O subroutines are not supposed to use T or TL control edit
descriptors in formats to move the position in the current record to a
point before where it stood at the time of their calls (F'2023
12.6.4.8.3 paragraph 18), but we should also guard against attempts to
do so, using the same means used to prevent such attempts in
non-advancing I/O.

Fixes https://github.com/llvm/llvm-project/issues/158723.
DeltaFile
+1-0flang-rt/lib/runtime/unit.cpp
+1-01 files

LLVM/project deb2861flang/lib/Semantics runtime-type-info.cpp

[flang] Allow for equivalent types in non-TBP defined I/O (#158755)

Non-extensible derived type -- those with SEQUENCE or BIND(C) -- are
allowed as monomorphic "dtv" dummy arguments to defined I/O subroutines.
Fortran's type rules admit structural equivalence for these types, and
it's possible that I/O might be attempted in a scope using a
non-extensible type that's equivalent to a non-type-bound generic
interface's specific procedure's "dtv" dummy argument's type, but not
defined in the same place.

Fixes https://github.com/llvm/llvm-project/issues/158673.

This is an IBM Fortran test case that doesn't need to be duplicated in
LLVM.
DeltaFile
+25-5flang/lib/Semantics/runtime-type-info.cpp
+25-51 files

LLVM/project 8fb02facompiler-rt/lib/sanitizer_common sanitizer_mac.cpp, compiler-rt/test/asan/TestCases/Darwin sandbox-vm-region-recurse.cpp

[sanitizer-common][Darwin] Improve mach_vm_region_recurse error handling (#158670)

Some sanitizers use mach_vm_region_recurse on macOS to find a
sufficiently large gap to allocate shadow memory. Some sandboxes do not
allow this.

When we get KERN_DENIED, we suggest to the user that it may have been
blocked by the sandbox.

For error codes other than KERN_INVALID_ADDRESS and KERN_DENIED, we make
sure to log a message and not use the address.

rdar://160625998
DeltaFile
+33-0compiler-rt/test/asan/TestCases/Darwin/sandbox-vm-region-recurse.cpp
+26-7compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
+59-72 files

LLVM/project 2b0f25dflang/lib/Semantics check-declarations.cpp, flang/test/Semantics bug158405.f90

[flang] Fix crash in error recovery (#158750)

Code to attach a procedure's declaration to an error message did not
allow for ENTRY names, which can be in the global scope.

Fixes https://github.com/llvm/llvm-project/issues/158405.
DeltaFile
+9-5flang/lib/Semantics/check-declarations.cpp
+9-0flang/test/Semantics/bug158405.f90
+18-52 files

LLVM/project 615977aflang/lib/Semantics resolve-names.cpp, flang/test/Semantics resolve127.f90

[flang] Fix name resolution bug (#158749)

When the current scope is an implied DO loop nested within a derived
type declaration, it is possible for name resolution to mistakenly
resolve a name to a component rather than to a name in the outer scope.
Fix.

Fixes https://github.com/llvm/llvm-project/issues/158412.
DeltaFile
+12-5flang/lib/Semantics/resolve-names.cpp
+7-0flang/test/Semantics/resolve127.f90
+19-52 files

LLVM/project bf684e0flang-rt/lib/runtime namelist.cpp, flang/docs Extensions.md

[flang][runtime] Disable namelist storage sequence input when defined (#158708)

The runtime supports a near-universal extension to namelist input that
allows reading a sequence of values into a storage sequence beginning at
an array element, e.g. &NML A(2)=1. 2. 3. / .

Disable this extension when the type of the array has a defined
formatted READ subroutine defined. That defined input procedure may
itself not be using list-directed input, and might not notice a
following slash or new input item name as such.

Fixes https://github.com/llvm/llvm-project/issues/158496.
DeltaFile
+32-4flang-rt/lib/runtime/namelist.cpp
+3-0flang/docs/Extensions.md
+35-42 files

LLVM/project 6922f0ellvm/lib/Target/AArch64 AArch64ISelLowering.cpp

[AArch64] Remove dead vector.partial.reduce DAGCombine (NFC) (#159362)

This intrinsic is already lowered in SelectionDAGBuilder.cpp into
ISD::PARTIAL_REDUCE_UMLA, so the DAGCombine will never trigger. The
optimisations we were doing are also superseded by generic ones in
DAGCombiner.cpp.
DeltaFile
+0-143llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+0-1431 files

LLVM/project 7a098aellvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV rv32zba.ll rv64zba.ll

[RISCV] Implement computeKnownBitsForTargetNode for SHL_ADD (#159105)

DeltaFile
+35-0llvm/test/CodeGen/RISCV/rv32zba.ll
+35-0llvm/test/CodeGen/RISCV/rv64zba.ll
+10-0llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+80-03 files

LLVM/project af39a17clang-tools-extra/test/clang-tidy/checkers/modernize return-braced-init-list.cpp

[clang-tidy] Enable `modernize-return-braced-init-list`'s tests in C++11 (#158196)

The check supports C++11, but isn't tested in it.
DeltaFile
+3-1clang-tools-extra/test/clang-tidy/checkers/modernize/return-braced-init-list.cpp
+3-11 files

LLVM/project 57d67bellvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp

[DAG] getNode() - reuse result type instead of calling getValueType again. NFC. (#159381)

We have assertions above confirming VT == N1.getValueType() for INSERT_VECTOR_ELT nodes.
DeltaFile
+2-2llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+2-21 files

LLVM/project 05c4681llvm/lib/Transforms/Utils SCCPSolver.cpp, llvm/test/Transforms/SCCP relax-range-checks.ll

[SCCP] Relax two-instruction range checks (#158495)

If we know x in R1, the range check `x in R2` can be relaxed into `x in
Union(R2, Inverse(R1))`. The latter one may be more efficient if we can
represent it with one icmp.
Fixes regressions introduced by
https://github.com/llvm/llvm-project/pull/156497.

Proof for `(X & -Pow2) == C -> (X - C) < Pow2`:
https://alive2.llvm.org/ce/z/HMgkuu

Compile-time impact:
https://llvm-compile-time-tracker.com/compare.php?from=ead4f3e271fdf6918aef2ede3a7134811147d276&to=bee3d902dd505cf9b11499ba4f230e4e8ae96b92&stat=instructions%3Au
DeltaFile
+92-0llvm/test/Transforms/SCCP/relax-range-checks.ll
+54-0llvm/lib/Transforms/Utils/SCCPSolver.cpp
+146-02 files

LLVM/project c919109compiler-rt/lib/scudo/standalone primary32.h primary64.h

[scudo] Move the trace point in releaseToOSMaybe (#159204)

Move the trace point until right before the mark free blocks call for
the primary. This avoids adding extra calculations on a fast path.
DeltaFile
+6-2compiler-rt/lib/scudo/standalone/primary32.h
+6-2compiler-rt/lib/scudo/standalone/primary64.h
+12-42 files

LLVM/project de4fdcc.ci compute_projects_test.py compute_projects.py

[CI] Test lit when it is changed (#159359)

This patch makes it so that we run the lit tests when lit is changed.
This can make it much easier to catch portability issues with the tests
(like tests not working properly on Windows). It's also helpful as we
spend time working on enabling the internal shell by default.
DeltaFile
+24-0.ci/compute_projects_test.py
+8-1.ci/compute_projects.py
+32-12 files