www/{nginx,nginx-devel,freenginx}: 3rd-party modules management
Use the new www/nginx-module-vod source port instead of fetching
nginx-vod-module from GitHub.
Sponsored by: Netzkommune GmbH
www/{nginx,nginx-devel,freenginx}: 3rd-party modules management
Use the new www/nginx-module-vod source port instead of fetching
nginx-vod-module from GitHub.
Sponsored by: Netzkommune GmbH
www/nginx-module-vod: Add New Port
The vod module repackages MP4 files on the fly, so that a single set of
files on disk can be served as HLS, DASH, MSS or HDS without transcoding.
This port installs the module sources only, the module itself is built by
the nginx ports.
Sponsored by: Netzkommune GmbH
www/nginx-module-vod: Add New Port
The vod module repackages MP4 files on the fly, so that a single set of
files on disk can be served as HLS, DASH, MSS or HDS without transcoding.
This port installs the module sources only, the module itself is built by
the nginx ports.
Sponsored by: Netzkommune GmbH
[orc-rt] SimpleRemoteCA updates for out-of-band error results (#223916)
Executor-side counterpart to #223378: adds ResultKind, the discriminator
a result message's tag field now carries, so that out-of-band errors can
travel as results despite having no byte representation of their own.
encodeResult and decodeResult own the encoding. handleMessage rejects a
tag that does not name a known kind, ending the session as an
unrecognized opcode does; a payload that will not decode is not fatal,
and comes back as an out-of-band error describing itself.
Nothing sends a non-zero kind yet -- SocketSimpleRemoteCA will, when it
frames a result. SimpleRemoteCATest covers the round-trips and both
malformed cases.
[lldb] Add PlatformEmscripten (#223200)
This follows #223169, where I introduced `HostInfoEmscripten`.
While getting libLLDB and its SB API working in the browser, I initially used `PlatformLinux` as the host platform under Emscripten. That was enough for the first experiment, but Emscripten is not really Linux and we shouldn't keep inheriting Linux-specific behavior going forward.
This patch introduces a separate `PlatformEmscripten`, based on `PlatformPOSIX`, and makes it the host platform when LLDB itself is running under Emscripten.
For now, it:
- reports the Emscripten host architecture;
- supports `wasm32` and `wasm64` Emscripten targets;
- moves Emscripten host initialization out of `PlatformLinux`;
- does not claim that live process debugging works yet.
`PlatformWasm` remains separate. My understanding is that `PlatformEmscripten` describes the environment in which LLDB itself is running, while `PlatformWasm` describes the WebAssembly program being
debugged.
I am keeping this patch small on purpose. Browser-specific launching, attachment and live execution can be added separately once we connect LLDB to an actual in-browser execution backend.
I added a small test confirming that an Emscripten triple selects this platform, and also compiled the new plugin source successfully with Emscripten 6.0.8.
[SPIR-V] Fix bit count intrinsics on narrow integer types (#223358)
Widening i24 to i32 relabels the type without clearing the high bits, so
ctlz, cttz and ctpop counted them too
[llvm-jitlink] Fix a memory leak in llvm-jitlink-executor. (#223904)
In openListener, use a scope_exit to call freeaddrinfo on the struct
allocated by getaddrinfo.
No testcase: We have no in-tree tests for llvm-jitlink-executor. This
bug was found by inspection.
[lldb] Add HostInfoEmscripten (#223169)
Emscripten currently selects `HostInfoLinux`. That was useful as an initial bootstrap, but it also introduces Linux-specific assumptions such as `/proc/self/exe`, invoking `lsb_releas`e through `popen`, and
Linux-specific architecture handling.
This patch introduces a small `HostInfoEmscripten` implementation derived from `HostInfoPosix` and selects it when LLDB is built with Emscripten.
The implementation intentionally remains minimal. A browser-hosted LLDB process does not currently have a meaningful native executable path, so `GetProgramFileSpec()` returns an empty FileSpec.
A dedicated PlatformEmscripten and browser-specific process behavior will be handled separately so this change remains atomic !
[RISCV] Add DecodeSingleRegister template class to replace DecodeSPRegisterClass and similar. (#223889)
This can avoid adding more explicitly written decode functions for
https://github.com/llvm/llvm-project/pull/177073
[VPlan] Use frozen combined condition in early exit first-active-lane
Combined is used both to compute if an early exit was taken via VPInstruction::AnyOf, as well as the index of the early-exited lane in VPInstruction::FirstActiveLane.
Combined can have poison lanes past the exited lane, so the AnyOf uses freeze to prevent branching on poison. However FirstActiveLane on a vector with a poison lane is poison, so we need to also use the frozen version of Combined to prevent poison there.
[VPlan] Fix VPInstruction::AnyOf combine undoing freeze
There is an any-of combine for unrolled VPlans which does:
any-of (fcmp uno A, A), (fcmp uno B, B), ...-> any-of (fcmp uno A, B)
However any-of implicitly freezes each individual operand and this means we go from `freeze (fcmp uno A, A)` to `freeze (fcmp uno A, B)` which isn't sound: alive2.llvm.org/ce/z/UdQM7C
This causes miscompiles today with early exit loops, see the attached test case in single-early-exit-anyof-fold.ll.
This fixes it by explicitly modelling the freeze in VPlan. There are three places where we use AnyOf:
1) early exit loops: the freeze needs to be applied per-lane, so apply it to `(any-of (freeze (combined-conds-to-exit)))`
2) handleMaxMinNumReductions: If any lane of the reduction was poison in the scalar loop, the final result will be poison. We only need to freeze the result of AnyOf to prevent immediate UB when branching. Freezing individual operands blocks the any-of combine otherwise.
3) handleFindLastReductions: we need to freeze Cond itself since it's got multiple uses, but I plan on fixing this in a separate PR
[LLVM][NVPTX] Add async bulk copy global to shared extensions (#222323)
This change adds following things to bulk copy intrinsics.
1. Relaxed memory ordering semantics with a scope argument.
2. Data-validity reporting patterns (introduced in Rubin).
3. 32-bit multicast mask for global to shared::cluster variants
(introduced in Rubin).
4. Ignore out of bound checks for global to shared::cta variants.
Note: MLIR lowering is updated to emit the new intrinsic signatures.
Support for the new features in MLIR will be done in a separate change.
[VPlan] Append recipes created via builder to worklist
The previous PR appended the top most created recipe to the worklist, and this PR extends it to any other nested recipes that were created, similar to InstCombine.
This removes the header mask in a good few more places on RISC-V as measured on SPEC CPU 2017, e.g. for the following loop:
```c
long f(const int *p, const int *q, long n) {
long a = 0, b = 0;
for (long i = 0;; i++) {
if (p[i] && q[i]) { a += i; b += i; }
if (i + 1 == n) break;
}
return a + b;
}
```
Before:
[49 lines not shown]