LLVM/project c991fddllvm/include/llvm/Support KnownFPClass.h, llvm/lib/Analysis ValueTracking.cpp

InstCombine: Handle fsub in SimplifyDemandedFPClass (#175852)

alive2 fails on some of the tests, but this is due to existing
folds in instsimplify and
https://github.com/AliveToolkit/alive2/issues/1273
DeltaFile
+55-73llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fsub.ll
+19-60llvm/lib/Analysis/ValueTracking.cpp
+11-6llvm/include/llvm/Support/KnownFPClass.h
+10-4llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+6-0llvm/lib/Support/KnownFPClass.cpp
+101-1435 files

LLVM/project c8193f1lldb/source/Utility VirtualDataExtractor.cpp

[lldb] Fix for 32-bit armv7 ubuntu bot compile error
DeltaFile
+1-1lldb/source/Utility/VirtualDataExtractor.cpp
+1-11 files

LLVM/project 7497355llvm/include/llvm/Support KnownFPClass.h

Fix comment
DeltaFile
+1-1llvm/include/llvm/Support/KnownFPClass.h
+1-11 files

LLVM/project fb24a11llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/test/Transforms/InstCombine simplify-demanded-fpclass-fdiv.ll

Address comment nan lhs
DeltaFile
+4-2llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fdiv.ll
+1-1llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+5-32 files

LLVM/project 8cdb674llvm/include/llvm/Support KnownFPClass.h, llvm/lib/Analysis ValueTracking.cpp

frem self
DeltaFile
+17-1llvm/lib/Support/KnownFPClass.cpp
+5-6llvm/lib/Analysis/ValueTracking.cpp
+5-0llvm/include/llvm/Support/KnownFPClass.h
+27-73 files

LLVM/project 5b683abllvm/include/llvm/Support KnownFPClass.h, llvm/lib/Analysis ValueTracking.cpp

InstCombine: Handle fdiv in SimplifyDemandedFPClass
DeltaFile
+127-148llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fdiv.ll
+130-0llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+46-0llvm/lib/Support/KnownFPClass.cpp
+3-33llvm/lib/Analysis/ValueTracking.cpp
+10-0llvm/include/llvm/Support/KnownFPClass.h
+316-1815 files

LLVM/project e595e0fllvm/test/Transforms/InstCombine simplify-demanded-fpclass.ll simplify-demanded-fpclass-insertelement.ll

regenerate tests
DeltaFile
+0-84llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll
+4-3llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-insertelement.ll
+4-3llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-shufflevector.ll
+2-1llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc.ll
+2-1llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-frexp.ll
+2-1llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-extractelement.ll
+14-933 files not shown
+18-969 files

LLVM/project 38bd506llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp

Move isAggregateType, although this can't break for any existing case
DeltaFile
+4-4llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+4-41 files

LLVM/project c73ccb4llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/test/Transforms/InstCombine simplify-demanded-fpclass.ll

Check IsCanonicalizing
DeltaFile
+85-1llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll
+2-1llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+87-22 files

LLVM/project dbb4b7dllvm/test/Transforms/InstCombine simplify-demanded-fpclass-sqrt.ll simplify-demanded-fpclass-frexp.ll

InstCombine: Fold known-qnan results to a literal nan

Previously we only considered fcNan to fold to qnan for canonicalizing
results, ignoring the simpler case where we know the nan is already
quiet.
DeltaFile
+3-9llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-sqrt.ll
+3-4llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-frexp.ll
+3-4llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-insertelement.ll
+3-4llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-shufflevector.ll
+2-4llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll
+1-2llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-maximumnum.ll
+15-2712 files not shown
+28-4618 files

LLVM/project caf23d7llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/test/Transforms/InstCombine simplify-demanded-fpclass-frexp.ll

one use check
DeltaFile
+4-2llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-frexp.ll
+1-1llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+5-32 files

LLVM/project f74b460llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp

Use m_Extractvalue
DeltaFile
+5-7llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+5-71 files

LLVM/project 438fc78llvm/include/llvm/Support KnownFPClass.h, llvm/lib/Analysis ValueTracking.cpp

InstCombine: Implement SimplifyDemandedFPClass for frexp
DeltaFile
+16-38llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-frexp.ll
+49-0llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+27-0llvm/lib/Support/KnownFPClass.cpp
+3-21llvm/lib/Analysis/ValueTracking.cpp
+4-0llvm/include/llvm/Support/KnownFPClass.h
+99-595 files

LLVM/project 7a5e59ellvm/test/Transforms/InstCombine simplify-demanded-fpclass-frexp.ll

InstCombine: Add baseline frexp test for SimplifyDemandedFPClass (#176121)

DeltaFile
+632-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-frexp.ll
+632-01 files

LLVM/project 6000703llvm/include/llvm/Support KnownFPClass.h, llvm/lib/Analysis ValueTracking.cpp

InstCombine: Handle fptrunc in SimplifyDemandedFPClass (#175421)

Also handle llvm.fptrunc.round since it's the same.
DeltaFile
+60-30llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc.ll
+60-28llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc-round.ll
+41-0llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+14-0llvm/lib/Support/KnownFPClass.cpp
+1-9llvm/lib/Analysis/ValueTracking.cpp
+3-0llvm/include/llvm/Support/KnownFPClass.h
+179-676 files

LLVM/project fc94ef9llvm/lib/Target/AMDGPU GCNSchedStrategy.cpp, llvm/test/CodeGen/AMDGPU sched_mfma_rewrite_copies.mir sched_mfma_rewrite_cost.mir

AMDGPU: Disable scheduler mfma rewrite stage by default for now (#177624)

Currently generating an excess number of copies. Turning it off to avoid
churn for other developers.
DeltaFile
+1-1llvm/test/CodeGen/AMDGPU/sched_mfma_rewrite_copies.mir
+1-1llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+1-1llvm/test/CodeGen/AMDGPU/sched_mfma_rewrite_cost.mir
+3-33 files

LLVM/project 5faf48dlibcxx/test CMakeLists.txt, libcxx/utils/libcxx/test params.py

[libc++] Automatically detect the libc++ hardening mode from the test suite (#172505)

This prevents hardcoding the hardening mode via compiler flags, and
allows testing what the default hardening mode is on platforms that set
it to something that isn't `none`. Otherwise, a platform setting a
default (which is done via -DLIBCXX_HARDENING_MODE=mode at CMake
configuration time) would end up passing `-D_LIBCPP_HARDENING_MODE=mode`
to the compiler, which does not allow checking what the default mode is.
DeltaFile
+20-1libcxx/utils/libcxx/test/features/libcxx_macros.py
+0-2libcxx/test/CMakeLists.txt
+0-1libcxx/utils/libcxx/test/params.py
+20-43 files

LLVM/project f45c8ballvm/docs RISCVUsage.rst

[RISC-V][sanitizers][NFCI] Add documentation on which sanitizers probably work (#177679)

Docs requested in https://github.com/llvm/llvm-project/issues/172375
DeltaFile
+20-0llvm/docs/RISCVUsage.rst
+20-01 files

FreeBSD/ports 8c3888bmail/thunderbird distinfo Makefile

mail/thunderbird: update to 147.0.1 (rc1)

Release Notes:
  https://www.thunderbird.net/en-US/thunderbird/147.0.1/releasenotes/

(cherry picked from commit 5301e57ff394862965d5fc88e888237fe9b84365)
DeltaFile
+3-3mail/thunderbird/distinfo
+1-1mail/thunderbird/Makefile
+4-42 files

FreeBSD/ports 5301e57mail/thunderbird distinfo Makefile

mail/thunderbird: update to 147.0.1 (rc1)

Release Notes:
  https://www.thunderbird.net/en-US/thunderbird/147.0.1/releasenotes/
DeltaFile
+3-3mail/thunderbird/distinfo
+1-1mail/thunderbird/Makefile
+4-42 files

GhostBSD/build 35fda61packages mate xfce, packages/vital mate_oem

Removed `xconfig`, and `xorg-minimal` duplicate from package list (#260)

Also remove evolution. I will let users show their email software.
DeltaFile
+0-2packages/vital/mate_oem
+0-1packages/mate
+0-1packages/xfce
+0-1packages/mate_oem
+0-54 files

LLVM/project b39568dllvm/lib/Transforms/Vectorize VPlan.cpp, llvm/test/Transforms/LoopVectorize exact.ll tripcount.ll

[LV] capture branch weights for constant trip counts (#175096)

When a vectorized loop has constant trip, it's important to update the
profile information accordingly. Hotness analysis will only look at
profile info.

For example, in the `tripcount.ll` test, without producing the profile
info, in the `const_trip_over_profile` function, the BFI of the
`vector.body` would be 32 (this is the expected value when synthetic
branch weights are used, in loops). The real value is 250. The
`for.body`value was _very_ incorrect before, too (and detrimentally so,
as it would have appeared as "very hot" when it wasn't):

The table below was obtained by printing BFI in the RUN: command, i.e.
`build/bin/opt < llvm/test/Transforms/LoopVectorize/tripcount.ll
-passes="loop-vectorize,print<block-freq>"
-loop-vectorize-with-block-frequency -S -o /dev/null`. Showing only the
`float` value, i.e. the BFI relative to the function entry BB.


    [15 lines not shown]
DeltaFile
+27-7llvm/lib/Transforms/Vectorize/VPlan.cpp
+30-3llvm/test/Transforms/LoopVectorize/exact.ll
+9-6llvm/test/Transforms/LoopVectorize/tripcount.ll
+66-163 files

LLVM/project cad1721libcxx/test/std/utilities/optional/optional.object/optional.object.observe value.pass.cpp dereference.pass.cpp

[libc++][NFC] Simplify some `optional.observe` tests (#175682)

- Collapse the different ref/const-qualifier `operator*`, `operator->`
  and `value()` tests since they were all very similar to each other
- Refactor them to be inline with the current testing style
DeltaFile
+146-52libcxx/test/std/utilities/optional/optional.object/optional.object.observe/value.pass.cpp
+97-54libcxx/test/std/utilities/optional/optional.object/optional.object.observe/dereference.pass.cpp
+96-55libcxx/test/std/utilities/optional/optional.object/optional.object.observe/op_arrow.pass.cpp
+0-106libcxx/test/std/utilities/optional/optional.object/optional.object.observe/value_const.pass.cpp
+0-106libcxx/test/std/utilities/optional/optional.object/optional.object.observe/value_const_rvalue.pass.cpp
+0-97libcxx/test/std/utilities/optional/optional.object/optional.object.observe/dereference_rvalue.pass.cpp
+339-4705 files not shown
+339-84411 files

FreeBSD/src f3de667sys/netinet6 in6_ifattach.c in6_var.h

netinet6: free in6_ifextra with epoch_call(9)

This is expected to fix the old in6_selecthlim() panics.  The nature of
the panic is that a packet sending thread will obtain the struct ifnet
pointer locklessly and then pick the if_inet6 pointer from it and
dereference it. While the struct ifnet is freed via epoch_call(9), the
struct in6_ifextra until this change was not.  For the forwarded packets,
or locally originated non-TCP packets we were probably safe due to the old
if_dead trick.  But locally originated TCP packets may dereference
in6_ifextra via direct call into in6_selecthlim() from the tcp_output(),
before ip6_output().

NB: hypothetically a similar problem also applies to IPv4's if_inet pointer,
but there are no known panics, yet.

PR:                     279653
Reviewed by:            tuexen
Differential Revision:  https://reviews.freebsd.org/D54728
DeltaFile
+20-5sys/netinet6/in6_ifattach.c
+2-0sys/netinet6/in6_var.h
+22-52 files

FreeBSD/src cba9f88sys/netinet6 mld6.c mld6_var.h

netinet6: embed struct mld_ifsoftc into struct in6_ifextra

In mld_domifdetach() don't search the global list.

Reviewed by:            tuexen
Differential Revision:  https://reviews.freebsd.org/D54727
DeltaFile
+13-41sys/netinet6/mld6.c
+2-20sys/netinet6/mld6_var.h
+15-1sys/netinet6/in6_var.h
+1-2sys/netinet6/in6.c
+0-1sys/netinet6/ip6_input.c
+31-655 files

FreeBSD/src aa3bbc0sys/netinet6 scope6.c scope6_var.h

netinet6: embed struct scope6_id into struct in6_ifextra

Reviewed by:            tuexen
Differential Revision:  https://reviews.freebsd.org/D54726
DeltaFile
+6-13sys/netinet6/scope6.c
+1-12sys/netinet6/scope6_var.h
+9-1sys/netinet6/in6_var.h
+1-1sys/netinet6/in6.c
+0-1sys/netinet6/in6_ifattach.c
+17-285 files

LLVM/project b5d8fc5lldb/packages/Python/lldbsuite/test gdbclientutils.py lldbgdbclient.py, lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp

[lldb] Fix setting CanJIT if memory cannot be allocated (#176099)

When a server is unable to allocate memory for the `_M` packet, it may
respond with an error code. In this case,
`GDBRemoteCommunicationClient::AllocateMemory()` sets
`m_supports_alloc_dealloc_memory` to `eLazyBoolYes`; `eLazyBoolNo` is
only used if the server cannot handle the packet at all. Before this
patch, `ProcessGDBRemote::DoAllocateMemory()` checked this flag and
returned `LLDB_INVALID_ADDRESS` without setting an error, which caused
`Process::CanJIT()` to set `m_can_jit = eCanJITYes`, resulting in
`IRMemoryMap::FindSpace()` attempting to allocate memory in the inferior
process and failing. With the patch,
`ProcessGDBRemote::DoAllocateMemory()` returns an error and `m_can_jit`
is set to `eCanJITNo`.

Example debug session:
```
(lldb) platform connect...
(lldb) file test

    [8 lines not shown]
DeltaFile
+55-0lldb/test/API/functionalities/gdb_remote_client/TestExprNoAlloc.py
+13-0lldb/packages/Python/lldbsuite/test/gdbclientutils.py
+3-3lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+2-2lldb/packages/Python/lldbsuite/test/lldbgdbclient.py
+73-54 files

FreeBSD/src 576ee62sys/netinet6 nd6.c nd6_rtr.c

netinet6: store ND context directly in struct in6_ifextra

Stop using struct nd_ifinfo for that, because it is an API struct for
SIOCGIFINFO_IN6.  The functional changes are isolated to the protocol
attach and detach: in6_ifarrival(), nd6_ifattach(), in6_ifdeparture(),
nd6_ifdetach(), as well as to the nd6_ioctl(), nd6_ra_input(),
nd6_slowtimo() and in6_ifmtu().

The dad_failures member was just renamed to match the rest.  The M_IP6NDP
malloc(9) type declaration moved to files that actually use it.

The rest of the changes are mechanical substitution of double pointer
dereference via ND_IFINFO() to a single pointer dereference.  This was
achieved with a sed(1) script:

s/ND_IFINFO\(([a-z0-9>_.-]+)\)->(flags|linkmtu|basereachable|reachable|retrans|chlim)/\1->if_inet6->nd_\2/g
s/nd_chlim/nd_curhoplimit/g

Reviewed by:            tuexen, madpilot
Differential Revision:  https://reviews.freebsd.org/D54725
DeltaFile
+84-88sys/netinet6/nd6.c
+30-26sys/netinet6/nd6_rtr.c
+16-16sys/netinet6/in6.c
+13-11sys/netinet6/nd6_nbr.c
+12-3sys/netinet6/in6_var.h
+2-10sys/netinet6/nd6.h
+157-1548 files not shown
+177-17314 files

FreeBSD/src 25a11d9sys/netinet6 in6.c in6_rmx.c, sys/netpfil/pf pf.c

netinet6: use in6_ifmtu() instead of IN6_LINKMTU() macro

There should be no functional change.  If there are any performance
concerns with a function call, with the future changes, that would move
ND6 bits into in6_ifextra, this function would be easily inline-able.

Reviewed by:            tuexen
Differential Revision:  https://reviews.freebsd.org/D54724
DeltaFile
+7-2sys/netinet6/in6.c
+2-4sys/netinet6/in6_rmx.c
+0-5sys/netinet6/nd6.h
+2-2sys/netpfil/pf/pf.c
+2-2sys/netinet6/ip6_forward.c
+2-2sys/netinet6/ip6_output.c
+15-173 files not shown
+18-209 files

FreeBSD/src 3182dc4sys/netinet icmp6.h, sys/netinet6 in6_var.h in6.c

netinet6: embed the counter(9) arrays in struct in6_ifextra

Reviewed by:            tuexen
Differential Revision:  https://reviews.freebsd.org/D54723
DeltaFile
+17-19sys/netinet6/in6_var.h
+0-6sys/netinet6/in6.c
+1-2sys/netinet/icmp6.h
+0-2sys/netinet6/in6_ifattach.c
+18-294 files