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,63 @@
|
|
|
1
|
+
! # Finding (fortran-oop): OpenACC data copyin(x) copy(x%a): 'Symbol x has mixed component and non-component accesses'
|
|
2
|
+
!
|
|
3
|
+
! - toolchains and modes that fail: gcc_g90 (GCC 16.2 (gfx90a): copy), gcc_sm80 (GCC 16.2 (sm_80): copy); -O2
|
|
4
|
+
! - build: gfortran -fopenacc -foffload=amdgcn-amdhsa -foffload-options=amdgcn-amdhsa=-march=gfx90a -O2 (gcc_g90); -fopenacc
|
|
5
|
+
! -foffload=nvptx-none -foffload-options=nvptx-none=-march=sm_80 (gcc_sm80)
|
|
6
|
+
! - failure: rejected (diagnostic)
|
|
7
|
+
! - observed: `Error: Symbol 'x' has mixed component and non-component accesses`
|
|
8
|
+
! - expected: compiles; `r1= 4160`
|
|
9
|
+
! - rule: OpenACC 3.4 §2.7.1 p.50 l.1711-1713 (a derived-type variable's allocatable members' data are not copied with it) and
|
|
10
|
+
! §2.6.4 p.43 l.1449-1458 (a member in a data clause is attached): the manual deep copy the specification describes
|
|
11
|
+
! - same-compiler control: the same deep copy by enter data copyin(x) then copyin(x%a) (oop-acc-deep-enterexit): correct
|
|
12
|
+
! - other families: CCE 19, 20, 21 correct in both modes
|
|
13
|
+
! - gate and confirmer: 2 cells, 2 confirmed in the gate's four environments (a-d; results/oop/main/gate_reruns*.jsonl); confirmer
|
|
14
|
+
! (results/oop/main/confirm.jsonl): compiler_bug (R11-compile-rejection) 2
|
|
15
|
+
! - programs (1): oop-acc-deep-data (offload/engine/oop_gen.py; this file is the first one)
|
|
16
|
+
! - legality: for the gcc cells: the rules (offload.engine.rules, with the fortran-oop restrictions) and AFAR's flang front end
|
|
17
|
+
! (-fsyntax-only) and a CCE compile and NVHPC 26.9 nvfortran (compile only) (tools/campaigns/oop.py legality,
|
|
18
|
+
! results/oop/main/legality.json)
|
|
19
|
+
module oop_m
|
|
20
|
+
implicit none
|
|
21
|
+
integer, parameter :: n = 64
|
|
22
|
+
type vec
|
|
23
|
+
integer :: n = 0
|
|
24
|
+
integer, allocatable :: a(:)
|
|
25
|
+
end type vec
|
|
26
|
+
end module oop_m
|
|
27
|
+
|
|
28
|
+
program oop
|
|
29
|
+
use openacc
|
|
30
|
+
use oop_m
|
|
31
|
+
implicit none
|
|
32
|
+
integer :: host_flag
|
|
33
|
+
logical :: ok
|
|
34
|
+
integer :: r1
|
|
35
|
+
type(vec) :: x
|
|
36
|
+
integer :: i
|
|
37
|
+
host_flag = 1
|
|
38
|
+
!$acc serial copy(host_flag)
|
|
39
|
+
host_flag = merge(1, 0, acc_on_device(acc_device_host))
|
|
40
|
+
!$acc end serial
|
|
41
|
+
allocate(x%a(n))
|
|
42
|
+
x%n = n
|
|
43
|
+
do i = 1, n
|
|
44
|
+
x%a(i) = i
|
|
45
|
+
end do
|
|
46
|
+
!$acc data copyin(x) copy(x%a)
|
|
47
|
+
!$acc parallel loop
|
|
48
|
+
do i = 1, n
|
|
49
|
+
x%a(i) = 2 * x%a(i)
|
|
50
|
+
end do
|
|
51
|
+
!$acc end data
|
|
52
|
+
r1 = sum(x%a)
|
|
53
|
+
ok = .true.
|
|
54
|
+
ok = ok .and. (r1 == 4160)
|
|
55
|
+
print '(a,i0)', 'r1= ', r1
|
|
56
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
57
|
+
end program oop
|
|
58
|
+
! site:
|
|
59
|
+
! title: OpenACC: a structure and its member in one data construct are rejected
|
|
60
|
+
! summary: An OpenACC data construct with copyin(x) copy(x%a), the specification's manual deep copy of an allocatable member, is
|
|
61
|
+
! + rejected by GCC 16.2 ('mixed component and non-component accesses'). The same deep copy with two enter data directives works.
|
|
62
|
+
! + CCE is correct.
|
|
63
|
+
! end site
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
! # Finding (fortran-oop): mapping a derived type with a length type parameter aborts at run time
|
|
2
|
+
!
|
|
3
|
+
! - toolchains and modes that fail: gcc_g90 (GCC 16.2 (gfx90a): copy), gcc_sm80 (GCC 16.2 (sm_80): copy); -O2
|
|
4
|
+
! - build: gfortran -fopenmp -foffload=amdgcn-amdhsa -foffload-options=amdgcn-amdhsa=-march=gfx90a -O2 (gcc_g90);
|
|
5
|
+
! -foffload=nvptx-none -foffload-options=nvptx-none=-march=sm_80 -foffload-options=nvptx-none=-latomic (gcc_sm80)
|
|
6
|
+
! - failure: crash (SIGABRT); OMP_TARGET_OFFLOAD=mandatory
|
|
7
|
+
! - observed: compiles; aborts (SIGABRT) in every run; the deferred-length allocatable form (oop-pdt-deferred) aborts in some runs
|
|
8
|
+
! only (nondeterministic in the gate, not counted)
|
|
9
|
+
! - expected: `r1= 16 r2= 1496`
|
|
10
|
+
! - rule: 5.2 §5.8.3 p.155 l.5-7
|
|
11
|
+
! - same-compiler control: the same program without the target construct (controls/pdt-len-host.f90, one change: the PDT work runs
|
|
12
|
+
! on the host): `r1= 16 r2= 1496`, check=pass in the stored run and the gate's four environments on both machines
|
|
13
|
+
! (results/oop/probe/ctl2.*.pdt-len-host.gcc.jsonl, results/oop/probe/ctl2.*.pdt-len-host.wt-gcc_sm80.jsonl), so the abort is
|
|
14
|
+
! the offload's; a
|
|
15
|
+
! kind type parameter only (controls/pdt-kind.f90) is correct too (results/oop/main/rows.part*.jsonl)
|
|
16
|
+
! - other families: AFAR (not implemented) and CCE (ftn-1853) reject the programs
|
|
17
|
+
! - gate and confirmer: 6 cells, 6 confirmed in the gate's four environments (a-d; results/oop/main/gate_reruns*.jsonl); confirmer
|
|
18
|
+
! (results/oop/main/confirm.jsonl): needs_human (R22-expected-weak) 6; R22-expected-weak means the expected value has one
|
|
19
|
+
! source, the generator's Python model; the values follow from the program's arithmetic (checked by hand), and NVHPC 25.11,
|
|
20
|
+
! NVHPC 26.9 print them on this program
|
|
21
|
+
! - programs (3): oop-pdt-len, oop-pdt-array, oop-pdt-kindlen (offload/engine/oop_gen.py; this file is the first one)
|
|
22
|
+
! - legality: for the gcc cells: the rules (offload.engine.rules, with the fortran-oop restrictions) and AFAR's flang front end
|
|
23
|
+
! (-fsyntax-only) and NVHPC 26.9 nvfortran (compile only) (tools/campaigns/oop.py legality, results/oop/main/legality.json)
|
|
24
|
+
module oop_m
|
|
25
|
+
implicit none
|
|
26
|
+
integer, parameter :: n = 64
|
|
27
|
+
type lv(m)
|
|
28
|
+
integer, len :: m
|
|
29
|
+
integer :: a(m)
|
|
30
|
+
end type lv
|
|
31
|
+
end module oop_m
|
|
32
|
+
|
|
33
|
+
program oop
|
|
34
|
+
use omp_lib
|
|
35
|
+
use oop_m
|
|
36
|
+
implicit none
|
|
37
|
+
integer :: host_flag
|
|
38
|
+
logical :: ok
|
|
39
|
+
integer :: r1, r2
|
|
40
|
+
type(lv(16)) :: x
|
|
41
|
+
integer :: i
|
|
42
|
+
host_flag = 1
|
|
43
|
+
!$omp target map(from: host_flag)
|
|
44
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
45
|
+
!$omp end target
|
|
46
|
+
do i = 1, 16
|
|
47
|
+
x%a(i) = i
|
|
48
|
+
end do
|
|
49
|
+
!$omp target map(tofrom: x) map(from: r1)
|
|
50
|
+
r1 = x%m
|
|
51
|
+
do i = 1, x%m
|
|
52
|
+
x%a(i) = x%a(i) * x%a(i)
|
|
53
|
+
end do
|
|
54
|
+
!$omp end target
|
|
55
|
+
r2 = sum(x%a)
|
|
56
|
+
ok = .true.
|
|
57
|
+
ok = ok .and. (r1 == 16)
|
|
58
|
+
ok = ok .and. (r2 == 1496)
|
|
59
|
+
print '(a,i0)', 'r1= ', r1
|
|
60
|
+
print '(a,i0)', 'r2= ', r2
|
|
61
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
62
|
+
end program oop
|
|
63
|
+
! site:
|
|
64
|
+
! title: mapping a derived type with a length type parameter aborts
|
|
65
|
+
! summary: A variable of a parameterized derived type with a length type parameter, mapped tofrom, makes the program abort at run
|
|
66
|
+
! + time with GCC 16.2. A kind type parameter works.
|
|
67
|
+
! control: oop/controls/pdt-len-host.f90 the same program without the target construct (host only)
|
|
68
|
+
! end site
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
! # Finding (fortran-oop): a type-bound call through a CLASS dummy in device code aborts at run time
|
|
2
|
+
!
|
|
3
|
+
! - toolchains and modes that fail: gcc_g90 (GCC 16.2 (gfx90a): copy), gcc_sm80 (GCC 16.2 (sm_80): copy); -O2
|
|
4
|
+
! - build: gfortran -fopenmp -foffload=amdgcn-amdhsa -foffload-options=amdgcn-amdhsa=-march=gfx90a -O2 (gcc_g90);
|
|
5
|
+
! -foffload=nvptx-none -foffload-options=nvptx-none=-march=sm_80 -foffload-options=nvptx-none=-latomic (gcc_sm80)
|
|
6
|
+
! - failure: crash (SIGABRT); OMP_TARGET_OFFLOAD=mandatory
|
|
7
|
+
! - observed: the program compiles and aborts (SIGABRT, a backtrace without symbols) in every run
|
|
8
|
+
! - expected: `r1= 29`
|
|
9
|
+
! - rule: 5.2 §1.2.6 p.19 l.1-3 (every type-bound procedure accessed is declare target)
|
|
10
|
+
! - same-compiler control: the same program with the region calling the binding on the TYPE objects instead of through area_of's
|
|
11
|
+
! CLASS(shape) dummy (controls/poly-dispatch-static.f90, one change): `r1= 29`, check=pass in the stored run and the gate's four
|
|
12
|
+
! environments a-d on both GPUs (results/oop/probe/ctl2.*.poly-dispatch-static.gcc.jsonl, (c) on another Tioga node;
|
|
13
|
+
! results/oop/probe/ctl2.*.poly-dispatch-static.wt-gcc_sm80.jsonl, (c) on another A100)
|
|
14
|
+
! - other families: AFAR correct; CCE fails at the device link (cce-polymorphic-dispatch-device-link.f90)
|
|
15
|
+
! - gate and confirmer: 8 cells, 8 confirmed in the gate's four environments (a-d; results/oop/main/gate_reruns*.jsonl); confirmer
|
|
16
|
+
! (results/oop/main/confirm.jsonl): compiler_bug (R20-runtime-bug) 4, needs_human (R22-expected-weak) 4; R22-expected-weak means
|
|
17
|
+
! the expected value has one source, the generator's Python model; the values follow from the program's arithmetic (checked by
|
|
18
|
+
! hand), and AFAR print them on this program
|
|
19
|
+
! - programs (4): oop-poly-dispatch, oop-poly-dispatch-loop, oop-poly-parent-call, oop-tbp-nested-call (offload/engine/oop_gen.py;
|
|
20
|
+
! this file is the first one)
|
|
21
|
+
! - legality: for the gcc cells: the rules (offload.engine.rules, with the fortran-oop restrictions) and AFAR's flang front end
|
|
22
|
+
! (-fsyntax-only) and a CCE compile and NVHPC 26.9 nvfortran (compile only) (tools/campaigns/oop.py legality,
|
|
23
|
+
! results/oop/main/legality.json)
|
|
24
|
+
module oop_m
|
|
25
|
+
implicit none
|
|
26
|
+
integer, parameter :: n = 64
|
|
27
|
+
type, abstract :: shape
|
|
28
|
+
integer :: id = 0
|
|
29
|
+
contains
|
|
30
|
+
procedure(area_if), deferred :: area
|
|
31
|
+
end type shape
|
|
32
|
+
abstract interface
|
|
33
|
+
integer function area_if(s)
|
|
34
|
+
import :: shape
|
|
35
|
+
class(shape), intent(in) :: s
|
|
36
|
+
end function area_if
|
|
37
|
+
end interface
|
|
38
|
+
type, extends(shape) :: sq
|
|
39
|
+
integer :: side = 0
|
|
40
|
+
contains
|
|
41
|
+
procedure :: area => sq_area
|
|
42
|
+
end type sq
|
|
43
|
+
type, extends(shape) :: rect
|
|
44
|
+
integer :: w = 0, h = 0
|
|
45
|
+
contains
|
|
46
|
+
procedure :: area => rect_area
|
|
47
|
+
end type rect
|
|
48
|
+
contains
|
|
49
|
+
integer function sq_area(s)
|
|
50
|
+
!$omp declare target
|
|
51
|
+
class(sq), intent(in) :: s
|
|
52
|
+
sq_area = s%side * s%side
|
|
53
|
+
end function sq_area
|
|
54
|
+
integer function rect_area(s)
|
|
55
|
+
!$omp declare target
|
|
56
|
+
class(rect), intent(in) :: s
|
|
57
|
+
rect_area = s%w * s%h
|
|
58
|
+
end function rect_area
|
|
59
|
+
integer function area_of(s)
|
|
60
|
+
!$omp declare target
|
|
61
|
+
class(shape), intent(in) :: s
|
|
62
|
+
area_of = s%area()
|
|
63
|
+
end function area_of
|
|
64
|
+
end module oop_m
|
|
65
|
+
|
|
66
|
+
program oop
|
|
67
|
+
use omp_lib
|
|
68
|
+
use oop_m
|
|
69
|
+
implicit none
|
|
70
|
+
integer :: host_flag
|
|
71
|
+
logical :: ok
|
|
72
|
+
integer :: r1
|
|
73
|
+
type(sq) :: q
|
|
74
|
+
type(rect) :: rr
|
|
75
|
+
host_flag = 1
|
|
76
|
+
!$omp target map(from: host_flag)
|
|
77
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
78
|
+
!$omp end target
|
|
79
|
+
q%side = 3
|
|
80
|
+
rr%w = 4
|
|
81
|
+
rr%h = 5
|
|
82
|
+
!$omp target map(tofrom: q, rr) map(from: r1)
|
|
83
|
+
r1 = area_of(q) + area_of(rr)
|
|
84
|
+
!$omp end target
|
|
85
|
+
ok = .true.
|
|
86
|
+
ok = ok .and. (r1 == 29)
|
|
87
|
+
print '(a,i0)', 'r1= ', r1
|
|
88
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
89
|
+
end program oop
|
|
90
|
+
! site:
|
|
91
|
+
! title: dynamic dispatch of a type-bound procedure in device code aborts
|
|
92
|
+
! summary: A declare target function calls a type-bound procedure through a CLASS dummy argument (every bound procedure declare
|
|
93
|
+
! + target). GCC 16.2 compiles it and the program aborts at run time. The same program calling the binding on the non-polymorphic
|
|
94
|
+
! + objects works. AFAR runs it correctly.
|
|
95
|
+
! control: oop/controls/poly-dispatch-static.f90 the same program; the binding is called on the TYPE objects (statically resolved)
|
|
96
|
+
! + instead of through a CLASS dummy
|
|
97
|
+
! end site
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
! # Finding (fortran-oop): SELECT TYPE on a CLASS dummy in device code: '__vtab_... referenced in offloaded code but not marked'
|
|
2
|
+
!
|
|
3
|
+
! - toolchains and modes that fail: gcc_g90 (GCC 16.2 (gfx90a): copy), gcc_sm80 (GCC 16.2 (sm_80): copy); -O2
|
|
4
|
+
! - build: gfortran -fopenmp -foffload=amdgcn-amdhsa -foffload-options=amdgcn-amdhsa=-march=gfx90a -O2 (gcc_g90);
|
|
5
|
+
! -foffload=nvptx-none -foffload-options=nvptx-none=-march=sm_80 -foffload-options=nvptx-none=-latomic (gcc_sm80)
|
|
6
|
+
! - failure: rejected (diagnostic); OMP_TARGET_OFFLOAD=mandatory
|
|
7
|
+
! - observed: `error: variable '__vtab_oop_m_Ext1' has been referenced in offloaded code but hasn't been marked to be included in
|
|
8
|
+
! the offloaded code` (the compiler's own type descriptor)
|
|
9
|
+
! - expected: compiles; `r1= 10 r2= 100 r3= -1`
|
|
10
|
+
! - rule: Fortran 2018 11.1.11; the program cannot name a compiler-generated vtable in a declare target directive (it has no
|
|
11
|
+
! Fortran name), and every procedure it accesses is declare target
|
|
12
|
+
! - other families: AFAR correct; CCE takes the wrong guard (cce-select-type-guard-not-taken.f90)
|
|
13
|
+
! - gate and confirmer: 10 cells, 10 confirmed in the gate's four environments (a-d; results/oop/main/gate_reruns*.jsonl);
|
|
14
|
+
! confirmer (results/oop/main/confirm.jsonl): compiler_bug (R11-compile-rejection) 5, needs_human (R12b-compile-undecided) 5
|
|
15
|
+
! - programs (5): oop-poly-select-type, oop-poly-class-is, oop-poly-pointer, oop-unlimited-select-type, oop-unlimited-classify
|
|
16
|
+
! (offload/engine/oop_gen.py; this file is the first one)
|
|
17
|
+
! - legality: for the gcc cells: the rules (offload.engine.rules, with the fortran-oop restrictions) and AFAR's flang front end
|
|
18
|
+
! (-fsyntax-only) and a CCE compile and NVHPC 26.9 nvfortran (compile only) (tools/campaigns/oop.py legality,
|
|
19
|
+
! results/oop/main/legality.json)
|
|
20
|
+
module oop_m
|
|
21
|
+
implicit none
|
|
22
|
+
integer, parameter :: n = 64
|
|
23
|
+
type base_t
|
|
24
|
+
integer :: a = 0
|
|
25
|
+
end type base_t
|
|
26
|
+
type, extends(base_t) :: ext1
|
|
27
|
+
integer :: u = 0
|
|
28
|
+
end type ext1
|
|
29
|
+
type, extends(base_t) :: ext2
|
|
30
|
+
integer :: v = 0
|
|
31
|
+
end type ext2
|
|
32
|
+
contains
|
|
33
|
+
subroutine bump(s)
|
|
34
|
+
!$omp declare target
|
|
35
|
+
class(base_t), intent(inout) :: s
|
|
36
|
+
select type (s)
|
|
37
|
+
type is (ext1)
|
|
38
|
+
s%u = s%u + 10
|
|
39
|
+
type is (ext2)
|
|
40
|
+
s%v = s%v + 100
|
|
41
|
+
class default
|
|
42
|
+
s%a = -1
|
|
43
|
+
end select
|
|
44
|
+
end subroutine bump
|
|
45
|
+
end module oop_m
|
|
46
|
+
|
|
47
|
+
program oop
|
|
48
|
+
use omp_lib
|
|
49
|
+
use oop_m
|
|
50
|
+
implicit none
|
|
51
|
+
integer :: host_flag
|
|
52
|
+
logical :: ok
|
|
53
|
+
integer :: r1, r2, r3
|
|
54
|
+
type(ext1) :: e1
|
|
55
|
+
type(ext2) :: e2
|
|
56
|
+
type(base_t) :: b0
|
|
57
|
+
host_flag = 1
|
|
58
|
+
!$omp target map(from: host_flag)
|
|
59
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
60
|
+
!$omp end target
|
|
61
|
+
!$omp target map(tofrom: e1, e2, b0)
|
|
62
|
+
call bump(e1)
|
|
63
|
+
call bump(e2)
|
|
64
|
+
call bump(b0)
|
|
65
|
+
!$omp end target
|
|
66
|
+
r1 = e1%u
|
|
67
|
+
r2 = e2%v
|
|
68
|
+
r3 = b0%a
|
|
69
|
+
ok = .true.
|
|
70
|
+
ok = ok .and. (r1 == 10)
|
|
71
|
+
ok = ok .and. (r2 == 100)
|
|
72
|
+
ok = ok .and. (r3 == -1)
|
|
73
|
+
print '(a,i0)', 'r1= ', r1
|
|
74
|
+
print '(a,i0)', 'r2= ', r2
|
|
75
|
+
print '(a,i0)', 'r3= ', r3
|
|
76
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
77
|
+
end program oop
|
|
78
|
+
! site:
|
|
79
|
+
! title: SELECT TYPE in a device procedure is rejected: the type's vtable is not offloaded
|
|
80
|
+
! summary: A declare target subroutine with a CLASS dummy and SELECT TYPE, called in a target region, is rejected by GCC 16.2: the
|
|
81
|
+
! + compiler-generated type descriptor (__vtab_...) is referenced in offloaded code but not marked for offloading. The program
|
|
82
|
+
! + cannot name that variable. AFAR runs the program correctly.
|
|
83
|
+
! end site
|
|
84
|
+
! spec (requirement): the base language is Fortran 2003, 2008 and 2018 with only a short list of features of unspecified
|
|
85
|
+
! behavior (SELECT TYPE is not on it; its semantics are the Fortran standard's, with no OpenMP text of its own), and a variable
|
|
86
|
+
! with static storage duration declared in a device routine is treated as if it appeared in an enter clause of a declare target
|
|
87
|
+
! directive. No text covers compiler-generated type descriptors; the nearest rule is this implicit declare target rule.
|
|
88
|
+
! "While future versions of the OpenMP specification are expected to address the following features, currently their use may
|
|
89
|
+
! result in unspecified behavior." (5.2 §1.7 p.36 l.6-8)
|
|
90
|
+
! "If a variable with static storage duration is declared in a device routine then the named variable is treated as if it had
|
|
91
|
+
! appeared in an enter clause on a declare target directive." (5.2 §7.8 p.204 l.25-26)
|
|
92
|
+
! spec (this program): bump is a declare target subroutine with a CLASS dummy and SELECT TYPE; the compiler's own type
|
|
93
|
+
! descriptor (__vtab_...), which has no Fortran name and cannot appear in a declare target directive, is a static variable the
|
|
94
|
+
! device routine needs, and GCC 16.2 rejects the program because that variable is not marked for offloading.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
! # Finding (fortran-oop): map(tofrom: x) of a structure with an allocatable component: illegal address with separate memory
|
|
2
|
+
!
|
|
3
|
+
! - toolchains and modes that fail: nvhpc (NVHPC 25.11: separate), nvhpc269 (NVHPC 26.9: separate); -O2
|
|
4
|
+
! - build: nvfortran -mp=gpu -gpu=cc80 -O2 (managed: -gpu=mem:managed)
|
|
5
|
+
! - failure: run_error (exit 1); OMP_TARGET_OFFLOAD=mandatory
|
|
6
|
+
! - observed: `Accelerator Fatal Error: call to cuMemcpyDtoHAsync returned error 700 (CUDA_ERROR_ILLEGAL_ADDRESS)` in separate
|
|
7
|
+
! memory on NVHPC 25.11 and 26.9, whenever the allocatable component is mapped only through the structure (map(tofrom: x),
|
|
8
|
+
! target enter data map(to: x), an array of such structures, an allocatable scalar component, two levels, an extended type's
|
|
9
|
+
! allocatable parent component); managed memory correct
|
|
10
|
+
! - expected: `r1= 10336 r2= 256`
|
|
11
|
+
! - rule: the predefined default mapper maps each structure element, an allocatable component's data included (5.2 §5.8.2 p.150
|
|
12
|
+
! l.2-4; §5.8.3 p.151 l.29-37; added in 5.0, 6.0 §B.5 p.909 l.35-37)
|
|
13
|
+
! - same-compiler control: the same program with the component listed, map(tofrom: x, x%a)
|
|
14
|
+
! (controls/alloccomp-whole-explicit-component.f90, one change): correct (check=pass) on NVHPC 25.11 and 26.9, separate and
|
|
15
|
+
! managed memory, in the stored run and the gate's four environments a-d, (c) on another GPU of the host
|
|
16
|
+
! (results/oop/probe/ctl2.*.alloccomp-whole-explicit-component.wt-*.jsonl)
|
|
17
|
+
! - other families: AFAR, CCE 19/20/21 and GCC 16.2 correct on all nine
|
|
18
|
+
! - gate and confirmer: 18 cells, 18 confirmed in the gate's four environments (a-d; results/oop/main/gate_reruns*.jsonl);
|
|
19
|
+
! confirmer (results/oop/main/confirm.jsonl): needs_human (R22-expected-weak) 18; R22-expected-weak means the expected value has
|
|
20
|
+
! one source, the generator's Python model; the values follow from the program's arithmetic (checked by hand), and AFAR, CCE
|
|
21
|
+
! 19.0.0, CCE 20.0.2, CCE 21.0.3, CCE 21.0.4, GCC 16.2 (gfx90a), GCC 16.2 (sm_80) print them on this program
|
|
22
|
+
! - programs (9): oop-alloccomp-whole, oop-alloccomp-array, oop-alloccomp-enterexit, oop-alloccomp-scalar, oop-alloccomp-twolevel,
|
|
23
|
+
! oop-alloccomp-update, oop-extends-alloc-parent, oop-elemsec-alloc-chain, oop-section-update (offload/engine/oop_gen.py;
|
|
24
|
+
! this file
|
|
25
|
+
! is the first one)
|
|
26
|
+
! - legality: for the nvhpc cells: the rules (offload.engine.rules, with the fortran-oop restrictions) and AFAR's flang front end
|
|
27
|
+
! (-fsyntax-only) and a CCE compile (tools/campaigns/oop.py legality,
|
|
28
|
+
! results/oop/main/legality.json)
|
|
29
|
+
module oop_m
|
|
30
|
+
implicit none
|
|
31
|
+
integer, parameter :: n = 64
|
|
32
|
+
type vec
|
|
33
|
+
integer :: n = 0
|
|
34
|
+
integer, allocatable :: a(:)
|
|
35
|
+
end type vec
|
|
36
|
+
end module oop_m
|
|
37
|
+
|
|
38
|
+
program oop
|
|
39
|
+
use omp_lib
|
|
40
|
+
use oop_m
|
|
41
|
+
implicit none
|
|
42
|
+
integer :: host_flag
|
|
43
|
+
logical :: ok
|
|
44
|
+
integer :: r1, r2
|
|
45
|
+
type(vec) :: x
|
|
46
|
+
integer :: i
|
|
47
|
+
host_flag = 1
|
|
48
|
+
!$omp target map(from: host_flag)
|
|
49
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
50
|
+
!$omp end target
|
|
51
|
+
allocate(x%a(n))
|
|
52
|
+
x%n = n
|
|
53
|
+
do i = 1, n
|
|
54
|
+
x%a(i) = i
|
|
55
|
+
end do
|
|
56
|
+
!$omp target teams distribute parallel do map(tofrom: x)
|
|
57
|
+
do i = 1, n
|
|
58
|
+
x%a(i) = 3 * x%a(i) + x%n
|
|
59
|
+
end do
|
|
60
|
+
r1 = sum(x%a)
|
|
61
|
+
r2 = x%a(n)
|
|
62
|
+
ok = .true.
|
|
63
|
+
ok = ok .and. (r1 == 10336)
|
|
64
|
+
ok = ok .and. (r2 == 256)
|
|
65
|
+
print '(a,i0)', 'r1= ', r1
|
|
66
|
+
print '(a,i0)', 'r2= ', r2
|
|
67
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
68
|
+
end program oop
|
|
69
|
+
! site:
|
|
70
|
+
! title: the allocatable component of a mapped structure is not mapped with separate memory
|
|
71
|
+
! summary: A structure with an allocatable array component mapped by map(tofrom: x) should carry the component's data to the
|
|
72
|
+
! + device (the predefined default mapper maps each component). NVHPC 25.11 and 26.9 fault with an illegal address when memory is
|
|
73
|
+
! + separate; with the component listed, map(tofrom: x, x%a), the program works, and managed memory works. AFAR, CCE and GCC are
|
|
74
|
+
! + correct.
|
|
75
|
+
! control: oop/controls/alloccomp-whole-explicit-component.f90 the same program with the component listed in the map clause
|
|
76
|
+
! end site
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
! # Finding (fortran-oop): mapping a derived type with a length type parameter: illegal address with separate memory
|
|
2
|
+
!
|
|
3
|
+
! - toolchains and modes that fail: nvhpc (NVHPC 25.11: separate), nvhpc269 (NVHPC 26.9: separate); -O2
|
|
4
|
+
! - build: nvfortran -mp=gpu -gpu=cc80 -O2 (managed: -gpu=mem:managed)
|
|
5
|
+
! - failure: run_error (exit 1); OMP_TARGET_OFFLOAD=mandatory
|
|
6
|
+
! - observed: `cuMemcpyDtoHAsync returned error 700 (CUDA_ERROR_ILLEGAL_ADDRESS)` in separate memory, NVHPC 25.11 and 26.9;
|
|
7
|
+
! managed memory correct
|
|
8
|
+
! - expected: `r1= 16 r2= 1496`
|
|
9
|
+
! - rule: 5.2 §5.8.3 p.155 l.5-7 (the new list item has the type parameters of the original)
|
|
10
|
+
! - same-compiler control: the same program with the type's length parameter replaced by a fixed size
|
|
11
|
+
! (controls/pdt-len-unparameterized.f90, one change): correct (check=pass) on NVHPC 25.11 and 26.9, separate and managed memory
|
|
12
|
+
! in the stored run and the gate's four environments a-d, (c) on another node or GPU
|
|
13
|
+
! (results/oop/probe/ctl2.*.pdt-len-unparameterized.*.jsonl); a kind type parameter alone (controls/pdt-kind.f90) is correct too
|
|
14
|
+
! (results/oop/main/rows.part*.jsonl, results/oop/probe/ctl2.*.pdt-kind.*.jsonl)
|
|
15
|
+
! - other families: AFAR (not implemented) and CCE (ftn-1853) reject the programs; GCC 16.2 aborts
|
|
16
|
+
! - gate and confirmer: 8 cells, 8 confirmed in the gate's four environments (a-d; results/oop/main/gate_reruns*.jsonl); confirmer
|
|
17
|
+
! (results/oop/main/confirm.jsonl): needs_human (R22-expected-weak) 8; R22-expected-weak means the expected value has one
|
|
18
|
+
! source, the generator's Python model; the values follow from the program's arithmetic (checked by hand), and no compiler
|
|
19
|
+
! outside the failing family prints them on this program
|
|
20
|
+
! - programs (4): oop-pdt-len, oop-pdt-deferred, oop-pdt-array, oop-pdt-kindlen (offload/engine/oop_gen.py; this file is the first
|
|
21
|
+
! one)
|
|
22
|
+
! - legality: for the nvhpc cells: the rules (offload.engine.rules, with the fortran-oop restrictions) and AFAR's flang front end
|
|
23
|
+
! (-fsyntax-only) (tools/campaigns/oop.py legality, results/oop/main/legality.json)
|
|
24
|
+
module oop_m
|
|
25
|
+
implicit none
|
|
26
|
+
integer, parameter :: n = 64
|
|
27
|
+
type lv(m)
|
|
28
|
+
integer, len :: m
|
|
29
|
+
integer :: a(m)
|
|
30
|
+
end type lv
|
|
31
|
+
end module oop_m
|
|
32
|
+
|
|
33
|
+
program oop
|
|
34
|
+
use omp_lib
|
|
35
|
+
use oop_m
|
|
36
|
+
implicit none
|
|
37
|
+
integer :: host_flag
|
|
38
|
+
logical :: ok
|
|
39
|
+
integer :: r1, r2
|
|
40
|
+
type(lv(16)) :: x
|
|
41
|
+
integer :: i
|
|
42
|
+
host_flag = 1
|
|
43
|
+
!$omp target map(from: host_flag)
|
|
44
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
45
|
+
!$omp end target
|
|
46
|
+
do i = 1, 16
|
|
47
|
+
x%a(i) = i
|
|
48
|
+
end do
|
|
49
|
+
!$omp target map(tofrom: x) map(from: r1)
|
|
50
|
+
r1 = x%m
|
|
51
|
+
do i = 1, x%m
|
|
52
|
+
x%a(i) = x%a(i) * x%a(i)
|
|
53
|
+
end do
|
|
54
|
+
!$omp end target
|
|
55
|
+
r2 = sum(x%a)
|
|
56
|
+
ok = .true.
|
|
57
|
+
ok = ok .and. (r1 == 16)
|
|
58
|
+
ok = ok .and. (r2 == 1496)
|
|
59
|
+
print '(a,i0)', 'r1= ', r1
|
|
60
|
+
print '(a,i0)', 'r2= ', r2
|
|
61
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
62
|
+
end program oop
|
|
63
|
+
! site:
|
|
64
|
+
! title: mapping a derived type with a length type parameter faults with separate memory
|
|
65
|
+
! summary: A variable of a parameterized derived type with a length type parameter, mapped tofrom, faults with an illegal address
|
|
66
|
+
! + on NVHPC 25.11 and 26.9 when memory is separate; managed memory works. The same program with the type's length parameter
|
|
67
|
+
! + replaced by a fixed size works.
|
|
68
|
+
! control: oop/controls/pdt-len-unparameterized.f90 the same program; the type has no length parameter (a fixed size instead)
|
|
69
|
+
! end site
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
! # Finding (fortran-oop): map(mapper(deep), tofrom: x) with a declare mapper: rejected (mapper(mapid) is not supported)
|
|
2
|
+
!
|
|
3
|
+
! - toolchains and modes that fail: nvhpc (NVHPC 25.11: managed, separate), nvhpc269 (NVHPC 26.9: managed, separate); -O2
|
|
4
|
+
! - build: nvfortran -mp=gpu -gpu=cc80 -O2 (managed: -gpu=mem:managed)
|
|
5
|
+
! - failure: rejected (not_implemented); OMP_TARGET_OFFLOAD=mandatory
|
|
6
|
+
! - observed: `NVFORTRAN-W-0287-Unrecognized OpenMP directive - declare` for the declare mapper directive, then the map clause
|
|
7
|
+
! naming the mapper does not compile, NVHPC 25.11 and 26.9, separate and managed memory. The default-mapper programs
|
|
8
|
+
! (oop-mapper-default and four others) get the same warning and then run with the predefined default mapper, which in those
|
|
9
|
+
! programs has the same effect: not counted here (their separate-memory failures are
|
|
10
|
+
! nvhpc-copy-alloc-component-illegal-address.f90's)
|
|
11
|
+
! - expected: compiles; `r1= 133120`
|
|
12
|
+
! - rule: 5.2 §5.8.8 p.162-164 (declare mapper) and §5.8.2 (the mapper modifier); NVHPC documents the gap: the NVIDIA HPC
|
|
13
|
+
! Compilers User's Guide §7.4 "OpenMP Subset" (the OpenMP 5.0 features the compilers support) lists for 2.19.7 that
|
|
14
|
+
! mapper(mapid) is not supported, and does not list declare mapper
|
|
15
|
+
! - other families: AFAR and CCE correct; GCC rejects it (gcc/gcc-declare-mapper-rejected.f90)
|
|
16
|
+
! - gate and confirmer: 4 cells, 4 confirmed in the gate's four environments (a-d; results/oop/main/gate_reruns*.jsonl); confirmer
|
|
17
|
+
! (results/oop/main/confirm.jsonl): unsupported (R05-unsupported) 4
|
|
18
|
+
! - programs (1): oop-mapper-named (offload/engine/oop_gen.py; this file is the first one)
|
|
19
|
+
! - legality: for the nvhpc cells: the rules (offload.engine.rules, with the fortran-oop restrictions) and AFAR's flang front end
|
|
20
|
+
! (-fsyntax-only) and a CCE compile (tools/campaigns/oop.py legality,
|
|
21
|
+
! results/oop/main/legality.json)
|
|
22
|
+
module oop_m
|
|
23
|
+
implicit none
|
|
24
|
+
integer, parameter :: n = 64
|
|
25
|
+
type vec
|
|
26
|
+
integer :: n = 0
|
|
27
|
+
integer, allocatable :: a(:)
|
|
28
|
+
end type vec
|
|
29
|
+
!$omp declare mapper(deep: vec :: v) map(tofrom: v, v%a(1:v%n))
|
|
30
|
+
end module oop_m
|
|
31
|
+
|
|
32
|
+
program oop
|
|
33
|
+
use omp_lib
|
|
34
|
+
use oop_m
|
|
35
|
+
implicit none
|
|
36
|
+
integer :: host_flag
|
|
37
|
+
logical :: ok
|
|
38
|
+
integer :: r1
|
|
39
|
+
type(vec) :: x
|
|
40
|
+
integer :: i
|
|
41
|
+
host_flag = 1
|
|
42
|
+
!$omp target map(from: host_flag)
|
|
43
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
44
|
+
!$omp end target
|
|
45
|
+
allocate(x%a(n))
|
|
46
|
+
x%n = n
|
|
47
|
+
do i = 1, n
|
|
48
|
+
x%a(i) = i
|
|
49
|
+
end do
|
|
50
|
+
!$omp target teams distribute parallel do map(mapper(deep), tofrom: x)
|
|
51
|
+
do i = 1, n
|
|
52
|
+
x%a(i) = x%a(i) * x%n
|
|
53
|
+
end do
|
|
54
|
+
r1 = sum(x%a)
|
|
55
|
+
ok = .true.
|
|
56
|
+
ok = ok .and. (r1 == 133120)
|
|
57
|
+
print '(a,i0)', 'r1= ', r1
|
|
58
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
59
|
+
end program oop
|
|
60
|
+
! site:
|
|
61
|
+
! title: a named declare mapper (map(mapper(id), ...)) is not supported
|
|
62
|
+
! summary: A map clause with a mapper modifier naming a declare mapper does not compile with NVHPC 25.11 and 26.9; the declare
|
|
63
|
+
! + mapper directive itself is reported as unrecognized. NVHPC's user guide lists mapper(mapid) as not supported. AFAR and CCE apply
|
|
64
|
+
! + the mapper correctly.
|
|
65
|
+
! end site
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
! # Finding (fortran-oop): dispatch through a CLASS dummy in device code: 'Compiler failed to translate accelerator region'
|
|
2
|
+
!
|
|
3
|
+
! - toolchains and modes that fail: nvhpc (NVHPC 25.11: managed, separate), nvhpc269 (NVHPC 26.9: managed, separate); -O2
|
|
4
|
+
! - build: nvfortran -mp=gpu -gpu=cc80 -O2 (managed: -gpu=mem:managed)
|
|
5
|
+
! - failure: ice (a compiler failure: failed to translate); OMP_TARGET_OFFLOAD=mandatory
|
|
6
|
+
! - observed: `NVFORTRAN-W-0155-Compiler failed to translate accelerator region (see -Minfo messages): No device symbol for
|
|
7
|
+
! address reference`, then the compile fails, NVHPC 25.11 and 26.9, both modes. A compiler failure: the message does not say the
|
|
8
|
+
! feature is unsupported and the user guide does not mention it
|
|
9
|
+
! - expected: compiles; `r1= 29`
|
|
10
|
+
! - rule: 5.2 §1.2.6 p.19 l.1-3 (every type-bound procedure accessed is declare target)
|
|
11
|
+
! - other families: AFAR correct; CCE fails at the link (cce-polymorphic-dispatch-device-link.f90); GCC aborts at run time
|
|
12
|
+
! (gcc-polymorphic-dispatch-abort.f90)
|
|
13
|
+
! - gate and confirmer: 12 cells, 12 confirmed in the gate's four environments (a-d; results/oop/main/gate_reruns*.jsonl);
|
|
14
|
+
! confirmer (results/oop/main/confirm.jsonl): compiler_bug (R10-compile-ice) 12
|
|
15
|
+
! - programs (3): oop-poly-dispatch, oop-poly-dispatch-loop, oop-poly-parent-call (offload/engine/oop_gen.py; this file is the first
|
|
16
|
+
! one)
|
|
17
|
+
! - legality: for the nvhpc cells: the rules (offload.engine.rules, with the fortran-oop restrictions) and AFAR's flang front end
|
|
18
|
+
! (-fsyntax-only) and a CCE compile (tools/campaigns/oop.py legality,
|
|
19
|
+
! results/oop/main/legality.json)
|
|
20
|
+
module oop_m
|
|
21
|
+
implicit none
|
|
22
|
+
integer, parameter :: n = 64
|
|
23
|
+
type, abstract :: shape
|
|
24
|
+
integer :: id = 0
|
|
25
|
+
contains
|
|
26
|
+
procedure(area_if), deferred :: area
|
|
27
|
+
end type shape
|
|
28
|
+
abstract interface
|
|
29
|
+
integer function area_if(s)
|
|
30
|
+
import :: shape
|
|
31
|
+
class(shape), intent(in) :: s
|
|
32
|
+
end function area_if
|
|
33
|
+
end interface
|
|
34
|
+
type, extends(shape) :: sq
|
|
35
|
+
integer :: side = 0
|
|
36
|
+
contains
|
|
37
|
+
procedure :: area => sq_area
|
|
38
|
+
end type sq
|
|
39
|
+
type, extends(shape) :: rect
|
|
40
|
+
integer :: w = 0, h = 0
|
|
41
|
+
contains
|
|
42
|
+
procedure :: area => rect_area
|
|
43
|
+
end type rect
|
|
44
|
+
contains
|
|
45
|
+
integer function sq_area(s)
|
|
46
|
+
!$omp declare target
|
|
47
|
+
class(sq), intent(in) :: s
|
|
48
|
+
sq_area = s%side * s%side
|
|
49
|
+
end function sq_area
|
|
50
|
+
integer function rect_area(s)
|
|
51
|
+
!$omp declare target
|
|
52
|
+
class(rect), intent(in) :: s
|
|
53
|
+
rect_area = s%w * s%h
|
|
54
|
+
end function rect_area
|
|
55
|
+
integer function area_of(s)
|
|
56
|
+
!$omp declare target
|
|
57
|
+
class(shape), intent(in) :: s
|
|
58
|
+
area_of = s%area()
|
|
59
|
+
end function area_of
|
|
60
|
+
end module oop_m
|
|
61
|
+
|
|
62
|
+
program oop
|
|
63
|
+
use omp_lib
|
|
64
|
+
use oop_m
|
|
65
|
+
implicit none
|
|
66
|
+
integer :: host_flag
|
|
67
|
+
logical :: ok
|
|
68
|
+
integer :: r1
|
|
69
|
+
type(sq) :: q
|
|
70
|
+
type(rect) :: rr
|
|
71
|
+
host_flag = 1
|
|
72
|
+
!$omp target map(from: host_flag)
|
|
73
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
74
|
+
!$omp end target
|
|
75
|
+
q%side = 3
|
|
76
|
+
rr%w = 4
|
|
77
|
+
rr%h = 5
|
|
78
|
+
!$omp target map(tofrom: q, rr) map(from: r1)
|
|
79
|
+
r1 = area_of(q) + area_of(rr)
|
|
80
|
+
!$omp end target
|
|
81
|
+
ok = .true.
|
|
82
|
+
ok = ok .and. (r1 == 29)
|
|
83
|
+
print '(a,i0)', 'r1= ', r1
|
|
84
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
85
|
+
end program oop
|
|
86
|
+
! site:
|
|
87
|
+
! title: dynamic dispatch of a type-bound procedure in device code makes the compiler fail
|
|
88
|
+
! summary: A declare target function calls a type-bound procedure through a CLASS dummy argument. NVHPC 25.11 and 26.9 stop with
|
|
89
|
+
! + 'Compiler failed to translate accelerator region'. AFAR runs it correctly.
|
|
90
|
+
! end site
|