Posts, notes, and experiments.
How REX Organizes Generated Host, Device, and Helper Files
A focused walkthrough of the generated artifact model for REX GPU offloading: the rewritten host file, the synthesized device file, and the shared helper/runtime files that make the build work.
Read more ⟶How REX Lowers `target data` Regions and Multi-Kernel Lifetimes
A focused walkthrough of how REX lowers OpenMP `target data` regions, reuses the same mapping vocabulary as kernel launches, and preserves data lifetimes across multiple kernels and repeated calls.
Read more ⟶How REX Builds `__tgt_kernel_arguments` and Runtime Map Arrays
A focused walkthrough of the ABI-critical runtime packet in REX GPU lowering: `__args*` arrays, static and dynamic map-entry handling, and the final `__tgt_kernel_arguments` structure.
Read more ⟶Why Codex + GPT-5.2 Felt Like a Different Kind of Agent
Why Codex with GPT-5.2 felt like a step change in persistence, why older models and other tools often stopped early, and what Crush and Zeroclaw would need to do to close that gap.
Read more ⟶How REX Builds the GPU Host Launch Block
A focused walkthrough of the host-side launch block in REX GPU lowering: kernel identity, launch geometry, replacement of the original target region, and the bridge to runtime argument packaging.
Read more ⟶How REX Outlines Device Kernels
A focused walkthrough of the outlining stage in REX GPU lowering: how target bodies become device kernels, how capture sets are classified, and why loop lowering happens after outlining.
Read more ⟶How REX Dispatches GPU Offloading Constructs
A focused walkthrough of the first stage inside the GPU lowerer: how REX routes many `SgOmpTarget*` surface constructs into a small number of core lowering paths, and why that dispatch boundary keeps the compiler generic.
Read more ⟶How REX Tests OpenMP End to End
A deep look at the layered OpenMP test system in REX: parser tests, frontend compile and analyzer tests, invariant-based lowering checks, CPU equivalence, and full benchmark validation.
Read more ⟶Why REX Does Not Let Clang Own the OpenMP AST
An architectural deep dive into one of the central REX design choices: why a ROSE/Sage source-to-source compiler cannot treat Clang's OpenMP AST as the source of truth, and why OpenMP has to become `SgOmp*` inside REX instead.
Read more ⟶How REX Carries OpenMP Pragmas Before AST Construction
A focused walkthrough of Stage 1 in the REX OpenMP pipeline: `processOpenMP()`, clause normalization control, raw directive text recovery, C/C++ pragma parsing, Fortran comment handling, and the handoff into OpenMPIR.
Read more ⟶