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,81 @@
|
|
|
1
|
+
! # Draft finding: acc34-w-loop-in-routine on cce19
|
|
2
|
+
!
|
|
3
|
+
! - compiler: cce19
|
|
4
|
+
! - toolchain: cce19; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog acc34-w-loop-in-routine (f90, version 34, sha256 1499c90f659f38cf)
|
|
6
|
+
! - expected: check=pass (trusted; elision + model)
|
|
7
|
+
! - actual: wrong_answer check=fail (check_fail: ran_on_host=0 check=fail)
|
|
8
|
+
! - verdict: compiler_bug by rule R20-runtime-bug: a legal program fails at run time, deterministically, against an expected value
|
|
9
|
+
! from two or more independent sources with an executed witness, and another toolchain, mode, arch or the elision gives the
|
|
10
|
+
! expected value
|
|
11
|
+
! - reason: expected trusted check=pass (elision + model): stored main verdict: elision + model agree; witnesses: elision
|
|
12
|
+
! - citations: RUL-DERIVED-NEEDS-EXECUTION (rulings.md); RUL-WITNESS-PER-MODE (rulings.md);
|
|
13
|
+
! RUL-SAME-COMPILER-RUNS (rulings.md); RUL-PRESENCE-WITNESS (rulings.md); RUL-METAMORPHIC-OTHER-FAMILY
|
|
14
|
+
! (rulings.md)
|
|
15
|
+
! - legality: legal: offload.engine.prerun.check accepts it (rerun: offload.engine.rules with the
|
|
16
|
+
! race rule and the restriction checks, and the AFAR flang front end, not under test here); no
|
|
17
|
+
! compiler under test, gfortran or gcc is a legality witness
|
|
18
|
+
! - witnesses: elision
|
|
19
|
+
! - withdrawn: none
|
|
20
|
+
!
|
|
21
|
+
! Generated by compliance.widen (OpenACC 3.4, free-form Fortran; catalog widening). Do not edit.
|
|
22
|
+
! id: acc34-w-loop-in-routine
|
|
23
|
+
! primary atom: base.device.loop_in_routine
|
|
24
|
+
! atoms: base.device.loop_in_routine
|
|
25
|
+
! legal: yes
|
|
26
|
+
! observable: yes
|
|
27
|
+
! ran_on_host: inside the compute region of interest (acc_on_device)
|
|
28
|
+
! evidence: construct
|
|
29
|
+
! needs: none
|
|
30
|
+
! std: f2008
|
|
31
|
+
! feature: a loop seq construct inside a routine seq procedure called in a parallel loop
|
|
32
|
+
! spec: OpenACC 3.4 §2.9 (loop construct) and §2.15.1 (routine seq: a loop construct in it must be seq)
|
|
33
|
+
module wmod
|
|
34
|
+
implicit none
|
|
35
|
+
contains
|
|
36
|
+
subroutine rowsum(x, s)
|
|
37
|
+
!$acc routine seq
|
|
38
|
+
integer, intent(in) :: x(:)
|
|
39
|
+
integer, intent(out) :: s
|
|
40
|
+
integer :: k
|
|
41
|
+
s = 0
|
|
42
|
+
!$acc loop seq
|
|
43
|
+
do k = 1, size(x)
|
|
44
|
+
s = s + x(k)
|
|
45
|
+
end do
|
|
46
|
+
end subroutine rowsum
|
|
47
|
+
end module wmod
|
|
48
|
+
|
|
49
|
+
program wide_prog
|
|
50
|
+
use openacc, only: acc_device_host, acc_on_device
|
|
51
|
+
use wmod
|
|
52
|
+
implicit none
|
|
53
|
+
integer, parameter :: n = 64
|
|
54
|
+
integer :: a(n), b(n), ref(n)
|
|
55
|
+
integer :: a2(4, n)
|
|
56
|
+
integer :: k
|
|
57
|
+
integer :: i, host_flag
|
|
58
|
+
logical :: ok
|
|
59
|
+
do i = 1, n
|
|
60
|
+
a(i) = i
|
|
61
|
+
b(i) = 0
|
|
62
|
+
ref(i) = 10*i
|
|
63
|
+
end do
|
|
64
|
+
do i = 1, n
|
|
65
|
+
do k = 1, 4
|
|
66
|
+
a2(k, i) = k*i
|
|
67
|
+
end do
|
|
68
|
+
end do
|
|
69
|
+
host_flag = 1
|
|
70
|
+
!$acc parallel loop copyin(a2) copyout(b) copy(host_flag)
|
|
71
|
+
do i = 1, n
|
|
72
|
+
call rowsum(a2(:, i), b(i))
|
|
73
|
+
if (i == 1) host_flag = merge(1, 0, acc_on_device(acc_device_host))
|
|
74
|
+
end do
|
|
75
|
+
ok = all(b == ref)
|
|
76
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
77
|
+
end program wide_prog
|
|
78
|
+
! site:
|
|
79
|
+
! title: ftn -h acc: a loop seq construct inside a routine seq procedure gives wrong sums
|
|
80
|
+
! control: ../vendor/checks/src/cce/control/cce-acc-loop-seq-in-routine-wrong-control.f90 the loop seq directive removed
|
|
81
|
+
! end site
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
! # Draft finding: acc34-w-stop-unreached on cce20
|
|
2
|
+
!
|
|
3
|
+
! - compiler: cce20
|
|
4
|
+
! - toolchain: cce20; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog acc34-w-stop-unreached (f90, version 34, sha256 22669cbf97756bcb)
|
|
6
|
+
! - expected: check=pass (trusted; elision + model)
|
|
7
|
+
! - actual: crash Thread execution stopped at FILE ../../acc34-w-stop-unreached.f90 LINE 28 due to a regular STOP statement. ...
|
|
8
|
+
! (repeated; crash: SIGABRT)
|
|
9
|
+
! - verdict: compiler_bug by rule R20-runtime-bug: a legal program fails at run time, deterministically, against an expected value
|
|
10
|
+
! from two or more independent sources with an executed witness, and another toolchain, mode, arch or the elision gives the
|
|
11
|
+
! expected value
|
|
12
|
+
! - reason: expected trusted check=pass (elision + model): stored main verdict: elision + model agree; witnesses: elision
|
|
13
|
+
! - citations: RUL-DERIVED-NEEDS-EXECUTION (rulings.md); RUL-WITNESS-PER-MODE (rulings.md);
|
|
14
|
+
! RUL-SAME-COMPILER-RUNS (rulings.md); RUL-PRESENCE-WITNESS (rulings.md); RUL-METAMORPHIC-OTHER-FAMILY
|
|
15
|
+
! (rulings.md)
|
|
16
|
+
! - legality: legal: offload.engine.prerun.check accepts it (rerun: offload.engine.rules with the
|
|
17
|
+
! race rule and the restriction checks, and the AFAR flang front end, not under test here); no
|
|
18
|
+
! compiler under test, gfortran or gcc is a legality witness
|
|
19
|
+
! - witnesses: elision
|
|
20
|
+
! - withdrawn: none
|
|
21
|
+
!
|
|
22
|
+
! Generated by compliance.widen (OpenACC 3.4, free-form Fortran; catalog widening). Do not edit.
|
|
23
|
+
! id: acc34-w-stop-unreached
|
|
24
|
+
! primary atom: base.device.stop
|
|
25
|
+
! atoms: base.device.stop
|
|
26
|
+
! legal: yes
|
|
27
|
+
! observable: yes
|
|
28
|
+
! ran_on_host: inside the compute region of interest (acc_on_device)
|
|
29
|
+
! evidence: construct
|
|
30
|
+
! needs: none
|
|
31
|
+
! std: f2008
|
|
32
|
+
! feature: a STOP statement in device code that is not executed
|
|
33
|
+
! spec: OpenACC 3.4 §1.8, p.16: Fortran 2008 is a normative base language (the features whose use is unspecified are listed there;
|
|
34
|
+
! this is not one of them)
|
|
35
|
+
program wide_prog
|
|
36
|
+
use openacc, only: acc_device_host, acc_on_device
|
|
37
|
+
implicit none
|
|
38
|
+
integer, parameter :: n = 64
|
|
39
|
+
integer :: a(n), b(n), ref(n)
|
|
40
|
+
integer :: i, host_flag
|
|
41
|
+
logical :: ok
|
|
42
|
+
do i = 1, n
|
|
43
|
+
a(i) = i
|
|
44
|
+
b(i) = 0
|
|
45
|
+
ref(i) = 2*i + 1
|
|
46
|
+
end do
|
|
47
|
+
host_flag = 1
|
|
48
|
+
!$acc parallel loop copyin(a) copyout(b) copy(host_flag)
|
|
49
|
+
do i = 1, n
|
|
50
|
+
if (a(i) < 0) stop 1
|
|
51
|
+
b(i) = 2*a(i) + 1
|
|
52
|
+
if (i == 1) host_flag = merge(1, 0, acc_on_device(acc_device_host))
|
|
53
|
+
end do
|
|
54
|
+
ok = all(b == ref)
|
|
55
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
56
|
+
end program wide_prog
|
|
57
|
+
! site:
|
|
58
|
+
! title: ftn: an IF statement guarding STOP in device code: the STOP runs although its condition is false (target loop), or an
|
|
59
|
+
! + internal compiler error (directly in a target region)
|
|
60
|
+
! control: ../vendor/checks/src/cce/control/cce-acc-stop-in-compute-crash-control.f90 the IF with an assignment instead of STOP
|
|
61
|
+
! same_as: catalog/cce-flang-stop-in-target-crash
|
|
62
|
+
! end site
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
! # Draft finding: omp52-clause-uses_allocators on cce19
|
|
2
|
+
!
|
|
3
|
+
! - compiler: cce19
|
|
4
|
+
! - toolchain: cce19; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog omp52-clause-uses_allocators (f90, version 52, sha256 52f8be7d9bfe1f86)
|
|
6
|
+
! - expected: None (None; )
|
|
7
|
+
! - actual: ice (ice: INTERNAL COMPILER ERROR: "Too few arguments on the stack" (/workspace/crayftn/pdgcs/v_fei.c, line 11730,
|
|
8
|
+
! version cc4d36e4ff3377d45f0e6e892b5dacd82009a0ca))
|
|
9
|
+
! - verdict: compiler_bug by rule R10-compile-ice: an internal compiler error (or the compiler rejecting code it generated) on a
|
|
10
|
+
! legal program: always the compiler's defect
|
|
11
|
+
! - reason:
|
|
12
|
+
! - citations: RUL-COMPILE-TIME (rulings.md)
|
|
13
|
+
! - legality: legal (legal by construction: offload.engine.gen / c_gen / acc_gen check every program against the catalog rules
|
|
14
|
+
! and the
|
|
15
|
+
! offload scope as it is built (no compiler))
|
|
16
|
+
! - witnesses: none
|
|
17
|
+
! - withdrawn: none
|
|
18
|
+
!
|
|
19
|
+
! Generated by compliance.gen (OpenMP 5.2, free-form Fortran). Do not edit.
|
|
20
|
+
! id: omp52-clause-uses_allocators
|
|
21
|
+
! primary atom: omp.clause.uses_allocators
|
|
22
|
+
! legal: yes
|
|
23
|
+
! observable: yes
|
|
24
|
+
! ran_on_host: inside the target region of interest
|
|
25
|
+
! evidence: construct
|
|
26
|
+
! needs: none
|
|
27
|
+
! std: f2008
|
|
28
|
+
program gen_prog
|
|
29
|
+
use omp_lib, only: omp_default_mem_alloc, omp_is_initial_device
|
|
30
|
+
implicit none
|
|
31
|
+
integer, parameter :: n = 64
|
|
32
|
+
integer, allocatable, target :: a(:), b(:)
|
|
33
|
+
integer :: ref(n)
|
|
34
|
+
integer :: i, host_flag
|
|
35
|
+
logical :: ok
|
|
36
|
+
integer :: t
|
|
37
|
+
allocate(a(n), b(n))
|
|
38
|
+
do i = 1, n
|
|
39
|
+
a(i) = i
|
|
40
|
+
b(i) = 0
|
|
41
|
+
ref(i) = 2*i + 1
|
|
42
|
+
end do
|
|
43
|
+
host_flag = 1
|
|
44
|
+
!$omp target map(to: a) map(from: b) map(tofrom: host_flag) &
|
|
45
|
+
!$omp& uses_allocators(omp_default_mem_alloc)
|
|
46
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
47
|
+
!$omp parallel do default(none) shared(a, b) private(t) allocate(omp_default_mem_alloc: t)
|
|
48
|
+
do i = 1, n
|
|
49
|
+
t = 2*a(i)
|
|
50
|
+
b(i) = t + 1
|
|
51
|
+
end do
|
|
52
|
+
!$omp end parallel do
|
|
53
|
+
!$omp end target
|
|
54
|
+
ok = all(b == ref)
|
|
55
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
56
|
+
deallocate(a, b)
|
|
57
|
+
end program gen_prog
|
|
58
|
+
! site:
|
|
59
|
+
! title: ftn: internal compiler error "Too few arguments on the stack" for uses_allocators with an allocate clause in a target
|
|
60
|
+
! + region
|
|
61
|
+
! control: ../vendor/checks/src/cce/control/cce-allocators-stack-ice-control.f90 the allocate and uses_allocators clauses removed
|
|
62
|
+
! + (t private
|
|
63
|
+
! + only)
|
|
64
|
+
! end site
|
|
65
|
+
! spec (requirement): uses_allocators makes a predefined allocator available for use in the region of the target
|
|
66
|
+
! construct.
|
|
67
|
+
! "The uses_allocators clause enables the use of the specified allocator in the region associated with the directive
|
|
68
|
+
! on which the clause appears. If allocator refers to a predefined allocator, that predefined allocator will be
|
|
69
|
+
! available for use in the region." (5.2 §6.8 p.182 l.2-4)
|
|
70
|
+
! spec (requirement): An allocate clause naming that allocator provides the storage for a list item that a
|
|
71
|
+
! data-sharing clause privatizes on the same directive.
|
|
72
|
+
! "If a list item in the clause also appears in a data-sharing attribute clause on the same directive that privatizes
|
|
73
|
+
! the list item, allocations that arise from that list item in the clause will be provided by the memory allocator."
|
|
74
|
+
! (5.2 §6.6 p.178 l.12-14)
|
|
75
|
+
! spec (requirement): An allocator used in a target region by an allocate clause must appear in uses_allocators, as it
|
|
76
|
+
! does here.
|
|
77
|
+
! "Memory allocators that do not appear in a uses_allocators clause cannot appear as an allocator in an allocate
|
|
78
|
+
! clause or be used in the target region" (5.2 §13.8 p.286 l.38-39)
|
|
79
|
+
! spec (this program): uses_allocators(omp_default_mem_alloc) on target and allocate(omp_default_mem_alloc: t) with
|
|
80
|
+
! private(t) on the enclosed parallel do satisfy those rules; ftn stops with an internal error (Too few arguments on
|
|
81
|
+
! the stack).
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
! # Draft finding: omp52-clause-atomic_default_mem_order-release on cce19
|
|
2
|
+
!
|
|
3
|
+
! - compiler: cce19
|
|
4
|
+
! - toolchain: cce19; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog omp52-clause-atomic_default_mem_order-release (f90, version 52, sha256 4a88172afe9b3864)
|
|
6
|
+
! - expected: None (None; )
|
|
7
|
+
! - actual: rejected (diagnostic: ftn-1725 ftn: ERROR GEN_PROG, File = ../../omp52-clause-atomic_default_mem_order-release.f90,
|
|
8
|
+
! Line = 13, Column = 50 | Unexpected syntax while parsing the DIRECTIVE statement : "(seq_cst |)
|
|
9
|
+
! - verdict: compiler_bug by rule R11-compile-rejection: a legal program the compiler rejects with a diagnostic (or whose link fails
|
|
10
|
+
! on symbols the compiler's own code needs, or whose compile does not finish) while another compiler family compiles it
|
|
11
|
+
! - reason:
|
|
12
|
+
! - citations: RUL-COMPILE-TIME (rulings.md)
|
|
13
|
+
! - legality: legal (legal by construction: offload.engine.gen / c_gen / acc_gen check every program against the catalog rules
|
|
14
|
+
! and the
|
|
15
|
+
! offload scope as it is built (no compiler))
|
|
16
|
+
! - witnesses: none
|
|
17
|
+
! - withdrawn: none
|
|
18
|
+
!
|
|
19
|
+
! Generated by compliance.gen (OpenMP 5.2, free-form Fortran). Do not edit.
|
|
20
|
+
! id: omp52-clause-atomic_default_mem_order-release
|
|
21
|
+
! primary atom: omp.clause.atomic_default_mem_order.release
|
|
22
|
+
! legal: yes
|
|
23
|
+
! observable: no (requires only changes semantics: no checked device effect)
|
|
24
|
+
! ran_on_host: inside the target region of interest
|
|
25
|
+
! evidence: construct
|
|
26
|
+
! needs: none
|
|
27
|
+
! std: f2008
|
|
28
|
+
program gen_prog
|
|
29
|
+
use omp_lib, only: omp_is_initial_device
|
|
30
|
+
implicit none
|
|
31
|
+
!$omp requires atomic_default_mem_order(release)
|
|
32
|
+
integer, parameter :: n = 64
|
|
33
|
+
integer, allocatable, target :: a(:), b(:)
|
|
34
|
+
integer :: ref(n)
|
|
35
|
+
integer :: i, host_flag
|
|
36
|
+
logical :: ok
|
|
37
|
+
allocate(a(n), b(n))
|
|
38
|
+
do i = 1, n
|
|
39
|
+
a(i) = i
|
|
40
|
+
b(i) = 0
|
|
41
|
+
ref(i) = 2*i + 1
|
|
42
|
+
end do
|
|
43
|
+
host_flag = 1
|
|
44
|
+
!$omp target teams distribute parallel do map(to: a) map(from: b) map(tofrom: host_flag) &
|
|
45
|
+
!$omp& default(none) shared(a, b, host_flag)
|
|
46
|
+
do i = 1, n
|
|
47
|
+
b(i) = 2*a(i) + 1
|
|
48
|
+
if (i == 1) host_flag = merge(1, 0, omp_is_initial_device())
|
|
49
|
+
end do
|
|
50
|
+
!$omp end target teams distribute parallel do
|
|
51
|
+
ok = all(b == ref)
|
|
52
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
53
|
+
deallocate(a, b)
|
|
54
|
+
end program gen_prog
|
|
55
|
+
! site:
|
|
56
|
+
! 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
|
|
57
|
+
! control: ../vendor/checks/src/cce/control/cce-atomic-default-mem-order-acquire-release-rejected-control.f90
|
|
58
|
+
! + atomic_default_mem_order(seq_cst)
|
|
59
|
+
! + instead of (release)
|
|
60
|
+
! same_as: catalog/cce-c-map-iterator-ice
|
|
61
|
+
! end site
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// # Draft finding: omp52-c-clause-allocate-align on cce20
|
|
2
|
+
//
|
|
3
|
+
// - compiler: cce20
|
|
4
|
+
// - toolchain: cce20; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
// - program: catalog omp52-c-clause-allocate-align (c, version 52, sha256 f07c5cb195c9a71b)
|
|
6
|
+
// - expected: None (None; )
|
|
7
|
+
// - actual: rejected (link_undefined_symbol: ld.lld: error: undefined symbol: __kmpc_aligned_alloc)
|
|
8
|
+
// - verdict: compiler_bug by rule R10b-own-link-or-hang: a link failure on symbols the compiler's own generated code needs, or a compile that does not finish, on a legal program: the compiler's defect (never a rejection)
|
|
9
|
+
// - reason:
|
|
10
|
+
// - citations: RUL-COMPILE-TIME (rulings.md)
|
|
11
|
+
// - legality: legal (legal by construction: offload.engine.gen / c_gen / acc_gen check every program against the catalog rules and the offload scope as it is built (no compiler))
|
|
12
|
+
// - witnesses: none
|
|
13
|
+
// - withdrawn: none
|
|
14
|
+
//
|
|
15
|
+
// Generated by compliance.c_gen (OpenMP 5.2, C11): the C port (offload.engine.f2c) of omp52-clause-allocate-align. Do not edit.
|
|
16
|
+
// id: omp52-c-clause-allocate-align
|
|
17
|
+
// primary atom: omp.clause.allocate.align
|
|
18
|
+
// legal: yes
|
|
19
|
+
// observable: no (unverified: the check covers the device kernel, not the atom)
|
|
20
|
+
// ran_on_host: inside the target region of interest
|
|
21
|
+
// evidence: unverified
|
|
22
|
+
// needs: none
|
|
23
|
+
// std: c11
|
|
24
|
+
// unverified (oracle_not_written): the program does not check the private copy's address: a check of its address modulo an alignment larger than any default (e.g. align(4096)) would fail without the modifier (C mutant survived on AFAR)
|
|
25
|
+
#include <stdio.h>
|
|
26
|
+
#include <stdbool.h>
|
|
27
|
+
#include <omp.h>
|
|
28
|
+
|
|
29
|
+
enum { n = 64 };
|
|
30
|
+
|
|
31
|
+
int main(void) {
|
|
32
|
+
int a[n];
|
|
33
|
+
int b[n];
|
|
34
|
+
int ref[n];
|
|
35
|
+
int host_flag;
|
|
36
|
+
bool ok;
|
|
37
|
+
int t;
|
|
38
|
+
for (int i = 1; i <= n; i++) {
|
|
39
|
+
a[i - 1] = i;
|
|
40
|
+
b[i - 1] = 0;
|
|
41
|
+
ref[i - 1] = 2 * i + 1;
|
|
42
|
+
}
|
|
43
|
+
host_flag = 1;
|
|
44
|
+
#pragma omp target map(to: a) map(from: b) map(tofrom: host_flag) \
|
|
45
|
+
uses_allocators(omp_default_mem_alloc)
|
|
46
|
+
{
|
|
47
|
+
host_flag = (omp_is_initial_device() ? 1 : 0);
|
|
48
|
+
#pragma omp parallel for default(none) shared(a, b) private(t) \
|
|
49
|
+
allocate(allocator(omp_default_mem_alloc), align(8): t)
|
|
50
|
+
for (int i = 1; i <= n; i++) {
|
|
51
|
+
t = 2 * a[i - 1];
|
|
52
|
+
b[i - 1] = t + 1;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
bool t1_ = true;
|
|
56
|
+
for (int k2_ = 0; k2_ < n; k2_++)
|
|
57
|
+
t1_ = t1_ && (b[k2_] == ref[k2_]);
|
|
58
|
+
ok = t1_;
|
|
59
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, ok ? "pass" : "fail");
|
|
60
|
+
return 0;
|
|
61
|
+
}
|
|
62
|
+
// site:
|
|
63
|
+
// title: craycc: allocate(allocator(...), align(8): t) in a target region fails at the device link (__kmpc_aligned_alloc undefined)
|
|
64
|
+
// control: ../vendor/checks/src/cce/control/cce-c-allocate-align-link-control.c allocate(omp_default_mem_alloc: t) without the
|
|
65
|
+
// + align
|
|
66
|
+
// + modifier
|
|
67
|
+
// end site
|
|
68
|
+
// spec (requirement): The allocate clause accepts the allocator and align modifiers with the syntax and semantics of
|
|
69
|
+
// the allocate directive's allocator and align clauses.
|
|
70
|
+
// "The allocator-complex-modifier and align-modifier have the same syntax and semantics for the allocate clause as
|
|
71
|
+
// the allocator and align clauses have for the allocate directive." (5.2 §6.6 p.178 l.16-18)
|
|
72
|
+
// spec (requirement): The align modifier makes every allocation at least as aligned as its value.
|
|
73
|
+
// "each allocation is byte aligned to at least the maximum of the value to which alignment evaluates, the alignment
|
|
74
|
+
// trait of the allocator being used for the allocation, and the alignment required by the base language for the
|
|
75
|
+
// type of the variable that is allocated." (5.2 §6.3 p.175 l.3-6)
|
|
76
|
+
// spec (requirement): On a target construct and in its region an allocate clause must name its allocator, which the
|
|
77
|
+
// program does, with uses_allocators for the predefined allocator.
|
|
78
|
+
// "allocate clauses that appear on a target construct or on constructs in a target region must specify an
|
|
79
|
+
// allocator-simple-modifier or allocator-complex-modifier unless a requires directive with the dynamic_allocators
|
|
80
|
+
// clause is present in the same compilation unit." (5.2 §6.6 p.179 l.8-10)
|
|
81
|
+
// spec (this program): allocate(allocator(omp_default_mem_alloc), align(8): t) on a parallel for in a target region
|
|
82
|
+
// is a legal allocate clause with both modifiers; craycc fails at the device link because __kmpc_aligned_alloc is
|
|
83
|
+
// undefined.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// # Draft finding: omp52-c-clause-allocate-allocator on cce19
|
|
2
|
+
//
|
|
3
|
+
// - compiler: cce19
|
|
4
|
+
// - toolchain: cce19; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
// - program: catalog omp52-c-clause-allocate-allocator (c, version 52, sha256 f3fb2637e316cfa9)
|
|
6
|
+
// - expected: None (None; )
|
|
7
|
+
// - actual: rejected (diagnostic: <tmpdir>/omp52-c-clause-allocate-allocator.c:35:18: error: call to undeclared function 'allocator'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-dec)
|
|
8
|
+
// - verdict: compiler_bug by rule R11-compile-rejection: a legal program the compiler rejects with a diagnostic (or whose link fails on symbols the compiler's own code needs, or whose compile does not finish) while another compiler family compiles it
|
|
9
|
+
// - reason:
|
|
10
|
+
// - citations: RUL-COMPILE-TIME (rulings.md)
|
|
11
|
+
// - legality: legal (legal by construction: offload.engine.gen / c_gen / acc_gen check every program against the catalog rules and the offload scope as it is built (no compiler))
|
|
12
|
+
// - witnesses: none
|
|
13
|
+
// - withdrawn: none
|
|
14
|
+
//
|
|
15
|
+
// Generated by compliance.c_gen (OpenMP 5.2, C11): the C port (offload.engine.f2c) of omp52-clause-allocate-allocator. Do not edit.
|
|
16
|
+
// id: omp52-c-clause-allocate-allocator
|
|
17
|
+
// primary atom: omp.clause.allocate.allocator
|
|
18
|
+
// legal: yes
|
|
19
|
+
// observable: no (unverified: the check covers the device kernel, not the atom)
|
|
20
|
+
// ran_on_host: inside the target region of interest
|
|
21
|
+
// evidence: unverified
|
|
22
|
+
// needs: none
|
|
23
|
+
// std: c11
|
|
24
|
+
// unverified (needs_other_infrastructure): the program cannot observe which allocator provides the private copy of t (no OpenMP routine reports a variable's allocator; omp_default_mem_alloc and the default allocator both return ordinary memory; C mutant survived on AFAR)
|
|
25
|
+
#include <stdio.h>
|
|
26
|
+
#include <stdbool.h>
|
|
27
|
+
#include <omp.h>
|
|
28
|
+
|
|
29
|
+
enum { n = 64 };
|
|
30
|
+
|
|
31
|
+
int main(void) {
|
|
32
|
+
int a[n];
|
|
33
|
+
int b[n];
|
|
34
|
+
int ref[n];
|
|
35
|
+
int host_flag;
|
|
36
|
+
bool ok;
|
|
37
|
+
int t;
|
|
38
|
+
for (int i = 1; i <= n; i++) {
|
|
39
|
+
a[i - 1] = i;
|
|
40
|
+
b[i - 1] = 0;
|
|
41
|
+
ref[i - 1] = 2 * i + 1;
|
|
42
|
+
}
|
|
43
|
+
host_flag = 1;
|
|
44
|
+
#pragma omp target map(to: a) map(from: b) map(tofrom: host_flag) \
|
|
45
|
+
uses_allocators(omp_default_mem_alloc)
|
|
46
|
+
{
|
|
47
|
+
host_flag = (omp_is_initial_device() ? 1 : 0);
|
|
48
|
+
#pragma omp parallel for default(none) shared(a, b) private(t) \
|
|
49
|
+
allocate(allocator(omp_default_mem_alloc): t)
|
|
50
|
+
for (int i = 1; i <= n; i++) {
|
|
51
|
+
t = 2 * a[i - 1];
|
|
52
|
+
b[i - 1] = t + 1;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
bool t1_ = true;
|
|
56
|
+
for (int k2_ = 0; k2_ < n; k2_++)
|
|
57
|
+
t1_ = t1_ && (b[k2_] == ref[k2_]);
|
|
58
|
+
ok = t1_;
|
|
59
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, ok ? "pass" : "fail");
|
|
60
|
+
return 0;
|
|
61
|
+
}
|
|
62
|
+
// spec (requirement): The allocate clause of OpenMP 5.2 accepts the allocator-complex-modifier form allocator(...),
|
|
63
|
+
// with the syntax and semantics of the allocator clause.
|
|
64
|
+
// "The allocator-complex-modifier and align-modifier have the same syntax and semantics for the allocate clause as
|
|
65
|
+
// the allocator and align clauses have for the allocate directive." (5.2 §6.6 p.178 l.16-18)
|
|
66
|
+
// spec (requirement): The allocator clause names the memory allocator used for allocations associated with the
|
|
67
|
+
// construct.
|
|
68
|
+
// "The allocator clause specifies the memory allocator to be used for allocations associated with the construct on
|
|
69
|
+
// which the clause appears." (5.2 §6.4 p.175 l.21-23)
|
|
70
|
+
// spec (this program): allocate(allocator(omp_default_mem_alloc): t) uses the complex-modifier spelling; craycc reads
|
|
71
|
+
// allocator as a call to an undeclared function and rejects the clause, while the 5.0 spelling
|
|
72
|
+
// allocate(omp_default_mem_alloc: t) is accepted.
|
|
73
|
+
// site:
|
|
74
|
+
// title: craycc rejects the allocator modifier of the allocate clause
|
|
75
|
+
// control: ../vendor/checks/src/cce/control/cce-c-allocate-allocator-modifier-rejected-control.c allocate(omp_default_mem_alloc:
|
|
76
|
+
// + t), the 5.0 spelling
|
|
77
|
+
// end site
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// # Draft finding: omp60-c-clause-device_type-directive_name on cce19
|
|
2
|
+
//
|
|
3
|
+
// - compiler: cce19
|
|
4
|
+
// - toolchain: cce19; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
// - program: catalog omp60-c-clause-device_type-directive_name (c, version 60, sha256 fd0a4a751c810695)
|
|
6
|
+
// - expected: None (None; )
|
|
7
|
+
// - actual: ice (ice: PLEASE submit a bug report to HPE at https://support.hpe.com/ and include the crash backtrace, preprocessed source, and associated run script.)
|
|
8
|
+
// - verdict: compiler_bug by rule R10-compile-ice: an internal compiler error (or the compiler rejecting code it generated) on a legal program: always the compiler's defect
|
|
9
|
+
// - reason:
|
|
10
|
+
// - citations: RUL-COMPILE-TIME (rulings.md)
|
|
11
|
+
// - legality: legal (legal by construction: offload.engine.gen / c_gen / acc_gen check every program against the catalog rules and the offload scope as it is built (no compiler))
|
|
12
|
+
// - witnesses: none
|
|
13
|
+
// - withdrawn: none
|
|
14
|
+
//
|
|
15
|
+
// Generated by compliance.c_gen (OpenMP 6.0, C11): the C port (offload.engine.f2c) of omp60-clause-device_type-directive_name. Do not edit.
|
|
16
|
+
// id: omp60-c-clause-device_type-directive_name
|
|
17
|
+
// primary atom: omp.clause.device_type.directive_name
|
|
18
|
+
// legal: yes
|
|
19
|
+
// observable: no (f is implicitly declare target without the directive (a procedure referenced in a target construct, 5.2 §13.8 p.285, 6.0 §15.8 p.461), so the clause has no checked effect)
|
|
20
|
+
// ran_on_host: inside the target region of interest
|
|
21
|
+
// evidence: construct
|
|
22
|
+
// needs: none
|
|
23
|
+
// std: c11
|
|
24
|
+
#include <stdio.h>
|
|
25
|
+
#include <stdbool.h>
|
|
26
|
+
#include <omp.h>
|
|
27
|
+
|
|
28
|
+
enum { n = 64 };
|
|
29
|
+
int dv = 1;
|
|
30
|
+
int dw = 1;
|
|
31
|
+
int f(int x) {
|
|
32
|
+
int r_;
|
|
33
|
+
r_ = 2 * x + 1;
|
|
34
|
+
return r_;
|
|
35
|
+
}
|
|
36
|
+
#pragma omp declare target enter(f) device_type(declare target: any)
|
|
37
|
+
|
|
38
|
+
int main(void) {
|
|
39
|
+
int a[n];
|
|
40
|
+
int b[n];
|
|
41
|
+
int ref[n];
|
|
42
|
+
int host_flag;
|
|
43
|
+
bool ok;
|
|
44
|
+
for (int i = 1; i <= n; i++) {
|
|
45
|
+
a[i - 1] = i;
|
|
46
|
+
b[i - 1] = 0;
|
|
47
|
+
ref[i - 1] = 2 * i + 1;
|
|
48
|
+
}
|
|
49
|
+
host_flag = 1;
|
|
50
|
+
#pragma omp target map(to: a) map(from: b) map(tofrom: host_flag)
|
|
51
|
+
{
|
|
52
|
+
host_flag = (omp_is_initial_device() ? 1 : 0);
|
|
53
|
+
for (int i = 1; i <= n; i++) {
|
|
54
|
+
b[i - 1] = f(a[i - 1]);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
bool t1_ = true;
|
|
58
|
+
for (int k2_ = 0; k2_ < n; k2_++)
|
|
59
|
+
t1_ = t1_ && (b[k2_] == ref[k2_]);
|
|
60
|
+
ok = t1_;
|
|
61
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, ok ? "pass" : "fail");
|
|
62
|
+
return 0;
|
|
63
|
+
}
|
|
64
|
+
// site:
|
|
65
|
+
// 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
|
|
66
|
+
// control: ../vendor/checks/src/cce/control/cce-c-device-type-directive-name-ice-control.c device_type(any) without the
|
|
67
|
+
// + directive-name
|
|
68
|
+
// + modifier
|
|
69
|
+
// same_as: catalog/cce-c-map-iterator-ice
|
|
70
|
+
// end site
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// # Draft finding: omp52-c-clause-dist_schedule-chunk_size on cce19
|
|
2
|
+
//
|
|
3
|
+
// - compiler: cce19
|
|
4
|
+
// - toolchain: cce19; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
// - program: catalog omp52-c-clause-dist_schedule-chunk_size (c, version 52, sha256 47094ef1ef5dfbfa)
|
|
6
|
+
// - expected: check=pass (trusted; derivation + model)
|
|
7
|
+
// - actual: wrong_answer check=fail (check_fail: ran_on_host=0 check=fail)
|
|
8
|
+
// - verdict: compiler_bug by rule R20-runtime-bug: a legal program fails at run time, deterministically, against an expected value from two or more independent sources with an executed witness, and another toolchain, mode, arch or the elision gives the expected value
|
|
9
|
+
// - reason: expected trusted check=pass (derivation + model): derivation + model agree; witnesses: afar/gfx942/unified, cce19/gfx942/unified (port:omp52-clause-dist_schedule-chunk_size), cce20/gfx942/unified (port:omp52-clause-dist_schedule-chunk_size), cce21/gfx942/unified (port:omp52-clause-dist_schedule-chunk_size)
|
|
10
|
+
// - citations: RUL-DERIVED-NEEDS-EXECUTION (rulings.md); RUL-WITNESS-PER-MODE (rulings.md); RUL-SAME-COMPILER-RUNS (rulings.md)
|
|
11
|
+
// - legality: legal (legal by construction: offload.engine.gen / c_gen / acc_gen check every program against the catalog rules and the offload scope as it is built (no compiler))
|
|
12
|
+
// - witnesses: afar/gfx942/unified, cce19/gfx942/unified (port:omp52-clause-dist_schedule-chunk_size), cce20/gfx942/unified (port:omp52-clause-dist_schedule-chunk_size), cce21/gfx942/unified (port:omp52-clause-dist_schedule-chunk_size)
|
|
13
|
+
// - withdrawn: none
|
|
14
|
+
//
|
|
15
|
+
// Generated by compliance.c_gen (OpenMP 5.2, C11): the C port (offload.engine.f2c) of omp52-clause-dist_schedule-chunk_size. Do not edit.
|
|
16
|
+
// id: omp52-c-clause-dist_schedule-chunk_size
|
|
17
|
+
// primary atom: omp.clause.dist_schedule.chunk_size
|
|
18
|
+
// legal: yes
|
|
19
|
+
// observable: yes
|
|
20
|
+
// ran_on_host: inside the target region of interest
|
|
21
|
+
// evidence: construct
|
|
22
|
+
// needs: none
|
|
23
|
+
// std: c11
|
|
24
|
+
#include <stdio.h>
|
|
25
|
+
#include <stdbool.h>
|
|
26
|
+
#include <omp.h>
|
|
27
|
+
|
|
28
|
+
enum { n = 64 };
|
|
29
|
+
|
|
30
|
+
int main(void) {
|
|
31
|
+
int a[n];
|
|
32
|
+
int b[n];
|
|
33
|
+
int ref[n];
|
|
34
|
+
int host_flag;
|
|
35
|
+
bool ok;
|
|
36
|
+
int team[n];
|
|
37
|
+
int nt;
|
|
38
|
+
bool dok;
|
|
39
|
+
for (int i = 1; i <= n; i++) {
|
|
40
|
+
a[i - 1] = i;
|
|
41
|
+
b[i - 1] = 0;
|
|
42
|
+
ref[i - 1] = 2 * i + 1;
|
|
43
|
+
}
|
|
44
|
+
host_flag = 1;
|
|
45
|
+
for (int k1_ = 0; k1_ < n; k1_++)
|
|
46
|
+
team[k1_] = -1;
|
|
47
|
+
nt = -1;
|
|
48
|
+
#pragma omp target teams distribute parallel for map(to: a) map(from: b) map(from: team, nt) \
|
|
49
|
+
map(tofrom: host_flag) default(none) shared(a, b, team, nt, host_flag) num_teams(4) \
|
|
50
|
+
dist_schedule(static, 4)
|
|
51
|
+
for (int i = 1; i <= n; i++) {
|
|
52
|
+
b[i - 1] = 2 * a[i - 1] + 1;
|
|
53
|
+
team[i - 1] = omp_get_team_num();
|
|
54
|
+
if (i == 1) nt = omp_get_num_teams();
|
|
55
|
+
if (i == 1) host_flag = (omp_is_initial_device() ? 1 : 0);
|
|
56
|
+
}
|
|
57
|
+
dok = true;
|
|
58
|
+
for (int i = 1; i <= n; i++) {
|
|
59
|
+
dok = dok && (team[i - 1] == ((i - 1) / 4 % nt));
|
|
60
|
+
}
|
|
61
|
+
bool t2_ = true;
|
|
62
|
+
for (int k3_ = 0; k3_ < n; k3_++)
|
|
63
|
+
t2_ = t2_ && (b[k3_] == ref[k3_]);
|
|
64
|
+
ok = t2_ && (nt >= 1) && dok;
|
|
65
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, ok ? "pass" : "fail");
|
|
66
|
+
return 0;
|
|
67
|
+
}
|
|
68
|
+
// site:
|
|
69
|
+
// title: craycc: dist_schedule(static, 4) on target teams distribute parallel for puts every iteration on team 0
|
|
70
|
+
// control: ../vendor/checks/src/cce/control/cce-c-dist-schedule-chunk-control.c num_teams(1) instead of num_teams(4) (every
|
|
71
|
+
// + chunk on
|
|
72
|
+
// + team 0)
|
|
73
|
+
// end site
|
|
74
|
+
// spec (requirement): With a chunk_size, dist_schedule divides the iterations into chunks of that size.
|
|
75
|
+
// "If the chunk_size argument is specified, iterations are divided into chunks of size chunk_size." (5.2 §11.6.1
|
|
76
|
+
// p.256 l.18-19)
|
|
77
|
+
// spec (requirement): The chunks are assigned to the initial teams of the league round-robin in team-number order.
|
|
78
|
+
// "These chunks are assigned to the initial teams of the league in a round-robin fashion in the order of the initial
|
|
79
|
+
// team number." (5.2 §11.6.1 p.256 l.23-24)
|
|
80
|
+
// spec (this program): dist_schedule(static, 4) with num_teams(4) puts iterations 1-4 on team 0, 5-8 on team 1, and
|
|
81
|
+
// so on, round robin; craycc places every iteration on team 0.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
! # Draft finding: omp52-clause-is_device_ptr on cce19
|
|
2
|
+
!
|
|
3
|
+
! - compiler: cce19
|
|
4
|
+
! - toolchain: cce19; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog omp52-clause-is_device_ptr (f90, version 52, sha256 234487aa9ebe80a4)
|
|
6
|
+
! - expected: None (None; )
|
|
7
|
+
! - actual: rejected (link_undefined_symbol: lld: error: undefined symbol: _C_F_POINTER)
|
|
8
|
+
! - verdict: compiler_bug by rule R10b-own-link-or-hang: a link failure on symbols the compiler's own generated code needs, or a
|
|
9
|
+
! compile that does not finish, on a legal program: the compiler's defect (never a rejection)
|
|
10
|
+
! - reason:
|
|
11
|
+
! - citations: RUL-COMPILE-TIME (rulings.md)
|
|
12
|
+
! - legality: legal (legal by construction: offload.engine.gen / c_gen / acc_gen check every program against the catalog rules
|
|
13
|
+
! and the
|
|
14
|
+
! offload scope as it is built (no compiler))
|
|
15
|
+
! - witnesses: none
|
|
16
|
+
! - withdrawn: none
|
|
17
|
+
!
|
|
18
|
+
! Generated by compliance.gen (OpenMP 5.2, free-form Fortran). Do not edit.
|
|
19
|
+
! id: omp52-clause-is_device_ptr
|
|
20
|
+
! primary atom: omp.clause.is_device_ptr
|
|
21
|
+
! legal: yes
|
|
22
|
+
! observable: yes
|
|
23
|
+
! ran_on_host: inside the target region of interest
|
|
24
|
+
! evidence: copy_mode_only
|
|
25
|
+
! needs: device_c_f_pointer
|
|
26
|
+
! std: f2008
|
|
27
|
+
! derivation (check=pass): target data maps a (to) and b (from); use_device_ptr(pa, pb) makes pa and pb the device addresses of a
|
|
28
|
+
! derivation: and b (5.2 §5.4.8 p.121); the nested target has is_device_ptr(pa, pb), so they are used as device pointers there (5.2
|
|
29
|
+
! derivation: §5.4.7 p.120) and qq(i) = 2*pp(i) + 1 writes the device's b; the end of target data copies b back: b = ref; the check
|
|
30
|
+
! derivation: accepts
|
|
31
|
+
program gen_prog
|
|
32
|
+
use omp_lib, only: omp_is_initial_device
|
|
33
|
+
use, intrinsic :: iso_c_binding, only: c_ptr, c_loc, c_f_pointer
|
|
34
|
+
implicit none
|
|
35
|
+
integer, parameter :: n = 64
|
|
36
|
+
integer, allocatable, target :: a(:), b(:)
|
|
37
|
+
integer :: ref(n)
|
|
38
|
+
integer :: i, host_flag
|
|
39
|
+
logical :: ok
|
|
40
|
+
type(c_ptr) :: pa, pb
|
|
41
|
+
integer, pointer :: pp(:), qq(:)
|
|
42
|
+
allocate(a(n), b(n))
|
|
43
|
+
do i = 1, n
|
|
44
|
+
a(i) = i
|
|
45
|
+
b(i) = 0
|
|
46
|
+
ref(i) = 2*i + 1
|
|
47
|
+
end do
|
|
48
|
+
host_flag = 1
|
|
49
|
+
pa = c_loc(a)
|
|
50
|
+
pb = c_loc(b)
|
|
51
|
+
!$omp target data map(to: a) map(from: b) use_device_ptr(pa, pb)
|
|
52
|
+
!$omp target is_device_ptr(pa, pb) private(pp, qq) map(tofrom: host_flag)
|
|
53
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
54
|
+
call c_f_pointer(pa, pp, [n])
|
|
55
|
+
call c_f_pointer(pb, qq, [n])
|
|
56
|
+
do i = 1, n
|
|
57
|
+
qq(i) = 2*pp(i) + 1
|
|
58
|
+
end do
|
|
59
|
+
!$omp end target
|
|
60
|
+
!$omp end target data
|
|
61
|
+
ok = all(b == ref)
|
|
62
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
63
|
+
deallocate(a, b)
|
|
64
|
+
end program gen_prog
|
|
65
|
+
! site:
|
|
66
|
+
! title: ftn: C_F_POINTER called in a target region fails at the device link (_C_F_POINTER undefined)
|
|
67
|
+
! control: ../vendor/checks/src/cce/control/cce-c-f-pointer-device-link-control.f90 the device loop reads a and writes b directly
|
|
68
|
+
! + instead of
|
|
69
|
+
! + through c_f_pointer
|
|
70
|
+
! end site
|