Posts, notes, and experiments.
How REX Expands `declare mapper` Clauses Into Dynamic Runtime Map Entries
A focused walkthrough of REX's mapper-expansion path: scope-aware `declare mapper` resolution, recursive clause expansion, array-section deferral into dynamic entries, and the shared two-pass builder used by `target`, `target data`, and `target update`.
Read more ⟶How REX Packs Literal Target Parameters For GPU Kernels
A focused walkthrough of REX's literal target parameter path: how eligible mapped scalars are tagged, packed into pointer-sized launch arguments, stabilized in the host packet, and reconstructed inside the generated GPU kernel.
Read more ⟶How REX Lowers `target`, `target teams`, and `target parallel` Through The SPMD Path
A focused walkthrough of REX's non-loop GPU offloading branch: how `transOmpTargetSpmd()` handles `target`, `target teams`, and `target parallel`, outlines the region body, builds offload entries and runtime argument arrays, and launches a simpler SPMD kernel path without worksharing loop rewriting.
Read more ⟶How REX Lowers Target Loops Into Direct GPU Kernels
A focused walkthrough of the target-loop lowering stage in REX: how `transOmpTargetLoopBlock()` recovers canonical loop structure, rewrites loops into direct grid-stride kernels, keeps a round-robin fallback, and shares loop analysis with host launch shaping.
Read more ⟶How REX Validates GPU Offloading With Real Benchmarks
A walkthrough of REX's top validation layer: building native LLVM and REX binaries side by side, comparing outputs with normalization rules, and catching runtime and performance regressions using real benchmarks.
Read more ⟶How REX Validates OpenMP Semantic Analysis With `checkOmpAnalyzing`
A focused walkthrough of REX's `checkOmpAnalyzing` layer: `-rose:openmp:analyzing`, targeted AST assertions for schedule defaults and implicit target mapping, and why this semantic-analysis checkpoint sits between frontend AST coverage and lowering tests.
Read more ⟶How REX Tests OpenMP Frontend AST Construction With The `OpenMP_tests` Corpus
A focused walkthrough of the broad `OpenMP_tests` frontend corpus in REX: `parseOmp` in `ast_only` mode, `rose_*` output generation, OpenMP-line reference diffs, mixed OpenMP/OpenACC cases, multi-file and macro-preservation checks, and the separate Fortran AST-coverage slice.
Read more ⟶How `ompparser` Turns OpenMP Pragmas Into `OpenMPIR` In REX
A focused walkthrough of the standalone `ompparser` stage in REX: lexer and grammar, location-aware `OpenMPIR`, expression callbacks, clause normalization, round-trip unparsing, and the tests that validate the parser before AST construction begins.
Read more ⟶How REX Proves Lowered OpenMP Semantics With CPU Equivalence Tests
A focused walkthrough of REX's `lowering_cpu` suite: why it compares original and lowered OpenMP programs on the same CPU runtime, how exact and sorted comparison modes work, and which semantic regressions this layer catches before GPU benchmarks.
Read more ⟶How REX Tests GPU Lowering Invariants With Reduced Rodinia Cases
A focused walkthrough of the `lowering_rodinia` suite in REX: reduced Rodinia-like inputs, invariant-based checks on generated host and device files, and the specific regression classes this layer catches.
Read more ⟶