[all-commits] [llvm/llvm-project] 7e9d70: [Offload] Use llvm::Error throughout liboffload in...

Mingming Liu via All-commits all-commits at lists.llvm.org
Tue May 27 14:32:18 PDT 2025


  Branch: refs/heads/users/mingmingl-llvm/sprof-serialize-mini
  Home:   https://github.com/llvm/llvm-project
  Commit: 7e9d708be02e58ce2deae3ccc9ec33b32674a0a6
      https://github.com/llvm/llvm-project/commit/7e9d708be02e58ce2deae3ccc9ec33b32674a0a6
  Author: Ross Brunton <ross at codeplay.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M offload/liboffload/include/OffloadImpl.hpp
    M offload/liboffload/include/generated/OffloadEntryPoints.inc
    M offload/liboffload/include/generated/OffloadImplFuncDecls.inc
    M offload/liboffload/src/Helpers.hpp
    M offload/liboffload/src/OffloadImpl.cpp
    M offload/tools/offload-tblgen/EntryPointGen.cpp
    M offload/tools/offload-tblgen/MiscGen.cpp
    M offload/tools/offload-tblgen/RecordTypes.hpp

  Log Message:
  -----------
  [Offload] Use llvm::Error throughout liboffload internals (#140879)

This removes the `ol_impl_result_t` helper class, replacing it with
`llvm::Error`. In addition, some internal functions that returned
`ol_errc_t` now return `llvm::Error` (with a fancy message).


  Commit: 20f9f1fc02c294fa98d23e1cf1b09ea6d9679145
      https://github.com/llvm/llvm-project/commit/20f9f1fc02c294fa98d23e1cf1b09ea6d9679145
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M offload/CMakeLists.txt
    M offload/liboffload/CMakeLists.txt
    M offload/libomptarget/CMakeLists.txt

  Log Message:
  -----------
  [Offload][NFCI] Remove coupling to `omp` target for version scripting (#141637)

Summary:
This is a weird dependency on libomp just for testing if version scripts
work. We shouldn't need to do  this because LLVM already checks for
this. I believe this should be available as well in standalone when we
call `addLLVM` but I did not test that directly.


  Commit: a9b64bb3180dab6d28bf800a641f9a9ad54d2c0c
      https://github.com/llvm/llvm-project/commit/a9b64bb3180dab6d28bf800a641f9a9ad54d2c0c
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M offload/liboffload/src/OffloadImpl.cpp
    M offload/unittests/OffloadAPI/device/olGetDeviceInfo.cpp

  Log Message:
  -----------
  [Offload] Fix segfault when looking for host device name (#141632)

Summary:
This is done using the generic device into pointe, but no such thing
exists for the host device, leading to a segfault. This patch fixes that
for now, but in the future we should probably be more careful in general
handling the possibility that the handle is null everywhere.

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


  Commit: 7c9e0d5b5d6de3d7812954fc18f74d705d5c5610
      https://github.com/llvm/llvm-project/commit/7c9e0d5b5d6de3d7812954fc18f74d705d5c5610
  Author: Steven Perron <stevenperron at google.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
    M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.h
    A llvm/test/CodeGen/SPIRV/hlsl-resources/spirv.layout.type.ll

  Log Message:
  -----------
  [SPIRV] Lower `spirv.Layout` type (#140059)

Add this type in accordance with the [design
doc](https://github.com/llvm/wg-hlsl/pull/171).

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

---------

Co-authored-by: Nathan Gauër <github at keenuts.net>


  Commit: d1a6327b2b5d859c992599ac217aaa6d8b83a998
      https://github.com/llvm/llvm-project/commit/d1a6327b2b5d859c992599ac217aaa6d8b83a998
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/test/C/C2y/n3369_3.c

  Log Message:
  -----------
  [C2y] Fix _Countof handling of VLAs (#141621)

It turns out that getVLASize() does not get you the size of a single
dimension of the VLA, it gets you the full count of all elements. This
caused _Countof to return invalid values on VLA ranks. Now switched to
using getVLAElements1D() instead, which only gets a single dimension.

Fixes #141409


  Commit: 8a21e0f4ff97f5564e8d134f841ae59ed2c5cdb0
      https://github.com/llvm/llvm-project/commit/8a21e0f4ff97f5564e8d134f841ae59ed2c5cdb0
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  Log Message:
  -----------
  [LoopIdiom] Strip dead check in processLoopMemSet (NFC) (#141100)


  Commit: ea8838446678a1163b361b0598b1259e9f476900
      https://github.com/llvm/llvm-project/commit/ea8838446678a1163b361b0598b1259e9f476900
  Author: Min-Yih Hsu <min.hsu at sifive.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
    A llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-coalesce.mir

  Log Message:
  -----------
  [RISCV][InsertVSETVLI] Remove redundant vsetvli by coalescing blocks from bottom up (#141298)

I ran into a relatively rare case in RISCVInsertVSETVLIPass, where right
after the `emitVSETVLI` phase but before the `coalesceVSETVLIs` phase,
we have two blocks that look like this:
```
bb.first:
  %46:gprnox0 = PseudoVSETIVLI %30:gprnox0, 199 /* e8, mf2, ta, ma */, implicit-def $vl, implicit-def $vtype
  %76:gpr = PseudoVSETVLIX0 killed $x0, ..., implicit-def $vl, implicit-def $vtype
  $v10m2 = PseudoVMV_V_I_M2 undef renamable $v10m2, 0, -1, 5 /* e32 */, 0 /* tu, mu */, implicit $vl, implicit $vtype
...
bb.second:
  $x0 = PseudoVSETVLI %46, 209 /* e32, m2, ta, ma */, implicit-def $vl, implicit-def $vtype
  $v10 = PseudoVMV_S_X undef $v10(tied-def 0), undef %53:gpr, $noreg, 5, implicit $vl, implicit $vtype
  $x0 = PseudoVSETVLI %30, 209 /* e32, m2, ta, ma */, implicit-def $vl, implicit-def $vtype
  $v8 = PseudoVREDSUM_VS_M2_E32 undef $v8(tied-def 0), killed $v8m2, killed $v10, $noreg, 5, 0, implicit $vl, implicit $vtype
```

After the `coalesceVSETVLIs` phase, it turns into:
``` diff
bb.first:
-  %46:gprnox0 = PseudoVSETIVLI %30:gprnox0, 199 /* e8, mf2, ta, ma */, implicit-def $vl, implicit-def $vtype
+  dead %46:gprnox0 = PseudoVSETIVLI %30:gprnox0, 199 /* e8, mf2, ta, ma */, implicit-def $vl, implicit-def $vtype
  %76:gpr = PseudoVSETVLIX0 killed $x0, ..., implicit-def $vl, implicit-def $vtype
  $v10m2 = PseudoVMV_V_I_M2 undef renamable $v10m2, 0, -1, 5 /* e32 */, 0 /* tu, mu */, implicit $vl, implicit $vtype
...
bb.second:
-  $x0 = PseudoVSETVLI %46, 209 /* e32, m2, ta, ma */, implicit-def $vl, implicit-def $vtype
+  $x0 = PseudoVSETVLI %30, 209 /* e32, m2, ta, ma */, implicit-def $vl, implicit-def $vtype
  $v10 = PseudoVMV_S_X undef $v10(tied-def 0), undef %53:gpr, $noreg, 5, implicit $vl, implicit $vtype
- $x0 = PseudoVSETVLI %30, 209 /* e32, m2, ta, ma */, implicit-def $vl, implicit-def $vtype
  $v8 = PseudoVREDSUM_VS_M2_E32 undef $v8(tied-def 0), killed $v8m2, killed $v10, $noreg, 5, 0, implicit $vl, implicit $vtype
```
We forwarded `%30` to any use of `%46` and further reduced the number of
VSETVLI we need in `bb.second`. But the problem is, if `bb.first` is
processed before `bb.second` -- which is the majority of the cases --
then we're not able to remove the vsetvli which defines the now-dead
`%46` in `bb.first` after coalescing `bb.second`.

This will produce assembly code like this:
```
        vsetvli zero, s0, e8, mf2, ta, ma
        vsetvli a0, zero, e32, m2, ta, ma
        vmv.v.i v10, 0
```

This patch fixes this issue by coalescing the blocks from bottom up such
that we can account for dead VSETVLI in the earlier blocks after its
uses are eliminated in later blocks.

---------

Co-authored-by: Luke Lau <luke at igalia.com>


  Commit: 645f0e6723f21aef8099d8d65f5719fd9feb125e
      https://github.com/llvm/llvm-project/commit/645f0e6723f21aef8099d8d65f5719fd9feb125e
  Author: Peter Collingbourne <peter at pcc.me.uk>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M llvm/include/llvm/IR/Module.h
    M llvm/lib/CodeGen/LowerEmuTLS.cpp
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/CodeGen/WasmEHPrepare.cpp
    M llvm/lib/IR/Module.cpp
    M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
    M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
    M llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
    M llvm/unittests/Analysis/BasicAliasAnalysisTest.cpp
    M llvm/unittests/IR/ConstantsTest.cpp

  Log Message:
  -----------
  IR: Make Module::getOrInsertGlobal() return a GlobalVariable.

After pointer element types were removed this function can only return
a GlobalVariable, so reflect that in the type and comments and clean
up callers.

Reviewers: nikic

Reviewed By: nikic

Pull Request: https://github.com/llvm/llvm-project/pull/141323


  Commit: 782a9e9f64dfa21ca21f4b5c09569b35dd041bb0
      https://github.com/llvm/llvm-project/commit/782a9e9f64dfa21ca21f4b5c09569b35dd041bb0
  Author: Peter Collingbourne <peter at pcc.me.uk>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
    M llvm/test/Transforms/LowerTypeTests/import.ll

  Log Message:
  -----------
  LowerTypeTests: Set small code model on imported globals.

This is either a vtable (in .data.rel.ro) or a jump table (in .text).
Either way it's expected to be in the low 2 GiB, so set the small
code model.

Reviewers: fmayer

Reviewed By: fmayer

Pull Request: https://github.com/llvm/llvm-project/pull/141324


  Commit: 04f9fac62238a4af2755e40b8020c64b3055c19a
      https://github.com/llvm/llvm-project/commit/04f9fac62238a4af2755e40b8020c64b3055c19a
  Author: Ebuka Ezike <yerimyah1 at gmail.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-categories/TestDataFormatterCategories.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/map/TestDataFormatterStdMap.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/vbool/TestDataFormatterStdVBool.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/vector/TestDataFormatterStdVector.py

  Log Message:
  -----------
  [lldb] optionally match the `__debug` namespace for libstdc++ containers. (#140727)

If libstdc++ is compiled with `_GLIBCXX_DEBUG` flag it puts the containers in the namespace `std::__debug`. this causes the summary and synthetic formatters not to match the types. The formatters is updated to optionally match the `__debug::`.

The formatters now clashed with the libc++ containers namespace regex which uses `std::__1` namespace

The libc++ formatter is loaded first, then the libstdc++ since the priority of the formatters in lldb is the last one added.

Fixes #60841


  Commit: 317f3bdcc1f96586489a9e48b494e593592b68cf
      https://github.com/llvm/llvm-project/commit/317f3bdcc1f96586489a9e48b494e593592b68cf
  Author: FabianWolff <16052130+FabianWolff at users.noreply.github.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M clang-tools-extra/clang-tidy/readability/RedundantSmartptrGetCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst

  Log Message:
  -----------
  [clang-tidy] Fix formatting and add release notes entry (#141584)

Follow-up to #141092.


  Commit: c0a87231069452dfeaf9f2601bb30a3f5e7eb840
      https://github.com/llvm/llvm-project/commit/c0a87231069452dfeaf9f2601bb30a3f5e7eb840
  Author: nerix <nerixdev at outlook.de>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M lldb/source/Plugins/Process/Windows/Common/ProcessDebugger.cpp
    A lldb/test/API/windows/launch/missing-dll/Makefile
    A lldb/test/API/windows/launch/missing-dll/TestMissingDll.py
    A lldb/test/API/windows/launch/missing-dll/dummy_dll.c
    A lldb/test/API/windows/launch/missing-dll/main.c

  Log Message:
  -----------
  [LLDB] Show exit code on Windows if process can't launch (#141290)

When running a process that would exit before LLDB could stop the
target, it would try to interpret (and subsequently format) the exit
code as a Win32 error. However, processes on Windows won't return Win32
errors in that case. They will often return an
[NTSTATUS](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/596a1078-e883-4972-9bbc-49e60bebca55).
One common case for this to occur is when a DLL is missing. In that
case, the process will start successfully, but it will exit with
`STATUS_DLL_NOT_FOUND`.
LLDB would previously return "unknown error", because it tried to
[`FormatMessage`](https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-formatmessage)
`0xC0000135` which doesn't work, so it fell back to "unknown error".

This PR changes the error to be the string "Process prematurely exited
with {0:x}" and doesn't try to format the exit code. One could
`FormatMessage` an `NTSTATUS` by passing `FORMAT_MESSAGE_FROM_HMODULE`
and a handle to `ntdll.dll`, however, I don't think we can get the
required format arguments (e.g. the missing DLL name - `%hs`).


  Commit: ad58ea3ba8b9ab60a3b31316cb2010034f6257e3
      https://github.com/llvm/llvm-project/commit/ad58ea3ba8b9ab60a3b31316cb2010034f6257e3
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  Log Message:
  -----------
  [VPlan] Bail out before construction VPlan0 if MinVF > MaxVF.

This reduces the cases where we need to create initial VPlans
unnecessarily after 567b3172da2d52f5df70a37f3de06b7000b25968.

buildVPlansWithVPRecipes is called with MinVF > MaxVF if the target does
not support scalable vectors.

Recovers some of the compile-time impact
http://llvm-compile-time-tracker.com/compare.php?from=3033f202f6707937cd28c2473479db134993f96f&to=1a0b9e5834f7fd4abf058864e656f8e26b7a26ff&stat=instructions:u


  Commit: 580454526b936f7a576ddbc9bb932cf9be376ec4
      https://github.com/llvm/llvm-project/commit/580454526b936f7a576ddbc9bb932cf9be376ec4
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/LoopPeel.h
    M llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
    M llvm/lib/Transforms/Utils/LoopPeel.cpp
    R llvm/test/Transforms/LoopUnroll/peel-last-iteration-debug.ll
    M llvm/test/Transforms/LoopUnroll/peel-last-iteration-expansion-cost.ll
    M llvm/test/Transforms/LoopUnroll/peel-last-iteration-with-constant-trip-count.ll
    M llvm/test/Transforms/LoopUnroll/peel-last-iteration-with-variable-trip-count.ll
    M llvm/test/Transforms/LoopUnroll/unroll-and-peel-last-iteration.ll

  Log Message:
  -----------
  Revert "[LoopPeel] Remove known trip count restriction when peeling last. (#140792)"

This reverts commit 24b97756decb7bf0e26dcf0e30a7a9aaf27f417c.
Also reverts ac9a466e39bf97ffeab127982aa7c405cb257551.

Building CMake triggers a crash with the patch, revert while I
investigate.


  Commit: a8edb6a5484964a399f6a297b02338e053d276c7
      https://github.com/llvm/llvm-project/commit/a8edb6a5484964a399f6a297b02338e053d276c7
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp

  Log Message:
  -----------
  [VPlan] Improve cast code in VPlanRecipes (NFC) (#141240)


  Commit: ab391beb11f733b526b86f9df23734a34657d876
      https://github.com/llvm/llvm-project/commit/ab391beb11f733b526b86f9df23734a34657d876
  Author: yonghong-song <yhs at fb.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M llvm/lib/Target/BPF/BPF.h
    M llvm/lib/Target/BPF/BPFISelLowering.cpp
    M llvm/lib/Target/BPF/BPFISelLowering.h
    M llvm/lib/Target/BPF/BPFMIPeephole.cpp
    M llvm/lib/Target/BPF/BPFTargetMachine.cpp
    M llvm/lib/Target/BPF/BTFDebug.cpp
    A llvm/test/CodeGen/BPF/BTF/builtin_trap.ll
    A llvm/test/CodeGen/BPF/BTF/unreachable.ll

  Log Message:
  -----------
  [BPF] Handle traps with kfunc call __bpf_trap (#131731)

Currently, middle-end generates 'unreachable' insn if the compiler
feels the code is indeed unreachable or the code becomes invalid
due to some optimizaiton (e.g. code optimization with uninitialized
variables).

Right now BPF backend ignores 'unreachable' insn during selectiondag
lowering. For cases where 'unreachable' is due to invalid code
transformation, such a signal will be missed. Later on, users needs
some effort to debug it which impacts developer productivity.

This patch enabled selectiondag lowering for 'unreachable' insn.

Previous attempt ([1]) tries to have a backend IR pass to filter
out 'unreachable' insns in a number of cases. But such pattern
matching may misalign with future middle-end optimization with
'unreachable' insns.

This patch takes a different approach. The 'unreachable' insn is
lowered with special encoding in bpf object file and verifier
will do proper verification for the bpf prog. More specifically,
the 'unreachable' insn is replaced by a __bpf_trap() function.
This function will be a kfunc (in ".ksyms" section) with a weak
attribute, but does not have definition. The actual kfunc definition
is expected to be in kernel. The __bpf_trap() extern function
is also encoded in BTF. The name __bpf_trap() is chosen to satisfy
reserved identifier requirement.

Besides the uninitialized variable case, the builtin function
'__builtin_trap' can also generate kfunc __bpf_trap(). For example
in [3], we have
```
  # define __bpf_unreachable()  __builtin_trap()
```
If the compiler didn't remove __builtin_trap() during middle-end
optimization, compilation will fail.

With this patch, compilation will not fail and __builtin_trap()
is converted to __bpf_trap() kfunc. The eventual failure will be
in verifier instead of llvm compilation. To keep compilation
time failure, user can add an option like `-ftrap-function=<something>`.

I tested this patch on bpf selftests and all tests are passed.
I also tried original example in [2] and the code looks like below:
```
          ; {
               0:       bf 16 00 00 00 00 00 00 r6 = r1
          ;       bpf_printk("Start");
               1:       18 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 r1 = 0x0 ll
                        0000000000000008:  R_BPF_64_64  .rodata
               3:       b4 02 00 00 06 00 00 00 w2 = 0x6
               4:       85 00 00 00 06 00 00 00 call 0x6
          ; DEFINE_FUNC_CTX_POINTER(data)
               5:       61 61 4c 00 00 00 00 00 w1 = *(u32 *)(r6 + 0x4c)
          ;       bpf_printk("pre ipv6_hdrlen_offset");
               6:       18 01 00 00 06 00 00 00 00 00 00 00 00 00 00 00 r1 = 0x6 ll
                        0000000000000030:  R_BPF_64_64  .rodata
               8:       b4 02 00 00 17 00 00 00 w2 = 0x17
               9:       85 00 00 00 06 00 00 00 call 0x6
              10:       85 10 00 00 ff ff ff ff call -0x1
                        0000000000000050:  R_BPF_64_32  __bpf_trap
              11:       95 00 00 00 00 00 00 00 exit
          <END>
```
Eventually kernel verifier will emit the following logs:
```
      10: (85) call __bpf_trap#74479
      unexpected __bpf_trap() due to uninitialized variable?
```
In another internal sched-ext bpf prog, with the patch we have bpf code:
```
  Disassembly of section .text:
  0000000000000000 <scx_storage_init_single>:
  ; {
       0:       bc 13 00 00 00 00 00 00 w3 = w1
       1:       b4 01 00 00 00 00 00 00 w1 = 0x0
  ;       const u32 zero = 0;
  ...
  0000000000003a80 <create_dom>:
  ; {
    1872:       bc 16 00 00 00 00 00 00 w6 = w1
  ;       bpf_printk("dom_id %d", dom_id);
    1873:       18 01 00 00 3f 00 00 00 00 00 00 00 00 00 00 00 r1 = 0x3f ll
                0000000000003a88:  R_BPF_64_64  .rodata
    1875:       b4 02 00 00 0a 00 00 00 w2 = 0xa
    1876:       bc 63 00 00 00 00 00 00 w3 = w6
    1877:       85 00 00 00 06 00 00 00 call 0x6
  ;       ret = scx_bpf_create_dsq(dom_id, 0);
    1878:       bc 61 00 00 00 00 00 00 w1 = w6
    1879:       b4 02 00 00 00 00 00 00 w2 = 0x0
    1880:       85 10 00 00 ff ff ff ff call -0x1
                0000000000003ac0:  R_BPF_64_32  scx_bpf_create_dsq
  ;       domc->node_cpumask = node_data[node_id];
    1881:       85 10 00 00 ff ff ff ff call -0x1
                0000000000003ac8:  R_BPF_64_32  __bpf_trap
    1882:       95 00 00 00 00 00 00 00 exit
    <END>
```
The verifier can easily report the error too.

A bpf flag `-bpf-disable-trap-unreachable` is introduced to disable
trapping for 'unreachable' or __builtin_trap.

  [1] https://github.com/llvm/llvm-project/pull/126858
  [2] https://github.com/msune/clang_bpf/blob/main/Makefile#L3
  [3] https://github.com/libbpf/libbpf/blob/master/src/bpf_helpers.h


  Commit: 7b1a6a8a9060395babd0ce6253aa2b0e883dfa3e
      https://github.com/llvm/llvm-project/commit/7b1a6a8a9060395babd0ce6253aa2b0e883dfa3e
  Author: zhijian lin <zhijian at ca.ibm.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    A llvm/test/CodeGen/PowerPC/atomic-compare-exchange-weak.ll

  Log Message:
  -----------
  [PowerPC ][NFC] Add a test case for the function atomic_compare_exchange_weak (#141263)

Add test case to test the generated asm of the function
atomic_compare_exchange_weak


  Commit: 8821c38788d215dd5691774d6777cf58882a2037
      https://github.com/llvm/llvm-project/commit/8821c38788d215dd5691774d6777cf58882a2037
  Author: Ely Ronnen <elyronnen at gmail.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp
    M lldb/tools/lldb-dap/Protocol/ProtocolTypes.cpp

  Log Message:
  -----------
  [lldb-dap] DisassembleRequestHandler: use a better invalid instruction (#141463)

DisassembleRequestHandler: use a better invalid instruction value that
fits VSCode client


  Commit: 9cf4603bf9e3bc4249fbe0d183fa31f2bba1eb7e
      https://github.com/llvm/llvm-project/commit/9cf4603bf9e3bc4249fbe0d183fa31f2bba1eb7e
  Author: Alex MacLean <amaclean at nvidia.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTX.h
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
    M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
    A llvm/test/CodeGen/NVPTX/nvptx-prec-divf32-flag.ll

  Log Message:
  -----------
  [NVPTX] Add -nvptx-prec-divf32=3 to disable ftz for f32 fdiv (#141276)

This change allows a new value (3) to be specified to the
-nvptx-prec-divf32 command line option to force non-ftz div generation
in all cases. This can be useful when debugging precision issues in
NVPTX.


  Commit: c720f920094e445af23ce8e214813f57694ab716
      https://github.com/llvm/llvm-project/commit/c720f920094e445af23ce8e214813f57694ab716
  Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M clang/lib/CodeGen/CodeGenModule.cpp
    A clang/test/CodeGenCUDA/nosanitize-cuid.hip

  Log Message:
  -----------
  [HIP] disable sanitizer for `__hip_cuid` (#141581)

Global variable `__hip_cuid_*` is for identifying purpose and does not
need sanitization, therefore disable it for sanitizers.


  Commit: 777163ca99edd23deb5bedfd8b941cb46c96500d
      https://github.com/llvm/llvm-project/commit/777163ca99edd23deb5bedfd8b941cb46c96500d
  Author: Francesco Petrogalli <francesco.petrogalli at apple.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-zve64f.mir

  Log Message:
  -----------
  [RISCV][test] Improve test robustness. [NFCI] (#141268)

In a0b6cfd9752742ff599364545ca9996cee67ef9b the literal in the test
needed to be updated because of the changes in the enums generated by
tablegen.

We can achieve the same "reguse" constraint with a PseudoRET
instruction.


  Commit: 4daa07bb68d080298e9efebef4a808195b77efbc
      https://github.com/llvm/llvm-project/commit/4daa07bb68d080298e9efebef4a808195b77efbc
  Author: Mingming Liu <mingmingl at google.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M clang-tools-extra/clang-tidy/readability/RedundantSmartptrGetCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/test/C/C2y/n3369_3.c
    A clang/test/CodeGenCUDA/nosanitize-cuid.hip
    M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
    M lldb/source/Plugins/Process/Windows/Common/ProcessDebugger.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-categories/TestDataFormatterCategories.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/map/TestDataFormatterStdMap.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/vbool/TestDataFormatterStdVBool.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/vector/TestDataFormatterStdVector.py
    A lldb/test/API/windows/launch/missing-dll/Makefile
    A lldb/test/API/windows/launch/missing-dll/TestMissingDll.py
    A lldb/test/API/windows/launch/missing-dll/dummy_dll.c
    A lldb/test/API/windows/launch/missing-dll/main.c
    M lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp
    M lldb/tools/lldb-dap/Protocol/ProtocolTypes.cpp
    M llvm/include/llvm/IR/Module.h
    M llvm/include/llvm/Transforms/Utils/LoopPeel.h
    M llvm/lib/CodeGen/LowerEmuTLS.cpp
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/CodeGen/WasmEHPrepare.cpp
    M llvm/lib/IR/Module.cpp
    M llvm/lib/Target/BPF/BPF.h
    M llvm/lib/Target/BPF/BPFISelLowering.cpp
    M llvm/lib/Target/BPF/BPFISelLowering.h
    M llvm/lib/Target/BPF/BPFMIPeephole.cpp
    M llvm/lib/Target/BPF/BPFTargetMachine.cpp
    M llvm/lib/Target/BPF/BTFDebug.cpp
    M llvm/lib/Target/NVPTX/NVPTX.h
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
    M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
    M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
    M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
    M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.h
    M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
    M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
    M llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
    M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
    M llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
    M llvm/lib/Transforms/Utils/LoopPeel.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    A llvm/test/CodeGen/BPF/BTF/builtin_trap.ll
    A llvm/test/CodeGen/BPF/BTF/unreachable.ll
    A llvm/test/CodeGen/NVPTX/nvptx-prec-divf32-flag.ll
    A llvm/test/CodeGen/PowerPC/atomic-compare-exchange-weak.ll
    A llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-coalesce.mir
    M llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-zve64f.mir
    A llvm/test/CodeGen/SPIRV/hlsl-resources/spirv.layout.type.ll
    R llvm/test/Transforms/LoopUnroll/peel-last-iteration-debug.ll
    M llvm/test/Transforms/LoopUnroll/peel-last-iteration-expansion-cost.ll
    M llvm/test/Transforms/LoopUnroll/peel-last-iteration-with-constant-trip-count.ll
    M llvm/test/Transforms/LoopUnroll/peel-last-iteration-with-variable-trip-count.ll
    M llvm/test/Transforms/LoopUnroll/unroll-and-peel-last-iteration.ll
    M llvm/test/Transforms/LowerTypeTests/import.ll
    M llvm/unittests/Analysis/BasicAliasAnalysisTest.cpp
    M llvm/unittests/IR/ConstantsTest.cpp
    M offload/CMakeLists.txt
    M offload/liboffload/CMakeLists.txt
    M offload/liboffload/include/OffloadImpl.hpp
    M offload/liboffload/include/generated/OffloadEntryPoints.inc
    M offload/liboffload/include/generated/OffloadImplFuncDecls.inc
    M offload/liboffload/src/Helpers.hpp
    M offload/liboffload/src/OffloadImpl.cpp
    M offload/libomptarget/CMakeLists.txt
    M offload/tools/offload-tblgen/EntryPointGen.cpp
    M offload/tools/offload-tblgen/MiscGen.cpp
    M offload/tools/offload-tblgen/RecordTypes.hpp
    M offload/unittests/OffloadAPI/device/olGetDeviceInfo.cpp

  Log Message:
  -----------
  Merge branch 'main' into users/mingmingl-llvm/sprof-serialize-mini


Compare: https://github.com/llvm/llvm-project/compare/2502a55b377c...4daa07bb68d0

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list