<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://blog.ouankou.com/</loc><lastmod>2026-04-17T23:39:08-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/compiler/</loc><lastmod>2026-04-17T23:39:08-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/gpu/</loc><lastmod>2026-04-17T23:39:08-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/04/12/how-rex-places-rex-offload-init-and-why-it-avoids-automatic-rex-offload-fini/</loc><lastmod>2026-04-17T23:39:08-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/openmp/</loc><lastmod>2026-04-17T23:39:08-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/rex/</loc><lastmod>2026-04-17T23:39:08-07:00</lastmod></url><url><loc>https://blog.ouankou.com/series/rex-openmp-journey/</loc><lastmod>2026-04-17T23:39:08-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/rose/</loc><lastmod>2026-04-17T23:39:08-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/runtime/</loc><lastmod>2026-04-17T23:39:08-07:00</lastmod></url><url><loc>https://blog.ouankou.com/series/</loc><lastmod>2026-04-17T23:39:08-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/</loc><lastmod>2026-04-17T23:39:08-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/04/11/how-rex-kmp-h-rewrites-offloading-runtime-calls/</loc><lastmod>2026-04-17T23:00:17-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/04/10/how-rex-registers-cubin-images-with-libomptarget/</loc><lastmod>2026-04-17T09:56:59-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/04/09/how-rex-expands-declare-mapper-clauses-into-dynamic-runtime-map-entries/</loc><lastmod>2026-04-17T09:02:14-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/lowering/</loc><lastmod>2026-04-17T09:02:14-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/04/08/how-rex-packs-literal-target-parameters-for-gpu-kernels/</loc><lastmod>2026-04-17T08:07:58-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/04/07/how-rex-lowers-target-target-teams-and-target-parallel-through-the-spmd-path/</loc><lastmod>2026-04-17T01:06:46-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/04/06/how-rex-lowers-target-loops-into-direct-gpu-kernels/</loc><lastmod>2026-04-16T23:15:19-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/performance/</loc><lastmod>2026-04-16T23:15:19-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/04/05/how-rex-validates-gpu-offloading-with-real-benchmarks/</loc><lastmod>2026-04-16T12:36:27-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/testing/</loc><lastmod>2026-04-16T12:36:27-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/analysis/</loc><lastmod>2026-04-16T09:05:24-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/ast/</loc><lastmod>2026-04-16T09:05:24-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/04/04/how-rex-validates-openmp-semantic-analysis-with-checkompanalyzing/</loc><lastmod>2026-04-16T09:05:24-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/frontend/</loc><lastmod>2026-04-16T08:10:52-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/04/03/how-rex-tests-openmp-frontend-ast-construction/</loc><lastmod>2026-04-16T08:10:52-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/04/02/how-ompparser-turns-openmp-pragmas-into-openmpir-in-rex/</loc><lastmod>2026-04-15T16:01:55-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/parser/</loc><lastmod>2026-04-15T16:01:55-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/cpu/</loc><lastmod>2026-04-15T15:24:20-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/04/01/how-rex-proves-lowered-openmp-semantics-with-cpu-equivalence-tests/</loc><lastmod>2026-04-15T15:24:20-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/31/how-rex-tests-gpu-lowering-invariants-with-reduced-rodinia-cases/</loc><lastmod>2026-04-15T14:24:41-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/30/how-rex-organizes-generated-host-device-and-helper-files/</loc><lastmod>2026-04-15T13:48:32-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/29/how-rex-lowers-target-data-regions-and-multi-kernel-lifetimes/</loc><lastmod>2026-04-15T13:00:26-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/28/how-rex-builds-tgt-kernel-arguments-and-map-arrays/</loc><lastmod>2026-04-15T08:29:56-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/agents/</loc><lastmod>2026-03-27T15:32:16-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/ai/</loc><lastmod>2026-03-27T15:32:16-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/codex/</loc><lastmod>2026-03-27T15:32:16-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/crush/</loc><lastmod>2026-03-27T15:32:16-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/gpt-5.2/</loc><lastmod>2026-03-27T15:32:16-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/telegram/</loc><lastmod>2026-03-27T15:32:16-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/27/why-codex-gpt-5-2-felt-different/</loc><lastmod>2026-03-27T15:32:16-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/zeroclaw/</loc><lastmod>2026-03-27T15:32:16-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/26/how-rex-builds-gpu-host-launch-block/</loc><lastmod>2026-03-27T10:49:13-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/25/how-rex-outlines-device-kernels/</loc><lastmod>2026-03-25T09:47:36-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/24/how-rex-dispatches-gpu-offloading/</loc><lastmod>2026-03-25T09:21:56-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/23/how-rex-tests-openmp-end-to-end/</loc><lastmod>2026-03-24T15:23:39-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/clang/</loc><lastmod>2026-03-24T14:50:16-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/22/why-rex-does-not-let-clang-own-openmp/</loc><lastmod>2026-03-24T14:50:16-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/21/how-rex-carries-openmp-pragmas/</loc><lastmod>2026-03-24T14:36:58-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/20/how-openmp-ast-construction-works-in-rex/</loc><lastmod>2026-03-22T01:09:07-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/llvm/</loc><lastmod>2026-03-21T13:14:15-07:00</lastmod></url><url><loc>https://blog.ouankou.com/tags/offloading/</loc><lastmod>2026-03-21T13:14:15-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/19/surviving-llvm-offload-abi-drift/</loc><lastmod>2026-03-21T13:14:15-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/18/how-offloading-runtime-glue-works-in-rex/</loc><lastmod>2026-04-15T13:00:26-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/17/how-gpu-offloading-lowering-works-in-rex/</loc><lastmod>2026-04-15T13:00:26-07:00</lastmod></url><url><loc>https://blog.ouankou.com/2026/03/16/how-openmp-works-in-rex/</loc><lastmod>2026-04-15T13:00:26-07:00</lastmod></url><url><loc>https://blog.ouankou.com/about/</loc><lastmod>2026-03-16T16:05:16-07:00</lastmod></url><url><loc>https://blog.ouankou.com/categories/</loc></url><url><loc>https://blog.ouankou.com/posts/</loc><lastmod>2026-03-16T16:05:16-07:00</lastmod></url></urlset>