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,67 @@
|
|
|
1
|
+
! # Draft finding: omp52-w-critical-named on afar
|
|
2
|
+
!
|
|
3
|
+
! - compiler: afar
|
|
4
|
+
! - toolchain: afar; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog omp52-w-critical-named (f90, version 52, sha256 dabbabc4b167391a)
|
|
6
|
+
! - expected: None (None; )
|
|
7
|
+
! - actual: rejected (link_undefined_symbol: ld.lld: error: undefined symbol: __kmpc_critical_with_hint)
|
|
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: offload.engine.rules accepts it (offload.engine.prerun.check, rerun: with the
|
|
13
|
+
! race rule and the restriction checks); NVHPC is no witness: it does not implement a feature the
|
|
14
|
+
! program uses (NVFORTRAN-F-1196-OpenMP - omp critical is not supported in GPU
|
|
15
|
+
! region); the check's other witness, the AFAR flang front end, is the compiler under test and is
|
|
16
|
+
! not counted; no gfortran or gcc is a legality witness
|
|
17
|
+
! - witnesses: none
|
|
18
|
+
! - withdrawn: none
|
|
19
|
+
!
|
|
20
|
+
! Generated by compliance.widen (OpenMP 5.2, free-form Fortran; catalog widening). Do not edit.
|
|
21
|
+
! id: omp52-w-critical-named
|
|
22
|
+
! primary atom: form.omp.critical_named
|
|
23
|
+
! atoms: form.omp.critical_named
|
|
24
|
+
! legal: yes
|
|
25
|
+
! observable: yes
|
|
26
|
+
! ran_on_host: inside the target region of interest
|
|
27
|
+
! evidence: construct
|
|
28
|
+
! needs: none
|
|
29
|
+
! std: f2008
|
|
30
|
+
! feature: a named critical construct in a target parallel loop
|
|
31
|
+
! spec: OpenMP 5.2 §15.2, p.299 (critical construct); its binding thread set is the contention group, so a target parallel region
|
|
32
|
+
! (one team) is used
|
|
33
|
+
program wide_prog
|
|
34
|
+
use omp_lib, only: omp_is_initial_device
|
|
35
|
+
implicit none
|
|
36
|
+
integer, parameter :: n = 64
|
|
37
|
+
integer :: a(n), b(n), ref(n)
|
|
38
|
+
integer :: s, t
|
|
39
|
+
integer :: i, host_flag
|
|
40
|
+
logical :: ok
|
|
41
|
+
do i = 1, n
|
|
42
|
+
a(i) = i
|
|
43
|
+
b(i) = 0
|
|
44
|
+
ref(i) = 2*i + 1
|
|
45
|
+
end do
|
|
46
|
+
host_flag = 1
|
|
47
|
+
s = 0
|
|
48
|
+
!$omp target parallel do map(to: a) map(tofrom: s, host_flag) private(t)
|
|
49
|
+
do i = 1, n
|
|
50
|
+
!$omp critical (wsum)
|
|
51
|
+
t = s
|
|
52
|
+
s = t + a(i)
|
|
53
|
+
!$omp end critical (wsum)
|
|
54
|
+
if (i == 1) host_flag = merge(1, 0, omp_is_initial_device())
|
|
55
|
+
end do
|
|
56
|
+
!$omp end target parallel do
|
|
57
|
+
ok = s == n*(n + 1)/2
|
|
58
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
59
|
+
end program wide_prog
|
|
60
|
+
! site:
|
|
61
|
+
! title: amdflang/amdclang: a named critical (Fortran) or a critical with hint (C) in a target region fails at the device link
|
|
62
|
+
! + (__kmpc_critical_with_hint undefined)
|
|
63
|
+
! control: ../vendor/checks/src/afar/control/afar-flang-named-critical-link-control.f90 the same loop on the host (parallel do
|
|
64
|
+
! + instead of
|
|
65
|
+
! + target
|
|
66
|
+
! + parallel do)
|
|
67
|
+
! end site
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
! # Draft finding: omp52-clause-ordered on afar
|
|
2
|
+
!
|
|
3
|
+
! - compiler: afar
|
|
4
|
+
! - toolchain: afar; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog omp52-clause-ordered (f90, version 52, sha256 50b2a05bbea64844)
|
|
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: afar/gfx942/copy
|
|
12
|
+
! (port:omp52-c-clause-ordered), afar/gfx942/unified (port:omp52-c-clause-ordered), elision
|
|
13
|
+
! - citations: RUL-DERIVED-NEEDS-EXECUTION (rulings.md); RUL-WITNESS-PER-MODE (rulings.md);
|
|
14
|
+
! RUL-SAME-COMPILER-RUNS (rulings.md)
|
|
15
|
+
! - legality: legal (legal by construction: offload.engine.gen / c_gen / acc_gen check every program against the catalog rules
|
|
16
|
+
! and the
|
|
17
|
+
! offload scope as it is built (no compiler))
|
|
18
|
+
! - witnesses: afar/gfx942/copy (port:omp52-c-clause-ordered), afar/gfx942/unified (port:omp52-c-clause-ordered), elision
|
|
19
|
+
! - withdrawn: none
|
|
20
|
+
!
|
|
21
|
+
! Generated by compliance.gen (OpenMP 5.2, free-form Fortran). Do not edit.
|
|
22
|
+
! id: omp52-clause-ordered
|
|
23
|
+
! primary atom: omp.clause.ordered
|
|
24
|
+
! legal: yes
|
|
25
|
+
! observable: yes
|
|
26
|
+
! ran_on_host: inside the target region of interest
|
|
27
|
+
! evidence: construct
|
|
28
|
+
! needs: none
|
|
29
|
+
! std: f2008
|
|
30
|
+
program gen_prog
|
|
31
|
+
use omp_lib, only: omp_is_initial_device
|
|
32
|
+
implicit none
|
|
33
|
+
integer, parameter :: n = 64
|
|
34
|
+
integer, allocatable, target :: a(:), b(:)
|
|
35
|
+
integer :: ref(n)
|
|
36
|
+
integer :: i, host_flag
|
|
37
|
+
logical :: ok
|
|
38
|
+
integer :: cnt, seq(n)
|
|
39
|
+
allocate(a(n), b(n))
|
|
40
|
+
do i = 1, n
|
|
41
|
+
a(i) = i
|
|
42
|
+
b(i) = 0
|
|
43
|
+
ref(i) = 2*i + 1
|
|
44
|
+
end do
|
|
45
|
+
host_flag = 1
|
|
46
|
+
cnt = 0
|
|
47
|
+
seq = -1
|
|
48
|
+
!$omp target map(to: a) map(from: b) map(tofrom: cnt) map(from: seq) map(tofrom: host_flag)
|
|
49
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
50
|
+
!$omp parallel do default(none) shared(a, b, cnt, seq) ordered
|
|
51
|
+
do i = 1, n
|
|
52
|
+
b(i) = 2*a(i) + 1
|
|
53
|
+
!$omp ordered
|
|
54
|
+
cnt = cnt + 1
|
|
55
|
+
seq(i) = cnt
|
|
56
|
+
!$omp end ordered
|
|
57
|
+
end do
|
|
58
|
+
!$omp end parallel do
|
|
59
|
+
!$omp end target
|
|
60
|
+
ok = all(b == ref) .and. all(2*seq + 1 == ref)
|
|
61
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
62
|
+
deallocate(a, b)
|
|
63
|
+
end program gen_prog
|
|
64
|
+
! site:
|
|
65
|
+
! title: amdflang: ordered regions in a parallel do in a target region do not run in iteration order
|
|
66
|
+
! control: ../vendor/checks/src/afar/control/afar-flang-ordered-wrong-control.f90 the same parallel do on the host (the target
|
|
67
|
+
! + directive
|
|
68
|
+
! + removed)
|
|
69
|
+
! end site
|
|
70
|
+
! spec (requirement): Ordered regions of a worksharing loop with an ordered clause execute sequentially in the order
|
|
71
|
+
! of the loop iterations.
|
|
72
|
+
! "the threads in the team that is executing the worksharing-loop region execute ordered regions sequentially in the
|
|
73
|
+
! order of the loop iterations." (5.2 §15.10.2 p.330 l.21-22)
|
|
74
|
+
! spec (requirement): An ordered construct without clauses has the effect of the threads clause.
|
|
75
|
+
! "If no clauses are specified, the effect is as if the threads parallelization-level clause was specified." (5.2
|
|
76
|
+
! §15.10.2 p.330 l.20-21)
|
|
77
|
+
! spec (this program): The ordered region increments cnt and records seq(i), so the regions run in iteration order and
|
|
78
|
+
! seq(i) = i for every i; on the device amdflang runs them out of order and check=fail results.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
! # Draft finding: omp52-clause-in_reduction-minus on afar
|
|
2
|
+
!
|
|
3
|
+
! - compiler: afar
|
|
4
|
+
! - toolchain: afar; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog omp52-clause-in_reduction-minus (f90, version 52, sha256 685f776281adfd53)
|
|
6
|
+
! - expected: None (None; )
|
|
7
|
+
! - actual: rejected (diagnostic: <tmpdir>/omp52-clause-in_reduction-minus.f90:31:19: error: The minus reduction operator is
|
|
8
|
+
! deprecated since OpenMP 5.2 and is not supported in the REDUCTION clause.)
|
|
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-in_reduction-minus
|
|
21
|
+
! primary atom: omp.clause.in_reduction.minus
|
|
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_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 :: s, sref
|
|
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
|
+
s = 0
|
|
45
|
+
sref = 0
|
|
46
|
+
do i = 1, n
|
|
47
|
+
sref = sref - a(i)
|
|
48
|
+
end do
|
|
49
|
+
!$omp taskgroup task_reduction(-: s)
|
|
50
|
+
!$omp target map(to: a) map(from: b) map(tofrom: host_flag) in_reduction(-: s)
|
|
51
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
52
|
+
do i = 1, n
|
|
53
|
+
b(i) = 2*a(i) + 1
|
|
54
|
+
s = s - a(i)
|
|
55
|
+
end do
|
|
56
|
+
!$omp end target
|
|
57
|
+
!$omp end taskgroup
|
|
58
|
+
ok = all(b == ref) .and. (s == sref)
|
|
59
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
60
|
+
deallocate(a, b)
|
|
61
|
+
end program gen_prog
|
|
62
|
+
! site:
|
|
63
|
+
! title: amdflang: the deprecated - reduction identifier in task_reduction/in_reduction is rejected as not supported
|
|
64
|
+
! control: ../vendor/checks/src/afar/control/afar-flang-reduction-minus-rejected-control.f90 the reduction identifier + instead of -
|
|
65
|
+
! end site
|
|
66
|
+
! spec (requirement): The minus operator is still a reduction identifier in OpenMP 5.2 (deprecated, not removed), so a
|
|
67
|
+
! conforming compiler accepts it in reduction-type clauses.
|
|
68
|
+
! "following operators: +, - (deprecated), *, .and., .or., .eqv., .neqv." (5.2 §5.5.1 p.124 l.23)
|
|
69
|
+
! spec (requirement): The 5.2 list of changes states that the minus operator was deprecated, not removed.
|
|
70
|
+
! "The minus (-) operator for reductions was deprecated (see Section 5.5.5)." (5.2 §B.2 p.627 l.18)
|
|
71
|
+
! spec (requirement): The reduction identifier of task_reduction and in_reduction must match a previously declared
|
|
72
|
+
! identifier of the same name and type; Table 5.2 lists - (deprecated) as implicitly declared for Fortran numeric
|
|
73
|
+
! types.
|
|
74
|
+
! "The reduction identifier must match a previously declared reduction identifier of the same name and type for each
|
|
75
|
+
! of the list items." (5.2 §5.5.5 p.131 l.4-5)
|
|
76
|
+
! spec (this program): task_reduction(-: s) and in_reduction(-: s) use the deprecated but valid minus identifier;
|
|
77
|
+
! amdflang rejects it with a diagnostic that the minus reduction operator is not supported in the reduction clause.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
! # Draft finding: omp52-clause-reduction-task on afar
|
|
2
|
+
!
|
|
3
|
+
! - compiler: afar
|
|
4
|
+
! - toolchain: afar; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog omp52-clause-reduction-task (f90, version 52, sha256 0181c241953a07c1)
|
|
6
|
+
! - expected: None (None; )
|
|
7
|
+
! - actual: ice (ice: Call parameter type does not match function signature!)
|
|
8
|
+
! - verdict: compiler_bug by rule R10-compile-ice: an internal compiler error (or the compiler rejecting code it generated) on a
|
|
9
|
+
! legal program: always the compiler's defect
|
|
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-reduction-task
|
|
20
|
+
! primary atom: omp.clause.reduction.task
|
|
21
|
+
! legal: yes
|
|
22
|
+
! observable: yes
|
|
23
|
+
! ran_on_host: inside the target region of interest
|
|
24
|
+
! evidence: construct
|
|
25
|
+
! needs: none
|
|
26
|
+
! std: f2008
|
|
27
|
+
program gen_prog
|
|
28
|
+
use omp_lib, only: omp_is_initial_device
|
|
29
|
+
implicit none
|
|
30
|
+
integer, parameter :: n = 64
|
|
31
|
+
integer, allocatable, target :: a(:), b(:)
|
|
32
|
+
integer :: ref(n)
|
|
33
|
+
integer :: i, host_flag
|
|
34
|
+
logical :: ok
|
|
35
|
+
integer :: s, sref
|
|
36
|
+
allocate(a(n), b(n))
|
|
37
|
+
do i = 1, n
|
|
38
|
+
a(i) = i
|
|
39
|
+
b(i) = 0
|
|
40
|
+
ref(i) = 2*i + 1
|
|
41
|
+
end do
|
|
42
|
+
host_flag = 1
|
|
43
|
+
s = 0
|
|
44
|
+
sref = 0
|
|
45
|
+
do i = 1, n
|
|
46
|
+
sref = sref + a(i)
|
|
47
|
+
end do
|
|
48
|
+
!$omp target map(to: a) map(from: b) map(tofrom: host_flag) map(tofrom: s)
|
|
49
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
50
|
+
!$omp parallel default(none) shared(a, b, s)
|
|
51
|
+
!$omp do reduction(task, +: s)
|
|
52
|
+
do i = 1, n
|
|
53
|
+
b(i) = 2*a(i) + 1
|
|
54
|
+
s = s + a(i)
|
|
55
|
+
end do
|
|
56
|
+
!$omp end do
|
|
57
|
+
!$omp end parallel
|
|
58
|
+
!$omp end target
|
|
59
|
+
ok = all(b == ref) .and. (s == sref)
|
|
60
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
61
|
+
deallocate(a, b)
|
|
62
|
+
end program gen_prog
|
|
63
|
+
! site:
|
|
64
|
+
! title: amdflang: "Call parameter type does not match function signature!" for sections, and for reduction(task), in a target
|
|
65
|
+
! + region
|
|
66
|
+
! control: ../vendor/checks/src/afar/control/afar-flang-reduction-task-ice-control.f90 reduction(+: s) without the task modifier
|
|
67
|
+
! same_as: catalog/afar-flang-sections-in-target-ice
|
|
68
|
+
! end site
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
! # Draft finding: omp52-w-sections on afar
|
|
2
|
+
!
|
|
3
|
+
! - compiler: afar
|
|
4
|
+
! - toolchain: afar; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog omp52-w-sections (f90, version 52, sha256 d299f7f016bae1e6)
|
|
6
|
+
! - expected: None (None; )
|
|
7
|
+
! - actual: ice (ice: Call parameter type does not match function signature!)
|
|
8
|
+
! - verdict: compiler_bug by rule R10-compile-ice: an internal compiler error (or the compiler rejecting code it generated) on a
|
|
9
|
+
! legal program: always the compiler's defect
|
|
10
|
+
! - reason:
|
|
11
|
+
! - citations: RUL-COMPILE-TIME (rulings.md)
|
|
12
|
+
! - legality: legal: offload.engine.rules accepts it (offload.engine.prerun.check, rerun: with the
|
|
13
|
+
! race rule and the restriction checks); NVHPC is no witness: it does not implement a feature the
|
|
14
|
+
! program uses (NVFORTRAN-F-1196-OpenMP - omp sections is not supported in GPU
|
|
15
|
+
! region); the check's other witness, the AFAR flang front end, is the compiler under test and is
|
|
16
|
+
! not counted; no gfortran or gcc is a legality witness
|
|
17
|
+
! - witnesses: none
|
|
18
|
+
! - withdrawn: none
|
|
19
|
+
!
|
|
20
|
+
! Generated by compliance.widen (OpenMP 5.2, free-form Fortran; catalog widening). Do not edit.
|
|
21
|
+
! id: omp52-w-sections
|
|
22
|
+
! primary atom: omp.directive.sections
|
|
23
|
+
! atoms: omp.directive.sections
|
|
24
|
+
! legal: yes
|
|
25
|
+
! observable: yes
|
|
26
|
+
! ran_on_host: inside the target region of interest
|
|
27
|
+
! evidence: construct
|
|
28
|
+
! needs: none
|
|
29
|
+
! std: f2008
|
|
30
|
+
! feature: a sections construct with two sections in a target parallel region
|
|
31
|
+
! spec: OpenMP 5.2 §11.3, p.243 (sections construct)
|
|
32
|
+
program wide_prog
|
|
33
|
+
use omp_lib, only: omp_is_initial_device
|
|
34
|
+
implicit none
|
|
35
|
+
integer, parameter :: n = 64
|
|
36
|
+
integer :: a(n), b(n), ref(n)
|
|
37
|
+
integer :: i, host_flag
|
|
38
|
+
logical :: ok
|
|
39
|
+
do i = 1, n
|
|
40
|
+
a(i) = i
|
|
41
|
+
b(i) = 0
|
|
42
|
+
ref(i) = 2*i + 1
|
|
43
|
+
end do
|
|
44
|
+
host_flag = 1
|
|
45
|
+
!$omp target parallel map(to: a) map(tofrom: b, host_flag)
|
|
46
|
+
!$omp sections
|
|
47
|
+
!$omp section
|
|
48
|
+
do i = 1, n/2
|
|
49
|
+
b(i) = 2*a(i) + 1
|
|
50
|
+
end do
|
|
51
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
52
|
+
!$omp section
|
|
53
|
+
do i = n/2 + 1, n
|
|
54
|
+
b(i) = a(i) + a(i) + 1
|
|
55
|
+
end do
|
|
56
|
+
!$omp end sections
|
|
57
|
+
!$omp end target parallel
|
|
58
|
+
ok = all(b == ref)
|
|
59
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
60
|
+
end program wide_prog
|
|
61
|
+
! site:
|
|
62
|
+
! title: amdflang: "Call parameter type does not match function signature!" for sections, and for reduction(task), in a target
|
|
63
|
+
! + region
|
|
64
|
+
! control: ../vendor/checks/src/afar/control/afar-flang-sections-in-target-ice-control.f90 the same sections on the host (parallel
|
|
65
|
+
! + instead of
|
|
66
|
+
! + target parallel)
|
|
67
|
+
! end site
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
! # Draft finding: omp60-directive-target_teams_workdistribute on afar
|
|
2
|
+
!
|
|
3
|
+
! - compiler: afar
|
|
4
|
+
! - toolchain: afar; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog omp60-directive-target_teams_workdistribute (f90, version 60, sha256 d86b846044944953)
|
|
6
|
+
! - expected: None (None; )
|
|
7
|
+
! - actual: ice (ice: PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace
|
|
8
|
+
! and instructions to reproduce the bug.)
|
|
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 6.0, free-form Fortran). Do not edit.
|
|
20
|
+
! id: omp60-directive-target_teams_workdistribute
|
|
21
|
+
! primary atom: omp.directive.target_teams_workdistribute
|
|
22
|
+
! legal: yes
|
|
23
|
+
! observable: yes
|
|
24
|
+
! ran_on_host: probe (a target region just before the region of interest, which may not call the OpenMP API)
|
|
25
|
+
! evidence: construct
|
|
26
|
+
! needs: none
|
|
27
|
+
! std: f2008
|
|
28
|
+
! unverified: no toolchain compiles this (6.0 workdistribute), so the on_dev evidence is untested here
|
|
29
|
+
! derivation (check=pass): on_dev is a declare_target variable: the first target region sets the device's copy to 1, and it keeps
|
|
30
|
+
! derivation: its value on the device; target teams workdistribute divides the array assignment b = 2*a + on_dev into units of work
|
|
31
|
+
! derivation: each executed once (6.0 §13.5 p.412), so b(i) = 2*i + 1 on the device, mapped from: b = ref; the check accepts
|
|
32
|
+
module gen_mod
|
|
33
|
+
implicit none
|
|
34
|
+
integer :: on_dev = 0
|
|
35
|
+
!$omp declare target(on_dev)
|
|
36
|
+
end module gen_mod
|
|
37
|
+
|
|
38
|
+
program gen_prog
|
|
39
|
+
use omp_lib, only: omp_is_initial_device
|
|
40
|
+
use gen_mod
|
|
41
|
+
implicit none
|
|
42
|
+
integer, parameter :: n = 64
|
|
43
|
+
integer, allocatable, target :: a(:), b(:)
|
|
44
|
+
integer :: ref(n)
|
|
45
|
+
integer :: i, host_flag
|
|
46
|
+
logical :: ok
|
|
47
|
+
allocate(a(n), b(n))
|
|
48
|
+
do i = 1, n
|
|
49
|
+
a(i) = i
|
|
50
|
+
b(i) = 0
|
|
51
|
+
ref(i) = 2*i + 1
|
|
52
|
+
end do
|
|
53
|
+
host_flag = 1
|
|
54
|
+
!$omp target map(tofrom: host_flag)
|
|
55
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
56
|
+
on_dev = 1
|
|
57
|
+
!$omp end target
|
|
58
|
+
!$omp target teams workdistribute map(to: a) map(from: b) default(none) shared(a, b, on_dev)
|
|
59
|
+
b = 2*a + on_dev
|
|
60
|
+
!$omp end target teams workdistribute
|
|
61
|
+
if (all(b == 2*a)) host_flag = 1
|
|
62
|
+
ok = all(b == ref)
|
|
63
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
64
|
+
deallocate(a, b)
|
|
65
|
+
end program gen_prog
|
|
66
|
+
! site:
|
|
67
|
+
! title: amdflang -fopenmp-version=60: compiler crash in MapInfoOp for target teams workdistribute
|
|
68
|
+
! control: ../vendor/checks/src/afar/control/afar-flang-workdistribute-ice-control.f90 a plain target construct around the array
|
|
69
|
+
! + assignment
|
|
70
|
+
! + instead of target teams workdistribute
|
|
71
|
+
! end site
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// # Draft finding: omp52-c-w-allocate-const-firstprivate on afar
|
|
2
|
+
//
|
|
3
|
+
// - compiler: afar
|
|
4
|
+
// - toolchain: afar; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
// - program: catalog omp52-c-w-allocate-const-firstprivate (c, version 52, sha256 2f1a38cbd60a463c)
|
|
6
|
+
// - expected: check=pass (trusted; elision + model)
|
|
7
|
+
// - actual: wrong_answer check=fail (check_fail: ran_on_host=0 check=fail)
|
|
8
|
+
// - oracle audit: run on AFAR, CCE 19, 20, 21 (copy mode) and NVHPC: no toolchain passes the original (NVHPC rejects the clauses), so the mutant cannot be credited (unaudited, not weak); in sequential elision the original prints check=pass and the mutant (x's contribution removed) check=fail, so the check depends on the firstprivate value
|
|
9
|
+
// - 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
|
|
10
|
+
// - reason: expected trusted check=pass (elision + model): stored main verdict: elision + model agree; witnesses: elision
|
|
11
|
+
// - citations: RUL-DERIVED-NEEDS-EXECUTION (rulings.md); RUL-WITNESS-PER-MODE (rulings.md); RUL-SAME-COMPILER-RUNS (rulings.md); RUL-PRESENCE-WITNESS (rulings.md); RUL-METAMORPHIC-OTHER-FAMILY (rulings.md)
|
|
12
|
+
// - legality: legal: offload.engine.prerun.check accepts it (rerun: offload.engine.rules with the
|
|
13
|
+
// race rule and the restriction checks, and the AFAR clang front end, not under test here); no
|
|
14
|
+
// compiler under test, gfortran or gcc is a legality witness
|
|
15
|
+
// - witnesses: elision
|
|
16
|
+
// - withdrawn: none
|
|
17
|
+
//
|
|
18
|
+
// Generated by compliance.widen (OpenMP 5.2, C11; catalog widening). Do not edit.
|
|
19
|
+
// id: omp52-c-w-allocate-const-firstprivate
|
|
20
|
+
// primary atom: pair.omp.clause.allocate+omp.clause.firstprivate
|
|
21
|
+
// atoms: pair.omp.clause.allocate+omp.clause.firstprivate, omp.clause.allocate, omp.clause.firstprivate
|
|
22
|
+
// legal: yes
|
|
23
|
+
// observable: yes
|
|
24
|
+
// ran_on_host: inside the target region of interest
|
|
25
|
+
// evidence: construct
|
|
26
|
+
// needs: none
|
|
27
|
+
// std: c11
|
|
28
|
+
// feature: a firstprivate scalar allocated with omp_const_mem_alloc (uses_allocators) on a target loop
|
|
29
|
+
// spec: the parts' own programs
|
|
30
|
+
// pair of: omp.clause.allocate + omp.clause.firstprivate (each has a program of its own)
|
|
31
|
+
#include <stdio.h>
|
|
32
|
+
#include <stdbool.h>
|
|
33
|
+
#include <omp.h>
|
|
34
|
+
|
|
35
|
+
enum { n = 64 };
|
|
36
|
+
|
|
37
|
+
int main(void) {
|
|
38
|
+
int a[n], b[n], ref[n];
|
|
39
|
+
int host_flag = 1;
|
|
40
|
+
int x = 5;
|
|
41
|
+
for (int i = 0; i < n; i++) {
|
|
42
|
+
a[i] = i + 1;
|
|
43
|
+
b[i] = 0;
|
|
44
|
+
ref[i] = i + 1 + 5;
|
|
45
|
+
}
|
|
46
|
+
#pragma omp target teams distribute parallel for map(to: a) map(from: b) map(tofrom: \
|
|
47
|
+
host_flag) firstprivate(x) allocate(omp_const_mem_alloc: x) \
|
|
48
|
+
uses_allocators(omp_const_mem_alloc)
|
|
49
|
+
for (int i = 0; i < n; i++) {
|
|
50
|
+
b[i] = a[i] + x;
|
|
51
|
+
if (i == 0) host_flag = omp_is_initial_device();
|
|
52
|
+
}
|
|
53
|
+
bool ok = true;
|
|
54
|
+
for (int i = 0; i < n; i++)
|
|
55
|
+
ok = ok && (b[i] == ref[i]);
|
|
56
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, ok ? "pass" : "fail");
|
|
57
|
+
return 0;
|
|
58
|
+
}
|
|
59
|
+
// site:
|
|
60
|
+
// title: craycc: a firstprivate scalar allocated with omp_const_mem_alloc has the wrong value on the device
|
|
61
|
+
// control: ../vendor/checks/src/other/control/c-allocate-const-mem-firstprivate-wrong-control.c the allocate and uses_allocators
|
|
62
|
+
// + clauses
|
|
63
|
+
// + removed
|
|
64
|
+
// + (x firstprivate only)
|
|
65
|
+
// end site
|
|
66
|
+
// spec (requirement): Variables in the constant memory space may be initialized through the firstprivate clause.
|
|
67
|
+
// "Variables allocated in the omp_const_mem_space memory space may be initialized through the firstprivate clause"
|
|
68
|
+
// (5.2 §6.1 p.171 l.9-10)
|
|
69
|
+
// spec (requirement): A firstprivate list item that also appears in allocate gets its storage from that allocator and
|
|
70
|
+
// is initialized from the original list item.
|
|
71
|
+
// "If a list item in the clause also appears in a data-sharing attribute clause on the same directive that privatizes
|
|
72
|
+
// the list item, allocations that arise from that list item in the clause will be provided by the memory
|
|
73
|
+
// allocator." (5.2 §6.6 p.178 l.12-14)
|
|
74
|
+
// spec (requirement): The new list item of a firstprivate clause is initialized from the original list item.
|
|
75
|
+
// "In addition, the new list item is initialized from the original list item that exists before the construct." (5.2
|
|
76
|
+
// §5.4.4 p.112 l.11-12)
|
|
77
|
+
// spec (this program): firstprivate(x) allocate(omp_const_mem_alloc: x) with uses_allocators(omp_const_mem_alloc) is
|
|
78
|
+
// the form 5.2 names for constant memory, so every device copy of x must hold 5; craycc yields the wrong value on
|
|
79
|
+
// the device.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
! # Draft finding: acc34-w-allocate-in-device on cce19
|
|
2
|
+
!
|
|
3
|
+
! - compiler: cce19
|
|
4
|
+
! - toolchain: cce19; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog acc34-w-allocate-in-device (f90, version 34, sha256 bc9f4dc73a5f7637)
|
|
6
|
+
! - expected: check=pass (trusted; elision + model)
|
|
7
|
+
! - actual: crash (crash: SIGABRT)
|
|
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-allocate-in-device
|
|
23
|
+
! primary atom: base.device.allocate
|
|
24
|
+
! atoms: base.device.allocate
|
|
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: ALLOCATE and DEALLOCATE of a local allocatable array in a target region
|
|
32
|
+
! spec: OpenACC 3.4 §1.8, p.16: Fortran 2008 is a normative base language (the features whose use is unspecified are listed there;
|
|
33
|
+
! this is not one of them)
|
|
34
|
+
program wide_prog
|
|
35
|
+
use openacc, only: acc_device_host, acc_on_device
|
|
36
|
+
implicit none
|
|
37
|
+
integer, parameter :: n = 64
|
|
38
|
+
integer :: a(n), b(n), ref(n)
|
|
39
|
+
integer :: i, host_flag
|
|
40
|
+
logical :: ok
|
|
41
|
+
do i = 1, n
|
|
42
|
+
a(i) = i
|
|
43
|
+
b(i) = 0
|
|
44
|
+
ref(i) = 2*i + 1
|
|
45
|
+
end do
|
|
46
|
+
host_flag = 1
|
|
47
|
+
!$acc serial copyin(a) copyout(b) copy(host_flag)
|
|
48
|
+
host_flag = merge(1, 0, acc_on_device(acc_device_host))
|
|
49
|
+
block
|
|
50
|
+
integer, allocatable :: w(:)
|
|
51
|
+
allocate(w(n))
|
|
52
|
+
w = 2*a + 1
|
|
53
|
+
b = w
|
|
54
|
+
deallocate(w)
|
|
55
|
+
end block
|
|
56
|
+
!$acc end serial
|
|
57
|
+
ok = all(b == ref)
|
|
58
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
59
|
+
end program wide_prog
|
|
60
|
+
! site:
|
|
61
|
+
! title: ftn: ALLOCATE/DEALLOCATE of a local allocatable in device code aborts (SIGABRT), OpenMP and OpenACC
|
|
62
|
+
! control: ../vendor/checks/src/cce/control/cce-acc-allocate-in-compute-crash-control.f90 w a fixed-size local array (no
|
|
63
|
+
! + ALLOCATE/DEALLOCATE)
|
|
64
|
+
! same_as: catalog/cce-flang-allocate-in-target-crash
|
|
65
|
+
! end site
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
! # Draft finding: acc34-w-routine-character on cce20
|
|
2
|
+
!
|
|
3
|
+
! - compiler: cce20
|
|
4
|
+
! - toolchain: cce20; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog acc34-w-routine-character (f90, version 34, sha256 976490e860a6112c)
|
|
6
|
+
! - expected: None (None; )
|
|
7
|
+
! - actual: ice (ice: INTERNAL COMPILER ERROR: "Bad cast from fcd to ... " (/workspace/crayftn/pdgcs/llvm-uex-expr.c, line 620,
|
|
8
|
+
! version 668d73f9607c0349bd23641a3a25a1acfac374de))
|
|
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: offload.engine.prerun.check accepts it (rerun: offload.engine.rules with the
|
|
14
|
+
! race rule and the restriction checks, and the AFAR flang front end, not under test here); no
|
|
15
|
+
! compiler under test, gfortran or gcc is a legality witness
|
|
16
|
+
! - witnesses: none
|
|
17
|
+
! - withdrawn: none
|
|
18
|
+
!
|
|
19
|
+
! Generated by compliance.widen (OpenACC 3.4, free-form Fortran; catalog widening). Do not edit.
|
|
20
|
+
! id: acc34-w-routine-character
|
|
21
|
+
! primary atom: pair.base.device.routine_call+base.device.character
|
|
22
|
+
! atoms: pair.base.device.routine_call+base.device.character, base.device.routine_call, base.device.character
|
|
23
|
+
! legal: yes
|
|
24
|
+
! observable: yes
|
|
25
|
+
! ran_on_host: inside the compute region of interest (acc_on_device)
|
|
26
|
+
! evidence: construct
|
|
27
|
+
! needs: none
|
|
28
|
+
! std: f2008
|
|
29
|
+
! feature: a device routine with a CHARACTER(len=*) dummy
|
|
30
|
+
! spec: the parts' own programs
|
|
31
|
+
! pair of: base.device.routine_call + base.device.character (each has a program of its own)
|
|
32
|
+
module wmod
|
|
33
|
+
implicit none
|
|
34
|
+
contains
|
|
35
|
+
integer function code(c)
|
|
36
|
+
!$acc routine seq
|
|
37
|
+
character(len=*), intent(in) :: c
|
|
38
|
+
code = ichar(c(1:1)) + len(c)
|
|
39
|
+
end function code
|
|
40
|
+
end module wmod
|
|
41
|
+
|
|
42
|
+
program wide_prog
|
|
43
|
+
use openacc, only: acc_device_host, acc_on_device
|
|
44
|
+
use wmod
|
|
45
|
+
implicit none
|
|
46
|
+
integer, parameter :: n = 64
|
|
47
|
+
integer :: a(n), b(n), ref(n)
|
|
48
|
+
character(len=8) :: s
|
|
49
|
+
integer :: i, host_flag
|
|
50
|
+
logical :: ok
|
|
51
|
+
do i = 1, n
|
|
52
|
+
a(i) = i
|
|
53
|
+
b(i) = 0
|
|
54
|
+
ref(i) = 97 + mod(i, 8) + 1
|
|
55
|
+
end do
|
|
56
|
+
host_flag = 1
|
|
57
|
+
!$acc parallel loop copyin(a) copyout(b) copy(host_flag) private(s)
|
|
58
|
+
do i = 1, n
|
|
59
|
+
s = 'abcdefgh'
|
|
60
|
+
b(i) = code(s(1:mod(i, 8) + 1))
|
|
61
|
+
if (i == 1) host_flag = merge(1, 0, acc_on_device(acc_device_host))
|
|
62
|
+
end do
|
|
63
|
+
ok = all(b == ref)
|
|
64
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
65
|
+
end program wide_prog
|
|
66
|
+
! site:
|
|
67
|
+
! title: ftn -h acc: internal compiler error "Bad cast from fcd" for a CHARACTER(len=*) dummy of a routine seq procedure
|
|
68
|
+
! control: ../vendor/checks/src/cce/control/cce-acc-character-dummy-routine-ice-control.f90 the routine takes the character's
|
|
69
|
+
! + code and
|
|
70
|
+
! + length as
|
|
71
|
+
! + integers instead of the CHARACTER(len=*) dummy
|
|
72
|
+
! end site
|
|
73
|
+
! spec (requirement): The routine directive tells the compiler to compile a procedure for the accelerator as well as
|
|
74
|
+
! the host.
|
|
75
|
+
! "The routine directive is used to tell the compiler to compile the definition for a procedure, such as a function or
|
|
76
|
+
! C++ lambda, for an accelerator as well as for the host." (OpenACC 3.4 §2.15.1 p.91 l.3321-3323)
|
|
77
|
+
! spec (requirement): A call to a seq routine may appear in any mode, including from a loop in a parallel region.
|
|
78
|
+
! "A call to this procedure may appear in any mode." (OpenACC 3.4 §2.15.1 p.93 l.3404)
|
|
79
|
+
! spec (this program): The seq routine code takes a character(len=*) dummy; the spec places no restriction on the
|
|
80
|
+
! argument types of a routine procedure (the glossary treats character variables as aggregate variables), so the
|
|
81
|
+
! call with a substring is legal, and ftn stops with an internal error (Bad cast from fcd).
|