[all-commits] [llvm/llvm-project] c93bad: [mlir][wasmssa] Fix if/else round-trip and verify ...

Vitaly Buka via All-commits all-commits at lists.llvm.org
Sat Oct 3 23:39:27 PDT 2026


  Branch: refs/heads/users/vitalybuka/spr/main.nfctsan-check-no-locks-are-held-in-entersymbolizer
  Home:   https://github.com/llvm/llvm-project
  Commit: c93bad65aa654f507ea768610d003c42ba31ab7b
      https://github.com/llvm/llvm-project/commit/c93bad65aa654f507ea768610d003c42ba31ab7b
  Author: Saqib Khan <saqibkhan at utexas.edu>
  Date:   2026-10-04 (Sun, 04 Oct 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSAOps.td
    M mlir/lib/Dialect/WasmSSA/IR/WasmSSAOps.cpp
    M mlir/test/Dialect/WasmSSA/custom_parser/if.mlir
    A mlir/test/Dialect/WasmSSA/return-invalid.mlir
    M mlir/test/Target/Wasm/if.mlir

  Log Message:
  -----------
  [mlir][wasmssa] Fix if/else round-trip and verify return types (#227828)

Fixes two WasmSSA dialect bugs:

**#226072: `wasmssa.if` does not round-trip.** The else region was
printed with `printKeywordOrString("else ")`. Because of the trailing
space, `"else "` is not a valid bare keyword, so it was printed as a
quoted string (`} "else "{`), which `parseElseRegion` does not accept.
The else keyword is now printed directly, giving `} else {`.

**#226073: `wasmssa.return` is not checked against the function's
results.** `wasmssa.return` had no verifier, so a function could return
a different number or type of values than its signature declares. This
adds a `ReturnOp` verifier that checks the operands against the
enclosing `wasmssa.func`. Checking in the return op rather than in
`FuncOp::verifyBody` also covers returns nested inside
`block`/`loop`/`if` regions.

Tests:
- `custom_parser/if.mlir` expected the broken `"else "` output; it now
expects `} else {` and gains a second RUN line piping through `mlir-opt`
again to check the round trip. Its `@func_0` returned `f32` from an
`i32` function, which the new verifier rejects, so the signature is now
`-> f32`.
- `Target/Wasm/if.mlir` also expected the quoted `"else "` and is
updated. The Wasm importer's output passes the new verifier.
- New `return-invalid.mlir` covers type mismatch, too few / too many
operands, and a mismatched return inside a nested `if` region.

`llvm-lit mlir/test/Dialect/WasmSSA mlir/test/Target/Wasm
mlir/test/Conversion/RaiseWasm`: 112/112 pass. The new and updated
dialect tests fail without the fix.

Assisted-by: Claude Code (Claude Opus 5.5)

Co-authored-by: Ferdinand Lemaire <flscminecraft at gmail.com>


  Commit: 7634546c4af456d0e026a9e3a661282a50e5211b
      https://github.com/llvm/llvm-project/commit/7634546c4af456d0e026a9e3a661282a50e5211b
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2026-10-03 (Sat, 03 Oct 2026)

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/WebKit/NoDeleteChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
    M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.h
    M clang/test/Analysis/Checkers/WebKit/nodelete-annotation.cpp

  Log Message:
  -----------
  [alpha.webkit.NoDeleteChecker] Support nodelete on constructors and destructors (#218822)


  Commit: 72b39c854fd7f9fd008bf14df4ce2c98b0ea364d
      https://github.com/llvm/llvm-project/commit/72b39c854fd7f9fd008bf14df4ce2c98b0ea364d
  Author: Jared Wyles <jared.wyles at gmail.com>
  Date:   2026-10-04 (Sun, 04 Oct 2026)

  Changed paths:
    M libclc/test/work-item/get_group_id.cl

  Log Message:
  -----------
  Wyles/update libclctests (#228681)

Using libclc with different versions of clang emit different output.
computeConstantRange now pushes ranges through zext and sext so we now
can prove noundef. This test returns AMDGPU workgroup ID which is zero
extended, so we can now prove it needs noundef.

At some point we may need to update the CI targets to look at libclc?


  Commit: 4d807b161f802800617703cdf885ef8f5707a912
      https://github.com/llvm/llvm-project/commit/4d807b161f802800617703cdf885ef8f5707a912
  Author: Jared Wyles <jared.wyles at gmail.com>
  Date:   2026-10-04 (Sun, 04 Oct 2026)

  Changed paths:
    M .ci/compute_projects.py
    M .ci/compute_projects_test.py

  Log Message:
  -----------
  [orc-rt] enabling CI (#226088)

For now we only build this as a stand alone project.

Co-authored-by: Lang Hames <lhames at gmail.com>


  Commit: 61ab63550e48c9f2e50aa2d5261ee8a5fe319c72
      https://github.com/llvm/llvm-project/commit/61ab63550e48c9f2e50aa2d5261ee8a5fe319c72
  Author: Douglas <Douglas.Gliner at sony.com>
  Date:   2026-10-04 (Sun, 04 Oct 2026)

  Changed paths:
    M clang/lib/Driver/SanitizerArgs.cpp
    M clang/test/Driver/sanitizer-ld.c

  Log Message:
  -----------
  [clang][Driver] Prevent Safe Stack runtime from linking if enabled then disabled (#228537)

Currently:
```
$ ./clang -fsanitize=safe-stack -fno-sanitize=safe-stack -Wl,--trace -x c++ -o- - < /dev/null
...
.../libclang_rt.safestack.a
...
```

See https://godbolt.org/z/e63za9sjn

With this change, `libclang_rt.safestack.a` is not included when Safe
Stack is disabled as the last option. This is because `Kinds` is the
final resolved set of sanitizers after removals via `-fno-sanitize`.
`AllAddedKinds` is the set of all sanitizers which were seen at least
once even if they were removed. This change makes it so we check against
`Kinds` instead of `AllAddedKinds`.

Besides Safe Stack, there are quite a few options resolved and passed to
the driver unintentionally when using particular combinations of
`-fsanitize` and `-fno-sanitize`. This is filed as
https://github.com/llvm/llvm-project/issues/228529.

Should fix https://github.com/llvm/llvm-project/issues/107763.


  Commit: 140515f43372ac94179223953e39d8e57259ba92
      https://github.com/llvm/llvm-project/commit/140515f43372ac94179223953e39d8e57259ba92
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2026-10-03 (Sat, 03 Oct 2026)

  Changed paths:

  Log Message:
  -----------
  [alpha.webkit.NoDeleteChecker] Support nodelete on constructors and destructors (#218822)

This PR adds the support for specifying nodelete annotation on C++
constructors and destructors. To do this, we recognize
[[clang::annotate("webkit.nodelete")]] on function declarations instead
of [[clang::annotate_type("webkit.nodelete")]] on the return value.

---------

Co-authored-by: Balázs Benics <benicsbalazs at gmail.com>


  Commit: d5349560d53694d0ee6fea65627748aba4c76574
      https://github.com/llvm/llvm-project/commit/d5349560d53694d0ee6fea65627748aba4c76574
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-10-03 (Sat, 03 Oct 2026)

  Changed paths:
    M .ci/compute_projects.py
    M .ci/compute_projects_test.py
    M clang/lib/Driver/SanitizerArgs.cpp
    M clang/lib/StaticAnalyzer/Checkers/WebKit/NoDeleteChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
    M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.h
    M clang/test/Analysis/Checkers/WebKit/nodelete-annotation.cpp
    M clang/test/Driver/sanitizer-ld.c
    M libclc/test/work-item/get_group_id.cl
    M mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSAOps.td
    M mlir/lib/Dialect/WasmSSA/IR/WasmSSAOps.cpp
    M mlir/test/Dialect/WasmSSA/custom_parser/if.mlir
    A mlir/test/Dialect/WasmSSA/return-invalid.mlir
    M mlir/test/Target/Wasm/if.mlir

  Log Message:
  -----------
  [𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]


Compare: https://github.com/llvm/llvm-project/compare/6b38839ddc63...d5349560d536

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