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,64 @@
|
|
|
1
|
+
! # Finding (GCC 16.2, application corpus): OpenACC tile(32, 32) over loops whose trip counts are not multiples of 32 computes
|
|
2
|
+
! wrong elements
|
|
3
|
+
!
|
|
4
|
+
! - toolchains: gcc_g90 (GCC 16.2.0, AMD Instinct MI250X gfx90a, Tioga) and gcc_sm80 (GCC 16.2.0, NVIDIA A100 sm_80, wingtip);
|
|
5
|
+
! separate memory only; -O2
|
|
6
|
+
! - build: gfortran -fopenacc -foffload=amdgcn-amdhsa -foffload-options=amdgcn-amdhsa=-march=gfx90a -O2 (gcc_g90);
|
|
7
|
+
! -foffload=nvptx-none -foffload-options=nvptx-none=-march=sm_80 -foffload-options=nvptx-none=-latomic -O2 (gcc_sm80)
|
|
8
|
+
! - failure: wrong_answer
|
|
9
|
+
! - observed: `bad= 4342` (of the 10000 elements checked) and check=fail in every run (gcc_sm80: mandatory wrong 5 of 5; unset wrong
|
|
10
|
+
! 5 of 5; gcc_g90: mandatory wrong 5 of 5; unset wrong 5 of 5 (results/parity/<machine>/<tc>/probes.jsonl))
|
|
11
|
+
! - expected: `bad= 0`, then `RESULT ran_on_host=0 check=pass`
|
|
12
|
+
! - rule: "Each loop in the nest will be split, or strip-mined, into two loops, an outer tile loop and an inner element loop. The
|
|
13
|
+
! trip count of the element loop will be limited to the corresponding tile size from the size-expr-list" (OpenACC 3.4 §2.9.8
|
|
14
|
+
! l.2486-2489): tiling reorders the iterations of the nest, each still runs once. The tile clause is OpenACC 2.0's; GCC documents
|
|
15
|
+
! OpenACC 2.6.
|
|
16
|
+
! - same-compiler control (correct, gcc_sm80: mandatory pass 5 of 5; unset pass 5 of 5; gcc_g90: mandatory pass 5 of 5; unset pass 5
|
|
17
|
+
! of 5 (results/parity/<machine>/<tc>/probes.jsonl)): collapse(2) in place of tile(32, 32) (controls/gcc-acc-tile-control.f90).
|
|
18
|
+
! With trip counts of 64 (multiples of the tile size) the tiled form is correct too, and so is a one-loop tile(32) (C and Fortran,
|
|
19
|
+
! both GPUs, mandatory pass 5 of 5, unset pass 5 of 5; results/parity/probes-r2/tile_mult32.*, tile_one_loop.*).
|
|
20
|
+
! - application: prk-f-stencil-acc (FORTRAN/stencil-openacc.F90) of the Parallel Research Kernels
|
|
21
|
+
! (data/bench/apps/manifest.yaml): its
|
|
22
|
+
! stencil kernels are `acc parallel loop tile(*,*)` over the interior of a 1000 x 1000 grid; GCC's run prints `ERROR: L1 norm =
|
|
23
|
+
! 22.634350 Reference L1 norm = 22.000000` on both GPUs (results/parity/<machine>/results/apps/runs). NVHPC 25.11 and 26.9
|
|
24
|
+
! validate it (results/apps/wingtip/runs).
|
|
25
|
+
! - other families: NVHPC 25.11 and 26.9 run this file correctly in both memory modes, CCE 19/20/21/21.0.4 too (Fortran OpenACC)
|
|
26
|
+
! (site matrix). The site's finding matrix runs this file on every compiler.
|
|
27
|
+
! - legality: OpenACC 3.4 §2.9.8; the nest is tightly nested and every iteration writes its own element (no race). GCC is a compiler
|
|
28
|
+
! under test only and never a legality witness.
|
|
29
|
+
program tile_partial
|
|
30
|
+
use openacc, only: acc_device_host, acc_on_device
|
|
31
|
+
implicit none
|
|
32
|
+
integer, parameter :: n = 100
|
|
33
|
+
integer :: a(n, n)
|
|
34
|
+
integer :: i, j, bad, want, host_flag
|
|
35
|
+
a = 0
|
|
36
|
+
!$acc parallel loop tile(32, 32) copy(a)
|
|
37
|
+
do j = 2, n - 1
|
|
38
|
+
do i = 2, n - 1
|
|
39
|
+
a(i, j) = a(i, j) + i + j
|
|
40
|
+
end do
|
|
41
|
+
end do
|
|
42
|
+
host_flag = 1
|
|
43
|
+
!$acc parallel num_gangs(1) copy(host_flag)
|
|
44
|
+
if (.not. acc_on_device(acc_device_host)) host_flag = 0
|
|
45
|
+
!$acc end parallel
|
|
46
|
+
bad = 0
|
|
47
|
+
do j = 1, n
|
|
48
|
+
do i = 1, n
|
|
49
|
+
want = 0
|
|
50
|
+
if (i > 1 .and. i < n .and. j > 1 .and. j < n) want = i + j
|
|
51
|
+
if (a(i, j) /= want) bad = bad + 1
|
|
52
|
+
end do
|
|
53
|
+
end do
|
|
54
|
+
print '(a,i0)', 'bad= ', bad
|
|
55
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', bad == 0)
|
|
56
|
+
end program tile_partial
|
|
57
|
+
! site:
|
|
58
|
+
! title: OpenACC tile(32, 32) over loops whose trip counts are not multiples of the tile size computes wrong elements
|
|
59
|
+
! summary: A parallel loop tile(32, 32) over a 98 x 98 (or 100 x 100) nest should run every iteration once. GCC 16.2 leaves 4342 of
|
|
60
|
+
! + the 10000 elements it checks wrong (C and Fortran), on the MI250X and the A100. The same nest with collapse(2), or with trip
|
|
61
|
+
! + counts that are multiples of 32, is correct. Found through the Parallel Research Kernels' OpenACC stencil.
|
|
62
|
+
! control: apps/controls/gcc-acc-tile-control.f90 collapse(2) in place of tile(32, 32)
|
|
63
|
+
! same_as: apps/gcc-acc-c-tile-partial-tiles-wrong
|
|
64
|
+
! end site
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// # WITHDRAWN : not a compiler defect. The undefined
|
|
2
|
+
// # __atomic_load / __atomic_compare_exchange come from the HOST object (the program
|
|
3
|
+
// # without the target construct fails the same way); with -latomic it builds and passes on
|
|
4
|
+
// # the device in both memory modes (vendor, case afar-c-complex-reduction-latomic).
|
|
5
|
+
// # The build recipe does not link libatomic: ours. Kept as a record; not in index.yaml;
|
|
6
|
+
// # the confirmer decides its cells our_bug (catalog/rulings.yaml RUL-HOST-LIBATOMIC).
|
|
7
|
+
//
|
|
8
|
+
// # Draft finding: omp52-c-w-reduction-complex on afar
|
|
9
|
+
//
|
|
10
|
+
// - compiler: afar
|
|
11
|
+
// - toolchain: afar; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
12
|
+
// - program: catalog omp52-c-w-reduction-complex (c, version 52, sha256 30455f14bdeff947)
|
|
13
|
+
// - expected: None (None; )
|
|
14
|
+
// - actual: rejected (link_undefined_symbol: ld.lld: error: undefined symbol: __atomic_load)
|
|
15
|
+
// - verdict: compiler_bug by rule R10b-own-link-or-hang: a link failure on symbols the compiler's own generated code needs, or a compile that does not finish, on a legal program: the compiler's defect (never a rejection)
|
|
16
|
+
// - reason:
|
|
17
|
+
// - citations: RUL-COMPILE-TIME (rulings.md)
|
|
18
|
+
// - legality: legal: offload.engine.rules accepts it (offload.engine.prerun.check, rerun: with the
|
|
19
|
+
// race rule and the restriction checks); nvfortran/nvc 26.9 and 25.11 (NVHPC, not under test
|
|
20
|
+
// here) compile it; the check's other witness, the AFAR clang front end, is the compiler under
|
|
21
|
+
// test and is not counted; no gfortran or gcc is a legality witness
|
|
22
|
+
// - witnesses: none
|
|
23
|
+
// - withdrawn: none
|
|
24
|
+
//
|
|
25
|
+
// Generated by compliance.widen (OpenMP 5.2, C11; catalog widening). Do not edit.
|
|
26
|
+
// id: omp52-c-w-reduction-complex
|
|
27
|
+
// primary atom: pair.omp.clause.reduction+base.device.complex
|
|
28
|
+
// atoms: pair.omp.clause.reduction+base.device.complex, omp.clause.reduction, base.device.complex
|
|
29
|
+
// legal: yes
|
|
30
|
+
// observable: yes
|
|
31
|
+
// ran_on_host: inside the target region of interest
|
|
32
|
+
// evidence: construct
|
|
33
|
+
// needs: none
|
|
34
|
+
// std: c11
|
|
35
|
+
// feature: a double _Complex sum reduction
|
|
36
|
+
// spec: the parts' own programs
|
|
37
|
+
// pair of: omp.clause.reduction + base.device.complex (each has a program of its own)
|
|
38
|
+
#include <stdio.h>
|
|
39
|
+
#include <stdbool.h>
|
|
40
|
+
#include <omp.h>
|
|
41
|
+
#include <complex.h>
|
|
42
|
+
|
|
43
|
+
enum { n = 64 };
|
|
44
|
+
|
|
45
|
+
int main(void) {
|
|
46
|
+
int a[n], b[n], ref[n];
|
|
47
|
+
int host_flag = 1;
|
|
48
|
+
double _Complex z = 0;
|
|
49
|
+
for (int i = 0; i < n; i++) {
|
|
50
|
+
a[i] = i + 1;
|
|
51
|
+
b[i] = 0;
|
|
52
|
+
ref[i] = 0;
|
|
53
|
+
}
|
|
54
|
+
#pragma omp target teams distribute parallel for map(to: a) map(tofrom: host_flag) \
|
|
55
|
+
reduction(+: z)
|
|
56
|
+
for (int i = 0; i < n; i++) {
|
|
57
|
+
z += (double)a[i] - (double)a[i] * I;
|
|
58
|
+
if (i == 0) host_flag = omp_is_initial_device();
|
|
59
|
+
}
|
|
60
|
+
bool ok = true;
|
|
61
|
+
for (int i = 0; i < n; i++)
|
|
62
|
+
ok = ok && (b[i] == ref[i]);
|
|
63
|
+
ok = ok && (creal(z) == n * (n + 1) / 2.0 && cimag(z) == -n * (n + 1) / 2.0);
|
|
64
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, ok ? "pass" : "fail");
|
|
65
|
+
return 0;
|
|
66
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// # Draft finding: omp52-c-w-critical-hint on afar
|
|
2
|
+
//
|
|
3
|
+
// - compiler: afar
|
|
4
|
+
// - toolchain: afar; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
// - program: catalog omp52-c-w-critical-hint (c, version 52, sha256 27f075f0e726545a)
|
|
6
|
+
// - expected: None (None; )
|
|
7
|
+
// - actual: rejected (link_undefined_symbol: ld.lld: error: undefined symbol: __kmpc_critical_with_hint)
|
|
8
|
+
// - verdict: compiler_bug by rule R10b-own-link-or-hang: a link failure on symbols the compiler's own generated code needs, or a compile that does not finish, on a legal program: the compiler's defect (never a rejection)
|
|
9
|
+
// - reason:
|
|
10
|
+
// - citations: RUL-COMPILE-TIME (rulings.md)
|
|
11
|
+
// - legality: legal: offload.engine.rules accepts it (offload.engine.prerun.check, rerun: with the
|
|
12
|
+
// race rule and the restriction checks); NVHPC is no witness: it does not implement a feature
|
|
13
|
+
// the program uses (NVC++-F-1196-OpenMP - omp critical is not supported in GPU region);
|
|
14
|
+
// the check's other witness, the AFAR clang front end, is the compiler under test and is not
|
|
15
|
+
// counted; no gfortran or gcc is a legality witness
|
|
16
|
+
// - witnesses: none
|
|
17
|
+
// - withdrawn: none
|
|
18
|
+
//
|
|
19
|
+
// Generated by compliance.widen (OpenMP 5.2, C11; catalog widening). Do not edit.
|
|
20
|
+
// id: omp52-c-w-critical-hint
|
|
21
|
+
// primary atom: omp.clause.hint
|
|
22
|
+
// atoms: omp.clause.hint
|
|
23
|
+
// legal: yes
|
|
24
|
+
// observable: yes
|
|
25
|
+
// ran_on_host: inside the target region of interest
|
|
26
|
+
// evidence: construct
|
|
27
|
+
// needs: none
|
|
28
|
+
// std: c11
|
|
29
|
+
// feature: a named critical construct with a hint clause in a target parallel loop
|
|
30
|
+
// spec: OpenMP 5.2 §15.2, p.299 (critical construct); its binding thread set is the contention group, so a target parallel region (one team) is used; §15.1 (hint clause)
|
|
31
|
+
#include <stdio.h>
|
|
32
|
+
#include <stdbool.h>
|
|
33
|
+
#include <omp.h>
|
|
34
|
+
|
|
35
|
+
enum { n = 64 };
|
|
36
|
+
|
|
37
|
+
int main(void) {
|
|
38
|
+
int a[n], b[n], ref[n];
|
|
39
|
+
int host_flag = 1;
|
|
40
|
+
int s = 0;
|
|
41
|
+
for (int i = 0; i < n; i++) {
|
|
42
|
+
a[i] = i + 1;
|
|
43
|
+
b[i] = 0;
|
|
44
|
+
ref[i] = 0;
|
|
45
|
+
}
|
|
46
|
+
#pragma omp target parallel for map(to: a) map(tofrom: s, host_flag)
|
|
47
|
+
for (int i = 0; i < n; i++) {
|
|
48
|
+
#pragma omp critical(wsum) hint(omp_sync_hint_contended)
|
|
49
|
+
{
|
|
50
|
+
int t = s;
|
|
51
|
+
s = t + a[i];
|
|
52
|
+
}
|
|
53
|
+
if (i == 0) host_flag = omp_is_initial_device();
|
|
54
|
+
}
|
|
55
|
+
bool ok = true;
|
|
56
|
+
for (int i = 0; i < n; i++)
|
|
57
|
+
ok = ok && (b[i] == ref[i]);
|
|
58
|
+
ok = ok && (s == n * (n + 1) / 2);
|
|
59
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, ok ? "pass" : "fail");
|
|
60
|
+
return 0;
|
|
61
|
+
}
|
|
62
|
+
// site:
|
|
63
|
+
// title: amdflang/amdclang: a named critical (Fortran) or a critical with hint (C) in a target region fails at the device link
|
|
64
|
+
// + (__kmpc_critical_with_hint undefined)
|
|
65
|
+
// control: ../vendor/checks/src/afar/control/afar-c-critical-hint-link-control.c the hint clause removed (a named critical
|
|
66
|
+
// + without hint)
|
|
67
|
+
// same_as: catalog/afar-flang-named-critical-link
|
|
68
|
+
// end site
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// # Draft finding: omp52-c-clause-ordered-n on afar
|
|
2
|
+
//
|
|
3
|
+
// - compiler: afar
|
|
4
|
+
// - toolchain: afar; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
// - program: catalog omp52-c-clause-ordered-n (c, version 52, sha256 872526bfa6d022e4)
|
|
6
|
+
// - expected: None (None; )
|
|
7
|
+
// - actual: rejected (link_undefined_symbol: ld.lld: error: undefined symbol: __kmpc_doacross_init)
|
|
8
|
+
// - verdict: compiler_bug by rule R10b-own-link-or-hang: a link failure on symbols the compiler's own generated code needs, or a compile that does not finish, on a legal program: the compiler's defect (never a rejection)
|
|
9
|
+
// - reason:
|
|
10
|
+
// - citations: RUL-COMPILE-TIME (rulings.md)
|
|
11
|
+
// - legality: legal (legal by construction: offload.engine.gen / c_gen / acc_gen check every program against the catalog rules and the offload scope as it is built (no compiler))
|
|
12
|
+
// - witnesses: none
|
|
13
|
+
// - withdrawn: none
|
|
14
|
+
//
|
|
15
|
+
// Generated by compliance.c_gen (OpenMP 5.2, C11): the C port (offload.engine.f2c) of omp52-clause-ordered-n. Do not edit.
|
|
16
|
+
// id: omp52-c-clause-ordered-n
|
|
17
|
+
// primary atom: omp.clause.ordered.n
|
|
18
|
+
// legal: yes
|
|
19
|
+
// observable: no (equivalent_default: the check covers the device kernel, not the atom)
|
|
20
|
+
// ran_on_host: inside the target region of interest
|
|
21
|
+
// evidence: equivalent_default
|
|
22
|
+
// needs: none
|
|
23
|
+
// std: c11
|
|
24
|
+
// no oracle (equivalent_default): re-categorised (was implementation_defined): without n the ordered clause behaves as if n were the collapse value, here 1, so ordered(1) on this one-loop nest is the ordered clause without its argument, with or without doacross constructs
|
|
25
|
+
// basis: OpenMP 5.2 §4.4.4, p.94: "If n is not specified then the behavior is as if n is specified with the same value as is specified for the collapse clause on the construct."
|
|
26
|
+
#include <stdio.h>
|
|
27
|
+
#include <stdbool.h>
|
|
28
|
+
#include <omp.h>
|
|
29
|
+
|
|
30
|
+
enum { n = 64 };
|
|
31
|
+
|
|
32
|
+
int main(void) {
|
|
33
|
+
int a[n];
|
|
34
|
+
int b[n];
|
|
35
|
+
int ref[n];
|
|
36
|
+
int host_flag;
|
|
37
|
+
bool ok;
|
|
38
|
+
for (int i = 1; i <= n; i++) {
|
|
39
|
+
a[i - 1] = i;
|
|
40
|
+
b[i - 1] = 0;
|
|
41
|
+
ref[i - 1] = 2 * i + 1;
|
|
42
|
+
}
|
|
43
|
+
host_flag = 1;
|
|
44
|
+
#pragma omp target map(to: a) map(from: b) map(tofrom: host_flag)
|
|
45
|
+
{
|
|
46
|
+
host_flag = (omp_is_initial_device() ? 1 : 0);
|
|
47
|
+
#pragma omp parallel for default(none) shared(a, b) ordered(1)
|
|
48
|
+
for (int i = 1; i <= n; i++) {
|
|
49
|
+
b[i - 1] = 2 * a[i - 1] + 1;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
bool t1_ = true;
|
|
53
|
+
for (int k2_ = 0; k2_ < n; k2_++)
|
|
54
|
+
t1_ = t1_ && (b[k2_] == ref[k2_]);
|
|
55
|
+
ok = t1_;
|
|
56
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, ok ? "pass" : "fail");
|
|
57
|
+
return 0;
|
|
58
|
+
}
|
|
59
|
+
// site:
|
|
60
|
+
// title: amdclang: ordered(1) on a parallel for in a target region fails at the device link (__kmpc_doacross_init undefined)
|
|
61
|
+
// control: ../vendor/checks/src/afar/control/afar-c-ordered-doacross-link-control.c the ordered(1) clause removed
|
|
62
|
+
// end site
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// # Draft finding: omp52-c-clause-reduction-task on afar
|
|
2
|
+
//
|
|
3
|
+
// - compiler: afar
|
|
4
|
+
// - toolchain: afar; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
// - program: catalog omp52-c-clause-reduction-task (c, version 52, sha256 54be3b72d697c751)
|
|
6
|
+
// - expected: None (None; )
|
|
7
|
+
// - actual: rejected (link_undefined_symbol: ld.lld: error: undefined symbol: __kmpc_taskred_modifier_init)
|
|
8
|
+
// - verdict: compiler_bug by rule R10b-own-link-or-hang: a link failure on symbols the compiler's own generated code needs, or a compile that does not finish, on a legal program: the compiler's defect (never a rejection)
|
|
9
|
+
// - reason:
|
|
10
|
+
// - citations: RUL-COMPILE-TIME (rulings.md)
|
|
11
|
+
// - legality: legal (legal by construction: offload.engine.gen / c_gen / acc_gen check every program against the catalog rules and the offload scope as it is built (no compiler))
|
|
12
|
+
// - witnesses: none
|
|
13
|
+
// - withdrawn: none
|
|
14
|
+
//
|
|
15
|
+
// Generated by compliance.c_gen (OpenMP 5.2, C11): the C port (offload.engine.f2c) of omp52-clause-reduction-task. Do not edit.
|
|
16
|
+
// id: omp52-c-clause-reduction-task
|
|
17
|
+
// primary atom: omp.clause.reduction.task
|
|
18
|
+
// legal: yes
|
|
19
|
+
// observable: yes
|
|
20
|
+
// ran_on_host: inside the target region of interest
|
|
21
|
+
// evidence: construct
|
|
22
|
+
// needs: none
|
|
23
|
+
// std: c11
|
|
24
|
+
#include <stdio.h>
|
|
25
|
+
#include <stdbool.h>
|
|
26
|
+
#include <omp.h>
|
|
27
|
+
|
|
28
|
+
enum { n = 64 };
|
|
29
|
+
|
|
30
|
+
int main(void) {
|
|
31
|
+
int a[n];
|
|
32
|
+
int b[n];
|
|
33
|
+
int ref[n];
|
|
34
|
+
int host_flag;
|
|
35
|
+
bool ok;
|
|
36
|
+
int s;
|
|
37
|
+
int sref;
|
|
38
|
+
for (int i = 1; i <= n; i++) {
|
|
39
|
+
a[i - 1] = i;
|
|
40
|
+
b[i - 1] = 0;
|
|
41
|
+
ref[i - 1] = 2 * i + 1;
|
|
42
|
+
}
|
|
43
|
+
host_flag = 1;
|
|
44
|
+
s = 0;
|
|
45
|
+
sref = 0;
|
|
46
|
+
for (int i = 1; i <= n; i++) {
|
|
47
|
+
sref = sref + a[i - 1];
|
|
48
|
+
}
|
|
49
|
+
#pragma omp target map(to: a) map(from: b) map(tofrom: host_flag) map(tofrom: s)
|
|
50
|
+
{
|
|
51
|
+
host_flag = (omp_is_initial_device() ? 1 : 0);
|
|
52
|
+
#pragma omp parallel default(none) shared(a, b, s)
|
|
53
|
+
{
|
|
54
|
+
#pragma omp for reduction(task, +: s)
|
|
55
|
+
for (int i = 1; i <= n; i++) {
|
|
56
|
+
b[i - 1] = 2 * a[i - 1] + 1;
|
|
57
|
+
s = s + a[i - 1];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
bool t1_ = true;
|
|
62
|
+
for (int k2_ = 0; k2_ < n; k2_++)
|
|
63
|
+
t1_ = t1_ && (b[k2_] == ref[k2_]);
|
|
64
|
+
ok = t1_ && (s == sref);
|
|
65
|
+
printf("RESULT ran_on_host=%d check=%s\n", host_flag, ok ? "pass" : "fail");
|
|
66
|
+
return 0;
|
|
67
|
+
}
|
|
68
|
+
// site:
|
|
69
|
+
// title: amdclang: reduction(task, +: s) on a worksharing loop in a target region fails at the device link
|
|
70
|
+
// + (__kmpc_taskred_modifier_init undefined)
|
|
71
|
+
// control: ../vendor/checks/src/afar/control/afar-c-reduction-task-link-control.c reduction(+: s) without the task modifier
|
|
72
|
+
// end site
|
|
73
|
+
// spec (requirement): The task reduction-modifier on a reduction clause of a parallel or worksharing construct
|
|
74
|
+
// privatizes the list item and supports task reductions.
|
|
75
|
+
// "If the task reduction-modifier is present for a parallel or worksharing construct, then each list item is
|
|
76
|
+
// privatized according to the description and restrictions in Section 5.3" (5.2 §5.5.8 p.135 l.16-18)
|
|
77
|
+
// spec (requirement): After the region the original list item contains the result of the reduction.
|
|
78
|
+
// "After the end of the region, the original list item contains the result of the reduction." (5.2 §5.5.8 p.135
|
|
79
|
+
// l.21-22)
|
|
80
|
+
// spec (this program): reduction(task, +: s) on a worksharing loop inside a parallel region in a target region must
|
|
81
|
+
// leave the sum of a in s; amdclang fails at the device link (__kmpc_taskred_modifier_init undefined).
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
! # Draft finding: omp52-w-optional-absent on afar
|
|
2
|
+
!
|
|
3
|
+
! - compiler: afar
|
|
4
|
+
! - toolchain: afar; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog omp52-w-optional-absent (f90, version 52, sha256 a951b1f34bd1c3af)
|
|
6
|
+
! - expected: check=pass (trusted; elision + model)
|
|
7
|
+
! - actual: crash (crash: SIGABRT; without mandatory: crash: SIGABRT)
|
|
8
|
+
! - verdict: compiler_bug by rule R20-runtime-bug: a legal program fails at run time, deterministically, against an expected value
|
|
9
|
+
! from two or more independent sources with an executed witness, and another toolchain, mode, arch or the elision gives the
|
|
10
|
+
! expected value
|
|
11
|
+
! - reason: expected trusted check=pass (elision + model): stored main verdict: elision + model agree; witnesses:
|
|
12
|
+
! cce19/gfx942/unified, cce20/gfx942/unified, cce21/gfx942/unified, elision
|
|
13
|
+
! - citations: RUL-DERIVED-NEEDS-EXECUTION (rulings.md); RUL-WITNESS-PER-MODE (rulings.md);
|
|
14
|
+
! RUL-SAME-COMPILER-RUNS (rulings.md); RUL-PRESENCE-WITNESS (rulings.md); RUL-METAMORPHIC-OTHER-FAMILY
|
|
15
|
+
! (rulings.md)
|
|
16
|
+
! - legality: legal: offload.engine.rules accepts it (offload.engine.prerun.check, rerun: with the
|
|
17
|
+
! race rule and the restriction checks); nvfortran/nvc 26.9 and 25.11 (NVHPC, not under test
|
|
18
|
+
! here) compile it; the check's other witness, the AFAR flang front end, is the compiler under
|
|
19
|
+
! test and is not counted; no gfortran or gcc is a legality witness
|
|
20
|
+
! - witnesses: cce19/gfx942/unified, cce20/gfx942/unified, cce21/gfx942/unified, elision
|
|
21
|
+
! - withdrawn: none
|
|
22
|
+
!
|
|
23
|
+
! Generated by compliance.widen (OpenMP 5.2, free-form Fortran; catalog widening). Do not edit.
|
|
24
|
+
! id: omp52-w-optional-absent
|
|
25
|
+
! primary atom: base.device.optional_absent
|
|
26
|
+
! atoms: base.device.optional_absent
|
|
27
|
+
! legal: yes
|
|
28
|
+
! observable: yes
|
|
29
|
+
! ran_on_host: inside the target region of interest
|
|
30
|
+
! evidence: construct
|
|
31
|
+
! needs: none
|
|
32
|
+
! std: f2008
|
|
33
|
+
! feature: an absent OPTIONAL dummy array referenced with PRESENT() in a target region of the procedure
|
|
34
|
+
! spec: OpenMP 5.2 §3.2.1, p.61: a list item that is an absent optional dummy is ignored, and the data-sharing and data-mapping
|
|
35
|
+
! rules of an absent optional referenced in a construct are ignored
|
|
36
|
+
program wide_prog
|
|
37
|
+
use omp_lib, only: omp_is_initial_device
|
|
38
|
+
implicit none
|
|
39
|
+
integer, parameter :: n = 64
|
|
40
|
+
integer :: a(n), b(n), ref(n)
|
|
41
|
+
integer :: i, host_flag
|
|
42
|
+
logical :: ok
|
|
43
|
+
do i = 1, n
|
|
44
|
+
a(i) = i
|
|
45
|
+
b(i) = 0
|
|
46
|
+
ref(i) = 2*i + 1
|
|
47
|
+
end do
|
|
48
|
+
host_flag = 1
|
|
49
|
+
call work(a, b, host_flag)
|
|
50
|
+
ok = all(b == ref)
|
|
51
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
52
|
+
contains
|
|
53
|
+
subroutine work(x, y, hf, c)
|
|
54
|
+
integer, intent(in) :: x(n)
|
|
55
|
+
integer, intent(inout) :: y(n)
|
|
56
|
+
integer, intent(inout) :: hf
|
|
57
|
+
integer, intent(in), optional :: c(n)
|
|
58
|
+
integer :: k
|
|
59
|
+
!$omp target teams distribute parallel do map(to: x) map(tofrom: y, hf)
|
|
60
|
+
do k = 1, n
|
|
61
|
+
if (present(c)) then
|
|
62
|
+
y(k) = x(k) + c(k)
|
|
63
|
+
else
|
|
64
|
+
y(k) = 2*x(k) + 1
|
|
65
|
+
end if
|
|
66
|
+
if (k == 1) hf = merge(1, 0, omp_is_initial_device())
|
|
67
|
+
end do
|
|
68
|
+
!$omp end target teams distribute parallel do
|
|
69
|
+
end subroutine work
|
|
70
|
+
end program wide_prog
|
|
71
|
+
! site:
|
|
72
|
+
! title: amdflang: an absent OPTIONAL dummy array referenced with PRESENT() in a target region crashes the run
|
|
73
|
+
! control: ../vendor/checks/src/afar/control/afar-flang-absent-optional-target-crash-control.f90 the PRESENT(c) branch removed (the
|
|
74
|
+
! + absent dummy
|
|
75
|
+
! + is not referenced in the region)
|
|
76
|
+
! end site
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
! # Draft finding: omp52-w-critical on afar
|
|
2
|
+
!
|
|
3
|
+
! - compiler: afar
|
|
4
|
+
! - toolchain: afar; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog omp52-w-critical (f90, version 52, sha256 7f0f6d194e31f04f)
|
|
6
|
+
! - expected: check=pass (trusted; elision + model)
|
|
7
|
+
! - actual: wrong_answer check=fail (check_fail: ran_on_host=0 check=fail)
|
|
8
|
+
! - oracle audit: run on AFAR, CCE 19, 20, 21 (copy mode) and NVHPC: no toolchain passes the original (CCE ICEs, NVHPC
|
|
9
|
+
! rejects), so the mutant cannot be credited (unaudited, not weak); the C port's identical check is valid (its mutant killed on
|
|
10
|
+
! AFAR), and the mutant fails only by a race (a device effect)
|
|
11
|
+
! - verdict: compiler_bug by rule R20-runtime-bug: a legal program fails at run time, deterministically, against an expected value
|
|
12
|
+
! from two or more independent sources with an executed witness, and another toolchain, mode, arch or the elision gives the
|
|
13
|
+
! expected value
|
|
14
|
+
! - reason: expected trusted check=pass (elision + model): stored main verdict: elision + model agree; witnesses: afar/gfx942/copy
|
|
15
|
+
! (port:omp52-c-w-critical), afar/gfx942/unified (port:omp52-c-w-critical), cce19/gfx942/copy (port:omp52-c-w-critical), cc ...
|
|
16
|
+
! - citations: RUL-DERIVED-NEEDS-EXECUTION (rulings.md); RUL-WITNESS-PER-MODE (rulings.md);
|
|
17
|
+
! RUL-SAME-COMPILER-RUNS (rulings.md); RUL-PRESENCE-WITNESS (rulings.md); RUL-METAMORPHIC-OTHER-FAMILY
|
|
18
|
+
! (rulings.md)
|
|
19
|
+
! - legality: legal: offload.engine.rules accepts it (offload.engine.prerun.check, rerun: with the
|
|
20
|
+
! race rule and the restriction checks); NVHPC is no witness: it does not implement a feature the
|
|
21
|
+
! program uses (NVFORTRAN-F-1196-OpenMP - omp critical is not supported in GPU
|
|
22
|
+
! region); the check's other witness, the AFAR flang front end, is the compiler under test and is
|
|
23
|
+
! not counted; no gfortran or gcc is a legality witness
|
|
24
|
+
! - witnesses: afar/gfx942/copy (port:omp52-c-w-critical), afar/gfx942/unified (port:omp52-c-w-critical), cce19/gfx942/copy
|
|
25
|
+
! (port:omp52-c-w-critical), cce19/gfx942/unified (port:omp52-c-w-critical), cce20/gfx942/copy (port:omp52-c-w-critical),
|
|
26
|
+
! cce20/gfx94 ...
|
|
27
|
+
! - withdrawn: none
|
|
28
|
+
!
|
|
29
|
+
! Generated by compliance.widen (OpenMP 5.2, free-form Fortran; catalog widening). Do not edit.
|
|
30
|
+
! id: omp52-w-critical
|
|
31
|
+
! primary atom: omp.directive.critical
|
|
32
|
+
! atoms: omp.directive.critical
|
|
33
|
+
! legal: yes
|
|
34
|
+
! observable: yes
|
|
35
|
+
! ran_on_host: inside the target region of interest
|
|
36
|
+
! evidence: construct
|
|
37
|
+
! needs: none
|
|
38
|
+
! std: f2008
|
|
39
|
+
! feature: an unnamed critical construct in a target parallel loop
|
|
40
|
+
! spec: OpenMP 5.2 §15.2, p.299 (critical construct); its binding thread set is the contention group, so a target parallel region
|
|
41
|
+
! (one team) is used
|
|
42
|
+
program wide_prog
|
|
43
|
+
use omp_lib, only: omp_is_initial_device
|
|
44
|
+
implicit none
|
|
45
|
+
integer, parameter :: n = 64
|
|
46
|
+
integer :: a(n), b(n), ref(n)
|
|
47
|
+
integer :: s, t
|
|
48
|
+
integer :: i, host_flag
|
|
49
|
+
logical :: ok
|
|
50
|
+
do i = 1, n
|
|
51
|
+
a(i) = i
|
|
52
|
+
b(i) = 0
|
|
53
|
+
ref(i) = 2*i + 1
|
|
54
|
+
end do
|
|
55
|
+
host_flag = 1
|
|
56
|
+
s = 0
|
|
57
|
+
!$omp target parallel do map(to: a) map(tofrom: s, host_flag) private(t)
|
|
58
|
+
do i = 1, n
|
|
59
|
+
!$omp critical
|
|
60
|
+
t = s
|
|
61
|
+
s = t + a(i)
|
|
62
|
+
!$omp end critical
|
|
63
|
+
if (i == 1) host_flag = merge(1, 0, omp_is_initial_device())
|
|
64
|
+
end do
|
|
65
|
+
!$omp end target parallel do
|
|
66
|
+
ok = s == n*(n + 1)/2
|
|
67
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
68
|
+
end program wide_prog
|
|
69
|
+
! site:
|
|
70
|
+
! title: amdflang: an unnamed critical in a target parallel do does not exclude other threads (lost updates)
|
|
71
|
+
! control: ../vendor/checks/src/afar/control/afar-flang-critical-target-parallel-wrong-control.f90 an atomic update instead of
|
|
72
|
+
! + the critical
|
|
73
|
+
! + construct
|
|
74
|
+
! end site
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
! # Draft finding: omp52-clause-dist_schedule-chunk_size on afar
|
|
2
|
+
!
|
|
3
|
+
! - compiler: afar
|
|
4
|
+
! - toolchain: afar; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog omp52-clause-dist_schedule-chunk_size (f90, version 52, sha256 3628c7a53985f9c2)
|
|
6
|
+
! - expected: check=pass (trusted; derivation + model + probe)
|
|
7
|
+
! - actual: wrong_answer check=fail (check_fail: ran_on_host=0 check=fail)
|
|
8
|
+
! - verdict: compiler_bug by rule R20-runtime-bug: a legal program fails at run time, deterministically, against an expected value
|
|
9
|
+
! from two or more independent sources with an executed witness, and another toolchain, mode, arch or the elision gives the
|
|
10
|
+
! expected value
|
|
11
|
+
! - reason: expected trusted check=pass (derivation + model + probe): stored main verdict: derivation + model + probe agree;
|
|
12
|
+
! witnesses: afar/gfx942/copy (port:omp52-c-clause-dist_schedule-chunk_size), afar/gfx942/unified
|
|
13
|
+
! (port:omp52-c-clause-dist_schedule-chunk_size), cce19/gfx942/copy, cce19/gfx942/unified, cce20/gfx942/copy,
|
|
14
|
+
! cce20/gfx942/unified, cce21/gfx942/copy, cce21/gfx942/unified
|
|
15
|
+
! - citations: RUL-DERIVED-NEEDS-EXECUTION (rulings.md); RUL-WITNESS-PER-MODE (rulings.md);
|
|
16
|
+
! RUL-SAME-COMPILER-RUNS (rulings.md)
|
|
17
|
+
! - legality: legal (legal by construction: offload.engine.gen / c_gen / acc_gen check every program against the catalog rules
|
|
18
|
+
! and the
|
|
19
|
+
! offload scope as it is built (no compiler))
|
|
20
|
+
! - witnesses: afar/gfx942/copy (port:omp52-c-clause-dist_schedule-chunk_size), afar/gfx942/unified
|
|
21
|
+
! (port:omp52-c-clause-dist_schedule-chunk_size), cce19/gfx942/copy, cce19/gfx942/unified, cce20/gfx942/copy,
|
|
22
|
+
! cce20/gfx942/unified, cce21/gfx942/copy, cce21/gfx942/unified
|
|
23
|
+
! - withdrawn: none
|
|
24
|
+
!
|
|
25
|
+
! Generated by compliance.gen (OpenMP 5.2, free-form Fortran). Do not edit.
|
|
26
|
+
! id: omp52-clause-dist_schedule-chunk_size
|
|
27
|
+
! primary atom: omp.clause.dist_schedule.chunk_size
|
|
28
|
+
! legal: yes
|
|
29
|
+
! observable: yes
|
|
30
|
+
! ran_on_host: inside the target region of interest
|
|
31
|
+
! evidence: construct
|
|
32
|
+
! needs: none
|
|
33
|
+
! std: f2008
|
|
34
|
+
! derivation (check=pass): dist_schedule(static, 4): chunks of 4 iterations assigned to the initial teams round-robin in team-number
|
|
35
|
+
! derivation: order (5.2 §11.6.1 p.256), so iteration i runs on team mod((i - 1)/4, nt), which dok tests; nt >= 1 and b = ref; the
|
|
36
|
+
! derivation: check accepts
|
|
37
|
+
program gen_prog
|
|
38
|
+
use omp_lib, only: omp_get_num_teams, omp_get_team_num, omp_is_initial_device
|
|
39
|
+
implicit none
|
|
40
|
+
integer, parameter :: n = 64
|
|
41
|
+
integer, allocatable, target :: a(:), b(:)
|
|
42
|
+
integer :: ref(n)
|
|
43
|
+
integer :: i, host_flag
|
|
44
|
+
logical :: ok
|
|
45
|
+
integer :: team(n), nt
|
|
46
|
+
logical :: dok
|
|
47
|
+
allocate(a(n), b(n))
|
|
48
|
+
do i = 1, n
|
|
49
|
+
a(i) = i
|
|
50
|
+
b(i) = 0
|
|
51
|
+
ref(i) = 2*i + 1
|
|
52
|
+
end do
|
|
53
|
+
host_flag = 1
|
|
54
|
+
team = -1
|
|
55
|
+
nt = -1
|
|
56
|
+
!$omp target teams distribute parallel do map(to: a) map(from: b) map(from: team, nt) &
|
|
57
|
+
!$omp& map(tofrom: host_flag) default(none) shared(a, b, team, nt, host_flag) num_teams(4) &
|
|
58
|
+
!$omp& dist_schedule(static, 4)
|
|
59
|
+
do i = 1, n
|
|
60
|
+
b(i) = 2*a(i) + 1
|
|
61
|
+
team(i) = omp_get_team_num()
|
|
62
|
+
if (i == 1) nt = omp_get_num_teams()
|
|
63
|
+
if (i == 1) host_flag = merge(1, 0, omp_is_initial_device())
|
|
64
|
+
end do
|
|
65
|
+
!$omp end target teams distribute parallel do
|
|
66
|
+
dok = .true.
|
|
67
|
+
do i = 1, n
|
|
68
|
+
dok = dok .and. team(i) == mod((i - 1)/4, nt)
|
|
69
|
+
end do
|
|
70
|
+
ok = all(b == ref) .and. (nt >= 1) .and. dok
|
|
71
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
72
|
+
deallocate(a, b)
|
|
73
|
+
end program gen_prog
|
|
74
|
+
! site:
|
|
75
|
+
! title: amdflang: dist_schedule(static, 4) is not applied: 64 iterations over 4 teams go to teams 0 and 1 in two blocks of 32
|
|
76
|
+
! control: ../vendor/checks/src/afar/control/afar-flang-dist-schedule-chunk-control.f90 num_teams(1) instead of num_teams(4)
|
|
77
|
+
! + (every chunk
|
|
78
|
+
! + on team
|
|
79
|
+
! + 0)
|
|
80
|
+
! end site
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
! # Draft finding: omp52-clause-linear on afar
|
|
2
|
+
!
|
|
3
|
+
! - compiler: afar
|
|
4
|
+
! - toolchain: afar; arch: gfx942; machine: tuolumne; memory mode: unified; opt: -O2
|
|
5
|
+
! - program: catalog omp52-clause-linear (f90, version 52, sha256 707ffe408d371cb3)
|
|
6
|
+
! - expected: None (None; )
|
|
7
|
+
! - actual: ice (ice: PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace
|
|
8
|
+
! and instructions to reproduce the bug.)
|
|
9
|
+
! - verdict: compiler_bug by rule R10-compile-ice: an internal compiler error (or the compiler rejecting code it generated) on a
|
|
10
|
+
! legal program: always the compiler's defect
|
|
11
|
+
! - reason:
|
|
12
|
+
! - citations: RUL-COMPILE-TIME (rulings.md)
|
|
13
|
+
! - legality: legal (legal by construction: offload.engine.gen / c_gen / acc_gen check every program against the catalog rules
|
|
14
|
+
! and the
|
|
15
|
+
! offload scope as it is built (no compiler))
|
|
16
|
+
! - witnesses: none
|
|
17
|
+
! - withdrawn: none
|
|
18
|
+
!
|
|
19
|
+
! Generated by compliance.gen (OpenMP 5.2, free-form Fortran). Do not edit.
|
|
20
|
+
! id: omp52-clause-linear
|
|
21
|
+
! primary atom: omp.clause.linear
|
|
22
|
+
! legal: yes
|
|
23
|
+
! observable: yes
|
|
24
|
+
! ran_on_host: inside the target region of interest
|
|
25
|
+
! evidence: construct
|
|
26
|
+
! needs: none
|
|
27
|
+
! std: f2008
|
|
28
|
+
! derivation (check=pass): linear(x: 1) on the parallel do (5.2 §5.4.6 p.118): on the logical iteration of i (number i - 1) the new
|
|
29
|
+
! derivation: x is the original x (3) plus (i - 1)*1, so x - (i + 2) = 0 and b(i) = 2*a(i) + 1 = 2*i + 1 = ref(i); the body's x = x
|
|
30
|
+
! derivation: + 1 keeps x on that sequence, and the value of the sequentially last iteration, taken as the new x at the end of that
|
|
31
|
+
! derivation: iteration (3 + n after its increment, as the OpenMP Examples' linear programs assume), is assigned to the original x,
|
|
32
|
+
! derivation: which the target maps tofrom: x = 1*n + 3; the check accepts
|
|
33
|
+
program gen_prog
|
|
34
|
+
use omp_lib, only: omp_is_initial_device
|
|
35
|
+
implicit none
|
|
36
|
+
integer, parameter :: n = 64
|
|
37
|
+
integer, allocatable, target :: a(:), b(:)
|
|
38
|
+
integer :: ref(n)
|
|
39
|
+
integer :: i, host_flag
|
|
40
|
+
logical :: ok
|
|
41
|
+
integer :: x
|
|
42
|
+
allocate(a(n), b(n))
|
|
43
|
+
do i = 1, n
|
|
44
|
+
a(i) = i
|
|
45
|
+
b(i) = 0
|
|
46
|
+
ref(i) = 2*i + 1
|
|
47
|
+
end do
|
|
48
|
+
host_flag = 1
|
|
49
|
+
x = 3
|
|
50
|
+
!$omp target map(to: a) map(from: b) map(tofrom: x) map(tofrom: host_flag)
|
|
51
|
+
host_flag = merge(1, 0, omp_is_initial_device())
|
|
52
|
+
!$omp parallel do default(none) shared(a, b) linear(x: 1)
|
|
53
|
+
do i = 1, n
|
|
54
|
+
b(i) = 2*a(i) + 1 + (x - (1*i + 2))
|
|
55
|
+
x = x + 1
|
|
56
|
+
end do
|
|
57
|
+
!$omp end parallel do
|
|
58
|
+
!$omp end target
|
|
59
|
+
ok = all(b == ref) .and. (x == 1*n + 3)
|
|
60
|
+
print '(a,i0,a,a)', 'RESULT ran_on_host=', host_flag, ' check=', merge('pass', 'fail', ok)
|
|
61
|
+
deallocate(a, b)
|
|
62
|
+
end program gen_prog
|
|
63
|
+
! site:
|
|
64
|
+
! title: amdflang: compiler crash in OpenMPIRBuilder::createParallel for linear on a parallel do in a target region
|
|
65
|
+
! control: ../vendor/checks/src/afar/control/afar-flang-linear-parallel-ice-control.f90 the same parallel do on the host (the target
|
|
66
|
+
! + directive
|
|
67
|
+
! + removed)
|
|
68
|
+
! end site
|