Upstream PR Status
This table cross-references every change carried in bwa-mem3 main to its
corresponding upstream bwa-mem2 PR or issue. “Fork-only” means no upstream PR
exists; the change may be submitted upstream in the future or may be
fork-specific by design. “Open” means the upstream PR or issue existed at the
time of bwa-mem3’s implementation but had not been merged. Upstream status is
current as of the bwa-mem3 0.2.0 release.
For prose descriptions of each change, follow the links in the “bwa-mem3 PR” column to the relevant deep-dive page section.
Full cross-reference table
| Topic | bwa-mem3 PR | Upstream PR / Issue | Upstream status |
|---|---|---|---|
| Correctness | |||
@PG CL: tab escaping | #54 | bwa-mem2#293 | open issue |
| SMEM buffer overflow on >151 bp reads | #55 | bwa-mem2#238, bwa-mem2#210 | PR closed without merge; issue open |
| kswv nrow==0 guard (all 5 kernels) | #51 | bwa-mem2#289 | open PR (upstream covers AVX-512BW only) |
AVX-512BW dispatch guard (!__AVX512BW__) | #26 | — | fork-only |
| AVX2 score2 plateau consolidation | #28 | — | fork-only |
| NEON + AVX-512BW 8-bit score2 fix | #29 | — | fork-only |
| AVX-512BW 16-bit score2 fix | #30 | — | fork-only |
| NEON 16-bit kernel rewrite | #31 | — | fork-only |
| kseq2bseq1 zero-initialization | #22 | — | fork-only |
| Proper-pair flag from emitted alignment | #17 | — | fork-only |
@HD emitted before @SQ per SAM spec | #35 | lh3/bwa#345 | closed (lh3 only) |
mem_matesw SIGSEGV on shm-backed ref_string | #85 | — | fork-only |
SA_COMPX_MASK precedence in sampled-SA prefetch | #73 | — | fork-only |
.alt parse buffer bounded (stack overflow) | #74 | — | fork-only |
display_stats nthreads clamp to LIM_C | #81 | — | fork-only |
| Performance | |||
| Lockstep SMEM batching | #33 | — | fork-only |
Batched -H header ingestion (O(n) fix) | #49 | bwa-mem2#204 | open PR |
| libsais FM-index construction | #57 | — | fork-only |
| Consolidated mapping speedups | #58 | — | fork-only |
| kswv per-strip L1 prefetches (all u8/16 kernels) | #70 | — | fork-only |
SMEM_LOCKSTEP_N bumped from 8 to 16 | #75 | — | fork-only |
Closed-form ungapped HIT when total_mis == 0 | #77 | — | fork-only |
ksort on-stack buffer for small n | #78 | — | fork-only |
libsais_build skip wasted zero-init | #80 | — | fork-only |
Cap avx512bw autovec at 256-bit | #86 | — | fork-only |
Inline FMI_search::backwardExt (recover gcc 12+ regression) | #88 | — | fork-only |
| Features | |||
--bam=LEVEL direct BAM output | #12 | — | fork-only |
--meth bisulfite alignment mode | #13 | — | fork-only |
| Vendored mimalloc allocator | #19 | — | fork-only |
HN:i hit count tag | #42 | lh3/bwa#438 | analogous to bwa aln; no direct upstream port |
--supp-rep-hard-cap MAPQ rescoring | #56 | bwa-mem2#260 | open issue |
bwa-mem3 shm shared-memory index | #65 | — | fork-only (v1 feature port) |
shm --meth symmetry | #67 | — | fork-only |
-z FLOAT (XA_drop_ratio CLI knob) | #35 | lh3/bwa#294 | merged (lh3 only) |
-u flag — widen XA:Z records with ,score,mapq | #35 | lh3/bwa#293 | merged (lh3 only) |
MQ:i mate mapping quality tag | #35 | lh3/bwa#330 | merged (lh3 only) |
Bismark-compatible XR:Z / XG:Z / XM:Z tags | #90 | — | fork-only |
/bwactl registry interprocess lock (POSIX named semaphore) | #82 | — | fork-only |
bwa-mem3 shm /dev/shm capacity preflight | #86 | — | fork-only |
Host-floor precheck (SIMD floor: / SIMD runtime:, exit 2 on under-floor host) | #95 | — | fork-only |
| Architecture support | |||
| Linux ARM64 / aarch64 build + CI | #1 | bwa-mem2#288 | open PR |
arch=avx512bw explicit Makefile target | #16 | — | fork-only |
| NEON kswv mate-rescue kernel | #18 | — | fork-only |
| AVX2 kswv mate-rescue kernel | #20 | — | fork-only |
bns_fetch_seq_v2 migration of mem_matesw_batch_{pre,post} | #76 | — | fork-only |
Single-binary in-process SIMD dispatch (replaces multi-binary execv launcher) | #83 | — | fork-only |
Default x86 BASELINE_ARCH=avx2 (was sse41) | #84 | — | fork-only |
| Build & infrastructure | |||
| doctest framework + Codecov | #34 | — | fork-only |
PACKAGE_VERSION from git describe | #52 | bwa-mem2#283, bwa-mem2#284 | open issue + open PR |
| PGO target parameterization | #59 | — | fork-only |
CXXFLAGS/CPPFLAGS/LDFLAGS forwarding | #50 | bwa-mem2#290 | open upstream PR |
| Unit-test harness + ARM CI | #23 | — | fork-only |
| CI matrix expansion (7 rows) | #24 | — | fork-only |
Shell-var rename BWAMEM2/BWA_MEM2[_*] → BWAMEM3/BWA_MEM3[_*] (CI/bench/test scripts) | #68 | — | fork-only |
Methylation oracle: alias bwa-mem2 → bwa-mem3 on PATH for bwameth.py | #72 | — | fork-only |
| Migrate parity tests from dwgsim/phiX174 to holodeck/chr22 | #89 | — | fork-only |
Upstream issues tracked but not yet fixed in bwa-mem3
The following upstream issues are tracked in the bwa-mem3 issue list but do
not yet have corresponding fixes in main:
| Issue | Upstream reference | Notes |
|---|---|---|
| Split-alignment evidence loss vs bwa 0.7.17 | bwa-mem2#273 | issue #47 — under investigation |
| MAPQ/coordinate parity vs bwa mem 0.7.18 | bwa-mem2#262, bwa-mem2#246, bwa-mem2#239 | issue #48 — tracking only |
See also: Correctness fixes · Performance improvements · Features · Architecture support · Build & infrastructure