offtarget 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- offload/__init__.py +10 -0
- offload/__main__.py +5 -0
- offload/_bundle.py +74 -0
- offload/_root/catalog/acc/claims.yaml +197 -0
- offload/_root/catalog/acc/clauses.yaml +391 -0
- offload/_root/catalog/acc/no_oracle.yaml +89 -0
- offload/_root/catalog/acc/out_of_scope.yaml +17 -0
- offload/_root/catalog/acc/rules.yaml +433 -0
- offload/_root/catalog/acc/semantic_atoms.yaml +27 -0
- offload/_root/catalog/acc/skeleton.yaml +1567 -0
- offload/_root/catalog/acc/spec_overrides.yaml +72 -0
- offload/_root/catalog/later_forms.yaml +76 -0
- offload/_root/catalog/machines.yaml +218 -0
- offload/_root/catalog/omp/claims.yaml +2047 -0
- offload/_root/catalog/omp/clauses.yaml +914 -0
- offload/_root/catalog/omp/derivations.yaml +177 -0
- offload/_root/catalog/omp/memory_modes.yaml +40 -0
- offload/_root/catalog/omp/no_oracle.yaml +373 -0
- offload/_root/catalog/omp/omp50_delta.yaml +377 -0
- offload/_root/catalog/omp/out_of_scope.yaml +64 -0
- offload/_root/catalog/omp/port_equivalence.yaml +352 -0
- offload/_root/catalog/omp/rules.yaml +3131 -0
- offload/_root/catalog/omp/rules_coverage.yaml +9939 -0
- offload/_root/catalog/omp/semantic_atoms.yaml +34 -0
- offload/_root/catalog/omp/skeleton.yaml +9181 -0
- offload/_root/catalog/omp/spec_overrides.yaml +932 -0
- offload/_root/catalog/toolchains.yaml +472 -0
- offload/_root/catalog/vendor_claims_generic.yaml +40925 -0
- offload/_root/data/canuse/b.json +1 -0
- offload/_root/data/canuse/c.json +1 -0
- offload/_root/data/canuse/columns.json +1 -0
- offload/_root/data/canuse/d.json +1 -0
- offload/_root/data/canuse/f.json +1 -0
- offload/_root/data/canuse/index.json +1 -0
- offload/_root/data/canuse/p.json +1 -0
- offload/_root/data/compilers/afar.json +1 -0
- offload/_root/data/compilers/cce19.json +1 -0
- offload/_root/data/compilers/cce20.json +1 -0
- offload/_root/data/compilers/cce21.json +1 -0
- offload/_root/data/compilers/cce21_4.json +1 -0
- offload/_root/data/compilers/gcc.json +1 -0
- offload/_root/data/compilers/gcc_sm80.json +1 -0
- offload/_root/data/compilers/nvhpc.json +1 -0
- offload/_root/data/compilers/nvhpc269.json +1 -0
- offload/_root/data/findings/AUTHORING.md +107 -0
- offload/_root/data/findings/README.md +33 -0
- offload/_root/data/findings/afar-c-error-directive-in-target-link.c +37 -0
- offload/_root/data/findings/afar-c-lastprivate-distribute-parallel-for-small-type.c +56 -0
- offload/_root/data/findings/afar-c-teams-distribute-reduction-first-team.c +59 -0
- offload/_root/data/findings/afar-c-update-iterator-copy-mode.c +45 -0
- offload/_root/data/findings/afar-c-xnack1-target-is-present.c +31 -0
- offload/_root/data/findings/afar-cce19-character-defaultmap.f90 +27 -0
- offload/_root/data/findings/afar-cce19-task-in-target-ice.f90 +23 -0
- offload/_root/data/findings/afar-clang-requires-device-safesync-hang.c +24 -0
- offload/_root/data/findings/afar-flang-firstprivate-map-two-targets.f90 +34 -0
- offload/_root/data/findings/afar-flang-loop-bind-teams-reduction.f90 +27 -0
- offload/_root/data/findings/afar-flang-task-reduction-max.f90 +31 -0
- offload/_root/data/findings/afar-flang-thread-limit-target-parallel-do.f90 +22 -0
- offload/_root/data/findings/afar-linear-ref-omp50.f90 +29 -0
- offload/_root/data/findings/afar-loop-bind-thread-in-teams.f90 +44 -0
- offload/_root/data/findings/afar-nontemporal-assumed-shape-ice.f90 +38 -0
- offload/_root/data/findings/afar-udr-derived-type-link.f90 +41 -0
- offload/_root/data/findings/afar-xnack1-atomic-min-nested-parallel.f90 +53 -0
- offload/_root/data/findings/afar-xnack1-present-not-enforced.f90 +36 -0
- offload/_root/data/findings/afar-xnack1-target-is-present.f90 +47 -0
- offload/_root/data/findings/apps/afar-cce-teams-private-array-nested-parallel-wrong.f90 +100 -0
- offload/_root/data/findings/apps/cce20-device-link-infer-address-spaces-crash.f90 +159 -0
- offload/_root/data/findings/apps/cce21-device-link-agpr-copy-mfma-assert.f90 +343 -0
- offload/_root/data/findings/apps/cce21-private-array-loaded-subscript-wrong.f90 +113 -0
- offload/_root/data/findings/apps/controls/bubble-simple-rddot.f90 +284 -0
- offload/_root/data/findings/apps/controls/bubble-two-substeps.f90 +287 -0
- offload/_root/data/findings/apps/controls/cbc-inline.f90 +97 -0
- offload/_root/data/findings/apps/controls/cbc-integers.f90 +91 -0
- offload/_root/data/findings/apps/controls/cbc-only-density.f90 +97 -0
- offload/_root/data/findings/apps/controls/cbc-only-velocity.f90 +97 -0
- offload/_root/data/findings/apps/controls/gcc-acc-c-tile-control.c +26 -0
- offload/_root/data/findings/apps/controls/gcc-acc-tile-control.f90 +29 -0
- offload/_root/data/findings/apps/controls/private-array-subscript-probes.f90 +45 -0
- offload/_root/data/findings/apps/controls/teams-private-array-read-par.f90 +31 -0
- offload/_root/data/findings/apps/controls/teams-private-array-seq.f90 +30 -0
- offload/_root/data/findings/apps/controls/teams-private-array-shared.f90 +34 -0
- offload/_root/data/findings/apps/controls/teams-private-array-split.f90 +36 -0
- offload/_root/data/findings/apps/controls/teams-private-array-write-par.f90 +31 -0
- offload/_root/data/findings/apps/gcc-acc-c-tile-partial-tiles-wrong.c +60 -0
- offload/_root/data/findings/apps/gcc-acc-tile-partial-tiles-wrong.f90 +64 -0
- offload/_root/data/findings/catalog/afar-c-complex-reduction-link.c +66 -0
- offload/_root/data/findings/catalog/afar-c-critical-hint-link.c +68 -0
- offload/_root/data/findings/catalog/afar-c-ordered-doacross-link.c +62 -0
- offload/_root/data/findings/catalog/afar-c-reduction-task-link.c +81 -0
- offload/_root/data/findings/catalog/afar-flang-absent-optional-target-crash.f90 +76 -0
- offload/_root/data/findings/catalog/afar-flang-critical-target-parallel-wrong.f90 +74 -0
- offload/_root/data/findings/catalog/afar-flang-dist-schedule-chunk.f90 +80 -0
- offload/_root/data/findings/catalog/afar-flang-linear-parallel-ice.f90 +68 -0
- offload/_root/data/findings/catalog/afar-flang-named-critical-link.f90 +67 -0
- offload/_root/data/findings/catalog/afar-flang-ordered-wrong.f90 +78 -0
- offload/_root/data/findings/catalog/afar-flang-reduction-minus-rejected.f90 +77 -0
- offload/_root/data/findings/catalog/afar-flang-reduction-task-ice.f90 +68 -0
- offload/_root/data/findings/catalog/afar-flang-sections-in-target-ice.f90 +67 -0
- offload/_root/data/findings/catalog/afar-flang-workdistribute-ice.f90 +71 -0
- offload/_root/data/findings/catalog/c-allocate-const-mem-firstprivate-wrong.c +79 -0
- offload/_root/data/findings/catalog/cce-acc-allocate-in-compute-crash.f90 +65 -0
- offload/_root/data/findings/catalog/cce-acc-character-dummy-routine-ice.f90 +81 -0
- offload/_root/data/findings/catalog/cce-acc-loop-seq-in-routine-wrong.f90 +81 -0
- offload/_root/data/findings/catalog/cce-acc-stop-in-compute-crash.f90 +62 -0
- offload/_root/data/findings/catalog/cce-allocators-stack-ice.f90 +81 -0
- offload/_root/data/findings/catalog/cce-atomic-default-mem-order-acquire-release-rejected.f90 +61 -0
- offload/_root/data/findings/catalog/cce-c-allocate-align-link.c +83 -0
- offload/_root/data/findings/catalog/cce-c-allocate-allocator-modifier-rejected.c +77 -0
- offload/_root/data/findings/catalog/cce-c-device-type-directive-name-ice.c +70 -0
- offload/_root/data/findings/catalog/cce-c-dist-schedule-chunk.c +81 -0
- offload/_root/data/findings/catalog/cce-c-f-pointer-device-link.f90 +70 -0
- offload/_root/data/findings/catalog/cce-c-lastprivate-parallel-in-seq-loop-wrong.c +64 -0
- offload/_root/data/findings/catalog/cce-c-long-double-ice.c +61 -0
- offload/_root/data/findings/catalog/cce-c-map-iterator-ice.c +92 -0
- offload/_root/data/findings/catalog/cce-c-motion-iterator-rejected.c +68 -0
- offload/_root/data/findings/catalog/cce-c-ordered-doacross-link.c +64 -0
- offload/_root/data/findings/catalog/cce-c-ordered-link.c +77 -0
- offload/_root/data/findings/catalog/cce-c-recursive-function-ice.c +62 -0
- offload/_root/data/findings/catalog/cce-c-reduction-inscan-ice.c +67 -0
- offload/_root/data/findings/catalog/cce-c-reduction-task-link.c +73 -0
- offload/_root/data/findings/catalog/cce-c-sections-in-target-wrong.c +70 -0
- offload/_root/data/findings/catalog/cce-c-single-masked-task-link.c +66 -0
- offload/_root/data/findings/catalog/cce-c-task-in-target-link.c +75 -0
- offload/_root/data/findings/catalog/cce-c-uses-allocators-traits-rejected.c +71 -0
- offload/_root/data/findings/catalog/cce-flang-allocate-const-mem-ice.f90 +67 -0
- offload/_root/data/findings/catalog/cce-flang-allocate-in-target-crash.f90 +68 -0
- offload/_root/data/findings/catalog/cce-flang-lastprivate-parallel-in-seq-loop-wrong.f90 +83 -0
- offload/_root/data/findings/catalog/cce-flang-stop-in-target-crash.f90 +64 -0
- offload/_root/data/findings/catalog/cce-iterator-link.f90 +67 -0
- offload/_root/data/findings/catalog/cce-linear-lastprivate-ice.f90 +69 -0
- offload/_root/data/findings/catalog/cce-nohost-link.f90 +90 -0
- offload/_root/data/findings/catalog/cce-reduction-inscan-ice.f90 +66 -0
- offload/_root/data/findings/catalog/cce-reduction-task-link.f90 +76 -0
- offload/_root/data/findings/catalog/cce19-reduction-task-addrspacecast-ice.f90 +77 -0
- offload/_root/data/findings/catalog/cce20-c-defaultmap-private-storage-rejected.c +85 -0
- offload/_root/data/findings/catalog/cce20-map-self-rejected.f90 +64 -0
- offload/_root/data/findings/catalog/cce21-c-declare-target-local-rejected.c +73 -0
- offload/_root/data/findings/catalog/cce21-c-target-loop-ice.c +77 -0
- offload/_root/data/findings/catalog/defaultmap-present-private-array-abort.f90 +73 -0
- offload/_root/data/findings/catalog/nvhpc-acc-associate-illegal-address.f90 +66 -0
- offload/_root/data/findings/catalog/nvhpc-c-function-pointer-kernel-missing.c +68 -0
- offload/_root/data/findings/catalog/nvhpc-c-long-double-kernel-missing.c +64 -0
- offload/_root/data/findings/catalog/nvhpc-c-static-local-kernel-missing.c +73 -0
- offload/_root/data/findings/catalog/nvhpc-c-vla-kernel-missing.c +63 -0
- offload/_root/data/findings/catalog/nvhpc-flang-type-bound-kernel-missing.f90 +86 -0
- offload/_root/data/findings/cce-acc-init-set-runtime-assert.f90 +35 -0
- offload/_root/data/findings/cce-acc-reduction-200-int8-scalars-wrong.f90 +1278 -0
- offload/_root/data/findings/cce-acc-routine-bind-module-ice.f90 +35 -0
- offload/_root/data/findings/cce-acc-self-condition-ignored.f90 +17 -0
- offload/_root/data/findings/cce-c-dist-schedule-segv.c +34 -0
- offload/_root/data/findings/cce-c-map-delete-refcount.c +47 -0
- offload/_root/data/findings/cce-c-map-present-assert.c +45 -0
- offload/_root/data/findings/cce-c-openmp45-device-link.c +34 -0
- offload/_root/data/findings/cce-c-parallel-for-in-target.c +73 -0
- offload/_root/data/findings/cce-defaultmap-tofrom-explicit-map.f90 +92 -0
- offload/_root/data/findings/cce-mapper-next-map-copy-back.f90 +48 -0
- offload/_root/data/findings/cce-trim-merge-output-one-character.f90 +40 -0
- offload/_root/data/findings/cce-uses-allocators-traits-omp50.f90 +28 -0
- offload/_root/data/findings/cce19-acc-if-false-link.f90 +17 -0
- offload/_root/data/findings/cce19-c-reduction-63-scalars-one-wrong.c +235 -0
- offload/_root/data/findings/cce19-target-parallel-guarded-loop.f90 +35 -0
- offload/_root/data/findings/cce19-target-parallel-single-ice.f90 +38 -0
- offload/_root/data/findings/cce21-alloc-2e32-sum-wrong.f90 +68 -0
- offload/_root/data/findings/cce21-defaultmap-aggregate-flag.f90 +52 -0
- offload/_root/data/findings/cce21-in-reduction-assumed-shape-write-lost.f90 +61 -0
- offload/_root/data/findings/cce21-in-reduction-taskwait-link.f90 +59 -0
- offload/_root/data/findings/cce21-linear-modifier-default-none.f90 +59 -0
- offload/_root/data/findings/clang-c-declare-target-to-omp52.c +50 -0
- offload/_root/data/findings/clang-c-linear-directive-name-hang.c +30 -0
- offload/_root/data/findings/clang-c-map-iterator-omp51.c +51 -0
- offload/_root/data/findings/clang-c-shared-declare-target-combined.c +58 -0
- offload/_root/data/findings/dataenv/cce-value-dummy-target-write-visible.f90 +74 -0
- offload/_root/data/findings/defaultmap-none-loop-variable.f90 +69 -0
- offload/_root/data/findings/fortran-loop-bind-thread-in-parallel.f90 +53 -0
- offload/_root/data/findings/fortran-schedule-static-in-target.f90 +55 -0
- offload/_root/data/findings/fresh/cce-common-block-name-in-map-rejected.f90 +47 -0
- offload/_root/data/findings/fresh/cce-if-stop-in-target-ice-one-condition.f90 +38 -0
- offload/_root/data/findings/fresh/cce-if-stop-in-target-ice.f90 +43 -0
- offload/_root/data/findings/fresh/cce-list-directed-print-in-target-copy-crash.f90 +40 -0
- offload/_root/data/findings/fresh/cce19-acc-automatic-array-copyout-copy-crash.f90 +56 -0
- offload/_root/data/findings/fresh/cce21-combined-if-runtime-expr-loop-skipped.f90 +57 -0
- offload/_root/data/findings/fresh/nvhpc-acc-gang-worker-collapse-nested-vector-reduction-lost.f90 +67 -0
- offload/_root/data/findings/fresh/nvhpc-teams-loop-module-allocatable-assign-fort2-crash.f90 +73 -0
- offload/_root/data/findings/fuzz/1131-afar.f90 +48 -0
- offload/_root/data/findings/fuzz/1391-cce20.f90 +40 -0
- offload/_root/data/findings/fuzz/14-cce20.f90 +36 -0
- offload/_root/data/findings/fuzz/1505-cce20.f90 +88 -0
- offload/_root/data/findings/fuzz/1540-afar.f90 +44 -0
- offload/_root/data/findings/fuzz/158-afar.f90 +63 -0
- offload/_root/data/findings/fuzz/16-cce20.f90 +39 -0
- offload/_root/data/findings/fuzz/1644-cce21.f90 +31 -0
- offload/_root/data/findings/fuzz/165-cce19.f90 +52 -0
- offload/_root/data/findings/fuzz/1749-cce20.f90 +34 -0
- offload/_root/data/findings/fuzz/1936-afar.f90 +61 -0
- offload/_root/data/findings/fuzz/1978-cce19.f90 +41 -0
- offload/_root/data/findings/fuzz/2014-cce19.f90 +46 -0
- offload/_root/data/findings/fuzz/2224-cce19.f90 +30 -0
- offload/_root/data/findings/fuzz/2334-cce19.f90 +57 -0
- offload/_root/data/findings/fuzz/536-cce19.f90 +38 -0
- offload/_root/data/findings/fuzz/591-cce19.f90 +54 -0
- offload/_root/data/findings/fuzz/650-afar.f90 +58 -0
- offload/_root/data/findings/fuzz/698-afar.f90 +68 -0
- offload/_root/data/findings/fuzz/700-afar.f90 +46 -0
- offload/_root/data/findings/fuzz/775-cce21.f90 +33 -0
- offload/_root/data/findings/fuzz/87-afar.f90 +47 -0
- offload/_root/data/findings/fuzz/916-afar.f90 +67 -0
- offload/_root/data/findings/fuzz/958-cce20.f90 +44 -0
- offload/_root/data/findings/fuzz/98-cce19.f90 +40 -0
- offload/_root/data/findings/fuzz/README.md +236 -0
- offload/_root/data/findings/fuzz/b1-121-afar.f90 +47 -0
- offload/_root/data/findings/fuzz/b1-183-afar.f90 +55 -0
- offload/_root/data/findings/fuzz/b1-22-cce20.f90 +38 -0
- offload/_root/data/findings/fuzz/b1-231-afar.f90 +56 -0
- offload/_root/data/findings/fuzz/b1-268-afar.f90 +46 -0
- offload/_root/data/findings/fuzz/b2-183-afar.f90 +57 -0
- offload/_root/data/findings/fuzz/b2-209-cce19.f90 +51 -0
- offload/_root/data/findings/fuzz/b2-213-afar.f90 +63 -0
- offload/_root/data/findings/fuzz/b2-52-afar.f90 +56 -0
- offload/_root/data/findings/fuzz/b2-68-afar.f90 +54 -0
- offload/_root/data/findings/fuzz/b2-85-cce20.f90 +55 -0
- offload/_root/data/findings/fuzz/b3-188-cce19.f90 +90 -0
- offload/_root/data/findings/fuzz/b3-190-cce21.f90 +88 -0
- offload/_root/data/findings/fuzz/b3-197-cce19.f90 +77 -0
- offload/_root/data/findings/fuzz/b3-250-cce20.f90 +89 -0
- offload/_root/data/findings/fuzz/b3-278-cce19.f90 +70 -0
- offload/_root/data/findings/fuzz/b3-45-cce21.f90 +83 -0
- offload/_root/data/findings/fuzz/b3-54-afar.f90 +67 -0
- offload/_root/data/findings/fuzz/b3-61-cce20.f90 +100 -0
- offload/_root/data/findings/fuzz/b3-9-afar.f90 +100 -0
- offload/_root/data/findings/fuzz/b3-9-cce21.f90 +103 -0
- offload/_root/data/findings/fuzz/b3-94-afar.f90 +80 -0
- offload/_root/data/findings/fuzz/b4-39-afar.f90 +141 -0
- offload/_root/data/findings/fuzz/b4-86-cce19.f90 +71 -0
- offload/_root/data/findings/fuzz/controls/gcc-complex-pointer-store-control.f90 +28 -0
- offload/_root/data/findings/fuzz/controls/gcc-declare-reduction-module-control.f90 +29 -0
- offload/_root/data/findings/fuzz/controls/gcc-target-simd-map-nontemporal-control.f90 +21 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-allocatable-component-mapped-control.f90 +22 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-allocatable-component-unreferenced-control.f90 +22 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-default-none-removed-control.f90 +18 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-default-shared-control.f90 +18 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-defaultmap-firstprivate-removed-control.f90 +15 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-defaultmap-to-scalar-reduction-mapped-control.f90 +17 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-defaultmap-to-scalar-removed-control.f90 +17 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-defaultmap-tofrom-lastprivate-control.f90 +15 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-depend-explicit-map-control.f90 +22 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-depend-removed-control.f90 +22 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-distribute-end-distribute-control.f90 +16 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-distribute-parallel-num-threads-removed-control.f90 +26 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-distribute-parallel-removed-control.f90 +22 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-distribute-simd-no-end-directive-control.f90 +15 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-explicit-length-character-dummy-control.f90 +18 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-loop-character-array-value-control.f90 +23 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-loop-character-distribute-control.f90 +20 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-map-always-first-control.f90 +15 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-map-always-removed-control.f90 +15 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-num-threads-removed-control.f90 +12 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-target-parallel-firstprivate-dropped-control.f90 +15 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-target-parallel-single-nowait-control.f90 +13 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-target-parallel-split-control.f90 +15 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-target-simd-collapse-split-control.f90 +21 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-target-simd-end-directive-control.f90 +14 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-target-simd-no-collapse-control.f90 +19 -0
- offload/_root/data/findings/fuzz/controls/nvhpc-target-simd-split-no-end-directive-control.f90 +15 -0
- offload/_root/data/findings/fuzz/gcc-declare-reduction-module-not-found.f90 +66 -0
- offload/_root/data/findings/fuzz/gcc-strided-target-update-rejected.f90 +58 -0
- offload/_root/data/findings/fuzz/gcc-target-simd-map-nontemporal-rejected.f90 +54 -0
- offload/_root/data/findings/fuzz/nvhpc-allocatable-component-implicit-map-illegal-address.f90 +84 -0
- offload/_root/data/findings/fuzz/nvhpc-assumed-length-character-dummy-map-ice.f90 +69 -0
- offload/_root/data/findings/fuzz/nvhpc-default-none-reduction-lastprivate-fort1-crash.f90 +70 -0
- offload/_root/data/findings/fuzz/nvhpc-defaultmap-firstprivate-lastprivate-ice.f90 +71 -0
- offload/_root/data/findings/fuzz/nvhpc-defaultmap-to-scalar-reduction-lost.f90 +82 -0
- offload/_root/data/findings/fuzz/nvhpc-depend-implicit-map-illegal-address.f90 +81 -0
- offload/_root/data/findings/fuzz/nvhpc-distribute-parallel-num-threads-writes-lost.f90 +79 -0
- offload/_root/data/findings/fuzz/nvhpc-end-distribute-simd-rejected.f90 +70 -0
- offload/_root/data/findings/fuzz/nvhpc-loop-character-achar-unsupported.f90 +75 -0
- offload/_root/data/findings/fuzz/nvhpc-map-always-after-map-to-not-copied-back.f90 +70 -0
- offload/_root/data/findings/fuzz/nvhpc-num-threads-reduction-identity-lost.f90 +54 -0
- offload/_root/data/findings/fuzz/nvhpc-target-parallel-firstprivate-translate-failure.f90 +66 -0
- offload/_root/data/findings/fuzz/nvhpc-target-parallel-single-hang.f90 +68 -0
- offload/_root/data/findings/fuzz/nvhpc-target-simd-collapse-translate-failure.f90 +73 -0
- offload/_root/data/findings/fuzz/nvhpc-target-simd-no-end-directive-rejected.f90 +68 -0
- offload/_root/data/findings/fuzz/par-s1-2082-gcc_g90.f90 +71 -0
- offload/_root/data/findings/fuzz/s1-2370-cce21.f90 +67 -0
- offload/_root/data/findings/fuzz/s1-2592-cce21.f90 +56 -0
- offload/_root/data/findings/fuzz/s1-3463-cce21.f90 +92 -0
- offload/_root/data/findings/fuzz/s1-4339-afar.f90 +79 -0
- offload/_root/data/findings/fuzz/s1-6085-cce21.f90 +96 -0
- offload/_root/data/findings/fuzz/s1-6760-cce20.f90 +65 -0
- offload/_root/data/findings/fuzz/s1-6888-cce21.f90 +76 -0
- offload/_root/data/findings/fuzz/s1-7882-cce20.f90 +63 -0
- offload/_root/data/findings/fuzz/s1-8634-cce21.f90 +45 -0
- offload/_root/data/findings/fuzz/s1-91-cce21.f90 +92 -0
- offload/_root/data/findings/fuzz/s1-9443-afar.f90 +59 -0
- offload/_root/data/findings/fuzz/s1-9914-cce19.f90 +78 -0
- offload/_root/data/findings/gcc/controls/gcc-acc-c-detach-control.c +34 -0
- offload/_root/data/findings/gcc/controls/gcc-acc-detach-control.f90 +26 -0
- offload/_root/data/findings/gcc/controls/gcc-defaultmap-to-pointer-control.f90 +31 -0
- offload/_root/data/findings/gcc/controls/gcc-target-in-task-control.c +26 -0
- offload/_root/data/findings/gcc/controls/gcc-target-in-task-control.f90 +21 -0
- offload/_root/data/findings/gcc/gcc-acc-bind-device-type-rejected.f90 +71 -0
- offload/_root/data/findings/gcc/gcc-acc-c-bind-device-type-rejected.c +76 -0
- offload/_root/data/findings/gcc/gcc-acc-c-detach-delete-attach-underflow.c +74 -0
- offload/_root/data/findings/gcc/gcc-acc-c-gang-dim-rejected.c +79 -0
- offload/_root/data/findings/gcc/gcc-acc-c-link-in-routine-rejected.c +82 -0
- offload/_root/data/findings/gcc/gcc-acc-detach-delete-attach-underflow.f90 +66 -0
- offload/_root/data/findings/gcc/gcc-acc-gang-dim-collapse-force-rejected.f90 +69 -0
- offload/_root/data/findings/gcc/gcc-acc-init-set-shutdown-rejected.f90 +70 -0
- offload/_root/data/findings/gcc/gcc-acc-link-in-routine-rejected.f90 +82 -0
- offload/_root/data/findings/gcc/gcc-acc-use-device-allocatable-rejected.f90 +88 -0
- offload/_root/data/findings/gcc/gcc-c-motion-mapper-rejected.c +110 -0
- offload/_root/data/findings/gcc/gcc-c-omp60-undocumented-rejected.c +76 -0
- offload/_root/data/findings/gcc/gcc-c-omp60-unimplemented-rejected.c +119 -0
- offload/_root/data/findings/gcc/gcc-c-target-in-task-mandatory-device-not-found.c +87 -0
- offload/_root/data/findings/gcc/gcc-c-uses-allocators-traits-unimplemented.c +85 -0
- offload/_root/data/findings/gcc/gcc-declare-mapper-rejected.f90 +85 -0
- offload/_root/data/findings/gcc/gcc-defaultmap-to-pointer-copy-back.f90 +66 -0
- offload/_root/data/findings/gcc/gcc-loop-bind-default-none-rejected.f90 +93 -0
- offload/_root/data/findings/gcc/gcc-omp60-undocumented-rejected.f90 +72 -0
- offload/_root/data/findings/gcc/gcc-omp60-unimplemented-rejected.f90 +112 -0
- offload/_root/data/findings/gcc/gcc-target-in-task-mandatory-device-not-found.f90 +83 -0
- offload/_root/data/findings/gcc/gcc-uses-allocators-traits-unimplemented.f90 +78 -0
- offload/_root/data/findings/harvest/afar-flang-strided-target-update.f90 +96 -0
- offload/_root/data/findings/harvest/cce-acc-declare-create-module-allocatable-xnack1-fault.f90 +58 -0
- offload/_root/data/findings/harvest/cce-c-implicit-struct-map-partly-present.c +100 -0
- offload/_root/data/findings/harvest/cce-c-strided-target-update.c +74 -0
- offload/_root/data/findings/harvest/cce-ftn-target-parallel-thread-query-ice.f90 +67 -0
- offload/_root/data/findings/harvest/cce-named-constant-array-declare-target-routine-rejected.f90 +69 -0
- offload/_root/data/findings/harvest/cce-use-device-ptr-c-ptr-not-converted.f90 +64 -0
- offload/_root/data/findings/harvest/cce21-declare-target-link-module-variable-write-lost.f90 +63 -0
- offload/_root/data/findings/harvest/cce21-internal-procedure-calls-internal-in-target-fault.f90 +71 -0
- offload/_root/data/findings/harvest/controls/cce-c-implicit-struct-map-partly-present-target-only-control.c +22 -0
- offload/_root/data/findings/harvest/controls/cce-c-implicit-struct-map-partly-present-whole-control.c +23 -0
- offload/_root/data/findings/harvest/controls/gcc-acc-declare-create-allocatable-control.f90 +34 -0
- offload/_root/data/findings/harvest/controls/gcc-c-same-item-two-maps-control.c +17 -0
- offload/_root/data/findings/harvest/controls/gcc-c-target-data-struct-pointer-section-control.c +27 -0
- offload/_root/data/findings/harvest/controls/gcc-c-target-data-two-maps-control.c +20 -0
- offload/_root/data/findings/harvest/controls/gcc-same-item-two-maps-control.f90 +16 -0
- offload/_root/data/findings/harvest/controls/gcc-teams-simd-matmul-allocatable-control.f90 +27 -0
- offload/_root/data/findings/harvest/gcc-acc-declare-create-allocatable-not-mapped.f90 +66 -0
- offload/_root/data/findings/harvest/gcc-c-same-item-two-maps-rejected.c +45 -0
- offload/_root/data/findings/harvest/gcc-c-strided-section-rejected.c +70 -0
- offload/_root/data/findings/harvest/gcc-c-target-data-struct-pointer-section-ice.c +78 -0
- offload/_root/data/findings/harvest/gcc-c-target-data-two-maps-ice.c +49 -0
- offload/_root/data/findings/harvest/gcc-same-item-two-maps-rejected.f90 +46 -0
- offload/_root/data/findings/harvest/gcc-teams-simd-matmul-allocatable-ice.f90 +53 -0
- offload/_root/data/findings/harvest/nvhpc-c-target-data-if-false-use-device-ptr-garbage.c +49 -0
- offload/_root/data/findings/harvest/nvhpc-named-constant-array-declare-target-routine-rejected.f90 +65 -0
- offload/_root/data/findings/harvest/nvhpc-use-device-ptr-c-ptr-not-found.f90 +60 -0
- offload/_root/data/findings/harvest/nvhpc2511-target-nowait-in-parallel-for-ice.c +59 -0
- offload/_root/data/findings/hecbench/controls/f16-ctl-float-array.c +28 -0
- offload/_root/data/findings/hecbench/controls/pc-ctl-builtin-popcount.c +37 -0
- offload/_root/data/findings/hecbench/controls/pc-ctl-shift-sum.c +43 -0
- offload/_root/data/findings/hecbench/gcc-c-float16-array-in-target-lto-ice.c +65 -0
- offload/_root/data/findings/hecbench/gcc-c-swar-popcount-assembler-error.c +80 -0
- offload/_root/data/findings/index.yaml +2453 -0
- offload/_root/data/findings/malloc/afar-device-malloc-in-kernel-corrupts-records.c +371 -0
- offload/_root/data/findings/malloc/controls/afar-first-use-malloc-direct.c +52 -0
- offload/_root/data/findings/malloc/controls/afar-first-use-malloc-fence.c +57 -0
- offload/_root/data/findings/malloc/controls/afar-first-use-malloc-flush.c +57 -0
- offload/_root/data/findings/malloc/controls/afar-first-use-malloc-stack.c +52 -0
- offload/_root/data/findings/multithread-allocatable-section-maps.f90 +91 -0
- offload/_root/data/findings/nested/afar-cce-c-call-result-member-in-target-rejected.c +69 -0
- offload/_root/data/findings/nested/afar-cce-c-update-struct-and-member-rejected.c +92 -0
- offload/_root/data/findings/nested/afar-flang-pointer-root-allocatable-component-enter-data-fault.f90 +121 -0
- offload/_root/data/findings/nested/cce-c-struct-and-nested-pointee-sections-ice.c +79 -0
- offload/_root/data/findings/nested/cce-fortran-nested-allocatable-component-copy-fault.f90 +64 -0
- offload/_root/data/findings/nested/cce-fortran-pointer-to-type-with-allocatable-scalar-component-typed-transfer.f90 +93 -0
- offload/_root/data/findings/nested/cce-fortran-update-to-pointer-root-allocatable-scalar-component-no-accelerator-object.f90 +80 -0
- offload/_root/data/findings/nested/controls/c3-ctl-nested-data.c +27 -0
- offload/_root/data/findings/nested/controls/c5-acc-serial-struct-and-array.c +26 -0
- offload/_root/data/findings/nested/controls/e2-ctl-two-directives.c +42 -0
- offload/_root/data/findings/nested/controls/e3-ctl-attach-clause.c +42 -0
- offload/_root/data/findings/nested/controls/f3-pointer-array-only.c +33 -0
- offload/_root/data/findings/nested/controls/f5-ctl-copyout-exit.c +33 -0
- offload/_root/data/findings/nested/controls/f6-ctl-pointer-to-struct-array.c +28 -0
- offload/_root/data/findings/nested/controls/g2-ctl-allocatable.f90 +34 -0
- offload/_root/data/findings/nested/controls/g2-ctl-entered-to.f90 +34 -0
- offload/_root/data/findings/nested/controls/g3-ctl-from-struct-no-element.c +27 -0
- offload/_root/data/findings/nested/controls/g3-ptrs-two-elements-to.c +27 -0
- offload/_root/data/findings/nested/controls/g3-ptrs-two-elements-tofrom.c +27 -0
- offload/_root/data/findings/nested/controls/g5-ctl-element-pointers-only.f90 +36 -0
- offload/_root/data/findings/nested/controls/g5-ctl-root-pointer-only.f90 +36 -0
- offload/_root/data/findings/nested/controls/gp2-ctl-no-mapper-explicit-maps.c +24 -0
- offload/_root/data/findings/nested/controls/gt2-ctl-no-always.c +26 -0
- offload/_root/data/findings/nested/controls/gt3-ctl-always-on-structure-only.c +26 -0
- offload/_root/data/findings/nested/controls/j1-embedded-struct-pointer-to-struct.c +24 -0
- offload/_root/data/findings/nested/controls/j2-ctl-pointer-instead-of-embedded.c +24 -0
- offload/_root/data/findings/nested/controls/j6-ctl-struct-and-one-pointee-level.c +23 -0
- offload/_root/data/findings/nested/controls/j7-ctl-struct-and-embedded-pointee.c +24 -0
- offload/_root/data/findings/nested/controls/m2-ctl-variable-root.f90 +32 -0
- offload/_root/data/findings/nested/controls/m3-ctl-fixed-array-component.f90 +32 -0
- offload/_root/data/findings/nested/controls/m5-ctl-no-enter-data.f90 +33 -0
- offload/_root/data/findings/nested/controls/n8-ctl-fixed-array-in-component.f90 +33 -0
- offload/_root/data/findings/nested/controls/n9-ctl-allocatable-in-the-variable.f90 +33 -0
- offload/_root/data/findings/nested/controls/ns4-ctl-two-directives-struct-then-pointee.c +27 -0
- offload/_root/data/findings/nested/controls/ns8-ctl-enter-together-exit-split.c +26 -0
- offload/_root/data/findings/nested/controls/nu3-ctl-update-pointee-only.c +28 -0
- offload/_root/data/findings/nested/controls/p2-ctl-pointer-variable.c +27 -0
- offload/_root/data/findings/nested/controls/p3-ctl-direct-member.c +26 -0
- offload/_root/data/findings/nested/controls/q2-ctl-fixed-array.f90 +37 -0
- offload/_root/data/findings/nested/controls/q3-ctl-allocatable-component-of-the-variable.f90 +38 -0
- offload/_root/data/findings/nested/controls/ta2-ctl-no-allocatable-component.f90 +42 -0
- offload/_root/data/findings/nested/controls/ta3-ctl-allocatable-scalar-in-the-variable.f90 +38 -0
- offload/_root/data/findings/nested/controls/ta4-ctl-pointer-component-only.f90 +42 -0
- offload/_root/data/findings/nested/controls/u3-ctl-update-member-only.c +24 -0
- offload/_root/data/findings/nested/controls/u4-ctl-two-updates.c +25 -0
- offload/_root/data/findings/nested/controls/u5-ctl-same-list-in-map.c +25 -0
- offload/_root/data/findings/nested/controls/ua2-ctl-variable-root.f90 +37 -0
- offload/_root/data/findings/nested/controls/ua4-ctl-to-in-place-of-alloc-and-update.f90 +37 -0
- offload/_root/data/findings/nested/controls/v2-ctl-parent-first.c +25 -0
- offload/_root/data/findings/nested/controls/v4-ctl-embedded-member.c +24 -0
- offload/_root/data/findings/nested/gcc-acc-c-exit-data-of-a-pointer-array-element-target-hangs.c +83 -0
- offload/_root/data/findings/nested/gcc-acc-c-parent-and-shared-pointee-one-directive.c +88 -0
- offload/_root/data/findings/nested/gcc-acc-c-struct-and-member-array-one-directive.c +84 -0
- offload/_root/data/findings/nested/gcc-c-always-on-pointer-member-section-ice.c +75 -0
- offload/_root/data/findings/nested/gcc-c-declare-mapper-pointer-member-section-gpu-fault.c +93 -0
- offload/_root/data/findings/nested/gcc-c-from-struct-and-pointee-section-rejected.c +83 -0
- offload/_root/data/findings/nested/gcc-fortran-pointer-component-alloc-bounds-lost.f90 +62 -0
- offload/_root/data/findings/nested/gcc-fortran-root-and-element-pointer-components-ice.f90 +77 -0
- offload/_root/data/findings/nested/nvhpc-c-pointee-before-parent-in-one-map-list-copy-fault.c +55 -0
- offload/_root/data/findings/nested/nvhpc-c-update-from-structure-overwrites-attached-pointer-segv.c +86 -0
- offload/_root/data/findings/nvhpc-acc-atomic-update-sum-fort2-crash.f90 +53 -0
- offload/_root/data/findings/nvhpc-c-acc-atomic-update-sum-ice.c +43 -0
- offload/_root/data/findings/nvhpc-c-dist-schedule-chunk-compile-hang.c +41 -0
- offload/_root/data/findings/nvhpc-c-map-present-ignored.c +42 -0
- offload/_root/data/findings/nvhpc-c-ordered-in-target-nvcpfe-crash.c +92 -0
- offload/_root/data/findings/nvhpc-c-parallel-for-firstprivate-in-target.c +62 -0
- offload/_root/data/findings/nvhpc-c-parallel-if-in-target-nvvm-ice.c +56 -0
- offload/_root/data/findings/nvhpc-defaultmap-firstprivate-explicit-map.f90 +45 -0
- offload/_root/data/findings/nvhpc-defaultmap-from-allocatable-indexing.f90 +60 -0
- offload/_root/data/findings/nvhpc-depend-inoutset-ignored.f90 +64 -0
- offload/_root/data/findings/nvhpc-dist-schedule-chunk-illegal-address.f90 +52 -0
- offload/_root/data/findings/nvhpc-managed-acc-shutdown-host-access.f90 +42 -0
- offload/_root/data/findings/nvhpc-parallel-if-in-target-nvvm-ice.f90 +60 -0
- offload/_root/data/findings/oop/afar-final-dealloc-device-link.f90 +85 -0
- offload/_root/data/findings/oop/afar-pdt-length-parameter-not-implemented.f90 +65 -0
- offload/_root/data/findings/oop/cce-class-is-device-link.f90 +86 -0
- offload/_root/data/findings/oop/cce-copy-alloc-component-section-fault.f90 +73 -0
- offload/_root/data/findings/oop/cce-copy-parent-to-component-tofrom-lost.f90 +65 -0
- offload/_root/data/findings/oop/cce-copy-second-member-section-lost.f90 +65 -0
- offload/_root/data/findings/oop/cce-element-component-map-lost.f90 +64 -0
- offload/_root/data/findings/oop/cce-final-dealloc-device-abort.f90 +85 -0
- offload/_root/data/findings/oop/cce-pdt-default-mapper-rejected.f90 +71 -0
- offload/_root/data/findings/oop/cce-polymorphic-dispatch-device-link.f90 +100 -0
- offload/_root/data/findings/oop/cce-section-of-element-component-overlap.f90 +76 -0
- offload/_root/data/findings/oop/cce-select-type-guard-not-taken.f90 +91 -0
- offload/_root/data/findings/oop/cce-udr-derived-type-unsupported.f90 +69 -0
- offload/_root/data/findings/oop/cce21-element-component-map-lost.f90 +62 -0
- offload/_root/data/findings/oop/controls/alloccomp-comp-only.f90 +44 -0
- offload/_root/data/findings/oop/controls/alloccomp-whole-explicit-component.f90 +50 -0
- offload/_root/data/findings/oop/controls/alloccomp-whole.f90 +49 -0
- offload/_root/data/findings/oop/controls/elemsec-element.f90 +47 -0
- offload/_root/data/findings/oop/controls/final-local.f90 +64 -0
- offload/_root/data/findings/oop/controls/host-class-star-select-type.f90 +58 -0
- offload/_root/data/findings/oop/controls/host-firstprivate-defined-assignment.f90 +54 -0
- offload/_root/data/findings/oop/controls/host-lastprivate-defined-assignment.f90 +58 -0
- offload/_root/data/findings/oop/controls/host-private-finalization.f90 +51 -0
- offload/_root/data/findings/oop/controls/host-select-type.f90 +65 -0
- offload/_root/data/findings/oop/controls/parent-and-comp-component-only.f90 +45 -0
- offload/_root/data/findings/oop/controls/pdt-kind.f90 +46 -0
- offload/_root/data/findings/oop/controls/pdt-len-host.f90 +43 -0
- offload/_root/data/findings/oop/controls/pdt-len-unparameterized.f90 +46 -0
- offload/_root/data/findings/oop/controls/poly-dispatch-static.f90 +75 -0
- offload/_root/data/findings/oop/controls/section-alloc-whole-component.f90 +49 -0
- offload/_root/data/findings/oop/controls/section-element-whole-array.f90 +50 -0
- offload/_root/data/findings/oop/controls/section-element-whole-component.f90 +50 -0
- offload/_root/data/findings/oop/controls/section-fixed.f90 +43 -0
- offload/_root/data/findings/oop/controls/tbp-override.f90 +64 -0
- offload/_root/data/findings/oop/gcc-acc-parent-and-member-data-rejected.f90 +63 -0
- offload/_root/data/findings/oop/gcc-pdt-length-parameter-abort.f90 +68 -0
- offload/_root/data/findings/oop/gcc-polymorphic-dispatch-abort.f90 +97 -0
- offload/_root/data/findings/oop/gcc-vtab-not-marked-for-offload.f90 +94 -0
- offload/_root/data/findings/oop/nvhpc-copy-alloc-component-illegal-address.f90 +76 -0
- offload/_root/data/findings/oop/nvhpc-copy-pdt-length-parameter-illegal-address.f90 +69 -0
- offload/_root/data/findings/oop/nvhpc-named-mapper-rejected.f90 +65 -0
- offload/_root/data/findings/oop/nvhpc-polymorphic-dispatch-translate-failure.f90 +90 -0
- offload/_root/data/findings/oop/nvhpc-polymorphism-runtime-unsupported.f90 +94 -0
- offload/_root/data/findings/oop/nvhpc-type-bound-call-rejected.f90 +89 -0
- offload/_root/data/findings/oop/nvhpc-udr-derived-type-rejected.f90 +67 -0
- offload/_root/data/findings/reviews/afar-c-error-directive-in-target-link.json +217 -0
- offload/_root/data/findings/reviews/afar-c-lastprivate-distribute-parallel-for-small-type.json +113 -0
- offload/_root/data/findings/reviews/afar-c-teams-distribute-reduction-first-team.json +130 -0
- offload/_root/data/findings/reviews/afar-c-update-iterator-copy-mode.json +113 -0
- offload/_root/data/findings/reviews/afar-cce19-character-defaultmap.json +292 -0
- offload/_root/data/findings/reviews/afar-clang-requires-device-safesync-hang.json +191 -0
- offload/_root/data/findings/reviews/afar-flang-firstprivate-map-two-targets.json +130 -0
- offload/_root/data/findings/reviews/afar-flang-loop-bind-teams-reduction.json +126 -0
- offload/_root/data/findings/reviews/afar-flang-task-reduction-max.json +113 -0
- offload/_root/data/findings/reviews/afar-flang-thread-limit-target-parallel-do.json +113 -0
- offload/_root/data/findings/reviews/afar-loop-bind-thread-in-teams.json +191 -0
- offload/_root/data/findings/reviews/afar-nontemporal-assumed-shape-ice.json +113 -0
- offload/_root/data/findings/reviews/afar-udr-derived-type-link.json +113 -0
- offload/_root/data/findings/reviews/afar-xnack1-atomic-min-nested-parallel.json +113 -0
- offload/_root/data/findings/reviews/afar-xnack1-target-is-present.json +113 -0
- offload/_root/data/findings/reviews/apps--afar-cce-teams-private-array-nested-parallel-wrong.json +113 -0
- offload/_root/data/findings/reviews/apps--cce20-device-link-infer-address-spaces-crash.json +113 -0
- offload/_root/data/findings/reviews/apps--cce21-device-link-agpr-copy-mfma-assert.json +113 -0
- offload/_root/data/findings/reviews/apps--cce21-private-array-loaded-subscript-wrong.json +113 -0
- offload/_root/data/findings/reviews/apps--gcc-acc-c-tile-partial-tiles-wrong.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-c-ordered-doacross-link.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-c-reduction-task-link.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-absent-optional-target-crash.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-critical-target-parallel-wrong.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-dist-schedule-chunk.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-linear-parallel-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-named-critical-link.json +126 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-ordered-wrong.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-reduction-minus-rejected.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-sections-in-target-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--afar-flang-workdistribute-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--c-allocate-const-mem-firstprivate-wrong.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-acc-character-dummy-routine-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-acc-loop-seq-in-routine-wrong.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-allocators-stack-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-c-allocate-align-link.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-c-allocate-allocator-modifier-rejected.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-c-dist-schedule-chunk.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-c-f-pointer-device-link.json +130 -0
- offload/_root/data/findings/reviews/catalog--cce-c-long-double-ice.json +217 -0
- offload/_root/data/findings/reviews/catalog--cce-c-map-iterator-ice.json +217 -0
- offload/_root/data/findings/reviews/catalog--cce-c-recursive-function-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-c-sections-in-target-wrong.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-flang-allocate-in-target-crash.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-flang-lastprivate-parallel-in-seq-loop-wrong.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-flang-stop-in-target-crash.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-iterator-link.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-linear-lastprivate-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-reduction-inscan-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce-reduction-task-link.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce19-reduction-task-addrspacecast-ice.json +113 -0
- offload/_root/data/findings/reviews/catalog--cce20-c-defaultmap-private-storage-rejected.json +217 -0
- offload/_root/data/findings/reviews/catalog--cce20-map-self-rejected.json +204 -0
- offload/_root/data/findings/reviews/catalog--cce21-c-target-loop-ice.json +126 -0
- offload/_root/data/findings/reviews/catalog--defaultmap-present-private-array-abort.json +236 -0
- offload/_root/data/findings/reviews/catalog--nvhpc-acc-associate-illegal-address.json +113 -0
- offload/_root/data/findings/reviews/catalog--nvhpc-c-function-pointer-kernel-missing.json +268 -0
- offload/_root/data/findings/reviews/cce-acc-init-set-runtime-assert.json +113 -0
- offload/_root/data/findings/reviews/cce-acc-reduction-200-int8-scalars-wrong.json +113 -0
- offload/_root/data/findings/reviews/cce-acc-routine-bind-module-ice.json +113 -0
- offload/_root/data/findings/reviews/cce-c-dist-schedule-segv.json +113 -0
- offload/_root/data/findings/reviews/cce-c-map-delete-refcount.json +149 -0
- offload/_root/data/findings/reviews/cce-c-map-present-assert.json +126 -0
- offload/_root/data/findings/reviews/cce-c-openmp45-device-link.json +113 -0
- offload/_root/data/findings/reviews/cce-c-parallel-for-in-target.json +141 -0
- offload/_root/data/findings/reviews/cce-mapper-next-map-copy-back.json +208 -0
- offload/_root/data/findings/reviews/cce-uses-allocators-traits-omp50.json +191 -0
- offload/_root/data/findings/reviews/cce19-c-reduction-63-scalars-one-wrong.json +113 -0
- offload/_root/data/findings/reviews/cce19-target-parallel-guarded-loop.json +113 -0
- offload/_root/data/findings/reviews/cce19-target-parallel-single-ice.json +113 -0
- offload/_root/data/findings/reviews/cce21-alloc-2e32-sum-wrong.json +113 -0
- offload/_root/data/findings/reviews/cce21-defaultmap-aggregate-flag.json +210 -0
- offload/_root/data/findings/reviews/cce21-in-reduction-assumed-shape-write-lost.json +113 -0
- offload/_root/data/findings/reviews/cce21-in-reduction-taskwait-link.json +113 -0
- offload/_root/data/findings/reviews/clang-c-declare-target-to-omp52.json +113 -0
- offload/_root/data/findings/reviews/clang-c-linear-directive-name-hang.json +113 -0
- offload/_root/data/findings/reviews/clang-c-shared-declare-target-combined.json +132 -0
- offload/_root/data/findings/reviews/dataenv--cce-value-dummy-target-write-visible.json +113 -0
- offload/_root/data/findings/reviews/defaultmap-none-loop-variable.json +113 -0
- offload/_root/data/findings/reviews/fortran-schedule-static-in-target.json +113 -0
- offload/_root/data/findings/reviews/fresh--cce-common-block-name-in-map-rejected.json +113 -0
- offload/_root/data/findings/reviews/fresh--cce-list-directed-print-in-target-copy-crash.json +217 -0
- offload/_root/data/findings/reviews/fresh--cce19-acc-automatic-array-copyout-copy-crash.json +113 -0
- offload/_root/data/findings/reviews/fresh--cce21-combined-if-runtime-expr-loop-skipped.json +113 -0
- offload/_root/data/findings/reviews/fresh--nvhpc-acc-gang-worker-collapse-nested-vector-reduction-lost.json +113 -0
- offload/_root/data/findings/reviews/fresh--nvhpc-teams-loop-module-allocatable-assign-fort2-crash.json +113 -0
- offload/_root/data/findings/reviews/fuzz--1505-cce20.json +113 -0
- offload/_root/data/findings/reviews/fuzz--1540-afar.json +113 -0
- offload/_root/data/findings/reviews/fuzz--1978-cce19.json +130 -0
- offload/_root/data/findings/reviews/fuzz--2334-cce19.json +113 -0
- offload/_root/data/findings/reviews/fuzz--591-cce19.json +147 -0
- offload/_root/data/findings/reviews/fuzz--650-afar.json +113 -0
- offload/_root/data/findings/reviews/fuzz--916-afar.json +130 -0
- offload/_root/data/findings/reviews/fuzz--98-cce19.json +113 -0
- offload/_root/data/findings/reviews/fuzz--b1-121-afar.json +160 -0
- offload/_root/data/findings/reviews/fuzz--b2-209-cce19.json +141 -0
- offload/_root/data/findings/reviews/fuzz--b2-68-afar.json +113 -0
- offload/_root/data/findings/reviews/fuzz--b2-85-cce20.json +217 -0
- offload/_root/data/findings/reviews/fuzz--b3-188-cce19.json +113 -0
- offload/_root/data/findings/reviews/fuzz--b3-278-cce19.json +212 -0
- offload/_root/data/findings/reviews/fuzz--b3-54-afar.json +113 -0
- offload/_root/data/findings/reviews/fuzz--b3-61-cce20.json +191 -0
- offload/_root/data/findings/reviews/fuzz--b4-86-cce19.json +113 -0
- offload/_root/data/findings/reviews/fuzz--gcc-declare-reduction-module-not-found.json +113 -0
- offload/_root/data/findings/reviews/fuzz--gcc-target-simd-map-nontemporal-rejected.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-allocatable-component-implicit-map-illegal-address.json +141 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-assumed-length-character-dummy-map-ice.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-default-none-reduction-lastprivate-fort1-crash.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-defaultmap-firstprivate-lastprivate-ice.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-defaultmap-to-scalar-reduction-lost.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-depend-implicit-map-illegal-address.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-distribute-parallel-num-threads-writes-lost.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-end-distribute-simd-rejected.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-loop-character-achar-unsupported.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-map-always-after-map-to-not-copied-back.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-num-threads-reduction-identity-lost.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-target-parallel-firstprivate-translate-failure.json +191 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-target-parallel-single-hang.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-target-simd-collapse-translate-failure.json +113 -0
- offload/_root/data/findings/reviews/fuzz--nvhpc-target-simd-no-end-directive-rejected.json +113 -0
- offload/_root/data/findings/reviews/fuzz--par-s1-2082-gcc_g90.json +126 -0
- offload/_root/data/findings/reviews/fuzz--s1-2370-cce21.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-2592-cce21.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-3463-cce21.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-6760-cce20.json +130 -0
- offload/_root/data/findings/reviews/fuzz--s1-6888-cce21.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-7882-cce20.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-8634-cce21.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-91-cce21.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-9443-afar.json +113 -0
- offload/_root/data/findings/reviews/fuzz--s1-9914-cce19.json +141 -0
- offload/_root/data/findings/reviews/gcc--gcc-acc-bind-device-type-rejected.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-acc-detach-delete-attach-underflow.json +314 -0
- offload/_root/data/findings/reviews/gcc--gcc-acc-gang-dim-collapse-force-rejected.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-acc-init-set-shutdown-rejected.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-acc-link-in-routine-rejected.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-acc-use-device-allocatable-rejected.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-c-motion-mapper-rejected.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-c-omp60-undocumented-rejected.json +217 -0
- offload/_root/data/findings/reviews/gcc--gcc-c-omp60-unimplemented-rejected.json +236 -0
- offload/_root/data/findings/reviews/gcc--gcc-c-target-in-task-mandatory-device-not-found.json +236 -0
- offload/_root/data/findings/reviews/gcc--gcc-c-uses-allocators-traits-unimplemented.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-declare-mapper-rejected.json +113 -0
- offload/_root/data/findings/reviews/gcc--gcc-defaultmap-to-pointer-copy-back.json +217 -0
- offload/_root/data/findings/reviews/gcc--gcc-loop-bind-default-none-rejected.json +113 -0
- offload/_root/data/findings/reviews/harvest--afar-flang-strided-target-update.json +141 -0
- offload/_root/data/findings/reviews/harvest--cce-acc-declare-create-module-allocatable-xnack1-fault.json +113 -0
- offload/_root/data/findings/reviews/harvest--cce-c-implicit-struct-map-partly-present.json +217 -0
- offload/_root/data/findings/reviews/harvest--cce-c-strided-target-update.json +141 -0
- offload/_root/data/findings/reviews/harvest--cce-ftn-target-parallel-thread-query-ice.json +130 -0
- offload/_root/data/findings/reviews/harvest--cce-named-constant-array-declare-target-routine-rejected.json +113 -0
- offload/_root/data/findings/reviews/harvest--cce-use-device-ptr-c-ptr-not-converted.json +113 -0
- offload/_root/data/findings/reviews/harvest--cce21-declare-target-link-module-variable-write-lost.json +113 -0
- offload/_root/data/findings/reviews/harvest--cce21-internal-procedure-calls-internal-in-target-fault.json +158 -0
- offload/_root/data/findings/reviews/harvest--gcc-acc-declare-create-allocatable-not-mapped.json +204 -0
- offload/_root/data/findings/reviews/harvest--gcc-c-same-item-two-maps-rejected.json +143 -0
- offload/_root/data/findings/reviews/harvest--gcc-c-strided-section-rejected.json +164 -0
- offload/_root/data/findings/reviews/harvest--gcc-c-target-data-struct-pointer-section-ice.json +113 -0
- offload/_root/data/findings/reviews/harvest--gcc-c-target-data-two-maps-ice.json +113 -0
- offload/_root/data/findings/reviews/harvest--gcc-teams-simd-matmul-allocatable-ice.json +113 -0
- offload/_root/data/findings/reviews/harvest--nvhpc-c-target-data-if-false-use-device-ptr-garbage.json +113 -0
- offload/_root/data/findings/reviews/harvest--nvhpc-named-constant-array-declare-target-routine-rejected.json +126 -0
- offload/_root/data/findings/reviews/harvest--nvhpc-use-device-ptr-c-ptr-not-found.json +113 -0
- offload/_root/data/findings/reviews/harvest--nvhpc2511-target-nowait-in-parallel-for-ice.json +130 -0
- offload/_root/data/findings/reviews/hecbench--gcc-c-float16-array-in-target-lto-ice.json +217 -0
- offload/_root/data/findings/reviews/hecbench--gcc-c-swar-popcount-assembler-error.json +126 -0
- offload/_root/data/findings/reviews/malloc--afar-device-malloc-in-kernel-corrupts-records.json +270 -0
- offload/_root/data/findings/reviews/multithread-allocatable-section-maps.json +191 -0
- offload/_root/data/findings/reviews/nested--afar-cce-c-call-result-member-in-target-rejected.json +113 -0
- offload/_root/data/findings/reviews/nested--afar-cce-c-update-struct-and-member-rejected.json +126 -0
- offload/_root/data/findings/reviews/nested--afar-flang-pointer-root-allocatable-component-enter-data-fault.json +191 -0
- offload/_root/data/findings/reviews/nested--cce-c-struct-and-nested-pointee-sections-ice.json +113 -0
- offload/_root/data/findings/reviews/nested--cce-fortran-nested-allocatable-component-copy-fault.json +214 -0
- offload/_root/data/findings/reviews/nested--cce-fortran-pointer-to-type-with-allocatable-scalar-component-typed-transfer.json +191 -0
- offload/_root/data/findings/reviews/nested--cce-fortran-update-to-pointer-root-allocatable-scalar-component-no-accelerator-object.json +297 -0
- offload/_root/data/findings/reviews/nested--gcc-acc-c-exit-data-of-a-pointer-array-element-target-hangs.json +204 -0
- offload/_root/data/findings/reviews/nested--gcc-acc-c-parent-and-shared-pointee-one-directive.json +130 -0
- offload/_root/data/findings/reviews/nested--gcc-acc-c-struct-and-member-array-one-directive.json +141 -0
- offload/_root/data/findings/reviews/nested--gcc-c-always-on-pointer-member-section-ice.json +113 -0
- offload/_root/data/findings/reviews/nested--gcc-c-declare-mapper-pointer-member-section-gpu-fault.json +113 -0
- offload/_root/data/findings/reviews/nested--gcc-c-from-struct-and-pointee-section-rejected.json +113 -0
- offload/_root/data/findings/reviews/nested--gcc-fortran-pointer-component-alloc-bounds-lost.json +217 -0
- offload/_root/data/findings/reviews/nested--gcc-fortran-root-and-element-pointer-components-ice.json +217 -0
- offload/_root/data/findings/reviews/nested--nvhpc-c-pointee-before-parent-in-one-map-list-copy-fault.json +204 -0
- offload/_root/data/findings/reviews/nested--nvhpc-c-update-from-structure-overwrites-attached-pointer-segv.json +191 -0
- offload/_root/data/findings/reviews/nvhpc-c-acc-atomic-update-sum-ice.json +277 -0
- offload/_root/data/findings/reviews/nvhpc-c-dist-schedule-chunk-compile-hang.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-c-map-present-ignored.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-c-ordered-in-target-nvcpfe-crash.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-c-parallel-for-firstprivate-in-target.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-defaultmap-firstprivate-explicit-map.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-defaultmap-from-allocatable-indexing.json +132 -0
- offload/_root/data/findings/reviews/nvhpc-depend-inoutset-ignored.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-dist-schedule-chunk-illegal-address.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-managed-acc-shutdown-host-access.json +113 -0
- offload/_root/data/findings/reviews/nvhpc-parallel-if-in-target-nvvm-ice.json +113 -0
- offload/_root/data/findings/reviews/oop--afar-final-dealloc-device-link.json +132 -0
- offload/_root/data/findings/reviews/oop--afar-pdt-length-parameter-not-implemented.json +113 -0
- offload/_root/data/findings/reviews/oop--cce-class-is-device-link.json +130 -0
- offload/_root/data/findings/reviews/oop--cce-copy-alloc-component-section-fault.json +217 -0
- offload/_root/data/findings/reviews/oop--cce-copy-parent-to-component-tofrom-lost.json +217 -0
- offload/_root/data/findings/reviews/oop--cce-copy-second-member-section-lost.json +113 -0
- offload/_root/data/findings/reviews/oop--cce-element-component-map-lost.json +113 -0
- offload/_root/data/findings/reviews/oop--cce-final-dealloc-device-abort.json +208 -0
- offload/_root/data/findings/reviews/oop--cce-pdt-default-mapper-rejected.json +191 -0
- offload/_root/data/findings/reviews/oop--cce-polymorphic-dispatch-device-link.json +247 -0
- offload/_root/data/findings/reviews/oop--cce-section-of-element-component-overlap.json +113 -0
- offload/_root/data/findings/reviews/oop--cce-select-type-guard-not-taken.json +191 -0
- offload/_root/data/findings/reviews/oop--cce-udr-derived-type-unsupported.json +132 -0
- offload/_root/data/findings/reviews/oop--gcc-acc-parent-and-member-data-rejected.json +141 -0
- offload/_root/data/findings/reviews/oop--gcc-pdt-length-parameter-abort.json +141 -0
- offload/_root/data/findings/reviews/oop--gcc-polymorphic-dispatch-abort.json +217 -0
- offload/_root/data/findings/reviews/oop--gcc-vtab-not-marked-for-offload.json +113 -0
- offload/_root/data/findings/reviews/oop--nvhpc-copy-alloc-component-illegal-address.json +113 -0
- offload/_root/data/findings/reviews/oop--nvhpc-copy-pdt-length-parameter-illegal-address.json +236 -0
- offload/_root/data/findings/reviews/oop--nvhpc-named-mapper-rejected.json +113 -0
- offload/_root/data/findings/reviews/oop--nvhpc-polymorphic-dispatch-translate-failure.json +223 -0
- offload/_root/data/findings/reviews/oop--nvhpc-polymorphism-runtime-unsupported.json +126 -0
- offload/_root/data/findings/reviews/oop--nvhpc-type-bound-call-rejected.json +113 -0
- offload/_root/data/findings/reviews/oop--nvhpc-udr-derived-type-rejected.json +113 -0
- offload/_root/data/findings/reviews/stress--afar-c-lastprivate-combined-target-not-mapped.json +113 -0
- offload/_root/data/findings/reviews/stress--afar-target-scalar-implicit-firstprivate.json +175 -0
- offload/_root/data/findings/reviews/stress--cce-acc-declare-create-scalar-serial-firstprivate.json +113 -0
- offload/_root/data/findings/reviews/stress--cce-c-distribute-lastprivate-lost.json +113 -0
- offload/_root/data/findings/reviews/stress--cce-c-flto-offload-dropped.json +204 -0
- offload/_root/data/findings/reviews/stress--cce-ftn-cif-record-split-abort.json +113 -0
- offload/_root/data/findings/reviews/stress--cce-lastprivate-num-threads-collapse-simd.json +113 -0
- offload/_root/data/findings/reviews/stress--cce-teams-reduction-many-teams-wrap.json +113 -0
- offload/_root/data/findings/reviews/stress--cce21-declare-target-scalar-map-write-lost.json +113 -0
- offload/_root/data/findings/reviews/stress--gcc-declare-target-allocatable-component-ice.json +191 -0
- offload/_root/data/findings/reviews/stress--nvhpc-acc-derived-type-component-not-copied.json +126 -0
- offload/_root/data/findings/reviews/stress--nvhpc-c-lastprivate-teams-distribute-parallel-for-lost.json +113 -0
- offload/_root/data/findings/reviews/stress--nvhpc-declare-target-scalar-write-lost.json +113 -0
- offload/_root/data/findings/reviews/stress--nvhpc-lastprivate-combined-target-not-mapped.json +113 -0
- offload/_root/data/findings/reviews/stress--nvhpc-target-scalar-implicit-firstprivate.json +130 -0
- offload/_root/data/findings/reviews/target-update-sections-in-parallel.json +113 -0
- offload/_root/data/findings/stress/afar-c-lastprivate-combined-target-not-mapped.c +72 -0
- offload/_root/data/findings/stress/afar-target-scalar-implicit-firstprivate.f90 +47 -0
- offload/_root/data/findings/stress/cce-acc-declare-create-scalar-serial-firstprivate.f90 +43 -0
- offload/_root/data/findings/stress/cce-c-distribute-lastprivate-lost.c +52 -0
- offload/_root/data/findings/stress/cce-c-flto-offload-dropped.c +73 -0
- offload/_root/data/findings/stress/cce-ftn-cif-record-split-abort.f90 +109 -0
- offload/_root/data/findings/stress/cce-lastprivate-num-threads-collapse-simd.f90 +66 -0
- offload/_root/data/findings/stress/cce-teams-reduction-many-teams-wrap.f90 +55 -0
- offload/_root/data/findings/stress/cce21-declare-target-scalar-map-write-lost.f90 +58 -0
- offload/_root/data/findings/stress/controls/gcc-declare-target-allocatable-component-control.f90 +29 -0
- offload/_root/data/findings/stress/gcc-declare-target-allocatable-component-ice.f90 +61 -0
- offload/_root/data/findings/stress/nvhpc-acc-derived-type-component-not-copied.f90 +33 -0
- offload/_root/data/findings/stress/nvhpc-c-lastprivate-teams-distribute-parallel-for-lost.c +62 -0
- offload/_root/data/findings/stress/nvhpc-declare-target-scalar-write-lost.f90 +43 -0
- offload/_root/data/findings/stress/nvhpc-lastprivate-combined-target-not-mapped.f90 +60 -0
- offload/_root/data/findings/stress/nvhpc-target-scalar-implicit-firstprivate.f90 +41 -0
- offload/_root/data/findings/target-update-sections-in-parallel.f90 +53 -0
- offload/_root/data/issues.json +1 -0
- offload/_root/data/search.json +1 -0
- offload/_root/data/vendor/checks/build.py +288 -0
- offload/_version.py +24 -0
- offload/canuse.py +88 -0
- offload/cli.py +52 -0
- offload/data.py +85 -0
- offload/engine/__init__.py +0 -0
- offload/engine/acc_c_gen.py +415 -0
- offload/engine/acc_gen.py +1104 -0
- offload/engine/acc_rules.py +656 -0
- offload/engine/apps.py +804 -0
- offload/engine/baseline.py +324 -0
- offload/engine/c_gen.py +883 -0
- offload/engine/c_program.py +913 -0
- offload/engine/c_rules.py +503 -0
- offload/engine/campaign.py +1180 -0
- offload/engine/campaigns/__init__.py +2 -0
- offload/engine/campaigns/hecbench.py +153 -0
- offload/engine/campaigns/nested.py +76 -0
- offload/engine/campaigns/oop.py +61 -0
- offload/engine/canary.py +275 -0
- offload/engine/catalog.py +860 -0
- offload/engine/citations.py +532 -0
- offload/engine/clang_oracle.py +208 -0
- offload/engine/combos.py +234 -0
- offload/engine/confirm/__init__.py +2 -0
- offload/engine/confirm/backlog.py +159 -0
- offload/engine/confirm/claims.py +423 -0
- offload/engine/confirm/collectors.py +665 -0
- offload/engine/confirm/decisions.py +202 -0
- offload/engine/confirm/draft.py +195 -0
- offload/engine/confirm/engine.py +157 -0
- offload/engine/confirm/execute.py +382 -0
- offload/engine/confirm/facts.py +467 -0
- offload/engine/confirm/findings.py +617 -0
- offload/engine/confirm/forms.py +145 -0
- offload/engine/confirm/ingest.py +372 -0
- offload/engine/confirm/jobs.py +215 -0
- offload/engine/confirm/legality.py +323 -0
- offload/engine/confirm/machines.py +254 -0
- offload/engine/confirm/minimize.py +268 -0
- offload/engine/confirm/model.py +249 -0
- offload/engine/confirm/ports.py +107 -0
- offload/engine/confirm/programs.py +222 -0
- offload/engine/confirm/registry.py +151 -0
- offload/engine/confirm/regress.py +278 -0
- offload/engine/confirm/rules.py +565 -0
- offload/engine/confirm/store.py +63 -0
- offload/engine/confirm/triage.py +838 -0
- offload/engine/confirm/validate.py +607 -0
- offload/engine/confirm/witness.py +355 -0
- offload/engine/corpus_check.py +388 -0
- offload/engine/coverage.py +318 -0
- offload/engine/dataenv_gen.py +1318 -0
- offload/engine/dataenv_rules.py +278 -0
- offload/engine/devtemps.py +146 -0
- offload/engine/expected.py +2559 -0
- offload/engine/f2c.py +1783 -0
- offload/engine/finding_claims.py +330 -0
- offload/engine/finding_header.py +229 -0
- offload/engine/finding_rows.py +382 -0
- offload/engine/flang_oracle.py +299 -0
- offload/engine/fsource.py +620 -0
- offload/engine/fuzz.py +2455 -0
- offload/engine/fuzz_base.py +2016 -0
- offload/engine/fuzz_campaign.py +592 -0
- offload/engine/fuzz_exec.py +798 -0
- offload/engine/fuzz_min.py +1049 -0
- offload/engine/fuzz_profile.py +340 -0
- offload/engine/fuzz_report.py +1270 -0
- offload/engine/fuzz_steer.py +181 -0
- offload/engine/gate.py +1013 -0
- offload/engine/gate_report.py +711 -0
- offload/engine/gate_run.py +118 -0
- offload/engine/gate_stored.py +466 -0
- offload/engine/gen.py +1114 -0
- offload/engine/gen_templates.py +2583 -0
- offload/engine/grammar.py +695 -0
- offload/engine/harness.py +1472 -0
- offload/engine/harvest/__init__.py +3 -0
- offload/engine/harvest/c_runtime.py +465 -0
- offload/engine/harvest/checks.py +534 -0
- offload/engine/harvest/convert.py +784 -0
- offload/engine/harvest/f_runtime.py +668 -0
- offload/engine/harvest/filters.py +338 -0
- offload/engine/harvest/history.py +122 -0
- offload/engine/harvest/inventory.py +399 -0
- offload/engine/harvest2/__init__.py +5 -0
- offload/engine/harvest2/aomp.py +119 -0
- offload/engine/harvest2/examples.py +116 -0
- offload/engine/harvest2/gomp.py +679 -0
- offload/engine/harvest2/hand.py +150 -0
- offload/engine/harvest2/split.py +78 -0
- offload/engine/harvest_known/__init__.py +2 -0
- offload/engine/harvest_known/apps.py +65 -0
- offload/engine/harvest_known/cases.py +128 -0
- offload/engine/harvest_known/centres.py +184 -0
- offload/engine/harvest_known/forum.py +180 -0
- offload/engine/harvest_known/relnotes.py +42 -0
- offload/engine/harvest_known/textscan.py +107 -0
- offload/engine/hdrwrap.py +42 -0
- offload/engine/hecbench.py +568 -0
- offload/engine/hecbench_report.py +265 -0
- offload/engine/hecbench_run.py +483 -0
- offload/engine/idioms.py +1427 -0
- offload/engine/kbody_cites.py +81 -0
- offload/engine/kbody_emit.py +949 -0
- offload/engine/kbody_gen.py +795 -0
- offload/engine/legality_review.py +236 -0
- offload/engine/localcfg.py +58 -0
- offload/engine/malloc_dd.py +267 -0
- offload/engine/mutate.py +1933 -0
- offload/engine/nested_cites.py +196 -0
- offload/engine/nested_emit.py +789 -0
- offload/engine/nested_gen.py +1721 -0
- offload/engine/offload_scope.py +197 -0
- offload/engine/ompvv.py +624 -0
- offload/engine/oop_gen.py +2249 -0
- offload/engine/prerun.py +1435 -0
- offload/engine/program_source.py +739 -0
- offload/engine/provenance.py +103 -0
- offload/engine/reduce.py +2098 -0
- offload/engine/report.py +3374 -0
- offload/engine/root.py +33 -0
- offload/engine/rules.py +4256 -0
- offload/engine/run_matrix.py +325 -0
- offload/engine/site/__init__.py +1 -0
- offload/engine/site/columns.py +53 -0
- offload/engine/site/data.py +648 -0
- offload/engine/site/header.py +228 -0
- offload/engine/site/inputs.py +115 -0
- offload/engine/site/matrix.py +434 -0
- offload/engine/site/scrub.py +294 -0
- offload/engine/skeleton.py +121 -0
- offload/engine/spec_text.py +242 -0
- offload/engine/stress.py +4122 -0
- offload/engine/stress_c.py +1000 -0
- offload/engine/stress_exec.py +805 -0
- offload/engine/stress_min.py +248 -0
- offload/engine/stress_report.py +552 -0
- offload/engine/textclean.py +97 -0
- offload/engine/toolchains.py +1070 -0
- offload/engine/transforms.py +511 -0
- offload/engine/usage.py +1252 -0
- offload/engine/widen.py +673 -0
- offload/engine/widen_progs.py +2396 -0
- offload/issues.py +146 -0
- offtarget-0.1.0.dist-info/METADATA +86 -0
- offtarget-0.1.0.dist-info/RECORD +886 -0
- offtarget-0.1.0.dist-info/WHEEL +4 -0
- offtarget-0.1.0.dist-info/entry_points.txt +2 -0
- offtarget-0.1.0.dist-info/licenses/LICENSE +21 -0
- offtarget-0.1.0.dist-info/licenses/THIRD_PARTY_NOTICES.md +20 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# Hand derivations of catalog programs' expected results.
|
|
2
|
+
#
|
|
3
|
+
# Each entry derives, from the spec text alone (section and page of the
|
|
4
|
+
# program's own version), the values a conforming execution of the program
|
|
5
|
+
# produces and shows that its check accepts them (value check=pass) or that
|
|
6
|
+
# the run must end in runtime error termination (value error_termination).
|
|
7
|
+
# offload.engine.gen writes the text into the program header as
|
|
8
|
+
# `! derivation (<value>): <text>` (legal programs only; the header is not
|
|
9
|
+
# part of the audited body, offload.engine.mutate.body_sha); tools/derive/expected.py
|
|
10
|
+
# reads it as the `derivation` source (offload.engine.expected.
|
|
11
|
+
# derivation_evidence), which counts next to the program's own oracle (the
|
|
12
|
+
# brief: "an independent hand-derived expected value with the derivation
|
|
13
|
+
# written in the program header"). A derivation is written by reading the
|
|
14
|
+
# program as generated, not the generator's check code, and states every
|
|
15
|
+
# assumption that is not a spec guarantee. Programs whose expected value
|
|
16
|
+
# the spec does not fix (it depends on the memory mode or on an
|
|
17
|
+
# implementation-defined resource; the relaxed
|
|
18
|
+
# induction forms, whose new list item at the start of a chunk the text
|
|
19
|
+
# does not fix) have no entry, and no entry may rest on a ruling of this
|
|
20
|
+
# project (tests/engine/test_gen.py); data/reports/
|
|
21
|
+
# triage-2026-10.md lists them.
|
|
22
|
+
#
|
|
23
|
+
# Keys: atom, versions, value, text (one line; {cite:<key>} is replaced by
|
|
24
|
+
# the version's entry in `cites`).
|
|
25
|
+
cites:
|
|
26
|
+
linear: {50: "5.0 §2.19.4.6 p.292", 52: "5.2 §5.4.6 p.118", 60: "6.0 §7.5.6 p.233"}
|
|
27
|
+
declare_simd: {50: "5.0 §2.9.3.3 p.116", 52: "5.2 §7.7 p.202", 60: "6.0 §9.8 p.341"}
|
|
28
|
+
scan: {50: "5.0 §2.9.6 p.132", 52: "5.2 §5.6 p.141", 60: "6.0 §7.7 p.266"}
|
|
29
|
+
allocate: {50: "5.0 §2.11.4 p.159", 52: "5.2 §6.6 p.179", 60: "6.0 §8.6 p.314"}
|
|
30
|
+
ancestor: {50: "5.0 §2.12.5 p.174", 52: "5.2 §13.2 p.276 and §8.2.1 p.212", 60: "6.0 §15.2 p.451 and §10.5.1.3 p.359"}
|
|
31
|
+
nohost: {52: "5.2 §13.1 p.275", 60: "6.0 §15.1 p.450"}
|
|
32
|
+
iterator: {52: "5.2 §3.2.6 p.67", 60: "6.0 §5.2.6 p.169"}
|
|
33
|
+
update: {50: "5.0 §2.12.6 p.176", 52: "5.2 §13.9 p.289", 60: "6.0 §15.9 p.465"}
|
|
34
|
+
use_device_ptr: {52: "5.2 §5.4.8 p.121", 60: "6.0 §7.5.8 p.236"}
|
|
35
|
+
is_device_ptr: {52: "5.2 §5.4.7 p.120", 60: "6.0 §7.5.7 p.235"}
|
|
36
|
+
map: {50: "5.0 §2.19.7.1 p.315", 52: "5.2 §5.8.3 p.152", 60: "6.0 §7.9.6 p.283"}
|
|
37
|
+
mapper: {50: "5.0 §2.19.7.3 p.326", 52: "5.2 §5.8.8 p.163 (Table 5.3)", 60: "6.0 §7.9.2 p.276 (Table 7.5) and §7.9.10 p.293"}
|
|
38
|
+
task_default: {50: "5.0 §2.19.1.1 p.273 and §2.19.4.1 p.283", 52: "5.2 §5.1.1 p.100 and §5.4.1 p.109", 60: "6.0 §7.1.1 p.211 and §7.5.1 p.223"}
|
|
39
|
+
has_device_addr: {52: "5.2 §5.4.9 p.123 and §5.4.10 p.123", 60: "6.0 §7.5.9 p.237 and §7.5.10 p.238"}
|
|
40
|
+
schedule: {50: "5.0 §2.9.2 pp.103-104", 52: "5.2 §11.5.3 p.252", 60: "6.0 §13.6.3 p.418 and Glossary 'chunk' p.31"}
|
|
41
|
+
dist_schedule: {50: "5.0 §2.9.4.1 pp.121-122 and §2.9.2 p.103 ('chunks')", 52: "5.2 §11.6.1 p.256", 60: "6.0 §13.7.1 p.422 and Glossary 'chunk' p.31"}
|
|
42
|
+
num_teams: {50: "5.0 §2.7 p.83", 52: "5.2 §10.2.1 p.233", 60: "6.0 §12.2.1 p.397"}
|
|
43
|
+
loop_bind: {50: "5.0 §2.9.5 pp.129-130", 52: "5.2 §11.7 p.257 and §11.7.1 p.258", 60: "6.0 §13.8 p.423 and §13.8.1 p.424"}
|
|
44
|
+
character: {50: "5.0 §1.2.6 p.12", 52: "5.2 §1.2.6 p.14 and §5.8.1 p.148", 60: "6.0 Glossary p.94 and §7.9.3 p.276"}
|
|
45
|
+
entries:
|
|
46
|
+
- atom: omp.clause.linear
|
|
47
|
+
versions: [50, 52, 60]
|
|
48
|
+
value: check=pass
|
|
49
|
+
text: "linear(x: 1) on the parallel do ({cite:linear}): on the logical iteration of i (number i - 1) the new x is the original x (3) plus (i - 1)*1, so x - (i + 2) = 0 and b(i) = 2*a(i) + 1 = 2*i + 1 = ref(i); the body's x = x + 1 keeps x on that sequence, and the value of the sequentially last iteration, taken as the new x at the end of that iteration (3 + n after its increment, as the OpenMP Examples' linear programs assume), is assigned to the original x, which the target maps tofrom: x = 1*n + 3; the check accepts"
|
|
50
|
+
- atom: omp.clause.linear.val
|
|
51
|
+
versions: [52, 60]
|
|
52
|
+
value: check=pass
|
|
53
|
+
text: "linear(x: val, step(1)) ({cite:linear}): for a variable that is not a reference the val modifier is the default value semantics, so as without it: the new x on the iteration of i is 3 + (i - 1), b(i) = 2*i + 1 = ref(i), and the sequentially last iteration's value 3 + n is assigned to x (mapped tofrom): x = 1*n + 3; the check accepts"
|
|
54
|
+
- atom: omp.clause.linear.step
|
|
55
|
+
versions: [52, 60]
|
|
56
|
+
value: check=pass
|
|
57
|
+
text: "linear(x: step(2)) ({cite:linear}): the new x on the iteration of i is 3 + 2*(i - 1) = 2*i + 1, so x - (2*i + 1) = 0 and b(i) = 2*i + 1 = ref(i); the body adds the step, and the sequentially last iteration's value 3 + 2*n is assigned to x (mapped tofrom): x = 2*n + 3; the check accepts"
|
|
58
|
+
- atom: omp.clause.linear.step_simple_modifier
|
|
59
|
+
versions: [50, 52, 60]
|
|
60
|
+
value: check=pass
|
|
61
|
+
text: "linear(x: 2), the step written as a simple modifier ({cite:linear}): the new x on the iteration of i is 3 + 2*(i - 1) = 2*i + 1, so b(i) = 2*i + 1 = ref(i); the sequentially last iteration's value 3 + 2*n is assigned to x (mapped tofrom): x = 2*n + 3; the check accepts"
|
|
62
|
+
- atom: omp.clause.linear.ref
|
|
63
|
+
versions: [50, 52]
|
|
64
|
+
value: check=pass
|
|
65
|
+
text: "the linear clause is on the declare simd directive of lf ({cite:declare_simd}, {cite:linear}): it describes the arguments of lf's SIMD versions; the target region calls lf from a sequential loop, where lf(x) returns 2*x(1) + 1 (2*x + 1 in the 5.0 form), so b(i) = 2*a(i) + 1 = ref(i) whichever version runs; the check accepts"
|
|
66
|
+
- atom: omp.clause.linear.uval
|
|
67
|
+
versions: [52]
|
|
68
|
+
value: check=pass
|
|
69
|
+
text: "the linear(x: uval) clause is on the declare simd directive of lf ({cite:declare_simd}, {cite:linear}): it describes lf's SIMD versions; the target region calls lf from a sequential loop and lf(x) returns 2*x + 1, so b(i) = 2*a(i) + 1 = ref(i); the check accepts"
|
|
70
|
+
- atom: omp.clause.reduction.inscan
|
|
71
|
+
versions: [50, 52, 60]
|
|
72
|
+
value: check=pass
|
|
73
|
+
text: "reduction(inscan, +: s) with scan inclusive(s) ({cite:scan}): the statement before the scan directive is the input phase, the one after it the scan phase, which sees the sum of the updates of every iteration up to and including its own; s starts at 0, so b(i) = a(1) + ... + a(i) = i*(i + 1)/2 = ref(i); the check accepts"
|
|
74
|
+
- atom: omp.clause.allocate
|
|
75
|
+
versions: [50, 52, 60]
|
|
76
|
+
value: check=pass
|
|
77
|
+
text: "allocate(t) with private(t) on the parallel do in a target region, allowed without an allocator because the unit has requires dynamic_allocators ({cite:allocate}): t is each thread's private copy, allocated with the default allocator; each iteration sets t = 2*a(i) before b(i) = t + 1, so b(i) = 2*i + 1 = ref(i); the check reads b only and accepts"
|
|
78
|
+
- atom: omp.clause.device.ancestor
|
|
79
|
+
versions: [50, 52, 60]
|
|
80
|
+
value: check=pass
|
|
81
|
+
text: "the nested target device(ancestor: 1) firstprivate(t) runs on the parent device of the enclosing target region (requires reverse_offload, {cite:ancestor}) and changes only its private t; the enclosing region computes b(i) = 2*a(i) + 1 on the device and b is mapped from, so b = ref; the check reads b only and accepts"
|
|
82
|
+
- atom: omp.clause.device_type.nohost
|
|
83
|
+
versions: [52]
|
|
84
|
+
value: check=pass
|
|
85
|
+
text: "declare target to(f) device_type(nohost) makes only a non-host version of f available ({cite:nohost}); f is called only inside the target region, where f(x) = 2*x + 1, so b(i) = 2*a(i) + 1 = ref(i) (b mapped from); the check accepts"
|
|
86
|
+
- atom: omp.clause.from.iterator
|
|
87
|
+
versions: [52, 60]
|
|
88
|
+
value: check=pass
|
|
89
|
+
text: "target enter data maps a (to) and b (alloc); the host adds 10 to a and target update to(a) copies it ({cite:update}), so the device's a(i) = i + 10 and the target region writes b(i) = 2*(i + 10) + 1 on the device; target update from(iterator(k = 1:1): b(k:n)) expands to from(b(1:n)) ({cite:iterator}), so the host's b is the device's: b = ref = 2*(i + 10) + 1; the check accepts"
|
|
90
|
+
- atom: omp.clause.to.iterator
|
|
91
|
+
versions: [52, 60]
|
|
92
|
+
value: check=pass
|
|
93
|
+
text: "target enter data maps a (to) and b (alloc); the host adds 10 to a and target update to(iterator(k = 1:1): a(k:n)) expands to to(a(1:n)) ({cite:iterator}, {cite:update}), so the device's a(i) = i + 10; the target region writes b(i) = 2*(i + 10) + 1 and target update from(b) copies it back: b = ref; the check accepts"
|
|
94
|
+
- atom: omp.clause.use_device_ptr
|
|
95
|
+
versions: [52]
|
|
96
|
+
value: check=pass
|
|
97
|
+
text: "target data maps a (to) and b (from); use_device_ptr(pa, pb) makes pa and pb the device addresses of a and b inside the construct ({cite:use_device_ptr}); the nested target has is_device_ptr(pa, pb) ({cite:is_device_ptr}), so pp and qq (c_f_pointer) alias the device copies and qq(i) = 2*pp(i) + 1 writes the device's b; the end of target data copies b back: b = ref; the check accepts"
|
|
98
|
+
- atom: omp.clause.is_device_ptr
|
|
99
|
+
versions: [52]
|
|
100
|
+
value: check=pass
|
|
101
|
+
text: "target data maps a (to) and b (from); use_device_ptr(pa, pb) makes pa and pb the device addresses of a and b ({cite:use_device_ptr}); the nested target has is_device_ptr(pa, pb), so they are used as device pointers there ({cite:is_device_ptr}) and qq(i) = 2*pp(i) + 1 writes the device's b; the end of target data copies b back: b = ref; the check accepts"
|
|
102
|
+
- atom: omp.clause.map.iterator
|
|
103
|
+
versions: [52, 60]
|
|
104
|
+
value: check=pass
|
|
105
|
+
text: "map(iterator(k = 1:1), to: w(k + 1:n/2)) expands to map(to: w(2:n/2)) ({cite:iterator}, {cite:map}): until the exit data, w(2) and w(n/2) are present and w(1) and w(n/2 + 1) are not, which the copy-mode-only presence checks assert (skipped when host and device share storage); the target region writes b(i) = 2*a(i) + 1 (b mapped from): b = ref; the check accepts in both memory modes"
|
|
106
|
+
- atom: omp.clause.map.mapper
|
|
107
|
+
versions: [50, 52, 60]
|
|
108
|
+
value: check=pass
|
|
109
|
+
text: "mapper mm maps q%v with map type to; map(mapper(mm), tofrom: s) applies it with the decayed map type: mapper to with clause tofrom gives to ({cite:mapper}); so s%v (1) is copied to the device and not back: the device writes b(i) = 2*a(i) + s%v = 2*i + 1 = ref(i), then s%v = 7 on the device only; in copy mode the host's s%v stays 1 (the copy-mode-only check), under shared storage that check is skipped; the check accepts"
|
|
110
|
+
- atom: omp.clause.map.present
|
|
111
|
+
versions: [52, 60]
|
|
112
|
+
value: error_termination
|
|
113
|
+
text: "the first target region maps a (to) and removes it at its end (reference count 0); the second target region has map(present, to: a), and on entry a is not present in the device data environment, so runtime error termination is performed ({cite:map}: 'If a map clause with a present map-type-modifier appears on a construct and on entry to the region the corresponding list item is not present in the device data environment, runtime error termination is performed'); the program never reaches continued = .true."
|
|
114
|
+
- atom: omp.clause.default.shared
|
|
115
|
+
versions: [50, 52, 60]
|
|
116
|
+
value: check=pass
|
|
117
|
+
text: "in the parallel region c is private (c = 7 per thread); the task has default(shared), so c in the task is shared, i.e. the generating implicit task's private c ({cite:task_default}); the task sets c = 42 and taskwait waits for it, so thread 0 sets r = 42 (r mapped from); b(i) = 2*a(i) + 1 on the device; the check accepts"
|
|
118
|
+
- atom: omp.clause.has_device_addr
|
|
119
|
+
versions: [52, 60]
|
|
120
|
+
value: check=pass
|
|
121
|
+
text: "target data maps a (to) and b (from) with use_device_addr(a, b): inside it a and b refer to their device storage, whose addresses differ from the host's in copy mode (the copy-mode-only checks); the nested target has has_device_addr(a, b), so it accesses that device storage directly ({cite:has_device_addr}) and writes b(i) = 2*a(i) + 1 there; the end of target data copies b back: b = ref; the check accepts"
|
|
122
|
+
- atom: omp.clause.defaultmap.private
|
|
123
|
+
versions: [60]
|
|
124
|
+
value: check=pass
|
|
125
|
+
text: "defaultmap(private) makes c and w private in the target region (6.0 §7.9.9 p.291; a and b keep their explicit maps); the region sets c = 1 and w(i) = 2*a(i) before reading them, so b(i) = w(i) + c = 2*i + 1 on the device and b is mapped from: b = ref; the check accepts"
|
|
126
|
+
- atom: omp.clause.firstprivate.saved
|
|
127
|
+
versions: [60]
|
|
128
|
+
value: check=pass
|
|
129
|
+
text: "the saved modifier affects only replay executions of a replayable construct (6.0 §7.2 p.215: 'The saved modifier has no effect if' the construct is not replayable), and nothing here is replayable, so firstprivate(saved: c) is firstprivate(c) (6.0 §7.5.4 p.227): every thread's c starts at the original 1 and grows by 100 per iteration it runs, so mod(c, 100) = 1 and b(i) = 2*i + 1 = ref(i); the original c (mapped tofrom) is not changed: c = 1; the check accepts"
|
|
130
|
+
- atom: omp.clause.induction.strict
|
|
131
|
+
versions: [60]
|
|
132
|
+
value: check=pass
|
|
133
|
+
text: "induction(step(1), strict, +: x): with strict the new x at the beginning of each iteration is the closed form 3 + (i - 1) and the original x gets the inductor applied to the last iteration's value, 3 + n (6.0 §7.6.13 p.258, §7.6.4 p.246); so b(i) = 2*i + 1 = ref(i) and x = n + 3 (mapped tofrom); the check accepts"
|
|
134
|
+
- atom: omp.clause.local
|
|
135
|
+
versions: [60]
|
|
136
|
+
value: check=pass
|
|
137
|
+
text: "declare_target local(dv) makes dv device-local: static storage duration, visible only to tasks on that device (6.0 Glossary p.44, §7.14 p.303, §7.1.1 p.211); the first target region sets the device's dv = 5, and the second, on the same device, reads that storage: b(i) = 2*a(i) + 5 - 4 = 2*i + 1 = ref(i) (b mapped from); the check accepts"
|
|
138
|
+
- atom: omp.directive.teams_workdistribute
|
|
139
|
+
versions: [60]
|
|
140
|
+
value: check=pass
|
|
141
|
+
text: "on_dev is a declare_target variable: the first target region sets the device's copy to 1, and it keeps its value on the device; teams workdistribute divides the array assignment b = 2*a + on_dev into units of work each executed once (6.0 §13.5 p.412), so b(i) = 2*i + 1 on the device, mapped from: b = ref; the check accepts"
|
|
142
|
+
- atom: omp.directive.target_teams_workdistribute
|
|
143
|
+
versions: [60]
|
|
144
|
+
value: check=pass
|
|
145
|
+
text: "on_dev is a declare_target variable: the first target region sets the device's copy to 1, and it keeps its value on the device; target teams workdistribute divides the array assignment b = 2*a + on_dev into units of work each executed once (6.0 §13.5 p.412), so b(i) = 2*i + 1 on the device, mapped from: b = ref; the check accepts"
|
|
146
|
+
- atom: omp.clause.dist_schedule
|
|
147
|
+
versions: [50, 52, 60]
|
|
148
|
+
value: check=pass
|
|
149
|
+
text: "num_teams(4) creates at most 4 teams (exactly 4 from 5.1, {cite:num_teams}); dist_schedule(static) without a chunk size divides the 64 iterations into contiguous non-empty chunks, at most one per initial team ({cite:dist_schedule}), so every iteration runs on one team, team(i) is a team number 0 .. nt - 1 and each team's iterations are one contiguous run, the two things dok tests (it tests no chunk size); nt >= 1 and b = ref; the check accepts"
|
|
150
|
+
- atom: omp.clause.dist_schedule.static
|
|
151
|
+
versions: [50, 52, 60]
|
|
152
|
+
value: check=pass
|
|
153
|
+
text: "num_teams(4) creates at most 4 teams (exactly 4 from 5.1, {cite:num_teams}); dist_schedule(static) without a chunk size divides the 64 iterations into contiguous non-empty chunks, at most one per initial team ({cite:dist_schedule}), so every iteration runs on one team, team(i) is a team number 0 .. nt - 1 and each team's iterations are one contiguous run, the two things dok tests (it tests no chunk size); nt >= 1 and b = ref; the check accepts"
|
|
154
|
+
- atom: omp.clause.dist_schedule.chunk_size
|
|
155
|
+
versions: [50, 52, 60]
|
|
156
|
+
value: check=pass
|
|
157
|
+
text: "dist_schedule(static, 4): chunks of 4 iterations assigned to the initial teams round-robin in team-number order ({cite:dist_schedule}), so iteration i runs on team mod((i - 1)/4, nt), which dok tests; nt >= 1 and b = ref; the check accepts"
|
|
158
|
+
- atom: omp.clause.schedule
|
|
159
|
+
versions: [50, 52, 60]
|
|
160
|
+
value: check=pass
|
|
161
|
+
text: "schedule(static) without a chunk size divides the 1000 iterations into contiguous non-empty chunks, at most one per thread ({cite:schedule}), so every iteration runs on one thread of the team, tid(i) is a thread number 0 .. nthr - 1 and each thread's iterations are one contiguous run, the two things sok tests (it tests no chunk size); nthr >= 1 (omp_get_num_threads) and b = ref; the check accepts"
|
|
162
|
+
- atom: omp.clause.schedule.static
|
|
163
|
+
versions: [50, 52, 60]
|
|
164
|
+
value: check=pass
|
|
165
|
+
text: "schedule(static) without a chunk size divides the 1000 iterations into contiguous non-empty chunks, at most one per thread ({cite:schedule}), so every iteration runs on one thread of the team, tid(i) is a thread number 0 .. nthr - 1 and each thread's iterations are one contiguous run, the two things sok tests (it tests no chunk size); nthr >= 1 (omp_get_num_threads) and b = ref; the check accepts"
|
|
166
|
+
- atom: omp.clause.schedule.chunk_size
|
|
167
|
+
versions: [50, 52, 60]
|
|
168
|
+
value: check=pass
|
|
169
|
+
text: "schedule(static, 4): chunks of 4 iterations assigned to the threads round-robin in thread-number order ({cite:schedule}), so iteration i runs on thread mod((i - 1)/4, nthr), which sok tests; nthr >= 1 and b = ref; the check accepts"
|
|
170
|
+
- atom: omp.clause.bind.thread
|
|
171
|
+
versions: [50, 52, 60]
|
|
172
|
+
value: check=pass
|
|
173
|
+
text: "loop bind(thread) in a parallel region: the binding thread set is the encountering thread, and each logical iteration is executed once per loop region by exactly one thread of that set ({cite:loop_bind}), so every thread runs all 64 iterations and writes hit(i, tid + 1) once each (distinct elements, so the concurrent iterations do not race): tot(t) = 64 for every thread; the team size is implementation defined and only threads 0 .. 1023 record (hit has 1024 columns), so all(tot(1:min(nthr, 1024)) == n) holds for any team size, and nthr >= 1; thread 0 writes b = ref; the check accepts"
|
|
174
|
+
- atom: omp.clause.defaultmap.character
|
|
175
|
+
versions: [50, 52, 60]
|
|
176
|
+
value: check=pass
|
|
177
|
+
text: "for Fortran a scalar variable excludes character type and a character variable is an aggregate ({cite:character}), so with no defaultmap clause ch and s are mapped tofrom and the device's ch = 'b', s = 'wxyz' come back, while the integer scalar k is firstprivate and the host's k stays 1; b = ref; the check (ch == 'b', s == 'wxyz', k == 1) accepts"
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Memory modes of the matrix.
|
|
2
|
+
#
|
|
3
|
+
# The headline run is HSA_XNACK=1 with transparent huge pages (what LC's
|
|
4
|
+
# example job script uses; on the MI300A it makes the runtime zero-copy).
|
|
5
|
+
# Copy mode (HSA_XNACK=0) runs only for the programs
|
|
6
|
+
# offload.engine.run_matrix.copy_mode_programs selects:
|
|
7
|
+
#
|
|
8
|
+
# - every program whose evidence is copy_mode_only (its check separates
|
|
9
|
+
# the construct from a no-op only in copy mode), and
|
|
10
|
+
# - the memory-sensitive programs below: their primary atom matches one of
|
|
11
|
+
# `atoms` (fnmatch patterns), or their id is listed in `programs`.
|
|
12
|
+
#
|
|
13
|
+
# `programs` holds the programs whose two modes differed in the full
|
|
14
|
+
# two-mode run of 2026-10-18 (results/support_table.csv, 9 program x
|
|
15
|
+
# toolchain pairs) that no atom pattern already covers. Status: provisional.
|
|
16
|
+
headline_xnack: 1
|
|
17
|
+
copy_xnack: 0
|
|
18
|
+
memory_sensitive:
|
|
19
|
+
atoms:
|
|
20
|
+
- pattern: omp.clause.map.present
|
|
21
|
+
why: >-
|
|
22
|
+
negative probe: the run must end in the runtime's error termination
|
|
23
|
+
on absent data; AFAR terminates only in copy mode (full run:
|
|
24
|
+
AFAR wrong_answer at HSA_XNACK=1, correct_on_device at 0, 5.2 and
|
|
25
|
+
6.0)
|
|
26
|
+
- pattern: omp.clause.unified_shared_memory*
|
|
27
|
+
why: >-
|
|
28
|
+
requires unified_shared_memory, every form (bare, -required,
|
|
29
|
+
-directive_name): the program needs zero-copy memory, so copy mode
|
|
30
|
+
is where a toolchain must refuse or fail (full run: unobservable at
|
|
31
|
+
1, crash or exit 255 at 0)
|
|
32
|
+
- pattern: omp.clause.map.mapper
|
|
33
|
+
why: >-
|
|
34
|
+
CCE 19 ran the map(mapper) program on the device at HSA_XNACK=1 and
|
|
35
|
+
fell back to the host at 0 (full run, 5.2)
|
|
36
|
+
programs:
|
|
37
|
+
- id: omp52-illegal-mapitem-map-001
|
|
38
|
+
why: >-
|
|
39
|
+
CCE 19 ran it on the device at HSA_XNACK=1 and fell back to the
|
|
40
|
+
host at 0 (full run); no atom pattern covers it
|
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
# Spec basis of the programs that have no separating oracle.
|
|
2
|
+
#
|
|
3
|
+
# A program whose atom no single run can separate from its absence carries
|
|
4
|
+
# one of three evidence categories (offload.engine.gen.NO_ORACLE), each with the
|
|
5
|
+
# spec sentence that makes it so:
|
|
6
|
+
# hint_only the spec lets an implementation ignore the form
|
|
7
|
+
# (a hint, an assertion the program makes, or a
|
|
8
|
+
# bound that one-at-a-time execution meets): the
|
|
9
|
+
# report reads "accepted; conforms vacuously"
|
|
10
|
+
# implementation_defined the spec leaves the behaviour to the
|
|
11
|
+
# implementation: "implementation-defined"
|
|
12
|
+
# equivalent_default the form is, by the spec, the behaviour without
|
|
13
|
+
# it: "equivalent to the default (no separable
|
|
14
|
+
# effect)"
|
|
15
|
+
# Atoms whose behaviour the spec fixes but whose program has no check for
|
|
16
|
+
# it are evidence "unverified" instead (offload.engine.gen.UNVERIFIED), never
|
|
17
|
+
# one of these.
|
|
18
|
+
#
|
|
19
|
+
# Read by offload/engine/gen.py (no_oracle_bases). Each basis id names, per
|
|
20
|
+
# version, a list of citations; the first is the sentence the header line
|
|
21
|
+
# `! basis:` and the support table quote, any others add context. Every
|
|
22
|
+
# `quote` is checked (tests/engine/test_gen.py) to occur verbatim (whitespace
|
|
23
|
+
# aside) in the cited section of results/spec_cache/openmp-<ver>.txt, and
|
|
24
|
+
# the page to lie in that section. `status: provisional` until the maintainer
|
|
25
|
+
# reviews it.
|
|
26
|
+
#
|
|
27
|
+
# bases.<id>:
|
|
28
|
+
# status provisional
|
|
29
|
+
# <ver>: [{cite: "OpenMP <ver> §<sec>, p.<n>", quote: "<sentence>"}, ...]
|
|
30
|
+
|
|
31
|
+
bases:
|
|
32
|
+
# --- hint_only -------------------------------------------------------------
|
|
33
|
+
simd_concurrency: # safelen: an upper bound on concurrency
|
|
34
|
+
status: provisional
|
|
35
|
+
50:
|
|
36
|
+
- cite: "OpenMP 5.0 §2.9.3.1, p.112"
|
|
37
|
+
quote: "The number of iterations that are executed concurrently at any given time is implementation defined."
|
|
38
|
+
- cite: "OpenMP 5.0 §2.9.3.1, p.112"
|
|
39
|
+
quote: "The safelen clause specifies that no two concurrent iterations within a SIMD chunk can have a distance in the logical iteration space that is greater than or equal to the value given in the clause."
|
|
40
|
+
52:
|
|
41
|
+
- cite: "OpenMP 5.2 §10.4, p.235"
|
|
42
|
+
quote: "The number of iterations that are executed concurrently at any given time is implementation defined."
|
|
43
|
+
- cite: "OpenMP 5.2 §10.4.2, p.237"
|
|
44
|
+
quote: "The safelen clause specifies that no two concurrent iterations within a SIMD chunk can have a distance in the logical iteration space that is greater than or equal to the value given in the clause."
|
|
45
|
+
60:
|
|
46
|
+
- cite: "OpenMP 6.0 §12.4, p.399"
|
|
47
|
+
quote: "The number of collapsed iterations that are executed concurrently at any given time is implementation defined."
|
|
48
|
+
- cite: "OpenMP 6.0 §12.4.2, p.401"
|
|
49
|
+
quote: "The safelen clause specifies that no two concurrent logical iterations within a SIMD chunk can have a distance in the collapsed iteration space that is greater than or equal to the length argument."
|
|
50
|
+
simdlen_hint:
|
|
51
|
+
status: provisional
|
|
52
|
+
50:
|
|
53
|
+
- cite: "OpenMP 5.0 §2.9.3.1, p.112"
|
|
54
|
+
quote: "The simdlen clause specifies the preferred number of iterations to be executed concurrently unless an if clause is present and evaluates to false, in which case the preferred number of iterations to be executed concurrently is one."
|
|
55
|
+
52:
|
|
56
|
+
- cite: "OpenMP 5.2 §10.4.3, p.237"
|
|
57
|
+
quote: "When the simdlen clause appears on a simd construct, length is treated as a hint that specifies the preferred number of iterations to be executed concurrently."
|
|
58
|
+
60:
|
|
59
|
+
- cite: "OpenMP 6.0 §12.4.3, p.401"
|
|
60
|
+
quote: "When the simdlen clause appears on a simd construct, length is treated as a hint that specifies the preferred number of collapsed iterations to be executed concurrently."
|
|
61
|
+
nontemporal_locality:
|
|
62
|
+
status: provisional
|
|
63
|
+
50:
|
|
64
|
+
- cite: "OpenMP 5.0 §2.9.3.1, p.113"
|
|
65
|
+
quote: "The nontemporal clause specifies that accesses to the storage locations to which the list items refer have low temporal locality across the iterations in which those storage locations are accessed."
|
|
66
|
+
52:
|
|
67
|
+
- cite: "OpenMP 5.2 §10.4.1, p.236"
|
|
68
|
+
quote: "The nontemporal clause specifies that accesses to the storage locations to which the list items refer have low temporal locality across the iterations in which those storage locations are accessed."
|
|
69
|
+
60:
|
|
70
|
+
- cite: "OpenMP 6.0 §12.4.1, p.400"
|
|
71
|
+
quote: "The nontemporal clause specifies that accesses to the storage locations to which the list items refer have low temporal locality across the logical iterations in which those storage locations are accessed."
|
|
72
|
+
aligned_assertion:
|
|
73
|
+
status: provisional
|
|
74
|
+
50:
|
|
75
|
+
- cite: "OpenMP 5.0 §2.9.3.1, p.112"
|
|
76
|
+
quote: "The aligned clause declares that the location of each list item is aligned to the number of bytes expressed in the optional parameter of the aligned clause."
|
|
77
|
+
52:
|
|
78
|
+
- cite: "OpenMP 5.2 §5.11, p.169"
|
|
79
|
+
quote: "The alignment modifier specifies the alignment that the program ensures related to the list items."
|
|
80
|
+
60:
|
|
81
|
+
- cite: "OpenMP 6.0 §7.12, p.300"
|
|
82
|
+
quote: "The alignment modifier specifies the alignment that the program ensures related to the list items."
|
|
83
|
+
close_hint:
|
|
84
|
+
status: provisional
|
|
85
|
+
50:
|
|
86
|
+
- cite: "OpenMP 5.0 §2.19.7.1, p.321"
|
|
87
|
+
quote: "The close map-type-modifier is a hint to the runtime to allocate memory close to the target device."
|
|
88
|
+
52:
|
|
89
|
+
- cite: "OpenMP 5.2 §5.8.3, p.155"
|
|
90
|
+
quote: "The close map-type-modifier is a hint to the runtime to allocate memory close to the target device."
|
|
91
|
+
60:
|
|
92
|
+
- cite: "OpenMP 6.0 §7.9.6, p.285"
|
|
93
|
+
quote: "The close-modifier is a hint that the corresponding storage should be close to the target device."
|
|
94
|
+
|
|
95
|
+
# --- implementation_defined ------------------------------------------------
|
|
96
|
+
proc_bind_bind_var:
|
|
97
|
+
status: provisional
|
|
98
|
+
50:
|
|
99
|
+
- cite: "OpenMP 5.0 §2.5.5, p.73"
|
|
100
|
+
quote: "If bind-var is not set to false then the proc_bind clause overrides the value of the first element of the bind-var ICV; otherwise, the proc_bind clause has no effect."
|
|
101
|
+
- cite: "OpenMP 5.0 §2.5.2, p.66"
|
|
102
|
+
quote: "bind-var OMP_PROC_BIND Implementation defined"
|
|
103
|
+
52:
|
|
104
|
+
- cite: "OpenMP 5.2 §2.5, p.46"
|
|
105
|
+
quote: "If bind-var is not set to false then the proc_bind clause overrides the value of the first element of the bind-var ICV; otherwise, the proc_bind clause has no effect."
|
|
106
|
+
- cite: "OpenMP 5.2 §2.2, p.40"
|
|
107
|
+
quote: "bind-var OMP_PROC_BIND Implementation defined"
|
|
108
|
+
60:
|
|
109
|
+
- cite: "OpenMP 6.0 §3.5, p.126"
|
|
110
|
+
quote: "If bind-var is not set to false then the proc_bind clause overrides the value of the first element of the bind-var ICV; otherwise, the proc_bind clause has no effect."
|
|
111
|
+
- cite: "OpenMP 6.0 §3.2, p.118"
|
|
112
|
+
quote: "bind-var OMP_PROC_BIND implementation defined"
|
|
113
|
+
order_concurrent:
|
|
114
|
+
status: provisional
|
|
115
|
+
50:
|
|
116
|
+
- cite: "OpenMP 5.0 §2.9.2, p.104"
|
|
117
|
+
quote: "If an order(concurrent) clause is present, then after assigning the iterations of the associated loops to their respective threads, as specified in Table 2.5, the iterations may be executed in any order, including concurrently."
|
|
118
|
+
52:
|
|
119
|
+
- cite: "OpenMP 5.2 §10.3, p.233"
|
|
120
|
+
quote: "If ordering is concurrent, the logical iterations of the associated loops may execute in any order, including concurrently."
|
|
121
|
+
60:
|
|
122
|
+
- cite: "OpenMP 6.0 §12.3, p.397"
|
|
123
|
+
quote: "If ordering is concurrent, different collapsed iterations may execute in any order, including in parallel, as if by the binding thread set of the region."
|
|
124
|
+
target_nowait:
|
|
125
|
+
status: provisional
|
|
126
|
+
50:
|
|
127
|
+
- cite: "OpenMP 5.0 §2.12.5, p.172"
|
|
128
|
+
quote: "If the nowait clause is present, execution of the target task may be deferred. If the nowait clause is not present, the target task is an included task."
|
|
129
|
+
52:
|
|
130
|
+
- cite: "OpenMP 5.2 §13.8, p.284"
|
|
131
|
+
quote: "If the nowait clause is present, execution of the target task may be deferred. If the nowait clause is not present, the target task is an included task."
|
|
132
|
+
60:
|
|
133
|
+
- cite: "OpenMP 6.0 §15.8, p.461"
|
|
134
|
+
quote: "If the nowait clause is present, execution of the target tasks may be deferred."
|
|
135
|
+
num_teams_bounds:
|
|
136
|
+
status: provisional
|
|
137
|
+
52:
|
|
138
|
+
- cite: "OpenMP 5.2 §10.2.1, p.233"
|
|
139
|
+
quote: "The number of teams created is implementation defined, but it will be greater than or equal to the lower bound and less than or equal to the upper bound."
|
|
140
|
+
60:
|
|
141
|
+
- cite: "OpenMP 6.0 §12.2.1, p.397"
|
|
142
|
+
quote: "The number of teams formed is implementation defined, but it will be greater than or equal to the lower bound and less than or equal to the upper bound."
|
|
143
|
+
schedule_auto:
|
|
144
|
+
status: provisional
|
|
145
|
+
50:
|
|
146
|
+
- cite: "OpenMP 5.0 §2.9.2, p.105"
|
|
147
|
+
quote: "When kind is auto, the decision regarding scheduling is delegated to the compiler and/or runtime system."
|
|
148
|
+
52:
|
|
149
|
+
- cite: "OpenMP 5.2 §11.5.3, p.253"
|
|
150
|
+
quote: "If the kind argument is auto, the decision regarding scheduling is implementation defined."
|
|
151
|
+
60:
|
|
152
|
+
- cite: "OpenMP 6.0 §13.6.3, p.419"
|
|
153
|
+
quote: "If the kind argument is auto, the decision regarding scheduling is implementation defined."
|
|
154
|
+
schedule_simd_width:
|
|
155
|
+
status: provisional
|
|
156
|
+
50:
|
|
157
|
+
- cite: "OpenMP 5.0 §2.9.2, p.106"
|
|
158
|
+
quote: "where simd_width is an implementation-defined value."
|
|
159
|
+
52:
|
|
160
|
+
- cite: "OpenMP 5.2 §11.5.3, p.253"
|
|
161
|
+
quote: "is the chunk_size for all chunks except the first and last chunks, where simd_width is an implementation-defined value."
|
|
162
|
+
60:
|
|
163
|
+
- cite: "OpenMP 6.0 §13.6.3, p.419"
|
|
164
|
+
quote: "is the chunk_size for all chunks except the first and last chunks, where simd_width is an implementation defined value."
|
|
165
|
+
schedule_nonmonotonic_order: # monotonic: dynamic against its default
|
|
166
|
+
status: provisional
|
|
167
|
+
50:
|
|
168
|
+
- cite: "OpenMP 5.0 §2.9.2, p.106"
|
|
169
|
+
quote: "When the nonmonotonic modifier is specified then chunks are assigned to threads in any order and the behavior of an application that depends on any execution order of the chunks is unspecified."
|
|
170
|
+
- cite: "OpenMP 5.0 §2.9.2, p.106"
|
|
171
|
+
quote: "When the monotonic modifier is specified then each thread executes the chunks that it is assigned in increasing logical iteration order."
|
|
172
|
+
52:
|
|
173
|
+
- cite: "OpenMP 5.2 §11.5.3, p.254"
|
|
174
|
+
quote: "When the nonmonotonic ordering-modifier is specified then chunks may be assigned to threads in any order and the behavior of an application that depends on any execution order of the chunks is unspecified."
|
|
175
|
+
- cite: "OpenMP 5.2 §11.5.3, p.254"
|
|
176
|
+
quote: "If the monotonic ordering-modifier is specified then each thread executes the chunks that it is assigned in increasing logical iteration order."
|
|
177
|
+
60:
|
|
178
|
+
- cite: "OpenMP 6.0 §13.6.3, p.419"
|
|
179
|
+
quote: "When the nonmonotonic ordering-modifier is specified then chunks may be assigned to threads in any order and the behavior of an application that depends on any execution order of the chunks is unspecified."
|
|
180
|
+
- cite: "OpenMP 6.0 §13.6.3, p.419"
|
|
181
|
+
quote: "If the monotonic ordering-modifier is specified then each thread executes the chunks that it is assigned in increasing collapsed iteration order."
|
|
182
|
+
|
|
183
|
+
dist_schedule_default: # Dist_schedule(static) without a chunk size
|
|
184
|
+
status: provisional
|
|
185
|
+
50:
|
|
186
|
+
- cite: "OpenMP 5.0 §2.9.4.1, p.122"
|
|
187
|
+
quote: "When no dist_schedule clause is specified, the schedule is implementation defined."
|
|
188
|
+
- cite: "OpenMP 5.0 §2.9.4.1, p.122"
|
|
189
|
+
quote: "When no chunk_size is specified, the iteration space is divided into chunks that are approximately equal in size, and at most one chunk is distributed to each initial team of the league."
|
|
190
|
+
52:
|
|
191
|
+
- cite: "OpenMP 5.2 §11.6, p.254"
|
|
192
|
+
quote: "If the dist_schedule clause is not specified, the schedule is implementation defined."
|
|
193
|
+
- cite: "OpenMP 5.2 §11.6.1, p.256"
|
|
194
|
+
quote: "if chunk_size is not specified, the iteration space is divided into chunks that are approximately equal in size, and at most one chunk is distributed to each initial team of the league."
|
|
195
|
+
60:
|
|
196
|
+
- cite: "OpenMP 6.0 §13.7, p.420"
|
|
197
|
+
quote: "If the dist_schedule clause is not specified, the loop schedule is implementation defined."
|
|
198
|
+
- cite: "OpenMP 6.0 §13.7.1, p.422"
|
|
199
|
+
quote: "approximately equal in size, and at most one chunk is distributed to each initial team of the league."
|
|
200
|
+
schedule_default: # Schedule(static) without a chunk size
|
|
201
|
+
status: provisional
|
|
202
|
+
50:
|
|
203
|
+
- cite: "OpenMP 5.0 §2.5.1, p.64"
|
|
204
|
+
quote: "def-sched-var - controls the implementation defined default scheduling of worksharing-loop regions."
|
|
205
|
+
- cite: "OpenMP 5.0 §2.9.2, p.105"
|
|
206
|
+
quote: "One compliant implementation of the static schedule (with no specified chunk_size) would behave as though chunk_size had been specified with value q. Another compliant implementation would assign q iterations to the first p − r threads, and q − 1 iterations to the remaining r threads."
|
|
207
|
+
52:
|
|
208
|
+
- cite: "OpenMP 5.2 §11.5, p.248"
|
|
209
|
+
quote: "If the schedule clause is not specified then the schedule is implementation defined."
|
|
210
|
+
- cite: "OpenMP 5.2 §11.5.3, p.253"
|
|
211
|
+
quote: "One compliant implementation of the static schedule (with no specified chunk_size) would behave as though chunk_size had been specified with value q. Another compliant implementation would assign q iterations to the first p − r threads, and q − 1 iterations to the remaining r threads."
|
|
212
|
+
60:
|
|
213
|
+
- cite: "OpenMP 6.0 §13.6.3, p.419"
|
|
214
|
+
quote: "If the schedule clause is not specified on a worksharing-loop construct then the effect is as if the schedule clause was specified with auto as its kind argument."
|
|
215
|
+
- cite: "OpenMP 6.0 §13.6.3, p.419"
|
|
216
|
+
quote: "If the kind argument is auto, the decision regarding scheduling is implementation defined."
|
|
217
|
+
|
|
218
|
+
# --- equivalent_default ----------------------------------------------------
|
|
219
|
+
schedule_default_modifier:
|
|
220
|
+
status: provisional
|
|
221
|
+
50:
|
|
222
|
+
- cite: "OpenMP 5.0 §2.9.2, p.103"
|
|
223
|
+
quote: "Otherwise, unless the monotonic modifier is specified, the effect is as if the nonmonotonic modifier is specified."
|
|
224
|
+
- cite: "OpenMP 5.0 §2.9.2, p.103"
|
|
225
|
+
quote: "If the static schedule kind is specified or if the ordered clause is specified, and if the nonmonotonic modifier is not specified, the effect is as if the monotonic modifier is specified."
|
|
226
|
+
52:
|
|
227
|
+
- cite: "OpenMP 5.2 §11.5.3, p.254"
|
|
228
|
+
quote: "If an ordering-modifier is not specified, the effect is as if the monotonic modifier is specified if the kind argument is static or an ordered clause is specified on the construct; otherwise, the effect is as if the nonmonotonic modifier is specified."
|
|
229
|
+
60:
|
|
230
|
+
- cite: "OpenMP 6.0 §13.6.3, p.419"
|
|
231
|
+
quote: "If an ordering-modifier is not specified, the effect is as if the monotonic ordering-modifier is specified if the kind argument is static or an ordered clause is specified on the construct; otherwise, the effect is as if the nonmonotonic ordering-modifier is specified."
|
|
232
|
+
reduction_default_modifier:
|
|
233
|
+
status: provisional
|
|
234
|
+
50:
|
|
235
|
+
- cite: "OpenMP 5.0 §2.19.5.4, p.300"
|
|
236
|
+
quote: "If reduction-modifier is not present or the default reduction-modifier is present, the behavior is as follows."
|
|
237
|
+
52:
|
|
238
|
+
- cite: "OpenMP 5.2 §5.5.8, p.134"
|
|
239
|
+
quote: "If reduction-modifier is not present or the default reduction-modifier is present, the behavior is as follows."
|
|
240
|
+
60:
|
|
241
|
+
- cite: "OpenMP 6.0 §7.6.10, p.253"
|
|
242
|
+
quote: "If reduction-modifier is not present or the default reduction-modifier is present, the behavior is as follows."
|
|
243
|
+
linear_modifier_val:
|
|
244
|
+
status: provisional
|
|
245
|
+
52:
|
|
246
|
+
- cite: "OpenMP 5.2 §5.4.6, p.118"
|
|
247
|
+
quote: "A linear-modifier may be specified as ref or uval only on a declare simd directive."
|
|
248
|
+
60:
|
|
249
|
+
- cite: "OpenMP 6.0 §7.5.6, p.233"
|
|
250
|
+
quote: "A linear-modifier may be specified as ref or uval only for linear clauses on declare_simd directives."
|
|
251
|
+
defaultmap_default:
|
|
252
|
+
status: provisional
|
|
253
|
+
50:
|
|
254
|
+
- cite: "OpenMP 5.0 §2.19.7.2, p.325"
|
|
255
|
+
quote: "If implicit-behavior is default, then the clause has no effect for the variables in the category specified by variable-category."
|
|
256
|
+
52:
|
|
257
|
+
- cite: "OpenMP 5.2 §5.8.7, p.162"
|
|
258
|
+
quote: "If implicit-behavior is default then the clause has no effect."
|
|
259
|
+
60:
|
|
260
|
+
- cite: "OpenMP 6.0 §7.9.9, p.292"
|
|
261
|
+
quote: "If implicit-behavior is default then the clause has no effect."
|
|
262
|
+
device_num_default:
|
|
263
|
+
status: provisional
|
|
264
|
+
50:
|
|
265
|
+
- cite: "OpenMP 5.0 §2.12.5, p.172"
|
|
266
|
+
quote: "If device-modifier does not appear in the clause, the behavior of the clause is as if device-modifier is device_num."
|
|
267
|
+
52:
|
|
268
|
+
- cite: "OpenMP 5.2 §13.2, p.276"
|
|
269
|
+
quote: "If device-modifier does not appear in the clause, the behavior of the clause is as if device-modifier is device_num."
|
|
270
|
+
60:
|
|
271
|
+
- cite: "OpenMP 6.0 §15.2, p.451"
|
|
272
|
+
quote: "If device-modifier does not appear in the clause, the behavior of the clause is as if device-modifier is device_num."
|
|
273
|
+
memspace_default:
|
|
274
|
+
status: provisional
|
|
275
|
+
52:
|
|
276
|
+
- cite: "OpenMP 5.2 §6.8, p.182"
|
|
277
|
+
quote: "If mem-space is not specified, the effect is as if memspace-handle is specified as omp_default_mem_space."
|
|
278
|
+
60:
|
|
279
|
+
- cite: "OpenMP 6.0 §8.8, p.316"
|
|
280
|
+
quote: "If mem-space is not specified or omp_null_mem_space is specified, the effect is as if memspace-handle is specified as omp_default_mem_space."
|
|
281
|
+
ordered_n_default:
|
|
282
|
+
status: provisional
|
|
283
|
+
50:
|
|
284
|
+
- cite: "OpenMP 5.0 §2.9.2, p.104"
|
|
285
|
+
quote: "The parameter of the ordered clause does not affect how the logical iteration space is then divided."
|
|
286
|
+
- cite: "OpenMP 5.0 §2.9.2, p.104"
|
|
287
|
+
quote: "If an ordered clause with the parameter is specified for the worksharing-loop construct, then those associated loops form a doacross loop nest."
|
|
288
|
+
52:
|
|
289
|
+
- cite: "OpenMP 5.2 §4.4.4, p.94"
|
|
290
|
+
quote: "If n is not specified then the behavior is as if n is specified with the same value as is specified for the collapse clause on the construct."
|
|
291
|
+
60:
|
|
292
|
+
- cite: "OpenMP 6.0 §6.4.6, p.206"
|
|
293
|
+
quote: "If n is not specified then the behavior is as if n is specified with the same value as is specified for the collapse clause on the construct."
|
|
294
|
+
order_unconstrained_reproducible:
|
|
295
|
+
status: provisional
|
|
296
|
+
52:
|
|
297
|
+
- cite: "OpenMP 5.2 §11.5, p.248"
|
|
298
|
+
quote: "The schedule clause is specified with static as the kind argument but not the simd ordering-modifier and the order clause is not specified with the unconstrained order-modifier."
|
|
299
|
+
- cite: "OpenMP 5.2 §10.3, p.234"
|
|
300
|
+
quote: "If order-modifier is reproducible, the loop schedule for the construct on which the clause appears is reproducible, whereas if order-modifier is unconstrained, the loop schedule is not reproducible."
|
|
301
|
+
60:
|
|
302
|
+
- cite: "OpenMP 6.0 §13.6, p.414"
|
|
303
|
+
quote: "The schedule clause is specified with static as the kind argument but not with the simd ordering-modifier and the order clause is not specified with the unconstrained order-modifier."
|
|
304
|
+
- cite: "OpenMP 6.0 §12.3, p.398"
|
|
305
|
+
quote: "If order-modifier is reproducible, the loop schedule for the construct on which the clause appears is reproducible, whereas if order-modifier is unconstrained, the loop schedule is not reproducible."
|
|
306
|
+
default_category_all:
|
|
307
|
+
status: provisional
|
|
308
|
+
60:
|
|
309
|
+
- cite: "OpenMP 6.0 §7.5.1, p.223"
|
|
310
|
+
quote: "If no variable-category is specified in the clause then the effect is as if all was specified for the variable-category."
|
|
311
|
+
ref_ptr_ptee_default:
|
|
312
|
+
status: provisional
|
|
313
|
+
60:
|
|
314
|
+
- cite: "OpenMP 6.0 §7.9.6, p.282"
|
|
315
|
+
quote: "Unless otherwise specified, if a list item is a referencing variable then the effect of the map clause is applied to its referring pointer and, if a referenced pointee exists, its referenced pointee."
|
|
316
|
+
nowait_true_default:
|
|
317
|
+
status: provisional
|
|
318
|
+
60:
|
|
319
|
+
- cite: "OpenMP 6.0 §17.6, p.481"
|
|
320
|
+
quote: "If do_not_synchronize is not specified, the effect is as if do_not_synchronize evaluates to true."
|
|
321
|
+
replayable_true_default:
|
|
322
|
+
status: provisional
|
|
323
|
+
60:
|
|
324
|
+
- cite: "OpenMP 6.0 §14.6, p.441"
|
|
325
|
+
quote: "If replayable-expression is not specified, the effect is as if replayable-expression evaluates to true."
|
|
326
|
+
# directive-name modifiers (6.0 only)
|
|
327
|
+
dnm_own_directive:
|
|
328
|
+
status: provisional
|
|
329
|
+
60:
|
|
330
|
+
- cite: "OpenMP 6.0 §5.4, p.174"
|
|
331
|
+
quote: "If no directive-name-modifier is specified then the effect is as if a directive-name-modifier was specified with the directive name of the directive on which the clause appears."
|
|
332
|
+
dnm_single_leaf:
|
|
333
|
+
status: provisional
|
|
334
|
+
60:
|
|
335
|
+
- cite: "OpenMP 6.0 §19.2, p.528"
|
|
336
|
+
quote: "Some clauses are permitted only on a single leaf construct of the compound construct, in which case the effect is as if the clause is applied to that specific construct."
|
|
337
|
+
dnm_innermost_leaf:
|
|
338
|
+
status: provisional
|
|
339
|
+
60:
|
|
340
|
+
- cite: "OpenMP 6.0 §19.2, p.528"
|
|
341
|
+
quote: "Unless otherwise specified, the effect of any clause with the innermost-leaf property on a compound construct is as if it is applied only to the innermost leaf construct that permits it."
|
|
342
|
+
dnm_all_privatizing:
|
|
343
|
+
status: provisional
|
|
344
|
+
60:
|
|
345
|
+
- cite: "OpenMP 6.0 §19.2, p.528"
|
|
346
|
+
quote: "The effect of any clause with the all-privatizing property on a compound directive is as if it is applied to all leaf constructs that permit the clause and to which a data-sharing attribute clause that may create a private copy of the same list item is applied."
|
|
347
|
+
dnm_firstprivate:
|
|
348
|
+
status: provisional
|
|
349
|
+
60:
|
|
350
|
+
- cite: "OpenMP 6.0 §19.2, p.528"
|
|
351
|
+
quote: "To a worksharing construct that accepts the clause if one is among the constituent constructs;"
|
|
352
|
+
dnm_reduction:
|
|
353
|
+
status: provisional
|
|
354
|
+
60:
|
|
355
|
+
- cite: "OpenMP 6.0 §19.2, p.529"
|
|
356
|
+
quote: "For the parallel and teams constructs above, the effect of the reduction clause instead is as if each list item or, for any list item that is an array item, its corresponding base array or corresponding base pointer appears in a shared clause for the construct."
|
|
357
|
+
dnm_thread_limit:
|
|
358
|
+
status: provisional
|
|
359
|
+
60:
|
|
360
|
+
- cite: "OpenMP 6.0 §12.2, p.394"
|
|
361
|
+
quote: "If a thread_limit clause is not present on the teams construct, but the construct is closely nested inside a target construct on which the thread_limit clause is specified, the behavior is as if that thread_limit clause is also specified for the teams construct."
|
|
362
|
+
|
|
363
|
+
# --- C programs whose port showed the oracle does not separate ---
|
|
364
|
+
default_parallel_shared: # default(shared: <category>) on parallel
|
|
365
|
+
status: provisional
|
|
366
|
+
60:
|
|
367
|
+
- cite: "OpenMP 6.0 §7.1.1, p.213"
|
|
368
|
+
quote: "In a parallel construct, if no default clause is present, these variables are shared."
|
|
369
|
+
reduction_original_default: # original(shared) of a shared item
|
|
370
|
+
status: provisional
|
|
371
|
+
60:
|
|
372
|
+
- cite: "OpenMP 6.0 §7.6.10, p.252"
|
|
373
|
+
quote: "If the sharing argument is specified as default, original list items are assumed to be shared in the enclosing context unless determined not to be shared according to the rules specified in Section 7.1."
|