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,30 @@
|
|
|
1
|
+
/* Finding (C): a directive-name modifier in a linear clause sends
|
|
2
|
+
the clang front end into an endless loop.
|
|
3
|
+
|
|
4
|
+
Legal OpenMP 6.0 C: linear(x: for, step(2)) names the directive the
|
|
5
|
+
clause applies to (6.0 §5.4, p.174: "The directive-name-modifier is a
|
|
6
|
+
universal modifier that can be used on any clause"; linear, 6.0
|
|
7
|
+
§7.5.6, p.232). Expected: compiles
|
|
8
|
+
(or, for a compiler without the 6.0 modifier, one diagnostic).
|
|
9
|
+
|
|
10
|
+
Observed (2026-10-19): AFAR amdclang 24.0.0git and CCE craycc 19.0.0
|
|
11
|
+
(the omp60-c-clause-linear-directive_name program: also 20.0.2 and
|
|
12
|
+
21.0.3) print "error: expected expression" at the `for` twenty times,
|
|
13
|
+
then "fatal error: too many errors emitted, stopping now", and do not
|
|
14
|
+
exit: killed after 40 s with -fsyntax-only (the matrix: compile
|
|
15
|
+
timeout on all four toolchains). Without `for,` it compiles at once.
|
|
16
|
+
|
|
17
|
+
amdclang -fopenmp -fopenmp-version=60 -fsyntax-only
|
|
18
|
+
craycc -fopenmp -fopenmp-version=60 -fsyntax-only */
|
|
19
|
+
int main(void) {
|
|
20
|
+
int x = 0, b[8];
|
|
21
|
+
#pragma omp parallel for linear(x: for, step(2))
|
|
22
|
+
for (int i = 0; i < 8; i++) { b[i] = x; x += 2; }
|
|
23
|
+
return b[1];
|
|
24
|
+
}
|
|
25
|
+
// site:
|
|
26
|
+
// title: craycc -fopenmp-version=60: linear(x: for, step(2)) sends the front end into an endless loop after "too many errors"
|
|
27
|
+
// control: ../vendor/checks/src/other/control/clang-c-linear-directive-name-hang-control.c linear(x: step(2)) without the
|
|
28
|
+
// + directive-name
|
|
29
|
+
// + modifier
|
|
30
|
+
// end site
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/* Finding (C), reproducer replaced: at OpenMP 5.1
|
|
2
|
+
(the default of both clang C front ends) the iterator map-type modifier
|
|
3
|
+
is rejected.
|
|
4
|
+
|
|
5
|
+
Legal OpenMP 5.1 C: iterator(iterators-definition) is a map-type-modifier
|
|
6
|
+
of the map clause (5.1 §2.21.7.1 p.347). The iterator it = 0:1 has the
|
|
7
|
+
one value 0 (C ranges exclude the end, 5.1 §2.1.6 p.49), so the map is
|
|
8
|
+
map(tofrom: a[0:n]); with one instance no two instances share a
|
|
9
|
+
containing array (5.1 §2.21.7.1 p.353: "the list item instances that
|
|
10
|
+
would result from different values of the iterator must not have the
|
|
11
|
+
same containing array"). The first reproducer, map(iterator(it = 0:n),
|
|
12
|
+
tofrom: a[it]) as in omp_vv test_target_map_iterators.c, broke that
|
|
13
|
+
restriction and was withdrawn.
|
|
14
|
+
Expected: "RESULT ran_on_host=0 check=pass".
|
|
15
|
+
|
|
16
|
+
Observed (tuolumne, MI300A, -O2, HSA_XNACK 1 and 0, 3 runs each,
|
|
17
|
+
2026-10-22, data/evidence/triage_probe/map_iter.c, results/t27b/probes_fr1.jsonl):
|
|
18
|
+
- AFAR amdclang 24.0.0git and CCE craycc 19.0.0, 20.0.2, 21.0.3, with
|
|
19
|
+
their default flags and with -fopenmp-version=51: "error: incorrect
|
|
20
|
+
map type modifier, expected one of: 'always', 'close', 'mapper',
|
|
21
|
+
'present', 'ompx_hold'".
|
|
22
|
+
- At -fopenmp-version=52: AFAR correct in both modes; CCE craycc 19, 20
|
|
23
|
+
and 21 crash in the front end (internal compiler error, "clang
|
|
24
|
+
frontend command failed due to signal").
|
|
25
|
+
The AMD clang status table at the AFAR commit lists "device | iterators
|
|
26
|
+
in map clause or motion clauses | done" in its 5.1 section.
|
|
27
|
+
|
|
28
|
+
amdclang -fopenmp --offload-arch=gfx942 [-fopenmp-version=51] -O2
|
|
29
|
+
craycc -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa
|
|
30
|
+
-Xopenmp-target=amdgcn-amd-amdhsa -march=gfx942 -O2 */
|
|
31
|
+
#include <stdio.h>
|
|
32
|
+
#include <omp.h>
|
|
33
|
+
enum { n = 8 };
|
|
34
|
+
int main(void) {
|
|
35
|
+
int a[n], bad = 0, host_flag = 1;
|
|
36
|
+
for (int i = 0; i < n; i++) a[i] = i;
|
|
37
|
+
#pragma omp target map(iterator(it = 0:1), tofrom: a[it:n]) map(tofrom: host_flag)
|
|
38
|
+
{
|
|
39
|
+
host_flag = omp_is_initial_device() ? 1 : 0;
|
|
40
|
+
for (int i = 0; i < n; i++) a[i] += 1;
|
|
41
|
+
}
|
|
42
|
+
for (int i = 0; i < n; i++) bad += a[i] != i + 1;
|
|
43
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, bad ? "fail" : "pass");
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
// site:
|
|
47
|
+
// title: craycc/ftn: OpenMP 5.1/5.2/6.0 forms HPE does not claim are rejected, and some crash the compiler instead of a diagnostic
|
|
48
|
+
// control: ../vendor/checks/src/other/control/clang-c-map-iterator-omp51-control.c map(tofrom: a[0:n]) without the iterator
|
|
49
|
+
// + modifier
|
|
50
|
+
// same_as: catalog/cce-c-map-iterator-ice
|
|
51
|
+
// end site
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/* Finding (C): a declare target variable listed in shared on a
|
|
2
|
+
combined target construct is read with its host value.
|
|
3
|
+
|
|
4
|
+
Legal OpenMP 5.2 / 6.0 C. on_dev is a declare target variable (5.2
|
|
5
|
+
§7.8.1); the first target region sets its device copy to 1 (the host
|
|
6
|
+
copy stays 0). In the second region the shared clause applies only to
|
|
7
|
+
the teams leaf (5.2 §17.2: shared applies to the leaves that permit it,
|
|
8
|
+
target does not), so on_dev there is the target region's on_dev: the
|
|
9
|
+
device copy, which is present (implicitly map(tofrom), 5.2 §5.8.1: no
|
|
10
|
+
transfer for a present variable). Expected b[1] = 2*1 + 1 = 3, the same
|
|
11
|
+
as the third region (no shared clause).
|
|
12
|
+
|
|
13
|
+
Observed (HSA_XNACK 0 and 1, -O2): AFAR amdclang 24.0.0git, CCE craycc
|
|
14
|
+
19.0.0, 20.0.2 and 21.0.3 all print b[1]=2 (the host value 0) and
|
|
15
|
+
c[1]=3. The fourth region (teams loop nested in a target region, the
|
|
16
|
+
shared clause on teams; expected d[1]=3): CCE 19 and 21 print d[1]=3,
|
|
17
|
+
AFAR prints an indeterminate value (d[1]=1276187178 here), which makes
|
|
18
|
+
omp52/60-c-directive-teams_loop wrong_answer on AFAR. AFAR amdflang
|
|
19
|
+
and CCE ftn run the Fortran form of the same program
|
|
20
|
+
(omp52-directive-target_teams_loop: shared(a, b, on_dev) under
|
|
21
|
+
default(none)) correctly; the C ports of the five probe-region programs
|
|
22
|
+
(target parallel for simd, target parallel loop, target teams
|
|
23
|
+
distribute parallel for simd, target teams loop, 6.0 target teams
|
|
24
|
+
distribute simd) fail on every toolchain because of this.
|
|
25
|
+
|
|
26
|
+
amdclang -fopenmp --offload-arch=gfx942 -fopenmp-version=52 -O2
|
|
27
|
+
craycc -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa
|
|
28
|
+
-Xopenmp-target=amdgcn-amd-amdhsa -march=gfx942 -O2 */
|
|
29
|
+
#include <stdio.h>
|
|
30
|
+
#include <omp.h>
|
|
31
|
+
int on_dev = 0;
|
|
32
|
+
#pragma omp declare target(on_dev)
|
|
33
|
+
int main(void) {
|
|
34
|
+
int a[64], b[64], c[64], d[64];
|
|
35
|
+
for (int i = 0; i < 64; i++) { a[i] = i; b[i] = 0; c[i] = 0; d[i] = 0; }
|
|
36
|
+
#pragma omp target
|
|
37
|
+
{ on_dev = 1; }
|
|
38
|
+
#pragma omp target teams loop map(to: a) map(from: b) shared(a, b, on_dev)
|
|
39
|
+
for (int i = 0; i < 64; i++) b[i] = 2 * a[i] + on_dev;
|
|
40
|
+
#pragma omp target teams loop map(to: a) map(from: c)
|
|
41
|
+
for (int i = 0; i < 64; i++) c[i] = 2 * a[i] + on_dev;
|
|
42
|
+
#pragma omp target map(to: a) map(from: d)
|
|
43
|
+
{
|
|
44
|
+
#pragma omp teams loop shared(a, d, on_dev)
|
|
45
|
+
for (int i = 0; i < 64; i++) d[i] = 2 * a[i] + on_dev;
|
|
46
|
+
}
|
|
47
|
+
printf("with shared(on_dev): b[1]=%d without: c[1]=%d teams loop in "
|
|
48
|
+
"target with shared(on_dev): d[1]=%d (device copy is 1, host copy "
|
|
49
|
+
"%d)\n", b[1], c[1], d[1], on_dev);
|
|
50
|
+
return 0;
|
|
51
|
+
}
|
|
52
|
+
// site:
|
|
53
|
+
// title: craycc: a declare target variable listed in shared on target teams loop is read with its host value
|
|
54
|
+
// control: ../vendor/checks/src/other/control/clang-c-shared-declare-target-combined-control.c shared(a, b, on_dev) removed from
|
|
55
|
+
// + the
|
|
56
|
+
// + first target
|
|
57
|
+
// + teams loop
|
|
58
|
+
// end site
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
! # Finding: at -O2, CCE ftn 19/20/21 make a target region's write to a VALUE dummy
|
|
2
|
+
! # visible to the host (no transfer of the dummy; it is firstprivate in the region)
|
|
3
|
+
!
|
|
4
|
+
! - compilers: CCE ftn 19.0.0, 20.0.2, 21.0.3 (MI300A gfx942), -O2 and -O3, HSA_XNACK 0 and 1
|
|
5
|
+
! - expected: rd= 5 vout= 101 dev= 1
|
|
6
|
+
! - actual: rd= 5 vout= 203 dev= 1 (every run: 3 repeats per cell, CCE 19/20/21 x XNACK 0/1 x -O2/-O3)
|
|
7
|
+
! - rule: v is a scalar dummy with the VALUE attribute, without the TARGET, ALLOCATABLE or POINTER attribute,
|
|
8
|
+
! in no clause of the target construct, so it is not mapped: "If the above rules do not apply then a
|
|
9
|
+
! scalar variable is not mapped but instead has an implicit data-sharing attribute of firstprivate"
|
|
10
|
+
! (OpenMP 5.2 §5.8.1 p.149 l.8-9; 5.0 §2.19.7 p.315 l.9-10; 6.0 §7.9.3 p.277 l.22-23), and "In a target
|
|
11
|
+
! construct, variables that are not mapped after applying data-mapping attribute rules (see Section 5.8)
|
|
12
|
+
! are firstprivate" (5.2 §5.1.1 p.99 l.19-20). The region's v = 2*v + 1 writes its private copy, so the
|
|
13
|
+
! procedure's v is still 101 after the region and vout = v returns 101. (A VALUE scalar is Fortran 2003;
|
|
14
|
+
! OpenMP 5.0 §1.7 lists only the Fortran 2008 extension of VALUE as unspecified.)
|
|
15
|
+
! - what happens (not a map and not a copy-back): with CRAY_ACC_DEBUG=2 (CCE 19, HSA_XNACK 0) the -O2 build
|
|
16
|
+
! of results/dataenv/probe_fr1/vd_write.f90 (this program without its header and its dev region)
|
|
17
|
+
! launches `p_$ck_L23_3` from the call site at its line 23 (sub is inlined into the main program) and
|
|
18
|
+
! transfers only `r` ("allocate 'r'", then "copy to host, free 'r'"); nothing of v is transferred, yet
|
|
19
|
+
! the host reads 203. The -O0 build launches `sub_$ck_L6_1`, transfers the same `r`, and the host reads
|
|
20
|
+
! 101.
|
|
21
|
+
! (trace: results/dataenv/probe_fr1/trace.out; review, section 5)
|
|
22
|
+
! - conditions (each a one-change variant, CCE 19/20/21, HSA_XNACK 0 and 1, results/dataenv/probe_fr1/):
|
|
23
|
+
! - correct at -O0 and -O1; wrong at -O2 and -O3;
|
|
24
|
+
! - correct when the region only reads v (r = v);
|
|
25
|
+
! - correct when the region also calls omp_is_initial_device();
|
|
26
|
+
! - wrong with sub a module procedure too (the generator's form, the trial's 9 CCE cells, gfx942 and
|
|
27
|
+
! gfx90a, both modes: results/dataenv/pilot_all/).
|
|
28
|
+
! - same-compiler controls (all correct, -O2): firstprivate(v) on the target construct; v a by-reference
|
|
29
|
+
! intent(inout) dummy instead of VALUE; a local copy u = v written in the region instead of v.
|
|
30
|
+
! - other families: AFAR amdflang 24.0.0git (drop 24.3.0) correct on this file at -O0 to -O3, both modes;
|
|
31
|
+
! NVHPC 25.11 and 26.9 (A100, separate and managed) correct on the generator's module-procedure form
|
|
32
|
+
! (the trial's rows); this file was not run on NVHPC.
|
|
33
|
+
! - legality: offload.engine.prerun.check accepts it (offload.engine.rules with the race rule, and the AFAR flang
|
|
34
|
+
! front end); the region is executed by one initial thread; no compiler under test, gfortran or gcc is a
|
|
35
|
+
! legality witness.
|
|
36
|
+
! - found by: the data-environment pilot, rule omp-target-value-dummy-firstprivate
|
|
37
|
+
! (catalog/dataenv_rules.yaml); gate verdict confirmed on all 9 CCE cells.
|
|
38
|
+
! This 22-line reproducer is the reviewer's.
|
|
39
|
+
! CCE: ftn -fopenmp -O2 (module load cce/<v> craype-accel-amd-gfx942 rocm/<r>; module unload cray-mpich)
|
|
40
|
+
! AFAR: amdflang -fopenmp --offload-arch=gfx942 -O2
|
|
41
|
+
! Run: OMP_TARGET_OFFLOAD=mandatory ./a.out
|
|
42
|
+
subroutine sub(v, rd, vout)
|
|
43
|
+
integer, value :: v
|
|
44
|
+
integer, intent(out) :: rd, vout
|
|
45
|
+
integer :: r
|
|
46
|
+
r = -1
|
|
47
|
+
!$omp target map(from: r)
|
|
48
|
+
v = 2*v + 1
|
|
49
|
+
r = 5
|
|
50
|
+
!$omp end target
|
|
51
|
+
rd = r
|
|
52
|
+
vout = v ! CCE 19/20/21 -O2: 203; expected 101
|
|
53
|
+
end subroutine sub
|
|
54
|
+
|
|
55
|
+
program value_dummy_target_write
|
|
56
|
+
use omp_lib, only: omp_is_initial_device
|
|
57
|
+
implicit none
|
|
58
|
+
interface
|
|
59
|
+
subroutine sub(v, rd, vout)
|
|
60
|
+
integer, value :: v
|
|
61
|
+
integer, intent(out) :: rd, vout
|
|
62
|
+
end subroutine sub
|
|
63
|
+
end interface
|
|
64
|
+
integer :: rd, vout, dev
|
|
65
|
+
dev = -1
|
|
66
|
+
!$omp target map(from: dev)
|
|
67
|
+
dev = merge(0, 1, omp_is_initial_device())
|
|
68
|
+
!$omp end target
|
|
69
|
+
call sub(101, rd, vout)
|
|
70
|
+
print '(a,i0,a,i0,a,i0)', 'rd= ', rd, ' vout= ', vout, ' dev= ', dev
|
|
71
|
+
end program value_dummy_target_write
|
|
72
|
+
! site:
|
|
73
|
+
! title: ftn at -O2: a target region's write to a VALUE dummy, firstprivate there, becomes visible to the host
|
|
74
|
+
! end site
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
! Finding: defaultmap(none) on a target construct whose every
|
|
2
|
+
! referenced variable has a data-environment attribute is rejected by every
|
|
3
|
+
! compiler.
|
|
4
|
+
!
|
|
5
|
+
! Legal OpenMP 5.2: "If implicit-behavior is none, each variable that is
|
|
6
|
+
! specified by variable-category and is referenced in the construct but does
|
|
7
|
+
! not have a predetermined data-sharing and does not appear in an enter or
|
|
8
|
+
! link clause on a declare target directive must be explicitly listed in a
|
|
9
|
+
! data-environment attribute clause on the construct" (5.2 §5.8.7 p.162).
|
|
10
|
+
! a, b and host_flag are mapped; n is a named constant, not a variable; i is
|
|
11
|
+
! listed in private(i), a data-environment attribute clause (whether it is
|
|
12
|
+
! also predetermined private as a loop iteration variable, 5.2 §5.1.1 p.97,
|
|
13
|
+
! depends on reading target as a task generating construct; the finding
|
|
14
|
+
! does not rest on it). Expected: "RESULT ran_on_host=0 check=pass".
|
|
15
|
+
!
|
|
16
|
+
! Legality rests on the quoted spec text only (registry
|
|
17
|
+
! RUL-LEGAL-DEFAULTMAP-NONE): there is no independent compiler witness.
|
|
18
|
+
! Cited gfortran 13.3.1 -fopenmp as one; the maintainer withdrew
|
|
19
|
+
! gfortran/gcc -fopenmp as offload legality witnesses on 2026-10-23 (final
|
|
20
|
+
! review 3, data/reports/rulings.md), so the catalog cells are
|
|
21
|
+
! unsupported_everywhere (every family rejects), not compiler_bug (R12a
|
|
22
|
+
! cannot fire without a witness). The variant without private(i)
|
|
23
|
+
! (data/evidence/triage_probe/dmap_none_noi.f90) is contested.
|
|
24
|
+
! (2026-10-24): NVHPC 25.11 and 26.9 (wingtip, the configured
|
|
25
|
+
! witness) accept the omp50/52/60-clause-defaultmap-none programs, but
|
|
26
|
+
! that is no witness either (ruling R2): nvc also
|
|
27
|
+
! compiles and runs the illegal C defaultmap(none) variants
|
|
28
|
+
! (omp52/60-c-illegal-defaultmap-map-003, a referenced variable not
|
|
29
|
+
! listed), and nvfortran compiles a Fortran target defaultmap(none) that
|
|
30
|
+
! references unlisted x and n; NVHPC does not enforce defaultmap(none), so
|
|
31
|
+
! its accept says nothing about legality (offload.engine.confirm.witness
|
|
32
|
+
! uncalibrated; catalog/legality_witness.yaml calibration rows). The cells
|
|
33
|
+
! stay unsupported_everywhere.
|
|
34
|
+
!
|
|
35
|
+
! Observed (tuolumne, MI300A, both memory modes, -O2, 2026-10-22,
|
|
36
|
+
! data/evidence/triage_probe/dmap_none.f90 and dmap_none_noi.f90 (without private(i)),
|
|
37
|
+
! results/t27b/probes.jsonl): every compiler under test rejects this form
|
|
38
|
+
! (and the variant without private(i)):
|
|
39
|
+
! - AFAR amdflang 24.0.0git: "The DEFAULTMAP(NONE) clause requires that 'i'
|
|
40
|
+
! must be listed in a data-sharing attribute, data-mapping attribute, or
|
|
41
|
+
! is_device_ptr clause";
|
|
42
|
+
! - CCE 20.0.2, 21.0.3: ftn-1964 "Variable "I" must have its data mapping
|
|
43
|
+
! attribute explicitly declared because default map(none) was specified";
|
|
44
|
+
! - CCE 19.0.0: ftn-1964 "Variable "B" ..." although b is in map(from: b).
|
|
45
|
+
! The catalog's omp50/52/60-clause-defaultmap-none programs are rejected on
|
|
46
|
+
! every compiler because of it.
|
|
47
|
+
!
|
|
48
|
+
! amdflang -fopenmp --offload-arch=gfx942 -O2; ftn -fopenmp -O2
|
|
49
|
+
program p
|
|
50
|
+
use omp_lib, only: omp_is_initial_device
|
|
51
|
+
implicit none
|
|
52
|
+
integer, parameter :: n = 64
|
|
53
|
+
integer :: a(n), b(n), i, host_flag
|
|
54
|
+
a = [(i, i = 1, n)]
|
|
55
|
+
b = 0
|
|
56
|
+
host_flag = 1
|
|
57
|
+
!$omp target map(to: a) map(from: b) map(tofrom: host_flag) defaultmap(none) private(i)
|
|
58
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
59
|
+
do i = 1, n
|
|
60
|
+
b(i) = 2*a(i) + 1
|
|
61
|
+
end do
|
|
62
|
+
!$omp end target
|
|
63
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', &
|
|
64
|
+
merge('pass', 'fail', all(b == 2*a + 1))
|
|
65
|
+
end program p
|
|
66
|
+
! site:
|
|
67
|
+
! title: ftn: defaultmap(none) rejected although every referenced variable has a data-environment attribute (ftn-1964)
|
|
68
|
+
! control: ../vendor/checks/src/other/control/defaultmap-none-loop-variable-control.f90 defaultmap(none) removed
|
|
69
|
+
! end site
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
! loop bind(thread) in a parallel region in a target region: the binding
|
|
2
|
+
! region is not defined and the binding thread set is the encountering
|
|
3
|
+
! thread (5.2 §11.7.1 p.257-258), so every thread of the team runs all n
|
|
4
|
+
! logical iterations ("Each logical iteration is executed once per
|
|
5
|
+
! instance of the loop region that is encountered by exactly one thread
|
|
6
|
+
! that is a member of the binding thread set", 5.2 §11.7 p.257). Each
|
|
7
|
+
! iteration writes its own element hit(i, thread + 1): no data race even
|
|
8
|
+
! though the iterations may execute concurrently.
|
|
9
|
+
! Expected: every thread ran all 64 iterations (0 short).
|
|
10
|
+
! Observed (MI300A, HSA_XNACK 0 and 1, 3 runs each): AFAR flang: 256
|
|
11
|
+
! threads, 1 iteration each for threads 0-3 (the team shares the
|
|
12
|
+
! iterations, as bind(parallel) would); CCE 19, 20, 21 ftn: 37-38, 1, 1, 1
|
|
13
|
+
! at HSA_XNACK=1 and 1 or 2 per thread at HSA_XNACK=0; all 256 threads
|
|
14
|
+
! short. The C form (AMD clang) is correct: 64 per thread.
|
|
15
|
+
! : on CCE the same loop without the loop
|
|
16
|
+
! directive fails too, and the program is correct at -O0: CCE's failure is
|
|
17
|
+
! the sequential-loop defect of cce19-target-parallel-guarded-loop.f90, not
|
|
18
|
+
! a bind(thread) defect. On AFAR it is a bind(thread) defect.
|
|
19
|
+
program bind_thread_repro
|
|
20
|
+
use omp_lib
|
|
21
|
+
implicit none
|
|
22
|
+
integer, parameter :: n = 64
|
|
23
|
+
integer :: hit(n, 1024), nthr, tid, i, k, short
|
|
24
|
+
hit = 0
|
|
25
|
+
nthr = -1
|
|
26
|
+
!$omp target map(tofrom: hit, nthr)
|
|
27
|
+
!$omp parallel private(tid)
|
|
28
|
+
tid = omp_get_thread_num()
|
|
29
|
+
if (tid == 0) nthr = omp_get_num_threads()
|
|
30
|
+
!$omp loop bind(thread)
|
|
31
|
+
do i = 1, n
|
|
32
|
+
if (tid < 1024) hit(i, tid + 1) = hit(i, tid + 1) + 1
|
|
33
|
+
end do
|
|
34
|
+
!$omp end loop
|
|
35
|
+
!$omp end parallel
|
|
36
|
+
!$omp end target
|
|
37
|
+
short = 0
|
|
38
|
+
do k = 1, min(nthr, 1024)
|
|
39
|
+
if (sum(hit(:, k)) /= n) short = short + 1
|
|
40
|
+
end do
|
|
41
|
+
print '(a,i0,a,4(1x,i0))', 'threads=', nthr, ' iterations run by threads 0-3:', &
|
|
42
|
+
(sum(hit(:, k)), k = 1, 4)
|
|
43
|
+
print '(a,i0,a)', 'threads that did not run all 64 iterations: ', short, ' (expected 0)'
|
|
44
|
+
end program bind_thread_repro
|
|
45
|
+
! site:
|
|
46
|
+
! title: ftn -fopenmp: a sequential DO loop executed by one thread of a target parallel region runs only some of its iterations
|
|
47
|
+
! + (-O2)
|
|
48
|
+
! control: ../vendor/checks/src/other/control/fortran-loop-bind-thread-in-parallel-control.f90 the loop directive removed (each
|
|
49
|
+
! + thread
|
|
50
|
+
! + runs a
|
|
51
|
+
! + plain DO loop)
|
|
52
|
+
! same_as: cce19-target-parallel-guarded-loop
|
|
53
|
+
! end site
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
! Schedule(static, 4) on a parallel do in a target region:
|
|
2
|
+
! "iterations are divided into chunks of size chunk_size, and the chunks
|
|
3
|
+
! are assigned to the threads in the team in a round-robin fashion in the
|
|
4
|
+
! order of the thread number" (5.2 §11.5.3 p.252), so iteration i runs on
|
|
5
|
+
! thread mod((i - 1)/4, T). schedule(static) without a chunk size: "at
|
|
6
|
+
! most one chunk is distributed to each thread" (same page), so each
|
|
7
|
+
! thread's iterations are contiguous.
|
|
8
|
+
! Expected: 0 wrong, 0 second chunks. Observed (MI300A, HSA_XNACK 0 and 1,
|
|
9
|
+
! 3 runs each): AFAR flang, CCE 19, 20 and 21 ftn: 256 threads,
|
|
10
|
+
! tid(1:12) = 0 1 2 ... 11 for both loops (one iteration at a time,
|
|
11
|
+
! round-robin), 997 of 1000 iterations on the wrong thread, 744 second
|
|
12
|
+
! chunks. The C form (sched_repro.c in results/t27a/diag/d2, AMD clang)
|
|
13
|
+
! is correct: tid = 0 0 0 0 1 1 1 1 ...
|
|
14
|
+
program sched_repro
|
|
15
|
+
use omp_lib
|
|
16
|
+
implicit none
|
|
17
|
+
integer, parameter :: m = 1000
|
|
18
|
+
integer :: tid(m), tid2(m), nthr, i, bad, bad2
|
|
19
|
+
tid = -1
|
|
20
|
+
tid2 = -1
|
|
21
|
+
nthr = -1
|
|
22
|
+
!$omp target map(from: tid, tid2, nthr)
|
|
23
|
+
!$omp parallel do schedule(static, 4)
|
|
24
|
+
do i = 1, m
|
|
25
|
+
if (i == 1) nthr = omp_get_num_threads()
|
|
26
|
+
tid(i) = omp_get_thread_num()
|
|
27
|
+
end do
|
|
28
|
+
!$omp end parallel do
|
|
29
|
+
!$omp parallel do schedule(static)
|
|
30
|
+
do i = 1, m
|
|
31
|
+
tid2(i) = omp_get_thread_num()
|
|
32
|
+
end do
|
|
33
|
+
!$omp end parallel do
|
|
34
|
+
!$omp end target
|
|
35
|
+
bad = 0
|
|
36
|
+
do i = 1, m
|
|
37
|
+
if (tid(i) /= mod((i - 1)/4, nthr)) bad = bad + 1
|
|
38
|
+
end do
|
|
39
|
+
! static without chunk: at most one chunk (contiguous) per thread
|
|
40
|
+
bad2 = 0
|
|
41
|
+
do i = 2, m
|
|
42
|
+
if (tid2(i) /= tid2(i - 1) .and. any(tid2(1:i - 1) == tid2(i))) bad2 = bad2 + 1
|
|
43
|
+
end do
|
|
44
|
+
print '(a,i0,a,12(1x,i0))', 'threads=', nthr, ' static,4 tid(1:12)=', tid(1:12)
|
|
45
|
+
print '(a,12(1x,i0))', 'static tid(1:12)=', tid2(1:12)
|
|
46
|
+
print '(a,i0,a,i0,a)', 'static,4 iterations on the wrong thread: ', bad, ' of ', m, ' (expected 0)'
|
|
47
|
+
print '(a,i0,a)', 'static: iterations starting a second chunk of a thread: ', bad2, ' (expected 0)'
|
|
48
|
+
end program sched_repro
|
|
49
|
+
! site:
|
|
50
|
+
! title: ftn: schedule(static, 4) and schedule(static) on a parallel do in a target region deal iterations out one at a time
|
|
51
|
+
! control: ../vendor/checks/src/other/control/fortran-schedule-static-in-target-control.f90 schedule(static, 1) and its check
|
|
52
|
+
! + (iteration
|
|
53
|
+
! + i on
|
|
54
|
+
! + thread mod(i - 1, T)) instead of schedule(static, 4)
|
|
55
|
+
! end site
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
! # Finding (from the data/bench/fresh draft fresh-097): CCE rejects a common block name in a
|
|
2
|
+
! map clause
|
|
3
|
+
!
|
|
4
|
+
! - source: data/bench/fresh/fresh-097.f90 (GCC Bugzilla 115577 with the reader of GCC PR 115559): a
|
|
5
|
+
! common block in declare target link, mapped by name on target enter data. CCE rejects the map
|
|
6
|
+
! clause with or without declare target, with or without a map type, on target enter data and on
|
|
7
|
+
! target; this reproducer is the shortest form
|
|
8
|
+
! - compilers: CCE 19.0.0, 20.0.2 and 21.0.3 ftn, -fopenmp -O2
|
|
9
|
+
! - expected: compiles and prints wild-check: pass. A Fortran list item may be "a common block name
|
|
10
|
+
! (enclosed in slashes)" (OpenMP 5.2 §3.2.1 p.61 l.6), and "When a named common block appears in
|
|
11
|
+
! an OpenMP argument list, it has the same meaning and restrictions as if every explicit member of
|
|
12
|
+
! the common block appeared in the list" (l.11-13); the map clause takes a locator list (§5.8.3
|
|
13
|
+
! p.150), whose items are variable list items (§3.2.1 p.61 l.7-8). OpenMP 5.0, which HPE claims in
|
|
14
|
+
! full ("CCE supports full OpenMP 5.0", intro_openmp(7)), already says it: "A list item is a
|
|
15
|
+
! variable, array section or common block name (enclosed in slashes) ... a common block name
|
|
16
|
+
! specified in a data-sharing attribute, a data copying or a data-mapping attribute clause must be
|
|
17
|
+
! declared to be a common block in the same scoping unit" (5.0 §2.1 p.39 l.11-20)
|
|
18
|
+
! - actual: ftn-534: 'Common block "MYCOMMON" must not be specified on the MAP clause on directive
|
|
19
|
+
! !$OMP TARGET.' (and "... TARGET ENTER DATA." for the draft), every release, both memory modes
|
|
20
|
+
! - control (same compiler): the members named instead, map(to: A, B, C), compile and print
|
|
21
|
+
! wild-check: pass (data/reports/fresh-drafts/d097-target-members.f90, d097-members.f90)
|
|
22
|
+
! - other families: AFAR compiles and prints wild-check: pass (MI300A HSA_XNACK 1 and 0; MI250X).
|
|
23
|
+
! NVHPC 25.11 rejects the draft's declare target link(/mycommon/) as a syntax error and 26.9 says
|
|
24
|
+
! LINK is not implemented
|
|
25
|
+
! - legality: legal by reading (5.0 and 5.2 text above; the common block is declared in the scoping
|
|
26
|
+
! unit of the clause)
|
|
27
|
+
! - evidence: results/fresh-drafts/tuo-p1.jsonl, tuo2-q4.jsonl, tuo3-r*-c.jsonl, tioga/tioga-d.jsonl (review)
|
|
28
|
+
program main
|
|
29
|
+
integer :: A(2), C, r
|
|
30
|
+
real :: B
|
|
31
|
+
common /mycommon/ A, B, C
|
|
32
|
+
A = [1, 2]; B = 2.0; C = 7
|
|
33
|
+
r = 0
|
|
34
|
+
!$omp target map(to: /mycommon/) map(from: r)
|
|
35
|
+
if (A(1) == 1 .and. A(2) == 2 .and. B == 2.0 .and. C == 7) r = 1
|
|
36
|
+
!$omp end target
|
|
37
|
+
if (r == 1) then
|
|
38
|
+
print *, 'wild-check: pass'
|
|
39
|
+
else
|
|
40
|
+
print *, 'wild-check: fail'
|
|
41
|
+
end if
|
|
42
|
+
end program main
|
|
43
|
+
! site:
|
|
44
|
+
! title: ftn: a common block name in a map clause is rejected (ftn-534)
|
|
45
|
+
! control: ../vendor/checks/src/cce/control/cce-common-block-name-in-map-rejected-control.f90 the members named instead: map(to:
|
|
46
|
+
! + A, B, C)
|
|
47
|
+
! end site
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
! # Finding (from the data/bench/fresh draft fresh-106): CCE ICE on an IF with one
|
|
2
|
+
! operand that guards a STOP directly in a target region
|
|
3
|
+
!
|
|
4
|
+
! - the one-operand form of fresh/cce-if-stop-in-target-ice.f90 (see its header for the source):
|
|
5
|
+
! `if (x /= 1) stop 1` directly in a target region; `if (allocated(j)) stop 1`,
|
|
6
|
+
! `if (.not. allocated(j)) stop 1` and `if (allocated(j)) error stop 1` give the same ICE
|
|
7
|
+
! (data/reports/fresh-drafts/d106-e2.f90, d106-e7.f90, d106-e6.f90; CCE 21 rejects the ERROR STOP
|
|
8
|
+
! instead: "Non-localized coarray control/access statements are not allowed in an OpenMP
|
|
9
|
+
! explicit region")
|
|
10
|
+
! - compilers: CCE 19.0.0, 20.0.2 and 21.0.3 ftn, -fopenmp -O2 (gfx942 and gfx90a)
|
|
11
|
+
! - expected: compiles and prints x 11 (OpenMP 5.2 §4.3 p.76 l.13-21: "A structured block ... may
|
|
12
|
+
! contain STOP or ERROR STOP statements"); x is 1 on entry, so the STOP is not reached
|
|
13
|
+
! - actual: INTERNAL COMPILER ERROR "COND PDG 20 with no stmts." (pdgcs/v_fs.c line 2323 in CCE 19,
|
|
14
|
+
! 2325 in CCE 20 and 21)
|
|
15
|
+
! - control (same compiler): `if (x /= 1) x = -100` (data/reports/fresh-drafts/d106-r1-ctl.f90)
|
|
16
|
+
! compiles and prints x 11
|
|
17
|
+
! - other families: AFAR compiles and prints x 11 (MI300A HSA_XNACK 1 and 0; MI250X)
|
|
18
|
+
! - related: catalog/cce-flang-stop-in-target-crash.f90
|
|
19
|
+
! - legality: legal by reading
|
|
20
|
+
! - evidence: results/fresh-drafts/tuo4-r*.jsonl, tioga/tioga2.jsonl (d106-r1.f90, identical to the
|
|
21
|
+
! program below), tuo2-q1.jsonl (d106-e3.f90, the same with an unused allocatable) (review)
|
|
22
|
+
program p
|
|
23
|
+
implicit none
|
|
24
|
+
integer :: x
|
|
25
|
+
x = 1
|
|
26
|
+
!$omp target map(tofrom: x)
|
|
27
|
+
if (x /= 1) stop 1
|
|
28
|
+
x = 11
|
|
29
|
+
!$omp end target
|
|
30
|
+
print *, 'x', x
|
|
31
|
+
end program p
|
|
32
|
+
! site:
|
|
33
|
+
! title: ftn: an IF statement guarding STOP in device code: the STOP runs although its condition is false (target loop), or an
|
|
34
|
+
! + internal compiler error (directly in a target region)
|
|
35
|
+
! control: ../vendor/checks/src/cce/control/cce-if-stop-in-target-ice-one-condition-control.f90 the IF with an assignment instead
|
|
36
|
+
! + of STOP
|
|
37
|
+
! same_as: catalog/cce-flang-stop-in-target-crash
|
|
38
|
+
! end site
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
! # Finding (from the data/bench/fresh draft fresh-106): CCE ICE on an IF that guards a STOP
|
|
2
|
+
! directly in a target region
|
|
3
|
+
!
|
|
4
|
+
! - source: data/bench/fresh/fresh-106.f90 (GCC Bugzilla 119905, libgomp map-alloc-comp-11.f90:
|
|
5
|
+
! recursive allocatable components, checks that end in STOP inside the target region). The ICE
|
|
6
|
+
! needs neither the derived types nor ALLOCATED: it needs an IF whose action is STOP, directly in
|
|
7
|
+
! a target region (not inside a loop construct: the catalog's `if (a(i) < 0) stop 1` inside
|
|
8
|
+
! target teams distribute parallel do compiles, see Related). With two operands joined by .or.
|
|
9
|
+
! (this file) the ICE is the draft's; with one operand it is another ICE
|
|
10
|
+
! (fresh/cce-if-stop-in-target-ice-one-condition.f90)
|
|
11
|
+
! - compilers: CCE 19.0.0, 20.0.2 and 21.0.3 ftn, -fopenmp -O2 (gfx942 and gfx90a)
|
|
12
|
+
! - expected: compiles and prints x 11. "A structured block ... may contain STOP or ERROR STOP
|
|
13
|
+
! statements" (OpenMP 5.2 §4.3 p.76 l.13-21); x is 1 on entry, so the STOP is not reached
|
|
14
|
+
! - actual: INTERNAL COMPILER ERROR "Condition statement not found in condition node"
|
|
15
|
+
! (pdgcs/v_region.c line 636 in CCE 19 and 20, line 646 in CCE 21), the ICE of the draft
|
|
16
|
+
! - control (same compiler): the same IF with an assignment instead of the STOP,
|
|
17
|
+
! `if (x /= 1 .or. x > 5) x = -100` (data/reports/fresh-drafts/d106-r2-ctl.f90), compiles and
|
|
18
|
+
! prints x 11
|
|
19
|
+
! - other families: AFAR compiles and prints x 11 (MI300A HSA_XNACK 1 and 0; MI250X). NVHPC rejects
|
|
20
|
+
! the draft's recursive allocatable components (a Fortran 2008 feature)
|
|
21
|
+
! - related: catalog/cce-flang-stop-in-target-crash.f90 (an unreached IF ... STOP inside a target
|
|
22
|
+
! loop compiles, and the device executes the STOP): the same construct, a different outcome,
|
|
23
|
+
! plausibly the same root cause (the condition of an IF whose action is STOP is lost)
|
|
24
|
+
! - legality: legal by reading
|
|
25
|
+
! - evidence: results/fresh-drafts/tuo4-r*.jsonl, tioga/tioga2.jsonl (d106-r2.f90, identical to the
|
|
26
|
+
! program below), tuo2-q1.jsonl, tuo3-r*-c.jsonl, tioga/tioga-d.jsonl (d106-e4.f90, the same with an
|
|
27
|
+
! unused allocatable) (review)
|
|
28
|
+
program p
|
|
29
|
+
implicit none
|
|
30
|
+
integer :: x
|
|
31
|
+
x = 1
|
|
32
|
+
!$omp target map(tofrom: x)
|
|
33
|
+
if (x /= 1 .or. x > 5) stop 1
|
|
34
|
+
x = 11
|
|
35
|
+
!$omp end target
|
|
36
|
+
print *, 'x', x
|
|
37
|
+
end program p
|
|
38
|
+
! site:
|
|
39
|
+
! title: ftn: an IF statement guarding STOP in device code: the STOP runs although its condition is false (target loop), or an
|
|
40
|
+
! + internal compiler error (directly in a target region)
|
|
41
|
+
! control: ../vendor/checks/src/cce/control/cce-if-stop-in-target-ice-control.f90 the IF with an assignment instead of STOP
|
|
42
|
+
! same_as: catalog/cce-flang-stop-in-target-crash
|
|
43
|
+
! end site
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
! # Finding (from the data/bench/fresh draft fresh-022): CCE 19/20 abort on a list-directed
|
|
2
|
+
! PRINT in a target region in copy mode
|
|
3
|
+
!
|
|
4
|
+
! - source: data/bench/fresh/fresh-022.f90 (llvm-project issue 166338, the reporter's program unchanged)
|
|
5
|
+
! - compilers: CCE 19.0.0 and 20.0.2 ftn, -fopenmp -O2, OMP_TARGET_OFFLOAD=mandatory; MI300A (gfx942)
|
|
6
|
+
! at HSA_XNACK=0 and MI250X (gfx90a, Tioga) at HSA_XNACK=0
|
|
7
|
+
! - expected: "Hello, world!" from the device. PRINT is a base-language statement; OpenMP 5.2 places
|
|
8
|
+
! no restriction on I/O statements in a target region (the restrictions on structured blocks,
|
|
9
|
+
! §4.3 p.76-77, concern branches into and out of the block), and an implementation is compliant
|
|
10
|
+
! only if it "compiles and executes all other conforming programs" (§1.6 p.34 l.22-24). HPE
|
|
11
|
+
! documents the case: "Fortran PRINT
|
|
12
|
+
! statements are supported, with limitations, when called from OpenMP offload regions compiled for
|
|
13
|
+
! AMD GPU targets. The current implementation supports PRINT statements with a single scalar value
|
|
14
|
+
! of type character, integer, real, or complex" (intro_openmp(7), CCE 19.0.0 and 20.0.2,
|
|
15
|
+
! "Printing from GPU kernels"; data/index/claims/)
|
|
16
|
+
! - actual: CCE 19 and 20 at HSA_XNACK=0: "Memory access fault by GPU node-4 ... Reason: Unknown",
|
|
17
|
+
! SIGABRT, nothing printed (MI300A three runs each; MI250X). At HSA_XNACK=1 correct. The same with
|
|
18
|
+
! `print *, 42` (data/reports/fresh-drafts/d022-list-int.f90) and with two list-directed PRINTs
|
|
19
|
+
! (d022-two-lists.f90)
|
|
20
|
+
! - control (same compiler): the formatted `print '(a)', "Hello, world!"`
|
|
21
|
+
! (data/reports/fresh-drafts/d022-fmt-literal.f90) prints the line on CCE 19/20 at XNACK 0 and 1.
|
|
22
|
+
! With a mapped scalar written in the same region the list-directed PRINT also works
|
|
23
|
+
! (d022-map-only.f90, d022-list-literal-dev.f90): the abort needs a region without other data
|
|
24
|
+
! - other families: AFAR, CCE 21.0.3 and NVHPC 25.11/26.9 (A100, separate and managed memory) print
|
|
25
|
+
! the line
|
|
26
|
+
! - legality: legal by reading (no OpenMP construct but target; no data)
|
|
27
|
+
! - evidence: results/fresh-drafts/tuo*-*.jsonl, tioga/tioga-a.jsonl, wingtip/nv.jsonl (runs of the review);
|
|
28
|
+
! the data/bench/fresh ground truth (data/bench/fresh/outcomes.csv: cce19/cce20
|
|
29
|
+
! copy crash on gfx942 and gfx90a)
|
|
30
|
+
program reproducer
|
|
31
|
+
implicit none
|
|
32
|
+
!$omp target
|
|
33
|
+
print *, "Hello, world!"
|
|
34
|
+
!$omp end target
|
|
35
|
+
end program reproducer
|
|
36
|
+
! site:
|
|
37
|
+
! title: ftn: a list-directed PRINT in a target region aborts the run in copy mode
|
|
38
|
+
! control: ../vendor/checks/src/cce/control/cce-list-directed-print-in-target-copy-crash-control.f90 a formatted PRINT, print '(a)',
|
|
39
|
+
! + instead of list-directed print *
|
|
40
|
+
! end site
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
! # Finding (from the data/bench/fresh draft fresh-084): CCE 19 crashes on a two-dimensional
|
|
2
|
+
! automatic array in copyout in copy mode (OpenACC)
|
|
3
|
+
!
|
|
4
|
+
! - source: data/bench/fresh/fresh-084.f90 (reconstructed from the ICON workaround at
|
|
5
|
+
! src/atm_dyn_iconam/mo_nh_supervise.f90, icon-model 8597da45, line 765: an automatic array in
|
|
6
|
+
! copyout, zeroed in kernels and filled in a parallel loop). Neither the kernels region nor the
|
|
7
|
+
! copyin array matters; the automatic array's rank does (the one-dimensional form,
|
|
8
|
+
! data/reports/fresh-drafts/d084-min.f90, is correct)
|
|
9
|
+
! - compilers: CCE 19.0.0 ftn -h acc -O2; MI300A HSA_XNACK=0, MI250X (Tioga) HSA_XNACK=0
|
|
10
|
+
! - expected: s 3150.0. copyout(w) on the data construct allocates w on the device at entry and
|
|
11
|
+
! transfers it out at exit when the reference counters reach zero (OpenACC 3.4 §2.7.9 p.56
|
|
12
|
+
! l.1932-1953); the parallel loop writes every element, so w(i, k) = i*k on the host after the
|
|
13
|
+
! region and the sum over i = 1..20, k = 1..5 is 210 * 15 = 3150
|
|
14
|
+
! - actual: SIGSEGV (exit -11), nothing printed, three runs of three; at HSA_XNACK=1 correct
|
|
15
|
+
! - control (same compiler): w a fixed-size local w(20, 5) instead of the automatic w(nb, nl)
|
|
16
|
+
! prints s 3150.0 at XNACK 0 and 1 (data/reports/fresh-drafts/d084-min2d-fixed.f90); so do an
|
|
17
|
+
! allocatable vn_aux in the draft (d084-allocatable.f90) and the one-dimensional automatic array
|
|
18
|
+
! (d084-min.f90)
|
|
19
|
+
! - other families: CCE 20.0.2 and 21.0.3 print s 3150.0 (both modes); NVHPC 25.11 and 26.9 print
|
|
20
|
+
! s 3150.0 on this program and run the draft correctly (A100, separate and managed
|
|
21
|
+
! memory); AFAR has no Fortran OpenACC
|
|
22
|
+
! - legality: legal by reading
|
|
23
|
+
! - evidence: results/fresh-drafts/tuo-p2.jsonl, tuo2-q2.jsonl, tuo3-r*-b.jsonl, tioga/tioga-b.jsonl,
|
|
24
|
+
! wingtip/nv.jsonl, wingtip/nv4.jsonl (review)
|
|
25
|
+
module m
|
|
26
|
+
implicit none
|
|
27
|
+
contains
|
|
28
|
+
subroutine fill(nb, nl, s)
|
|
29
|
+
integer, intent(in) :: nb, nl
|
|
30
|
+
real(8), intent(out) :: s
|
|
31
|
+
real(8) :: w(nb, nl)
|
|
32
|
+
integer :: i, k
|
|
33
|
+
!$acc data copyout(w)
|
|
34
|
+
!$acc parallel loop collapse(2)
|
|
35
|
+
do k = 1, nl
|
|
36
|
+
do i = 1, nb
|
|
37
|
+
w(i, k) = i * k
|
|
38
|
+
end do
|
|
39
|
+
end do
|
|
40
|
+
!$acc end data
|
|
41
|
+
s = sum(w)
|
|
42
|
+
end subroutine fill
|
|
43
|
+
end module m
|
|
44
|
+
|
|
45
|
+
program main
|
|
46
|
+
use m
|
|
47
|
+
implicit none
|
|
48
|
+
real(8) :: s
|
|
49
|
+
call fill(20, 5, s)
|
|
50
|
+
print *, 's', s
|
|
51
|
+
end program main
|
|
52
|
+
! site:
|
|
53
|
+
! title: ftn 19 (OpenACC): a two-dimensional automatic array in copyout crashes the run in copy mode
|
|
54
|
+
! control: ../vendor/checks/src/cce/control/cce19-acc-automatic-array-copyout-copy-crash-control.f90 w a fixed-size local array
|
|
55
|
+
! + w(20, 5) instead of the automatic w(nb, nl)
|
|
56
|
+
! end site
|