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 ⟶