aboutsummaryrefslogtreecommitdiff
path: root/libgomp
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2022-11-07 12:54:13 +0100
committerMartin Liska <mliska@suse.cz>2022-11-09 09:00:35 +0100
commitc63539ffe4c0e327337a1a51f638d9c8c958cb26 (patch)
treeb7e150794087c7f95700d86df3075e27c37c1f77 /libgomp
parent38ec5e4bc8fed58e278e6dcad999d38c5efc1340 (diff)
downloadgcc-c63539ffe4c0e327337a1a51f638d9c8c958cb26.zip
gcc-c63539ffe4c0e327337a1a51f638d9c8c958cb26.tar.gz
gcc-c63539ffe4c0e327337a1a51f638d9c8c958cb26.tar.bz2
sphinx: copy files from texi2rst-generated repository
ChangeLog: * doc/Makefile: New file. * doc/_static/custom.css: New file. * doc/baseconf.py: New file. * doc/bsd.rst: New file. * doc/contrib.rst: New file. * doc/contribute.rst: New file. * doc/cppdiropts.rst: New file. * doc/cppenv.rst: New file. * doc/cppopts.rst: New file. * doc/cppwarnopts.rst: New file. * doc/favicon.ico: New file. * doc/funding.rst: New file. * doc/gcc_sphinx.py: New file. * doc/gnu.rst: New file. * doc/gnu_free_documentation_license.rst: New file. * doc/gpl-3.0.rst: New file. * doc/indices-and-tables.rst: New file. * doc/lgpl-2.1.rst: New file. * doc/logo.pdf: New file. * doc/logo.svg: New file. * doc/md.rst: New file. * doc/requirements.txt: New file. gcc/d/ChangeLog: * doc/conf.py: New file. * doc/copyright.rst: New file. * doc/general-public-license-3.rst: New file. * doc/gnu-free-documentation-license.rst: New file. * doc/index.rst: New file. * doc/indices-and-tables.rst: New file. * doc/invoking-gdc.rst: New file. * doc/invoking-gdc/code-generation.rst: New file. * doc/invoking-gdc/developer-options.rst: New file. * doc/invoking-gdc/input-and-output-files.rst: New file. * doc/invoking-gdc/options-for-directory-search.rst: New file. * doc/invoking-gdc/options-for-linking.rst: New file. * doc/invoking-gdc/runtime-options.rst: New file. * doc/invoking-gdc/warnings.rst: New file. gcc/ChangeLog: * doc/cpp/character-sets.rst: New file. * doc/cpp/conditional-syntax.rst: New file. * doc/cpp/conditional-uses.rst: New file. * doc/cpp/conditionals.rst: New file. * doc/cpp/conf.py: New file. * doc/cpp/copyright.rst: New file. * doc/cpp/deleted-code.rst: New file. * doc/cpp/diagnostics.rst: New file. * doc/cpp/environment-variables.rst: New file. * doc/cpp/gnu-free-documentation-license.rst: New file. * doc/cpp/header-files.rst: New file. * doc/cpp/header-files/alternatives-to-wrapper-ifndef.rst: New file. * doc/cpp/header-files/computed-includes.rst: New file. * doc/cpp/header-files/include-operation.rst: New file. * doc/cpp/header-files/include-syntax.rst: New file. * doc/cpp/header-files/once-only-headers.rst: New file. * doc/cpp/header-files/search-path.rst: New file. * doc/cpp/header-files/system-headers.rst: New file. * doc/cpp/header-files/wrapper-headers.rst: New file. * doc/cpp/implementation-defined-behavior.rst: New file. * doc/cpp/implementation-details.rst: New file. * doc/cpp/implementation-limits.rst: New file. * doc/cpp/index.rst: New file. * doc/cpp/indices-and-tables.rst: New file. * doc/cpp/initial-processing.rst: New file. * doc/cpp/invocation.rst: New file. * doc/cpp/line-control.rst: New file. * doc/cpp/macros.rst: New file. * doc/cpp/macros/concatenation.rst: New file. * doc/cpp/macros/directives-within-macro-arguments.rst: New file. * doc/cpp/macros/function-like-macros.rst: New file. * doc/cpp/macros/macro-arguments.rst: New file. * doc/cpp/macros/macro-pitfalls.rst: New file. * doc/cpp/macros/object-like-macros.rst: New file. * doc/cpp/macros/predefined-macros.rst: New file. * doc/cpp/macros/stringizing.rst: New file. * doc/cpp/macros/undefining-and-redefining-macros.rst: New file. * doc/cpp/macros/variadic-macros.rst: New file. * doc/cpp/obsolete-features.rst: New file. * doc/cpp/other-directives.rst: New file. * doc/cpp/overview.rst: New file. * doc/cpp/pragmas.rst: New file. * doc/cpp/preprocessor-output.rst: New file. * doc/cpp/the-preprocessing-language.rst: New file. * doc/cpp/tokenization.rst: New file. * doc/cpp/traditional-lexical-analysis.rst: New file. * doc/cpp/traditional-macros.rst: New file. * doc/cpp/traditional-miscellany.rst: New file. * doc/cpp/traditional-mode.rst: New file. * doc/cpp/traditional-warnings.rst: New file. * doc/cppinternals/conf.py: New file. * doc/cppinternals/copyright.rst: New file. * doc/cppinternals/cppinternals.rst: New file. * doc/cppinternals/cpplib.rst: New file. * doc/cppinternals/files.rst: New file. * doc/cppinternals/index.rst: New file. * doc/cppinternals/indices-and-tables.rst: New file. * doc/cppinternals/internal-representation-of-macros.rst: New file. * doc/cppinternals/just-which-line-number-anyway.rst: New file. * doc/cppinternals/lexing-a-line.rst: New file. * doc/cppinternals/lexing-a-token.rst: New file. * doc/cppinternals/looking-for-a-function-like-macros-opening-parenthesis.rst: New file. * doc/cppinternals/macro-expansion-overview.rst: New file. * doc/cppinternals/marking-tokens-ineligible-for-future-expansion.rst: New file. * doc/cppinternals/multiple-include-optimization.rst: New file. * doc/cppinternals/overview.rst: New file. * doc/cppinternals/representation-of-line-numbers.rst: New file. * doc/cppinternals/scanning-the-replacement-list-for-macros-to-expand.rst: New file. * doc/gcc/binary-compatibility.rst: New file. * doc/gcc/c++-implementation-defined-behavior.rst: New file. * doc/gcc/c-implementation-defined-behavior.rst: New file. * doc/gcc/c-implementation-defined-behavior/architecture.rst: New file. * doc/gcc/c-implementation-defined-behavior/arrays-and-pointers.rst: New file. * doc/gcc/c-implementation-defined-behavior/characters.rst: New file. * doc/gcc/c-implementation-defined-behavior/declarators.rst: New file. * doc/gcc/c-implementation-defined-behavior/environment.rst: New file. * doc/gcc/c-implementation-defined-behavior/floating-point.rst: New file. * doc/gcc/c-implementation-defined-behavior/hints.rst: New file. * doc/gcc/c-implementation-defined-behavior/identifiers.rst: New file. * doc/gcc/c-implementation-defined-behavior/integers.rst: New file. * doc/gcc/c-implementation-defined-behavior/library-functions.rst: New file. * doc/gcc/c-implementation-defined-behavior/locale-specific-behavior.rst: New file. * doc/gcc/c-implementation-defined-behavior/preprocessing-directives.rst: New file. * doc/gcc/c-implementation-defined-behavior/qualifiers.rst: New file. * doc/gcc/c-implementation-defined-behavior/statements.rst: New file. * doc/gcc/c-implementation-defined-behavior/structures-unions-enumerations-and-bit-fields.rst: New file. * doc/gcc/c-implementation-defined-behavior/translation.rst: New file. * doc/gcc/conditionally-supported-behavior.rst: New file. * doc/gcc/conf.py: New file. * doc/gcc/contributing-to-gcc-development.rst: New file. * doc/gcc/contributors-to-gcc.rst: New file. * doc/gcc/copyright.rst: New file. * doc/gcc/exception-handling.rst: New file. * doc/gcc/extensions-to-the-c++-language.rst: New file. * doc/gcc/extensions-to-the-c++-language/backwards-compatibility.rst: New file. * doc/gcc/extensions-to-the-c++-language/c++-concepts.rst: New file. * doc/gcc/extensions-to-the-c++-language/c++-interface-and-implementation-pragmas.rst: New file. * doc/gcc/extensions-to-the-c++-language/c++-specific-variable-function-and-type-attributes.rst: New file. * doc/gcc/extensions-to-the-c++-language/deprecated-features.rst: New file. * doc/gcc/extensions-to-the-c++-language/extracting-the-function-pointer-from-a-bound-pointer-to-member-function.rst: New file. * doc/gcc/extensions-to-the-c++-language/function-multiversioning.rst: New file. * doc/gcc/extensions-to-the-c++-language/restricting-pointer-aliasing.rst: New file. * doc/gcc/extensions-to-the-c++-language/type-traits.rst: New file. * doc/gcc/extensions-to-the-c++-language/vague-linkage.rst: New file. * doc/gcc/extensions-to-the-c++-language/when-is-a-volatile-c++-object-accessed.rst: New file. * doc/gcc/extensions-to-the-c++-language/wheres-the-template.rst: New file. * doc/gcc/extensions-to-the-c-language-family.rst: New file. * doc/gcc/extensions-to-the-c-language-family/128-bit-integers.rst: New file. * doc/gcc/extensions-to-the-c-language-family/additional-floating-types.rst: New file. * doc/gcc/extensions-to-the-c-language-family/alternate-keywords.rst: New file. * doc/gcc/extensions-to-the-c-language-family/an-inline-function-is-as-fast-as-a-macro.rst: New file. * doc/gcc/extensions-to-the-c-language-family/arithmetic-on-void-and-function-pointers.rst: New file. * doc/gcc/extensions-to-the-c-language-family/arrays-of-length-zero.rst: New file. * doc/gcc/extensions-to-the-c-language-family/arrays-of-variable-length.rst: New file. * doc/gcc/extensions-to-the-c-language-family/attribute-syntax.rst: New file. * doc/gcc/extensions-to-the-c-language-family/binary-constants-using-the-0b-prefix.rst: New file. * doc/gcc/extensions-to-the-c-language-family/built-in-functions-for-memory-model-aware-atomic-operations.rst: New file. * doc/gcc/extensions-to-the-c-language-family/built-in-functions-to-perform-arithmetic-with-overflow-checking.rst: New file. * doc/gcc/extensions-to-the-c-language-family/c++-style-comments.rst: New file. * doc/gcc/extensions-to-the-c-language-family/case-ranges.rst: New file. * doc/gcc/extensions-to-the-c-language-family/cast-to-a-union-type.rst: New file. * doc/gcc/extensions-to-the-c-language-family/complex-numbers.rst: New file. * doc/gcc/extensions-to-the-c-language-family/compound-literals.rst: New file. * doc/gcc/extensions-to-the-c-language-family/conditionals-with-omitted-operands.rst: New file. * doc/gcc/extensions-to-the-c-language-family/constructing-function-calls.rst: New file. * doc/gcc/extensions-to-the-c-language-family/decimal-floating-types.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/aarch64-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/amd-gcn-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arc-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arm-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/avr-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/blackfin-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/bpf-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/c-sky-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/common-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/epiphany-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/h8-300-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/ia-64-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32c-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32r-d-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m68k-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mcore-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mep-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microblaze-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microsoft-windows-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mips-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/msp430-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nds32-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nios-ii-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nvidia-ptx-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/powerpc-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/risc-v-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rl78-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rx-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/s-390-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/sh-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/symbian-os-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/v850-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/visium-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/x86-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/xstormy16-function-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/designated-initializers.rst: New file. * doc/gcc/extensions-to-the-c-language-family/determining-the-alignment-of-functions-types-or-variables.rst: New file. * doc/gcc/extensions-to-the-c-language-family/dollar-signs-in-identifier-names.rst: New file. * doc/gcc/extensions-to-the-c-language-family/double-word-integers.rst: New file. * doc/gcc/extensions-to-the-c-language-family/enumerator-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/fixed-point-types.rst: New file. * doc/gcc/extensions-to-the-c-language-family/format-checks-specific-to-particular-target-machines.rst: New file. * doc/gcc/extensions-to-the-c-language-family/function-names-as-strings.rst: New file. * doc/gcc/extensions-to-the-c-language-family/getting-the-return-or-frame-address-of-a-function.rst: New file. * doc/gcc/extensions-to-the-c-language-family/half-precision-floating-point.rst: New file. * doc/gcc/extensions-to-the-c-language-family/hex-floats.rst: New file. * doc/gcc/extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code.rst: New file. * doc/gcc/extensions-to-the-c-language-family/incomplete-enum-types.rst: New file. * doc/gcc/extensions-to-the-c-language-family/label-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/labels-as-values.rst: New file. * doc/gcc/extensions-to-the-c-language-family/legacy-sync-built-in-functions-for-atomic-memory-access.rst: New file. * doc/gcc/extensions-to-the-c-language-family/locally-declared-labels.rst: New file. * doc/gcc/extensions-to-the-c-language-family/macros-with-a-variable-number-of-arguments.rst: New file. * doc/gcc/extensions-to-the-c-language-family/mixed-declarations-labels-and-code.rst: New file. * doc/gcc/extensions-to-the-c-language-family/named-address-spaces.rst: New file. * doc/gcc/extensions-to-the-c-language-family/nested-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/non-constant-initializers.rst: New file. * doc/gcc/extensions-to-the-c-language-family/non-lvalue-arrays-may-have-subscripts.rst: New file. * doc/gcc/extensions-to-the-c-language-family/nonlocal-gotos.rst: New file. * doc/gcc/extensions-to-the-c-language-family/object-size-checking-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/other-built-in-functions-provided-by-gcc.rst: New file. * doc/gcc/extensions-to-the-c-language-family/pointer-arguments-in-variadic-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/pointers-to-arrays-with-qualifiers-work-as-expected.rst: New file. * doc/gcc/extensions-to-the-c-language-family/pragmas-accepted-by-gcc.rst: New file. * doc/gcc/extensions-to-the-c-language-family/prototypes-and-old-style-function-definitions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/referring-to-a-type-with-typeof.rst: New file. * doc/gcc/extensions-to-the-c-language-family/slightly-looser-rules-for-escaped-newlines.rst: New file. * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-types.rst: New file. * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-variables.rst: New file. * doc/gcc/extensions-to-the-c-language-family/statement-attributes.rst: New file. * doc/gcc/extensions-to-the-c-language-family/statements-and-declarations-in-expressions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/structures-with-no-members.rst: New file. * doc/gcc/extensions-to-the-c-language-family/support-for-offsetof.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/aarch64-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/alpha-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/altera-nios-ii-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-simd-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-armv8-m-security-extensions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-c-language-extensions-acle.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-floating-point-status-and-control-intrinsics.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-iwmmxt-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/avr-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/basic-powerpc-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/blackfin-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/bpf-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/fr-v-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-dsp-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-loongson-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-paired-single-support.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-simd-architecture-msa-support.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/msp430-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/nds32-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/other-mips-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/picochip-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-altivec-vsx-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-atomic-memory-operation-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-hardware-transactional-memory-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-matrix-multiply-assist-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/pru-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/risc-v-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/rx-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/s-390-system-z-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/sh-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/sparc-vis-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/ti-c6x-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-control-flow-protection-intrinsics.rst: New file. * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-transactional-memory-intrinsics.rst: New file. * doc/gcc/extensions-to-the-c-language-family/the-character-esc-in-constants.rst: New file. * doc/gcc/extensions-to-the-c-language-family/thread-local-storage.rst: New file. * doc/gcc/extensions-to-the-c-language-family/unnamed-structure-and-union-fields.rst: New file. * doc/gcc/extensions-to-the-c-language-family/using-vector-instructions-through-built-in-functions.rst: New file. * doc/gcc/extensions-to-the-c-language-family/when-is-a-volatile-object-accessed.rst: New file. * doc/gcc/extensions-to-the-c-language-family/x86-specific-memory-model-extensions-for-transactional-memory.rst: New file. * doc/gcc/funding.rst: New file. * doc/gcc/gcc-command-options.rst: New file. * doc/gcc/gcc-command-options/c++-modules.rst: New file. * doc/gcc/gcc-command-options/compiling-c++-programs.rst: New file. * doc/gcc/gcc-command-options/description.rst: New file. * doc/gcc/gcc-command-options/environment-variables-affecting-gcc.rst: New file. * doc/gcc/gcc-command-options/gcc-developer-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/adapteva-epiphany-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/amd-gcn-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/arc-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/arm-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/avr-mmcu.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/blackfin-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/c-sky-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/c6x-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/cris-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/darwin-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/dec-alpha-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/ebpf-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/fr30-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/frv-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/ft32-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/gnu-linux-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/h8-300-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/hppa-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/ia-64-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/ibm-rs-6000-and-powerpc-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/lm32-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/loongarch-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/m32c-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/m32r-d-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/m680x0-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/mcore-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/mep-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/microblaze-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/mips-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/mmix-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/mn10300-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/moxie-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/msp430-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/nds32-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/nios-ii-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/nvidia-ptx-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/openrisc-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/options-for-system-v.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/pdp-11-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/picochip-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/powerpc-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/pru-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/risc-v-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/rl78-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/rx-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/s-390-and-zseries-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/score-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/sh-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/solaris-2-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/sparc-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/v850-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/vax-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/visium-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/vms-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/vxworks-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/x86-windows-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/xstormy16-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/xtensa-options.rst: New file. * doc/gcc/gcc-command-options/machine-dependent-options/zseries-options.rst: New file. * doc/gcc/gcc-command-options/option-summary.rst: New file. * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst: New file. * doc/gcc/gcc-command-options/options-controlling-c-dialect.rst: New file. * doc/gcc/gcc-command-options/options-controlling-objective-c-and-objective-c++-dialects.rst: New file. * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst: New file. * doc/gcc/gcc-command-options/options-controlling-the-preprocessor.rst: New file. * doc/gcc/gcc-command-options/options-for-code-generation-conventions.rst: New file. * doc/gcc/gcc-command-options/options-for-debugging-your-program.rst: New file. * doc/gcc/gcc-command-options/options-for-directory-search.rst: New file. * doc/gcc/gcc-command-options/options-for-linking.rst: New file. * doc/gcc/gcc-command-options/options-that-control-optimization.rst: New file. * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: New file. * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst: New file. * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst: New file. * doc/gcc/gcc-command-options/passing-options-to-the-assembler.rst: New file. * doc/gcc/gcc-command-options/program-instrumentation-options.rst: New file. * doc/gcc/gcc-command-options/specifying-subprocesses-and-the-switches-to-pass-to-them.rst: New file. * doc/gcc/gcc-command-options/using-precompiled-headers.rst: New file. * doc/gcc/gcc.rst: New file. * doc/gcc/gcov-dump.rst: New file. * doc/gcc/gcov-tool.rst: New file. * doc/gcc/gcov.rst: New file. * doc/gcc/gcov/brief-description-of-gcov-data-files.rst: New file. * doc/gcc/gcov/data-file-relocation-to-support-cross-profiling.rst: New file. * doc/gcc/gcov/introduction-to-gcov.rst: New file. * doc/gcc/gcov/invoking-gcov.rst: New file. * doc/gcc/gcov/profiling-and-test-coverage-in-freestanding-environments.rst: New file. * doc/gcc/gcov/using-gcov-with-gcc-optimization.rst: New file. * doc/gcc/general-public-license-3.rst: New file. * doc/gcc/gnu-free-documentation-license.rst: New file. * doc/gcc/gnu-objective-c-features.rst: New file. * doc/gcc/gnu-objective-c-features/compatibilityalias.rst: New file. * doc/gcc/gnu-objective-c-features/constant-string-objects.rst: New file. * doc/gcc/gnu-objective-c-features/exceptions.rst: New file. * doc/gcc/gnu-objective-c-features/fast-enumeration.rst: New file. * doc/gcc/gnu-objective-c-features/garbage-collection.rst: New file. * doc/gcc/gnu-objective-c-features/gnu-objective-c-runtime-api.rst: New file. * doc/gcc/gnu-objective-c-features/load-executing-code-before-main.rst: New file. * doc/gcc/gnu-objective-c-features/messaging-with-the-gnu-objective-c-runtime.rst: New file. * doc/gcc/gnu-objective-c-features/synchronization.rst: New file. * doc/gcc/gnu-objective-c-features/type-encoding.rst: New file. * doc/gcc/gnu.rst: New file. * doc/gcc/have-you-found-a-bug.rst: New file. * doc/gcc/how-and-where-to-report-bugs.rst: New file. * doc/gcc/how-to-get-help-with-gcc.rst: New file. * doc/gcc/index.rst: New file. * doc/gcc/indices-and-tables.rst: New file. * doc/gcc/known-causes-of-trouble-with-gcc.rst: New file. * doc/gcc/known-causes-of-trouble-with-gcc/actual-bugs-we-havent-fixed-yet.rst: New file. * doc/gcc/known-causes-of-trouble-with-gcc/certain-changes-we-dont-want-to-make.rst: New file. * doc/gcc/known-causes-of-trouble-with-gcc/common-misunderstandings-with-gnu-c.rst: New file. * doc/gcc/known-causes-of-trouble-with-gcc/disappointments-and-misunderstandings.rst: New file. * doc/gcc/known-causes-of-trouble-with-gcc/fixed-header-files.rst: New file. * doc/gcc/known-causes-of-trouble-with-gcc/incompatibilities-of-gcc.rst: New file. * doc/gcc/known-causes-of-trouble-with-gcc/interoperation.rst: New file. * doc/gcc/known-causes-of-trouble-with-gcc/standard-libraries.rst: New file. * doc/gcc/known-causes-of-trouble-with-gcc/warning-messages-and-error-messages.rst: New file. * doc/gcc/language-standards-supported-by-gcc.rst: New file. * doc/gcc/language-standards-supported-by-gcc/c++-language.rst: New file. * doc/gcc/language-standards-supported-by-gcc/c-language.rst: New file. * doc/gcc/language-standards-supported-by-gcc/d-language.rst: New file. * doc/gcc/language-standards-supported-by-gcc/go-language.rst: New file. * doc/gcc/language-standards-supported-by-gcc/objective-c-and-objective-c++-languages.rst: New file. * doc/gcc/language-standards-supported-by-gcc/references-for-other-languages.rst: New file. * doc/gcc/lto-dump.rst: New file. * doc/gcc/programming-languages-supported-by-gcc.rst: New file. * doc/gcc/reporting-bugs.rst: New file. * doc/gccint/analysis-and-optimization-of-gimple-tuples.rst: New file. * doc/gccint/analysis-and-optimization-of-gimple-tuples/alias-analysis.rst: New file. * doc/gccint/analysis-and-optimization-of-gimple-tuples/annotations.rst: New file. * doc/gccint/analysis-and-optimization-of-gimple-tuples/memory-model.rst: New file. * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst: New file. * doc/gccint/analysis-and-optimization-of-gimple-tuples/static-single-assignment.rst: New file. * doc/gccint/analysis-and-representation-of-loops.rst: New file. * doc/gccint/analysis-and-representation-of-loops/data-dependency-analysis.rst: New file. * doc/gccint/analysis-and-representation-of-loops/iv-analysis-on-rtl.rst: New file. * doc/gccint/analysis-and-representation-of-loops/loop-closed-ssa-form.rst: New file. * doc/gccint/analysis-and-representation-of-loops/loop-manipulation.rst: New file. * doc/gccint/analysis-and-representation-of-loops/loop-querying.rst: New file. * doc/gccint/analysis-and-representation-of-loops/loop-representation.rst: New file. * doc/gccint/analysis-and-representation-of-loops/number-of-iterations-analysis.rst: New file. * doc/gccint/analysis-and-representation-of-loops/scalar-evolutions.rst: New file. * doc/gccint/analyzer-internals.rst: New file. * doc/gccint/collect2.rst: New file. * doc/gccint/conf.py: New file. * doc/gccint/contributing-to-gcc-development.rst: New file. * doc/gccint/contributors-to-gcc.rst: New file. * doc/gccint/control-flow-graph.rst: New file. * doc/gccint/control-flow-graph/basic-blocks.rst: New file. * doc/gccint/control-flow-graph/edges.rst: New file. * doc/gccint/control-flow-graph/liveness-information.rst: New file. * doc/gccint/control-flow-graph/maintaining-the-cfg.rst: New file. * doc/gccint/control-flow-graph/profile-information.rst: New file. * doc/gccint/copyright.rst: New file. * doc/gccint/debugging-the-analyzer.rst: New file. * doc/gccint/funding.rst: New file. * doc/gccint/gcc-and-portability.rst: New file. * doc/gccint/general-public-license-3.rst: New file. * doc/gccint/generic.rst: New file. * doc/gccint/generic/attributes-in-trees.rst: New file. * doc/gccint/generic/c-and-c++-trees.rst: New file. * doc/gccint/generic/declarations.rst: New file. * doc/gccint/generic/deficiencies.rst: New file. * doc/gccint/generic/expressions.rst: New file. * doc/gccint/generic/functions.rst: New file. * doc/gccint/generic/language-dependent-trees.rst: New file. * doc/gccint/generic/overview.rst: New file. * doc/gccint/generic/statements.rst: New file. * doc/gccint/generic/types.rst: New file. * doc/gccint/gimple-api.rst: New file. * doc/gccint/gimple.rst: New file. * doc/gccint/gimple/adding-a-new-gimple-statement-code.rst: New file. * doc/gccint/gimple/class-hierarchy-of-gimple-statements.rst: New file. * doc/gccint/gimple/exception-handling.rst: New file. * doc/gccint/gimple/gimple-instruction-set.rst: New file. * doc/gccint/gimple/gimple-sequences.rst: New file. * doc/gccint/gimple/manipulating-gimple-statements.rst: New file. * doc/gccint/gimple/operands.rst: New file. * doc/gccint/gimple/sequence-iterators.rst: New file. * doc/gccint/gimple/statement-and-operand-traversals.rst: New file. * doc/gccint/gimple/temporaries.rst: New file. * doc/gccint/gimple/tuple-representation.rst: New file. * doc/gccint/gimple/tuple-specific-accessors.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleasm.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleassign.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimplebind.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimplecall.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimplecatch.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimplecond.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpledebug.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleehfilter.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimplegoto.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimplelabel.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimplenop.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicload.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicstore.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleompcontinue.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleompcritical.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleompfor.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleompmaster.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleompordered.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleompparallel.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleompreturn.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleompsection.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleompsections.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleompsingle.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimplephi.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleresx.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimplereturn.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpleswitch.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimpletry.rst: New file. * doc/gccint/gimple/tuple-specific-accessors/gimplewithcleanupexpr.rst: New file. * doc/gccint/gnu-free-documentation-license.rst: New file. * doc/gccint/guidelines-for-diagnostics.rst: New file. * doc/gccint/guidelines-for-options.rst: New file. * doc/gccint/host-common.rst: New file. * doc/gccint/host-configuration.rst: New file. * doc/gccint/host-filesystem.rst: New file. * doc/gccint/host-makefile-fragments.rst: New file. * doc/gccint/host-misc.rst: New file. * doc/gccint/index.rst: New file. * doc/gccint/indices-and-tables.rst: New file. * doc/gccint/interfacing-to-gcc-output.rst: New file. * doc/gccint/introduction.rst: New file. * doc/gccint/language-front-ends-in-gcc.rst: New file. * doc/gccint/link-time-optimization.rst: New file. * doc/gccint/link-time-optimization/design-overview.rst: New file. * doc/gccint/link-time-optimization/internal-flags-controlling-lto1.rst: New file. * doc/gccint/link-time-optimization/lto-file-sections.rst: New file. * doc/gccint/link-time-optimization/using-summary-information-in-ipa-passes.rst: New file. * doc/gccint/link-time-optimization/whole-program-assumptions-linker-plugin-and-symbol-visibilities.rst: New file. * doc/gccint/machine-descriptions.rst: New file. * doc/gccint/machine-descriptions/c-statements-for-assembler-output.rst: New file. * doc/gccint/machine-descriptions/canonicalization-of-instructions.rst: New file. * doc/gccint/machine-descriptions/conditional-execution.rst: New file. * doc/gccint/machine-descriptions/constant-definitions.rst: New file. * doc/gccint/machine-descriptions/defining-how-to-split-instructions.rst: New file. * doc/gccint/machine-descriptions/defining-jump-instruction-patterns.rst: New file. * doc/gccint/machine-descriptions/defining-looping-instruction-patterns.rst: New file. * doc/gccint/machine-descriptions/defining-rtl-sequences-for-code-generation.rst: New file. * doc/gccint/machine-descriptions/everything-about-instruction-patterns.rst: New file. * doc/gccint/machine-descriptions/example-of-defineinsn.rst: New file. * doc/gccint/machine-descriptions/including-patterns-in-machine-descriptions.rst: New file. * doc/gccint/machine-descriptions/instruction-attributes.rst: New file. * doc/gccint/machine-descriptions/interdependence-of-patterns.rst: New file. * doc/gccint/machine-descriptions/iterators.rst: New file. * doc/gccint/machine-descriptions/machine-specific-peephole-optimizers.rst: New file. * doc/gccint/machine-descriptions/operand-constraints.rst: New file. * doc/gccint/machine-descriptions/output-templates-and-operand-substitution.rst: New file. * doc/gccint/machine-descriptions/overview-of-how-the-machine-description-is-used.rst: New file. * doc/gccint/machine-descriptions/predicates.rst: New file. * doc/gccint/machine-descriptions/rtl-template.rst: New file. * doc/gccint/machine-descriptions/rtl-templates-transformations.rst: New file. * doc/gccint/machine-descriptions/standard-pattern-names-for-generation.rst: New file. * doc/gccint/machine-descriptions/when-the-order-of-patterns-matters.rst: New file. * doc/gccint/makefile-fragments.rst: New file. * doc/gccint/match-and-simplify.rst: New file. * doc/gccint/memory-management-and-type-information.rst: New file. * doc/gccint/memory-management-and-type-information/how-to-invoke-the-garbage-collector.rst: New file. * doc/gccint/memory-management-and-type-information/marking-roots-for-the-garbage-collector.rst: New file. * doc/gccint/memory-management-and-type-information/source-files-containing-type-information.rst: New file. * doc/gccint/memory-management-and-type-information/support-for-inheritance.rst: New file. * doc/gccint/memory-management-and-type-information/support-for-user-provided-gc-marking-routines.rst: New file. * doc/gccint/memory-management-and-type-information/the-inside-of-a-gty.rst: New file. * doc/gccint/memory-management-and-type-information/troubleshooting-the-garbage-collector.rst: New file. * doc/gccint/option-file-format.rst: New file. * doc/gccint/option-properties.rst: New file. * doc/gccint/option-specification-files.rst: New file. * doc/gccint/passes-and-files-of-the-compiler.rst: New file. * doc/gccint/passes-and-files-of-the-compiler/gimplification-pass.rst: New file. * doc/gccint/passes-and-files-of-the-compiler/inter-procedural-optimization-passes.rst: New file. * doc/gccint/passes-and-files-of-the-compiler/optimization-info.rst: New file. * doc/gccint/passes-and-files-of-the-compiler/parsing-pass.rst: New file. * doc/gccint/passes-and-files-of-the-compiler/pass-manager.rst: New file. * doc/gccint/passes-and-files-of-the-compiler/rtl-passes.rst: New file. * doc/gccint/passes-and-files-of-the-compiler/tree-ssa-passes.rst: New file. * doc/gccint/plugins.rst: New file. * doc/gccint/plugins/building-gcc-plugins.rst: New file. * doc/gccint/plugins/controlling-which-passes-are-being-run.rst: New file. * doc/gccint/plugins/giving-information-about-a-plugin.rst: New file. * doc/gccint/plugins/interacting-with-the-gcc-garbage-collector.rst: New file. * doc/gccint/plugins/interacting-with-the-pass-manager.rst: New file. * doc/gccint/plugins/keeping-track-of-available-passes.rst: New file. * doc/gccint/plugins/loading-plugins.rst: New file. * doc/gccint/plugins/plugin-api.rst: New file. * doc/gccint/plugins/recording-information-about-pass-execution.rst: New file. * doc/gccint/plugins/registering-custom-attributes-or-pragmas.rst: New file. * doc/gccint/rtl-representation.rst: New file. * doc/gccint/rtl-representation/access-to-operands.rst: New file. * doc/gccint/rtl-representation/access-to-special-operands.rst: New file. * doc/gccint/rtl-representation/assembler-instructions-as-expressions.rst: New file. * doc/gccint/rtl-representation/bit-fields.rst: New file. * doc/gccint/rtl-representation/comparison-operations.rst: New file. * doc/gccint/rtl-representation/constant-expression-types.rst: New file. * doc/gccint/rtl-representation/conversions.rst: New file. * doc/gccint/rtl-representation/declarations.rst: New file. * doc/gccint/rtl-representation/embedded-side-effects-on-addresses.rst: New file. * doc/gccint/rtl-representation/flags-in-an-rtl-expression.rst: New file. * doc/gccint/rtl-representation/insns.rst: New file. * doc/gccint/rtl-representation/machine-modes.rst: New file. * doc/gccint/rtl-representation/on-the-side-ssa-form-for-rtl.rst: New file. * doc/gccint/rtl-representation/reading-rtl.rst: New file. * doc/gccint/rtl-representation/registers-and-memory.rst: New file. * doc/gccint/rtl-representation/rtl-classes-and-formats.rst: New file. * doc/gccint/rtl-representation/rtl-expressions-for-arithmetic.rst: New file. * doc/gccint/rtl-representation/rtl-object-types.rst: New file. * doc/gccint/rtl-representation/rtl-representation-of-function-call-insns.rst: New file. * doc/gccint/rtl-representation/side-effect-expressions.rst: New file. * doc/gccint/rtl-representation/structure-sharing-assumptions.rst: New file. * doc/gccint/rtl-representation/variable-location-debug-information-in-rtl.rst: New file. * doc/gccint/rtl-representation/vector-operations.rst: New file. * doc/gccint/sizes-and-offsets-as-runtime-invariants.rst: New file. * doc/gccint/sizes-and-offsets-as-runtime-invariants/alignment-of-polyints.rst: New file. * doc/gccint/sizes-and-offsets-as-runtime-invariants/arithmetic-on-polyints.rst: New file. * doc/gccint/sizes-and-offsets-as-runtime-invariants/comparisons-involving-polyint.rst: New file. * doc/gccint/sizes-and-offsets-as-runtime-invariants/computing-bounds-on-polyints.rst: New file. * doc/gccint/sizes-and-offsets-as-runtime-invariants/consequences-of-using-polyint.rst: New file. * doc/gccint/sizes-and-offsets-as-runtime-invariants/converting-polyints.rst: New file. * doc/gccint/sizes-and-offsets-as-runtime-invariants/guidelines-for-using-polyint.rst: New file. * doc/gccint/sizes-and-offsets-as-runtime-invariants/miscellaneous-polyint-routines.rst: New file. * doc/gccint/sizes-and-offsets-as-runtime-invariants/overview-of-polyint.rst: New file. * doc/gccint/source-tree-structure-and-build-system.rst: New file. * doc/gccint/source-tree-structure-and-build-system/configure-terms-and-history.rst: New file. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory.rst: New file. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-language-front-end.rst: New file. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-target-back-end.rst: New file. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/build-system-in-the-gcc-directory.rst: New file. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/building-documentation.rst: New file. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/configuration-in-the-gcc-directory.rst: New file. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/headers-installed-by-gcc.rst: New file. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/library-source-files-and-headers-under-the-gcc-directory.rst: New file. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/makefile-targets.rst: New file. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/subdirectories-of-gcc.rst: New file. * doc/gccint/source-tree-structure-and-build-system/top-level-source-directory.rst: New file. * doc/gccint/standard-header-file-directories.rst: New file. * doc/gccint/static-analyzer.rst: New file. * doc/gccint/target-macros.rst: New file. * doc/gccint/target-macros/adding-support-for-named-address-spaces.rst: New file. * doc/gccint/target-macros/addressing-modes.rst: New file. * doc/gccint/target-macros/adjusting-the-instruction-scheduler.rst: New file. * doc/gccint/target-macros/anchored-addresses.rst: New file. * doc/gccint/target-macros/c++-abi-parameters.rst: New file. * doc/gccint/target-macros/condition-code-status.rst: New file. * doc/gccint/target-macros/controlling-debugging-information-format.rst: New file. * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst: New file. * doc/gccint/target-macros/cross-compilation-and-floating-point.rst: New file. * doc/gccint/target-macros/d-abi-parameters.rst: New file. * doc/gccint/target-macros/defining-coprocessor-specifics-for-mips-targets.rst: New file. * doc/gccint/target-macros/defining-data-structures-for-per-function-information.rst: New file. * doc/gccint/target-macros/defining-target-specific-uses-of-attribute.rst: New file. * doc/gccint/target-macros/defining-the-output-assembler-language.rst: New file. * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-alignment.rst: New file. * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst: New file. * doc/gccint/target-macros/defining-the-output-assembler-language/how-initialization-functions-are-handled.rst: New file. * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst: New file. * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst: New file. * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst: New file. * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst: New file. * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-dispatch-tables.rst: New file. * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-uninitialized-variables.rst: New file. * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst: New file. * doc/gccint/target-macros/describing-relative-costs-of-operations.rst: New file. * doc/gccint/target-macros/dividing-the-output-into-sections-texts-data.rst: New file. * doc/gccint/target-macros/emulating-tls.rst: New file. * doc/gccint/target-macros/implementing-the-varargs-macros.rst: New file. * doc/gccint/target-macros/implicit-calls-to-library-routines.rst: New file. * doc/gccint/target-macros/layout-of-source-language-data-types.rst: New file. * doc/gccint/target-macros/miscellaneous-parameters.rst: New file. * doc/gccint/target-macros/mode-switching-instructions.rst: New file. * doc/gccint/target-macros/parameters-for-precompiled-header-validity-checking.rst: New file. * doc/gccint/target-macros/position-independent-code.rst: New file. * doc/gccint/target-macros/register-classes.rst: New file. * doc/gccint/target-macros/register-usage.rst: New file. * doc/gccint/target-macros/run-time-target-specification.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/caller-saves-register-allocation.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/eliminating-frame-pointer-and-arg-pointer.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/exception-handling-support.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/function-entry-and-exit.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/generating-code-for-profiling.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-large-values-are-returned.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-scalar-function-values-are-returned.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/miscellaneous-register-hooks.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/permitting-tail-calls.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/shrink-wrapping-separate-components.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/specifying-how-stack-checking-is-done.rst: New file. * doc/gccint/target-macros/stack-layout-and-calling-conventions/stack-smashing-protection.rst: New file. * doc/gccint/target-macros/storage-layout.rst: New file. * doc/gccint/target-macros/support-for-nested-functions.rst: New file. * doc/gccint/target-macros/the-global-targetm-variable.rst: New file. * doc/gccint/target-makefile-fragments.rst: New file. * doc/gccint/testsuites.rst: New test. * doc/gccint/testsuites/ada-language-testsuites.rst: New test. * doc/gccint/testsuites/c-language-testsuites.rst: New test. * doc/gccint/testsuites/directives-used-within-dejagnu-tests.rst: New test. * doc/gccint/testsuites/directives-used-within-dejagnu-tests/commands-for-use-in-dg-final.rst: New test. * doc/gccint/testsuites/directives-used-within-dejagnu-tests/features-for-dg-add-options.rst: New test. * doc/gccint/testsuites/directives-used-within-dejagnu-tests/keywords-describing-target-attributes.rst: New test. * doc/gccint/testsuites/directives-used-within-dejagnu-tests/selecting-targets-to-which-a-test-applies.rst: New test. * doc/gccint/testsuites/directives-used-within-dejagnu-tests/syntax-and-descriptions-of-test-directives.rst: New test. * doc/gccint/testsuites/directives-used-within-dejagnu-tests/variants-of-dg-require-support.rst: New test. * doc/gccint/testsuites/idioms-used-in-testsuite-code.rst: New test. * doc/gccint/testsuites/support-for-testing-binary-compatibility.rst: New test. * doc/gccint/testsuites/support-for-testing-gcov.rst: New test. * doc/gccint/testsuites/support-for-testing-gimple-passes.rst: New test. * doc/gccint/testsuites/support-for-testing-link-time-optimizations.rst: New test. * doc/gccint/testsuites/support-for-testing-profile-directed-optimizations.rst: New test. * doc/gccint/testsuites/support-for-testing-rtl-passes.rst: New test. * doc/gccint/testsuites/support-for-torture-testing-using-multiple-options.rst: New test. * doc/gccint/the-gcc-low-level-runtime-library.rst: New file. * doc/gccint/the-gcc-low-level-runtime-library/language-independent-routines-for-exception-handling.rst: New file. * doc/gccint/the-gcc-low-level-runtime-library/miscellaneous-runtime-library-routines.rst: New file. * doc/gccint/the-gcc-low-level-runtime-library/routines-for-decimal-floating-point-emulation.rst: New file. * doc/gccint/the-gcc-low-level-runtime-library/routines-for-fixed-point-fractional-emulation.rst: New file. * doc/gccint/the-gcc-low-level-runtime-library/routines-for-floating-point-emulation.rst: New file. * doc/gccint/the-gcc-low-level-runtime-library/routines-for-integer-arithmetic.rst: New file. * doc/gccint/the-language.rst: New file. * doc/gccint/user-experience-guidelines.rst: New file. * doc/install/binaries.rst: New file. * doc/install/building.rst: New file. * doc/install/building/building-a-cross-compiler.rst: New file. * doc/install/building/building-a-native-compiler.rst: New file. * doc/install/building/building-in-parallel.rst: New file. * doc/install/building/building-the-ada-compiler.rst: New file. * doc/install/building/building-the-d-compiler.rst: New file. * doc/install/building/building-with-profile-feedback.rst: New file. * doc/install/conf.py: New file. * doc/install/configuration.rst: New file. * doc/install/copyright.rst: New file. * doc/install/downloading-gcc.rst: New file. * doc/install/final-installation.rst: New file. * doc/install/gnu-free-documentation-license.rst: New file. * doc/install/host-target-specific-installation-notes-for-gcc.rst: New file. * doc/install/how-can-you-run-the-testsuite-on-selected-tests.rst: New test. * doc/install/how-to-interpret-test-results.rst: New file. * doc/install/index.rst: New file. * doc/install/indices-and-tables.rst: New file. * doc/install/installing-gcc.rst: New file. * doc/install/passing-options-and-running-multiple-testsuites.rst: New test. * doc/install/prerequisites.rst: New file. * doc/install/submitting-test-results.rst: New file. * doc/install/testing.rst: New file. gcc/fortran/ChangeLog: * doc/gfc-internals/code-that-interacts-with-the-user.rst: New file. * doc/gfc-internals/command-line-options.rst: New file. * doc/gfc-internals/conf.py: New file. * doc/gfc-internals/copyright.rst: New file. * doc/gfc-internals/error-handling.rst: New file. * doc/gfc-internals/frontend-data-structures.rst: New file. * doc/gfc-internals/generating-the-intermediate-language-for-later-stages.rst: New file. * doc/gfc-internals/generating-the-intermediate-language-for-later-stages/accessing-declarations.rst: New file. * doc/gfc-internals/generating-the-intermediate-language-for-later-stages/basic-data-structures.rst: New file. * doc/gfc-internals/generating-the-intermediate-language-for-later-stages/converting-expressions-to-tree.rst: New file. * doc/gfc-internals/generating-the-intermediate-language-for-later-stages/translating-statements.rst: New file. * doc/gfc-internals/gfccode.rst: New file. * doc/gfc-internals/gfcexpr.rst: New file. * doc/gfc-internals/gnu-free-documentation-license.rst: New file. * doc/gfc-internals/index.rst: New file. * doc/gfc-internals/indices-and-tables.rst: New file. * doc/gfc-internals/internals-of-fortran-2003-oop-features.rst: New file. * doc/gfc-internals/introduction.rst: New file. * doc/gfc-internals/symbol-versioning.rst: New file. * doc/gfc-internals/the-libgfortran-runtime-library.rst: New file. * doc/gfc-internals/type-bound-operators.rst: New file. * doc/gfc-internals/type-bound-procedures.rst: New file. * doc/gfortran/about-gnu-fortran.rst: New file. * doc/gfortran/coarray-programming.rst: New file. * doc/gfortran/compiler-characteristics.rst: New file. * doc/gfortran/compiler-characteristics/asynchronous-i-o.rst: New file. * doc/gfortran/compiler-characteristics/data-consistency-and-durability.rst: New file. * doc/gfortran/compiler-characteristics/evaluation-of-logical-expressions.rst: New file. * doc/gfortran/compiler-characteristics/file-format-of-unformatted-sequential-files.rst: New file. * doc/gfortran/compiler-characteristics/file-operations-on-symbolic-links.rst: New file. * doc/gfortran/compiler-characteristics/files-opened-without-an-explicit-action=-specifier.rst: New file. * doc/gfortran/compiler-characteristics/internal-representation-of-logical-variables.rst: New file. * doc/gfortran/compiler-characteristics/kind-type-parameters.rst: New file. * doc/gfortran/compiler-characteristics/max-and-min-intrinsics-with-real-nan-arguments.rst: New file. * doc/gfortran/compiler-characteristics/thread-safety-of-the-runtime-library.rst: New file. * doc/gfortran/conf.py: New file. * doc/gfortran/contributing.rst: New file. * doc/gfortran/contributors-to-gnu-fortran.rst: New file. * doc/gfortran/copyright.rst: New file. * doc/gfortran/extensions-implemented-in-gnu-fortran.rst: New file. * doc/gfortran/extensions-not-implemented-in-gnu-fortran.rst: New file. * doc/gfortran/extensions.rst: New file. * doc/gfortran/function-abi-documentation.rst: New file. * doc/gfortran/funding.rst: New file. * doc/gfortran/general-public-license-3.rst: New file. * doc/gfortran/gnu-fortran-and-gcc.rst: New file. * doc/gfortran/gnu-fortran-command-options.rst: New file. * doc/gfortran/gnu-fortran-command-options/description.rst: New file. * doc/gfortran/gnu-fortran-command-options/enable-and-customize-preprocessing.rst: New file. * doc/gfortran/gnu-fortran-command-options/environment-variables-affecting-gfortran.rst: New file. * doc/gfortran/gnu-fortran-command-options/influencing-runtime-behavior.rst: New file. * doc/gfortran/gnu-fortran-command-options/influencing-the-linking-step.rst: New file. * doc/gfortran/gnu-fortran-command-options/option-summary.rst: New file. * doc/gfortran/gnu-fortran-command-options/options-controlling-fortran-dialect.rst: New file. * doc/gfortran/gnu-fortran-command-options/options-for-code-generation-conventions.rst: New file. * doc/gfortran/gnu-fortran-command-options/options-for-debugging-your-program-or-gnu-fortran.rst: New file. * doc/gfortran/gnu-fortran-command-options/options-for-directory-search.rst: New file. * doc/gfortran/gnu-fortran-command-options/options-for-interoperability-with-other-languages.rst: New file. * doc/gfortran/gnu-fortran-command-options/options-to-request-or-suppress-errors-and-warnings.rst: New file. * doc/gfortran/gnu-fortran-compiler-directives.rst: New file. * doc/gfortran/gnu-free-documentation-license.rst: New file. * doc/gfortran/index.rst: New file. * doc/gfortran/indices-and-tables.rst: New file. * doc/gfortran/interoperability-with-c.rst: New file. * doc/gfortran/intrinsic-modules.rst: New file. * doc/gfortran/intrinsic-modules/ieee-modules-ieeeexceptions-ieeearithmetic-and-ieeefeatures.rst: New file. * doc/gfortran/intrinsic-modules/isocbinding.rst: New file. * doc/gfortran/intrinsic-modules/isofortranenv.rst: New file. * doc/gfortran/intrinsic-modules/openacc-module-openacc.rst: New file. * doc/gfortran/intrinsic-modules/openmp-modules-omplib-and-omplibkinds.rst: New file. * doc/gfortran/intrinsic-procedures.rst: New file. * doc/gfortran/intrinsic-procedures/abort.rst: New file. * doc/gfortran/intrinsic-procedures/abs.rst: New file. * doc/gfortran/intrinsic-procedures/access.rst: New file. * doc/gfortran/intrinsic-procedures/achar.rst: New file. * doc/gfortran/intrinsic-procedures/acos.rst: New file. * doc/gfortran/intrinsic-procedures/acosd.rst: New file. * doc/gfortran/intrinsic-procedures/acosh.rst: New file. * doc/gfortran/intrinsic-procedures/adjustl.rst: New file. * doc/gfortran/intrinsic-procedures/adjustr.rst: New file. * doc/gfortran/intrinsic-procedures/aimag.rst: New file. * doc/gfortran/intrinsic-procedures/aint.rst: New file. * doc/gfortran/intrinsic-procedures/alarm.rst: New file. * doc/gfortran/intrinsic-procedures/all.rst: New file. * doc/gfortran/intrinsic-procedures/allocated.rst: New file. * doc/gfortran/intrinsic-procedures/and.rst: New file. * doc/gfortran/intrinsic-procedures/anint.rst: New file. * doc/gfortran/intrinsic-procedures/any.rst: New file. * doc/gfortran/intrinsic-procedures/asin.rst: New file. * doc/gfortran/intrinsic-procedures/asind.rst: New file. * doc/gfortran/intrinsic-procedures/asinh.rst: New file. * doc/gfortran/intrinsic-procedures/associated.rst: New file. * doc/gfortran/intrinsic-procedures/atan.rst: New file. * doc/gfortran/intrinsic-procedures/atan2.rst: New file. * doc/gfortran/intrinsic-procedures/atan2d.rst: New file. * doc/gfortran/intrinsic-procedures/atand.rst: New file. * doc/gfortran/intrinsic-procedures/atanh.rst: New file. * doc/gfortran/intrinsic-procedures/atomicadd.rst: New file. * doc/gfortran/intrinsic-procedures/atomicand.rst: New file. * doc/gfortran/intrinsic-procedures/atomiccas.rst: New file. * doc/gfortran/intrinsic-procedures/atomicdefine.rst: New file. * doc/gfortran/intrinsic-procedures/atomicfetchadd.rst: New file. * doc/gfortran/intrinsic-procedures/atomicfetchand.rst: New file. * doc/gfortran/intrinsic-procedures/atomicfetchor.rst: New file. * doc/gfortran/intrinsic-procedures/atomicfetchxor.rst: New file. * doc/gfortran/intrinsic-procedures/atomicor.rst: New file. * doc/gfortran/intrinsic-procedures/atomicref.rst: New file. * doc/gfortran/intrinsic-procedures/atomicxor.rst: New file. * doc/gfortran/intrinsic-procedures/backtrace.rst: New file. * doc/gfortran/intrinsic-procedures/besselj0.rst: New file. * doc/gfortran/intrinsic-procedures/besselj1.rst: New file. * doc/gfortran/intrinsic-procedures/besseljn.rst: New file. * doc/gfortran/intrinsic-procedures/bessely0.rst: New file. * doc/gfortran/intrinsic-procedures/bessely1.rst: New file. * doc/gfortran/intrinsic-procedures/besselyn.rst: New file. * doc/gfortran/intrinsic-procedures/bge.rst: New file. * doc/gfortran/intrinsic-procedures/bgt.rst: New file. * doc/gfortran/intrinsic-procedures/bitsize.rst: New file. * doc/gfortran/intrinsic-procedures/ble.rst: New file. * doc/gfortran/intrinsic-procedures/blt.rst: New file. * doc/gfortran/intrinsic-procedures/btest.rst: New file. * doc/gfortran/intrinsic-procedures/cassociated.rst: New file. * doc/gfortran/intrinsic-procedures/ceiling.rst: New file. * doc/gfortran/intrinsic-procedures/cfpointer.rst: New file. * doc/gfortran/intrinsic-procedures/cfprocpointer.rst: New file. * doc/gfortran/intrinsic-procedures/cfunloc.rst: New file. * doc/gfortran/intrinsic-procedures/char.rst: New file. * doc/gfortran/intrinsic-procedures/chdir.rst: New file. * doc/gfortran/intrinsic-procedures/chmod.rst: New file. * doc/gfortran/intrinsic-procedures/cloc.rst: New file. * doc/gfortran/intrinsic-procedures/cmplx.rst: New file. * doc/gfortran/intrinsic-procedures/cobroadcast.rst: New file. * doc/gfortran/intrinsic-procedures/comax.rst: New file. * doc/gfortran/intrinsic-procedures/comin.rst: New file. * doc/gfortran/intrinsic-procedures/commandargumentcount.rst: New file. * doc/gfortran/intrinsic-procedures/compileroptions.rst: New file. * doc/gfortran/intrinsic-procedures/compilerversion.rst: New file. * doc/gfortran/intrinsic-procedures/complex.rst: New file. * doc/gfortran/intrinsic-procedures/conjg.rst: New file. * doc/gfortran/intrinsic-procedures/coreduce.rst: New file. * doc/gfortran/intrinsic-procedures/cos.rst: New file. * doc/gfortran/intrinsic-procedures/cosd.rst: New file. * doc/gfortran/intrinsic-procedures/cosh.rst: New file. * doc/gfortran/intrinsic-procedures/cosum.rst: New file. * doc/gfortran/intrinsic-procedures/cotan.rst: New file. * doc/gfortran/intrinsic-procedures/cotand.rst: New file. * doc/gfortran/intrinsic-procedures/count.rst: New file. * doc/gfortran/intrinsic-procedures/cputime.rst: New file. * doc/gfortran/intrinsic-procedures/cshift.rst: New file. * doc/gfortran/intrinsic-procedures/csizeof.rst: New file. * doc/gfortran/intrinsic-procedures/ctime.rst: New file. * doc/gfortran/intrinsic-procedures/dateandtime.rst: New file. * doc/gfortran/intrinsic-procedures/dble.rst: New file. * doc/gfortran/intrinsic-procedures/dcmplx.rst: New file. * doc/gfortran/intrinsic-procedures/digits.rst: New file. * doc/gfortran/intrinsic-procedures/dim.rst: New file. * doc/gfortran/intrinsic-procedures/dotproduct.rst: New file. * doc/gfortran/intrinsic-procedures/dprod.rst: New file. * doc/gfortran/intrinsic-procedures/dreal.rst: New file. * doc/gfortran/intrinsic-procedures/dshiftl.rst: New file. * doc/gfortran/intrinsic-procedures/dshiftr.rst: New file. * doc/gfortran/intrinsic-procedures/dtime.rst: New file. * doc/gfortran/intrinsic-procedures/eoshift.rst: New file. * doc/gfortran/intrinsic-procedures/epsilon.rst: New file. * doc/gfortran/intrinsic-procedures/erf.rst: New file. * doc/gfortran/intrinsic-procedures/erfc.rst: New file. * doc/gfortran/intrinsic-procedures/erfcscaled.rst: New file. * doc/gfortran/intrinsic-procedures/etime.rst: New file. * doc/gfortran/intrinsic-procedures/eventquery.rst: New file. * doc/gfortran/intrinsic-procedures/executecommandline.rst: New file. * doc/gfortran/intrinsic-procedures/exit.rst: New file. * doc/gfortran/intrinsic-procedures/exp.rst: New file. * doc/gfortran/intrinsic-procedures/exponent.rst: New file. * doc/gfortran/intrinsic-procedures/extendstypeof.rst: New file. * doc/gfortran/intrinsic-procedures/fdate.rst: New file. * doc/gfortran/intrinsic-procedures/fget.rst: New file. * doc/gfortran/intrinsic-procedures/fgetc.rst: New file. * doc/gfortran/intrinsic-procedures/findloc.rst: New file. * doc/gfortran/intrinsic-procedures/floor.rst: New file. * doc/gfortran/intrinsic-procedures/flush.rst: New file. * doc/gfortran/intrinsic-procedures/fnum.rst: New file. * doc/gfortran/intrinsic-procedures/fput.rst: New file. * doc/gfortran/intrinsic-procedures/fputc.rst: New file. * doc/gfortran/intrinsic-procedures/fraction.rst: New file. * doc/gfortran/intrinsic-procedures/free.rst: New file. * doc/gfortran/intrinsic-procedures/fseek.rst: New file. * doc/gfortran/intrinsic-procedures/fstat.rst: New file. * doc/gfortran/intrinsic-procedures/ftell.rst: New file. * doc/gfortran/intrinsic-procedures/gamma.rst: New file. * doc/gfortran/intrinsic-procedures/gerror.rst: New file. * doc/gfortran/intrinsic-procedures/getarg.rst: New file. * doc/gfortran/intrinsic-procedures/getcommand.rst: New file. * doc/gfortran/intrinsic-procedures/getcommandargument.rst: New file. * doc/gfortran/intrinsic-procedures/getcwd.rst: New file. * doc/gfortran/intrinsic-procedures/getenv.rst: New file. * doc/gfortran/intrinsic-procedures/getenvironmentvariable.rst: New file. * doc/gfortran/intrinsic-procedures/getgid.rst: New file. * doc/gfortran/intrinsic-procedures/getlog.rst: New file. * doc/gfortran/intrinsic-procedures/getpid.rst: New file. * doc/gfortran/intrinsic-procedures/getuid.rst: New file. * doc/gfortran/intrinsic-procedures/gmtime.rst: New file. * doc/gfortran/intrinsic-procedures/hostnm.rst: New file. * doc/gfortran/intrinsic-procedures/huge.rst: New file. * doc/gfortran/intrinsic-procedures/hypot.rst: New file. * doc/gfortran/intrinsic-procedures/iachar.rst: New file. * doc/gfortran/intrinsic-procedures/iall.rst: New file. * doc/gfortran/intrinsic-procedures/iand.rst: New file. * doc/gfortran/intrinsic-procedures/iany.rst: New file. * doc/gfortran/intrinsic-procedures/iargc.rst: New file. * doc/gfortran/intrinsic-procedures/ibclr.rst: New file. * doc/gfortran/intrinsic-procedures/ibits.rst: New file. * doc/gfortran/intrinsic-procedures/ibset.rst: New file. * doc/gfortran/intrinsic-procedures/ichar.rst: New file. * doc/gfortran/intrinsic-procedures/idate.rst: New file. * doc/gfortran/intrinsic-procedures/ieor.rst: New file. * doc/gfortran/intrinsic-procedures/ierrno.rst: New file. * doc/gfortran/intrinsic-procedures/imageindex.rst: New file. * doc/gfortran/intrinsic-procedures/index.rst: New file. * doc/gfortran/intrinsic-procedures/int.rst: New file. * doc/gfortran/intrinsic-procedures/int2.rst: New file. * doc/gfortran/intrinsic-procedures/int8.rst: New file. * doc/gfortran/intrinsic-procedures/introduction-to-intrinsic-procedures.rst: New file. * doc/gfortran/intrinsic-procedures/ior.rst: New file. * doc/gfortran/intrinsic-procedures/iparity.rst: New file. * doc/gfortran/intrinsic-procedures/irand.rst: New file. * doc/gfortran/intrinsic-procedures/isatty.rst: New file. * doc/gfortran/intrinsic-procedures/iscontiguous.rst: New file. * doc/gfortran/intrinsic-procedures/ishft.rst: New file. * doc/gfortran/intrinsic-procedures/ishftc.rst: New file. * doc/gfortran/intrinsic-procedures/isiostatend.rst: New file. * doc/gfortran/intrinsic-procedures/isiostateor.rst: New file. * doc/gfortran/intrinsic-procedures/isnan.rst: New file. * doc/gfortran/intrinsic-procedures/itime.rst: New file. * doc/gfortran/intrinsic-procedures/kill.rst: New file. * doc/gfortran/intrinsic-procedures/kind.rst: New file. * doc/gfortran/intrinsic-procedures/lbound.rst: New file. * doc/gfortran/intrinsic-procedures/lcobound.rst: New file. * doc/gfortran/intrinsic-procedures/leadz.rst: New file. * doc/gfortran/intrinsic-procedures/len.rst: New file. * doc/gfortran/intrinsic-procedures/lentrim.rst: New file. * doc/gfortran/intrinsic-procedures/lge.rst: New file. * doc/gfortran/intrinsic-procedures/lgt.rst: New file. * doc/gfortran/intrinsic-procedures/link.rst: New file. * doc/gfortran/intrinsic-procedures/lle.rst: New file. * doc/gfortran/intrinsic-procedures/llt.rst: New file. * doc/gfortran/intrinsic-procedures/lnblnk.rst: New file. * doc/gfortran/intrinsic-procedures/loc.rst: New file. * doc/gfortran/intrinsic-procedures/log.rst: New file. * doc/gfortran/intrinsic-procedures/log10.rst: New file. * doc/gfortran/intrinsic-procedures/loggamma.rst: New file. * doc/gfortran/intrinsic-procedures/logical.rst: New file. * doc/gfortran/intrinsic-procedures/lshift.rst: New file. * doc/gfortran/intrinsic-procedures/lstat.rst: New file. * doc/gfortran/intrinsic-procedures/ltime.rst: New file. * doc/gfortran/intrinsic-procedures/malloc.rst: New file. * doc/gfortran/intrinsic-procedures/maskl.rst: New file. * doc/gfortran/intrinsic-procedures/maskr.rst: New file. * doc/gfortran/intrinsic-procedures/matmul.rst: New file. * doc/gfortran/intrinsic-procedures/max.rst: New file. * doc/gfortran/intrinsic-procedures/maxexponent.rst: New file. * doc/gfortran/intrinsic-procedures/maxloc.rst: New file. * doc/gfortran/intrinsic-procedures/maxval.rst: New file. * doc/gfortran/intrinsic-procedures/mclock.rst: New file. * doc/gfortran/intrinsic-procedures/mclock8.rst: New file. * doc/gfortran/intrinsic-procedures/merge.rst: New file. * doc/gfortran/intrinsic-procedures/mergebits.rst: New file. * doc/gfortran/intrinsic-procedures/min.rst: New file. * doc/gfortran/intrinsic-procedures/minexponent.rst: New file. * doc/gfortran/intrinsic-procedures/minloc.rst: New file. * doc/gfortran/intrinsic-procedures/minval.rst: New file. * doc/gfortran/intrinsic-procedures/mod.rst: New file. * doc/gfortran/intrinsic-procedures/modulo.rst: New file. * doc/gfortran/intrinsic-procedures/movealloc.rst: New file. * doc/gfortran/intrinsic-procedures/mvbits.rst: New file. * doc/gfortran/intrinsic-procedures/nearest.rst: New file. * doc/gfortran/intrinsic-procedures/newline.rst: New file. * doc/gfortran/intrinsic-procedures/nint.rst: New file. * doc/gfortran/intrinsic-procedures/norm2.rst: New file. * doc/gfortran/intrinsic-procedures/not.rst: New file. * doc/gfortran/intrinsic-procedures/null.rst: New file. * doc/gfortran/intrinsic-procedures/numimages.rst: New file. * doc/gfortran/intrinsic-procedures/or.rst: New file. * doc/gfortran/intrinsic-procedures/pack.rst: New file. * doc/gfortran/intrinsic-procedures/parity.rst: New file. * doc/gfortran/intrinsic-procedures/perror.rst: New file. * doc/gfortran/intrinsic-procedures/popcnt.rst: New file. * doc/gfortran/intrinsic-procedures/poppar.rst: New file. * doc/gfortran/intrinsic-procedures/precision.rst: New file. * doc/gfortran/intrinsic-procedures/present.rst: New file. * doc/gfortran/intrinsic-procedures/product.rst: New file. * doc/gfortran/intrinsic-procedures/radix.rst: New file. * doc/gfortran/intrinsic-procedures/ran.rst: New file. * doc/gfortran/intrinsic-procedures/rand.rst: New file. * doc/gfortran/intrinsic-procedures/randominit.rst: New file. * doc/gfortran/intrinsic-procedures/randomnumber.rst: New file. * doc/gfortran/intrinsic-procedures/randomseed.rst: New file. * doc/gfortran/intrinsic-procedures/range.rst: New file. * doc/gfortran/intrinsic-procedures/rank.rst: New file. * doc/gfortran/intrinsic-procedures/real.rst: New file. * doc/gfortran/intrinsic-procedures/rename.rst: New file. * doc/gfortran/intrinsic-procedures/repeat.rst: New file. * doc/gfortran/intrinsic-procedures/reshape.rst: New file. * doc/gfortran/intrinsic-procedures/rrspacing.rst: New file. * doc/gfortran/intrinsic-procedures/rshift.rst: New file. * doc/gfortran/intrinsic-procedures/sametypeas.rst: New file. * doc/gfortran/intrinsic-procedures/scale.rst: New file. * doc/gfortran/intrinsic-procedures/scan.rst: New file. * doc/gfortran/intrinsic-procedures/secnds.rst: New file. * doc/gfortran/intrinsic-procedures/second.rst: New file. * doc/gfortran/intrinsic-procedures/selectedcharkind.rst: New file. * doc/gfortran/intrinsic-procedures/selectedintkind.rst: New file. * doc/gfortran/intrinsic-procedures/selectedrealkind.rst: New file. * doc/gfortran/intrinsic-procedures/setexponent.rst: New file. * doc/gfortran/intrinsic-procedures/shape.rst: New file. * doc/gfortran/intrinsic-procedures/shifta.rst: New file. * doc/gfortran/intrinsic-procedures/shiftl.rst: New file. * doc/gfortran/intrinsic-procedures/shiftr.rst: New file. * doc/gfortran/intrinsic-procedures/sign.rst: New file. * doc/gfortran/intrinsic-procedures/signal.rst: New file. * doc/gfortran/intrinsic-procedures/sin.rst: New file. * doc/gfortran/intrinsic-procedures/sind.rst: New file. * doc/gfortran/intrinsic-procedures/sinh.rst: New file. * doc/gfortran/intrinsic-procedures/size.rst: New file. * doc/gfortran/intrinsic-procedures/sizeof.rst: New file. * doc/gfortran/intrinsic-procedures/sleep.rst: New file. * doc/gfortran/intrinsic-procedures/spacing.rst: New file. * doc/gfortran/intrinsic-procedures/spread.rst: New file. * doc/gfortran/intrinsic-procedures/sqrt.rst: New file. * doc/gfortran/intrinsic-procedures/srand.rst: New file. * doc/gfortran/intrinsic-procedures/stat.rst: New file. * doc/gfortran/intrinsic-procedures/storagesize.rst: New file. * doc/gfortran/intrinsic-procedures/sum.rst: New file. * doc/gfortran/intrinsic-procedures/symlnk.rst: New file. * doc/gfortran/intrinsic-procedures/system.rst: New file. * doc/gfortran/intrinsic-procedures/systemclock.rst: New file. * doc/gfortran/intrinsic-procedures/tan.rst: New file. * doc/gfortran/intrinsic-procedures/tand.rst: New file. * doc/gfortran/intrinsic-procedures/tanh.rst: New file. * doc/gfortran/intrinsic-procedures/thisimage.rst: New file. * doc/gfortran/intrinsic-procedures/time.rst: New file. * doc/gfortran/intrinsic-procedures/time8.rst: New file. * doc/gfortran/intrinsic-procedures/tiny.rst: New file. * doc/gfortran/intrinsic-procedures/trailz.rst: New file. * doc/gfortran/intrinsic-procedures/transfer.rst: New file. * doc/gfortran/intrinsic-procedures/transpose.rst: New file. * doc/gfortran/intrinsic-procedures/trim.rst: New file. * doc/gfortran/intrinsic-procedures/ttynam.rst: New file. * doc/gfortran/intrinsic-procedures/ubound.rst: New file. * doc/gfortran/intrinsic-procedures/ucobound.rst: New file. * doc/gfortran/intrinsic-procedures/umask.rst: New file. * doc/gfortran/intrinsic-procedures/unlink.rst: New file. * doc/gfortran/intrinsic-procedures/unpack.rst: New file. * doc/gfortran/intrinsic-procedures/verify.rst: New file. * doc/gfortran/intrinsic-procedures/xor.rst: New file. * doc/gfortran/introduction.rst: New file. * doc/gfortran/mixed-language-programming.rst: New file. * doc/gfortran/naming-and-argument-passing-conventions.rst: New file. * doc/gfortran/non-fortran-main-program.rst: New file. * doc/gfortran/projects.rst: New file. * doc/gfortran/runtime.rst: New file. * doc/gfortran/runtime/gfortranconvertunit.rst: New file. * doc/gfortran/runtime/gfortranerrorbacktrace.rst: New file. * doc/gfortran/runtime/gfortranformattedbuffersize.rst: New file. * doc/gfortran/runtime/gfortranlistseparator.rst: New file. * doc/gfortran/runtime/gfortranoptionalplus.rst: New file. * doc/gfortran/runtime/gfortranshowlocus.rst: New file. * doc/gfortran/runtime/gfortranstderrunit.rst: New file. * doc/gfortran/runtime/gfortranstdinunit.rst: New file. * doc/gfortran/runtime/gfortranstdoutunit.rst: New file. * doc/gfortran/runtime/gfortranunbufferedall.rst: New file. * doc/gfortran/runtime/gfortranunbufferedpreconnected.rst: New file. * doc/gfortran/runtime/gfortranunformattedbuffersize.rst: New file. * doc/gfortran/runtime/tmpdir.rst: New file. * doc/gfortran/standards.rst: New file. * doc/gfortran/type-and-enum-abi-documentation.rst: New file. gcc/go/ChangeLog: * doc/c-interoperability.rst: New file. * doc/c-type-interoperability.rst: New file. * doc/compiler-directives.rst: New file. * doc/conf.py: New file. * doc/copyright.rst: New file. * doc/function-names.rst: New file. * doc/general-public-license-3.rst: New file. * doc/gnu-free-documentation-license.rst: New file. * doc/import-and-export.rst: New file. * doc/index.rst: New file. * doc/indices-and-tables.rst: New file. * doc/introduction.rst: New file. * doc/invoking-gccgo.rst: New file. libgomp/ChangeLog: * doc/amd-radeon-gcn.rst: New file. * doc/conf.py: New file. * doc/copyright.rst: New file. * doc/cuda-streams-usage.rst: New file. * doc/enabling-openacc.rst: New file. * doc/enabling-openmp.rst: New file. * doc/first-invocation-nvidia-cublas-library-api.rst: New file. * doc/first-invocation-openacc-library-api.rst: New file. * doc/funding.rst: New file. * doc/general-public-license-3.rst: New file. * doc/gnu-free-documentation-license.rst: New file. * doc/implementation-status-and-implementation-defined-behavior.rst: New file. * doc/index.rst: New file. * doc/indices-and-tables.rst: New file. * doc/introduction.rst: New file. * doc/memory-allocation-with-libmemkind.rst: New file. * doc/nvptx.rst: New file. * doc/offload-target-specifics.rst: New file. * doc/openacc-environment-variables.rst: New file. * doc/openacc-environment-variables/accdevicenum.rst: New file. * doc/openacc-environment-variables/accdevicetype.rst: New file. * doc/openacc-environment-variables/accproflib.rst: New file. * doc/openacc-environment-variables/gccaccnotify.rst: New file. * doc/openacc-introduction.rst: New file. * doc/openacc-library-and-environment-variables.rst: New file. * doc/openacc-library-interoperability.rst: New file. * doc/openacc-profiling-interface.rst: New file. * doc/openacc-runtime-library-routines.rst: New file. * doc/openacc-runtime-library-routines/accasynctest.rst: New file. * doc/openacc-runtime-library-routines/accasynctestall.rst: New file. * doc/openacc-runtime-library-routines/accattach.rst: New file. * doc/openacc-runtime-library-routines/acccopyin.rst: New file. * doc/openacc-runtime-library-routines/acccopyout.rst: New file. * doc/openacc-runtime-library-routines/acccreate.rst: New file. * doc/openacc-runtime-library-routines/accdelete.rst: New file. * doc/openacc-runtime-library-routines/accdetach.rst: New file. * doc/openacc-runtime-library-routines/accdeviceptr.rst: New file. * doc/openacc-runtime-library-routines/accfree.rst: New file. * doc/openacc-runtime-library-routines/accgetcudastream.rst: New file. * doc/openacc-runtime-library-routines/accgetcurrentcudacontext.rst: New file. * doc/openacc-runtime-library-routines/accgetcurrentcudadevice.rst: New file. * doc/openacc-runtime-library-routines/accgetdevicenum.rst: New file. * doc/openacc-runtime-library-routines/accgetdevicetype.rst: New file. * doc/openacc-runtime-library-routines/accgetnumdevices.rst: New file. * doc/openacc-runtime-library-routines/accgetproperty.rst: New file. * doc/openacc-runtime-library-routines/acchostptr.rst: New file. * doc/openacc-runtime-library-routines/accinit.rst: New file. * doc/openacc-runtime-library-routines/accispresent.rst: New file. * doc/openacc-runtime-library-routines/accmalloc.rst: New file. * doc/openacc-runtime-library-routines/accmapdata.rst: New file. * doc/openacc-runtime-library-routines/accmemcpyfromdevice.rst: New file. * doc/openacc-runtime-library-routines/accmemcpytodevice.rst: New file. * doc/openacc-runtime-library-routines/accondevice.rst: New file. * doc/openacc-runtime-library-routines/accpresentorcopyin.rst: New file. * doc/openacc-runtime-library-routines/accpresentorcreate.rst: New file. * doc/openacc-runtime-library-routines/accproflookup.rst: New file. * doc/openacc-runtime-library-routines/accprofregister.rst: New file. * doc/openacc-runtime-library-routines/accprofunregister.rst: New file. * doc/openacc-runtime-library-routines/accregisterlibrary.rst: New file. * doc/openacc-runtime-library-routines/accsetcudastream.rst: New file. * doc/openacc-runtime-library-routines/accsetdevicenum.rst: New file. * doc/openacc-runtime-library-routines/accsetdevicetype.rst: New file. * doc/openacc-runtime-library-routines/accshutdown.rst: New file. * doc/openacc-runtime-library-routines/accunmapdata.rst: New file. * doc/openacc-runtime-library-routines/accupdatedevice.rst: New file. * doc/openacc-runtime-library-routines/accupdateself.rst: New file. * doc/openacc-runtime-library-routines/accwait.rst: New file. * doc/openacc-runtime-library-routines/accwaitall.rst: New file. * doc/openacc-runtime-library-routines/accwaitallasync.rst: New file. * doc/openacc-runtime-library-routines/accwaitasync.rst: New file. * doc/openmp-context-selectors.rst: New file. * doc/openmp-environment-variables.rst: New file. * doc/openmp-environment-variables/gompcpuaffinity.rst: New file. * doc/openmp-environment-variables/gompdebug.rst: New file. * doc/openmp-environment-variables/gomprtemsthreadpools.rst: New file. * doc/openmp-environment-variables/gompspincount.rst: New file. * doc/openmp-environment-variables/gompstacksize.rst: New file. * doc/openmp-environment-variables/ompcancellation.rst: New file. * doc/openmp-environment-variables/ompdefaultdevice.rst: New file. * doc/openmp-environment-variables/ompdisplayenv.rst: New file. * doc/openmp-environment-variables/ompdynamic.rst: New file. * doc/openmp-environment-variables/ompmaxactivelevels.rst: New file. * doc/openmp-environment-variables/ompmaxtaskpriority.rst: New file. * doc/openmp-environment-variables/ompnested.rst: New file. * doc/openmp-environment-variables/ompnumteams.rst: New file. * doc/openmp-environment-variables/ompnumthreads.rst: New file. * doc/openmp-environment-variables/ompplaces.rst: New file. * doc/openmp-environment-variables/ompprocbind.rst: New file. * doc/openmp-environment-variables/ompschedule.rst: New file. * doc/openmp-environment-variables/ompstacksize.rst: New file. * doc/openmp-environment-variables/omptargetoffload.rst: New file. * doc/openmp-environment-variables/ompteamsthreadlimit.rst: New file. * doc/openmp-environment-variables/ompthreadlimit.rst: New file. * doc/openmp-environment-variables/ompwaitpolicy.rst: New file. * doc/openmp-implementation-specifics.rst: New file. * doc/openmp-implementation-status.rst: New file. * doc/openmp-implementation-status/openmp-45.rst: New file. * doc/openmp-implementation-status/openmp-50.rst: New file. * doc/openmp-implementation-status/openmp-51.rst: New file. * doc/openmp-implementation-status/openmp-52.rst: New file. * doc/openmp-runtime-library-routines.rst: New file. * doc/openmp-runtime-library-routines/ompdestroylock.rst: New file. * doc/openmp-runtime-library-routines/ompdestroynestlock.rst: New file. * doc/openmp-runtime-library-routines/ompfulfillevent.rst: New file. * doc/openmp-runtime-library-routines/ompgetactivelevel.rst: New file. * doc/openmp-runtime-library-routines/ompgetancestorthreadnum.rst: New file. * doc/openmp-runtime-library-routines/ompgetcancellation.rst: New file. * doc/openmp-runtime-library-routines/ompgetdefaultdevice.rst: New file. * doc/openmp-runtime-library-routines/ompgetdevicenum.rst: New file. * doc/openmp-runtime-library-routines/ompgetdynamic.rst: New file. * doc/openmp-runtime-library-routines/ompgetinitialdevice.rst: New file. * doc/openmp-runtime-library-routines/ompgetlevel.rst: New file. * doc/openmp-runtime-library-routines/ompgetmaxactivelevels.rst: New file. * doc/openmp-runtime-library-routines/ompgetmaxtaskpriority.rst: New file. * doc/openmp-runtime-library-routines/ompgetmaxteams.rst: New file. * doc/openmp-runtime-library-routines/ompgetmaxthreads.rst: New file. * doc/openmp-runtime-library-routines/ompgetnested.rst: New file. * doc/openmp-runtime-library-routines/ompgetnumdevices.rst: New file. * doc/openmp-runtime-library-routines/ompgetnumprocs.rst: New file. * doc/openmp-runtime-library-routines/ompgetnumteams.rst: New file. * doc/openmp-runtime-library-routines/ompgetnumthreads.rst: New file. * doc/openmp-runtime-library-routines/ompgetprocbind.rst: New file. * doc/openmp-runtime-library-routines/ompgetschedule.rst: New file. * doc/openmp-runtime-library-routines/ompgetsupportedactivelevels.rst: New file. * doc/openmp-runtime-library-routines/ompgetteamnum.rst: New file. * doc/openmp-runtime-library-routines/ompgetteamsize.rst: New file. * doc/openmp-runtime-library-routines/ompgetteamsthreadlimit.rst: New file. * doc/openmp-runtime-library-routines/ompgetthreadlimit.rst: New file. * doc/openmp-runtime-library-routines/ompgetthreadnum.rst: New file. * doc/openmp-runtime-library-routines/ompgetwtick.rst: New file. * doc/openmp-runtime-library-routines/ompgetwtime.rst: New file. * doc/openmp-runtime-library-routines/ompinfinal.rst: New file. * doc/openmp-runtime-library-routines/ompinitlock.rst: New file. * doc/openmp-runtime-library-routines/ompinitnestlock.rst: New file. * doc/openmp-runtime-library-routines/ompinparallel.rst: New file. * doc/openmp-runtime-library-routines/ompisinitialdevice.rst: New file. * doc/openmp-runtime-library-routines/ompsetdefaultdevice.rst: New file. * doc/openmp-runtime-library-routines/ompsetdynamic.rst: New file. * doc/openmp-runtime-library-routines/ompsetlock.rst: New file. * doc/openmp-runtime-library-routines/ompsetmaxactivelevels.rst: New file. * doc/openmp-runtime-library-routines/ompsetnested.rst: New file. * doc/openmp-runtime-library-routines/ompsetnestlock.rst: New file. * doc/openmp-runtime-library-routines/ompsetnumteams.rst: New file. * doc/openmp-runtime-library-routines/ompsetnumthreads.rst: New file. * doc/openmp-runtime-library-routines/ompsetschedule.rst: New file. * doc/openmp-runtime-library-routines/ompsetteamsthreadlimit.rst: New file. * doc/openmp-runtime-library-routines/omptestlock.rst: New file. * doc/openmp-runtime-library-routines/omptestnestlock.rst: New file. * doc/openmp-runtime-library-routines/ompunsetlock.rst: New file. * doc/openmp-runtime-library-routines/ompunsetnestlock.rst: New file. * doc/reporting-bugs.rst: New file. * doc/the-libgomp-abi.rst: New file. * doc/the-libgomp-abi/implementing-atomic-construct.rst: New file. * doc/the-libgomp-abi/implementing-barrier-construct.rst: New file. * doc/the-libgomp-abi/implementing-critical-construct.rst: New file. * doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst: New file. * doc/the-libgomp-abi/implementing-flush-construct.rst: New file. * doc/the-libgomp-abi/implementing-for-construct.rst: New file. * doc/the-libgomp-abi/implementing-master-construct.rst: New file. * doc/the-libgomp-abi/implementing-openaccs-parallel-construct.rst: New file. * doc/the-libgomp-abi/implementing-ordered-construct.rst: New file. * doc/the-libgomp-abi/implementing-parallel-construct.rst: New file. * doc/the-libgomp-abi/implementing-private-clause.rst: New file. * doc/the-libgomp-abi/implementing-reduction-clause.rst: New file. * doc/the-libgomp-abi/implementing-sections-construct.rst: New file. * doc/the-libgomp-abi/implementing-single-construct.rst: New file. * doc/the-libgomp-abi/implementing-threadprivate-construct.rst: New file. libiberty/ChangeLog: * doc/bsd.rst: New file. * doc/conf.py: New file. * doc/copyright.rst: New file. * doc/extensions.rst: New file. * doc/function-variable-and-macro-listing.rst: New file. * doc/index.rst: New file. * doc/indices-and-tables.rst: New file. * doc/introduction.rst: New file. * doc/lesser-general-public-license-2.1.rst: New file. * doc/overview.rst: New file. * doc/replacement-functions.rst: New file. * doc/supplemental-functions.rst: New file. * doc/using.rst: New file. libitm/ChangeLog: * doc/c-c++-language-constructs-for-tm.rst: New file. * doc/conf.py: New file. * doc/copyright.rst: New file. * doc/enabling-libitm.rst: New file. * doc/gnu-free-documentation-license.rst: New file. * doc/index.rst: New file. * doc/indices-and-tables.rst: New file. * doc/internals.rst: New file. * doc/locking-conventions.rst: New file. * doc/nesting-flat-vs-closed.rst: New file. * doc/the-libitm-abi.rst: New file. * doc/the-libitm-abi/function-list.rst: New file. * doc/the-libitm-abi/future-enhancements-to-the-abi.rst: New file. * doc/the-libitm-abi/library-design-principles.rst: New file. * doc/the-libitm-abi/memory-model.rst: New file. * doc/the-libitm-abi/non-objectives.rst: New file. * doc/the-libitm-abi/objectives.rst: New file. * doc/the-libitm-abi/sample-code.rst: New file. * doc/the-libitm-abi/types-and-macros-list.rst: New file. * doc/tm-methods-and-method-groups.rst: New file. libquadmath/ChangeLog: * doc/conf.py: New file. * doc/copyright.rst: New file. * doc/gnu-free-documentation-license.rst: New file. * doc/i-o-library-routines.rst: New file. * doc/index.rst: New file. * doc/indices-and-tables.rst: New file. * doc/introduction.rst: New file. * doc/math-library-routines.rst: New file. * doc/quadmathsnprintf.rst: New file. * doc/reporting-bugs.rst: New file. * doc/strtoflt128.rst: New file. * doc/typedef-and-constants.rst: New file.
Diffstat (limited to 'libgomp')
-rw-r--r--libgomp/doc/amd-radeon-gcn.rst57
-rw-r--r--libgomp/doc/conf.py24
-rw-r--r--libgomp/doc/copyright.rst25
-rw-r--r--libgomp/doc/cuda-streams-usage.rst50
-rw-r--r--libgomp/doc/enabling-openacc.rst24
-rw-r--r--libgomp/doc/enabling-openmp.rst22
-rw-r--r--libgomp/doc/first-invocation-nvidia-cublas-library-api.rst52
-rw-r--r--libgomp/doc/first-invocation-openacc-library-api.rst74
-rw-r--r--libgomp/doc/funding.rst6
-rw-r--r--libgomp/doc/general-public-license-3.rst6
-rw-r--r--libgomp/doc/gnu-free-documentation-license.rst6
-rw-r--r--libgomp/doc/implementation-status-and-implementation-defined-behavior.rst281
-rw-r--r--libgomp/doc/index.rst35
-rw-r--r--libgomp/doc/indices-and-tables.rst1
-rw-r--r--libgomp/doc/introduction.rst25
-rw-r--r--libgomp/doc/memory-allocation-with-libmemkind.rst23
-rw-r--r--libgomp/doc/nvptx.rst60
-rw-r--r--libgomp/doc/offload-target-specifics.rst17
-rw-r--r--libgomp/doc/openacc-environment-variables.rst23
-rw-r--r--libgomp/doc/openacc-environment-variables/accdevicenum.rst13
-rw-r--r--libgomp/doc/openacc-environment-variables/accdevicetype.rst13
-rw-r--r--libgomp/doc/openacc-environment-variables/accproflib.rst16
-rw-r--r--libgomp/doc/openacc-environment-variables/gccaccnotify.rst12
-rw-r--r--libgomp/doc/openacc-introduction.rst21
-rw-r--r--libgomp/doc/openacc-library-and-environment-variables.rst30
-rw-r--r--libgomp/doc/openacc-library-interoperability.rst17
-rw-r--r--libgomp/doc/openacc-profiling-interface.rst14
-rw-r--r--libgomp/doc/openacc-runtime-library-routines.rst74
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accasynctest.rst36
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accasynctestall.rst34
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accattach.rst25
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/acccopyin.rst58
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/acccopyout.rst85
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/acccreate.rst58
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accdelete.rst85
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accdetach.rst29
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accdeviceptr.rst23
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accfree.rst22
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accgetcudastream.rst23
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accgetcurrentcudacontext.rst23
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accgetcurrentcudadevice.rst23
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accgetdevicenum.rst34
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accgetdevicetype.rst36
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accgetnumdevices.rst31
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accgetproperty.rst60
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/acchostptr.rst23
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accinit.rst31
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accispresent.rst50
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accmalloc.rst23
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accmapdata.rst24
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accmemcpyfromdevice.rst24
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accmemcpytodevice.rst24
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accondevice.rst37
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accpresentorcopyin.rst58
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accpresentorcreate.rst58
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accproflookup.rst25
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accprofregister.rst25
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accprofunregister.rst25
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accregisterlibrary.rst25
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accsetcudastream.rst28
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accsetdevicenum.rst34
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accsetdevicetype.rst31
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accshutdown.rst31
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accunmapdata.rst23
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accupdatedevice.rst58
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accupdateself.rst58
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accwait.rst37
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accwaitall.rst32
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accwaitallasync.rst32
-rw-r--r--libgomp/doc/openacc-runtime-library-routines/accwaitasync.rst31
-rw-r--r--libgomp/doc/openmp-context-selectors.rst28
-rw-r--r--libgomp/doc/openmp-environment-variables.rst39
-rw-r--r--libgomp/doc/openmp-environment-variables/gompcpuaffinity.rst37
-rw-r--r--libgomp/doc/openmp-environment-variables/gompdebug.rst18
-rw-r--r--libgomp/doc/openmp-environment-variables/gomprtemsthreadpools.rst46
-rw-r--r--libgomp/doc/openmp-environment-variables/gompspincount.rst30
-rw-r--r--libgomp/doc/openmp-environment-variables/gompstacksize.rst25
-rw-r--r--libgomp/doc/openmp-environment-variables/ompcancellation.rst21
-rw-r--r--libgomp/doc/openmp-environment-variables/ompdefaultdevice.rst24
-rw-r--r--libgomp/doc/openmp-environment-variables/ompdisplayenv.rst21
-rw-r--r--libgomp/doc/openmp-environment-variables/ompdynamic.rst23
-rw-r--r--libgomp/doc/openmp-environment-variables/ompmaxactivelevels.rst26
-rw-r--r--libgomp/doc/openmp-environment-variables/ompmaxtaskpriority.rst25
-rw-r--r--libgomp/doc/openmp-environment-variables/ompnested.rst28
-rw-r--r--libgomp/doc/openmp-environment-variables/ompnumteams.rst23
-rw-r--r--libgomp/doc/openmp-environment-variables/ompnumthreads.rst24
-rw-r--r--libgomp/doc/openmp-environment-variables/ompplaces.rst54
-rw-r--r--libgomp/doc/openmp-environment-variables/ompprocbind.rst34
-rw-r--r--libgomp/doc/openmp-environment-variables/ompschedule.rst24
-rw-r--r--libgomp/doc/openmp-environment-variables/ompstacksize.rst24
-rw-r--r--libgomp/doc/openmp-environment-variables/omptargetoffload.rst27
-rw-r--r--libgomp/doc/openmp-environment-variables/ompteamsthreadlimit.rst24
-rw-r--r--libgomp/doc/openmp-environment-variables/ompthreadlimit.rst22
-rw-r--r--libgomp/doc/openmp-environment-variables/ompwaitpolicy.rst24
-rw-r--r--libgomp/doc/openmp-implementation-specifics.rst15
-rw-r--r--libgomp/doc/openmp-implementation-status.rst21
-rw-r--r--libgomp/doc/openmp-implementation-status/openmp-45.rst11
-rw-r--r--libgomp/doc/openmp-implementation-status/openmp-50.rst212
-rw-r--r--libgomp/doc/openmp-implementation-status/openmp-51.rst177
-rw-r--r--libgomp/doc/openmp-implementation-status/openmp-52.rst132
-rw-r--r--libgomp/doc/openmp-runtime-library-routines.rst87
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompdestroylock.rst33
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompdestroynestlock.rst33
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompfulfillevent.rst36
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetactivelevel.rst31
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetancestorthreadnum.rst35
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetcancellation.rst33
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetdefaultdevice.rst30
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetdevicenum.rst33
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetdynamic.rst37
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetinitialdevice.rst32
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetlevel.rst31
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetmaxactivelevels.rst30
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetmaxtaskpriority.rst29
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetmaxteams.rst31
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetmaxthreads.rst31
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetnested.rst48
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetnumdevices.rst27
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetnumprocs.rst27
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetnumteams.rst27
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetnumthreads.rst38
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetprocbind.rst34
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetschedule.rst37
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetsupportedactivelevels.rst31
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetteamnum.rst27
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetteamsize.rst36
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetteamsthreadlimit.rst31
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetthreadlimit.rst30
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetthreadnum.rst34
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetwtick.rst31
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompgetwtime.rst33
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompinfinal.rst29
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompinitlock.rst33
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompinitnestlock.rst33
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompinparallel.rst29
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompisinitialdevice.rst29
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompsetdefaultdevice.rst33
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompsetdynamic.rst35
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompsetlock.rst35
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompsetmaxactivelevels.rst35
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompsetnested.rst40
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompsetnestlock.rst35
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompsetnumteams.rst34
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompsetnumthreads.rst34
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompsetschedule.rst40
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompsetteamsthreadlimit.rst35
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/omptestlock.rst36
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/omptestnestlock.rst36
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompunsetlock.rst36
-rw-r--r--libgomp/doc/openmp-runtime-library-routines/ompunsetnestlock.rst36
-rw-r--r--libgomp/doc/reporting-bugs.rst14
-rw-r--r--libgomp/doc/the-libgomp-abi.rst31
-rw-r--r--libgomp/doc/the-libgomp-abi/implementing-atomic-construct.rst21
-rw-r--r--libgomp/doc/the-libgomp-abi/implementing-barrier-construct.rst13
-rw-r--r--libgomp/doc/the-libgomp-abi/implementing-critical-construct.rst30
-rw-r--r--libgomp/doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst45
-rw-r--r--libgomp/doc/the-libgomp-abi/implementing-flush-construct.rst11
-rw-r--r--libgomp/doc/the-libgomp-abi/implementing-for-construct.rst73
-rw-r--r--libgomp/doc/the-libgomp-abi/implementing-master-construct.rst18
-rw-r--r--libgomp/doc/the-libgomp-abi/implementing-openaccs-parallel-construct.rst13
-rw-r--r--libgomp/doc/the-libgomp-abi/implementing-ordered-construct.rst14
-rw-r--r--libgomp/doc/the-libgomp-abi/implementing-parallel-construct.rst55
-rw-r--r--libgomp/doc/the-libgomp-abi/implementing-private-clause.rst17
-rw-r--r--libgomp/doc/the-libgomp-abi/implementing-reduction-clause.rst15
-rw-r--r--libgomp/doc/the-libgomp-abi/implementing-sections-construct.rst42
-rw-r--r--libgomp/doc/the-libgomp-abi/implementing-single-construct.rst48
-rw-r--r--libgomp/doc/the-libgomp-abi/implementing-threadprivate-construct.rst18
167 files changed, 5986 insertions, 0 deletions
diff --git a/libgomp/doc/amd-radeon-gcn.rst b/libgomp/doc/amd-radeon-gcn.rst
new file mode 100644
index 0000000..60ff060
--- /dev/null
+++ b/libgomp/doc/amd-radeon-gcn.rst
@@ -0,0 +1,57 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _amd-radeon:
+
+AMD Radeon (GCN)
+****************
+
+On the hardware side, there is the hierarchy (fine to coarse):
+
+* work item (thread)
+
+* wavefront
+
+* work group
+
+* compute unite (CU)
+
+All OpenMP and OpenACC levels are used, i.e.
+
+* OpenMP's simd and OpenACC's vector map to work items (thread)
+
+* OpenMP's threads ('parallel') and OpenACC's workers map
+ to wavefronts
+
+* OpenMP's teams and OpenACC's gang use a threadpool with the
+ size of the number of teams or gangs, respectively.
+
+The used sizes are
+
+* Number of teams is the specified ``num_teams`` (OpenMP) or
+ ``num_gangs`` (OpenACC) or otherwise the number of CU
+
+* Number of wavefronts is 4 for gfx900 and 16 otherwise;
+ ``num_threads`` (OpenMP) and ``num_workers`` (OpenACC)
+ overrides this if smaller.
+
+* The wavefront has 102 scalars and 64 vectors
+
+* Number of workitems is always 64
+
+* The hardware permits maximally 40 workgroups/CU and
+ 16 wavefronts/workgroup up to a limit of 40 wavefronts in total per CU.
+
+* 80 scalars registers and 24 vector registers in non-kernel functions
+ (the chosen procedure-calling API).
+
+* For the kernel itself: as many as register pressure demands (number of
+ teams and number of threads, scaled down if registers are exhausted)
+
+The implementation remark:
+
+* I/O within OpenMP target regions and OpenACC parallel/kernels is supported
+ using the C library ``printf`` functions and the Fortran
+ ``print`` / ``write`` statements. \ No newline at end of file
diff --git a/libgomp/doc/conf.py b/libgomp/doc/conf.py
new file mode 100644
index 0000000..27e3131
--- /dev/null
+++ b/libgomp/doc/conf.py
@@ -0,0 +1,24 @@
+# Configuration file for the Sphinx documentation builder.
+
+import sys
+sys.path.append('../..//doc')
+
+from baseconf import *
+
+name = 'libgomp'
+project = 'GNU Offloading and Multi Processing Runtime Library'
+copyright = '2006-2022 Free Software Foundation, Inc.'
+authors = 'GCC Developer Community'
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+# dir menu entry, description, category)
+latex_documents = [
+ ('index', f'{name}.tex', project, authors, 'manual'),
+]
+
+texinfo_documents = [
+ ('index', name, project, authors, None, None, None, True)
+]
+
+set_common(name, globals()) \ No newline at end of file
diff --git a/libgomp/doc/copyright.rst b/libgomp/doc/copyright.rst
new file mode 100644
index 0000000..0f99e93
--- /dev/null
+++ b/libgomp/doc/copyright.rst
@@ -0,0 +1,25 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the GPL license file
+
+Copyright
+^^^^^^^^^
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with the
+Invariant Sections being **Funding Free Software**,
+the Front-Cover texts being (a) (see below), and with
+the Back-Cover Texts being (b) (see below). A copy of the license is
+in the :ref:`gnu_fdl`.
+
+(a) The FSF's Front-Cover Text is:
+
+ A GNU Manual
+
+(b) The FSF's Back-Cover Text is:
+
+ You have freedom to copy and modify this GNU Manual, like GNU
+ software. Copies published by the Free Software Foundation raise
+ funds for GNU development. \ No newline at end of file
diff --git a/libgomp/doc/cuda-streams-usage.rst b/libgomp/doc/cuda-streams-usage.rst
new file mode 100644
index 0000000..4e81ec4
--- /dev/null
+++ b/libgomp/doc/cuda-streams-usage.rst
@@ -0,0 +1,50 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _cuda-streams-usage:
+
+CUDA Streams Usage
+------------------
+
+This applies to the ``nvptx`` plugin only.
+
+The library provides elements that perform asynchronous movement of
+data and asynchronous operation of computing constructs. This
+asynchronous functionality is implemented by making use of CUDA
+streams [#f1]_.
+
+The primary means by that the asynchronous functionality is accessed
+is through the use of those OpenACC directives which make use of the
+``async`` and ``wait`` clauses. When the ``async`` clause is
+first used with a directive, it creates a CUDA stream. If an
+``async-argument`` is used with the ``async`` clause, then the
+stream is associated with the specified ``async-argument``.
+
+Following the creation of an association between a CUDA stream and the
+``async-argument`` of an ``async`` clause, both the ``wait``
+clause and the ``wait`` directive can be used. When either the
+clause or directive is used after stream creation, it creates a
+rendezvous point whereby execution waits until all operations
+associated with the ``async-argument``, that is, stream, have
+completed.
+
+Normally, the management of the streams that are created as a result of
+using the ``async`` clause, is done without any intervention by the
+caller. This implies the association between the ``async-argument``
+and the CUDA stream will be maintained for the lifetime of the program.
+However, this association can be changed through the use of the library
+function ``acc_set_cuda_stream``. When the function
+``acc_set_cuda_stream`` is called, the CUDA stream that was
+originally associated with the ``async`` clause will be destroyed.
+Caution should be taken when changing the association as subsequent
+references to the ``async-argument`` refer to a different
+CUDA stream.
+
+.. -
+ OpenACC Library Interoperability
+ -
+
+.. [#f1] See "Stream Management" in "CUDA Driver API",
+ TRM-06703-001, Version 5.5, for additional information \ No newline at end of file
diff --git a/libgomp/doc/enabling-openacc.rst b/libgomp/doc/enabling-openacc.rst
new file mode 100644
index 0000000..dedb403
--- /dev/null
+++ b/libgomp/doc/enabling-openacc.rst
@@ -0,0 +1,24 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _enabling-openacc:
+
+Enabling OpenACC
+----------------
+
+To activate the OpenACC extensions for C/C++ and Fortran, the compile-time
+flag :option:`-fopenacc` must be specified. This enables the OpenACC directive
+``#pragma acc`` in C/C++ and ``!$acc`` directives in free form,
+``c$acc``, ``*$acc`` and ``!$acc`` directives in fixed form,
+``!$`` conditional compilation sentinels in free form and ``c$``,
+``*$`` and ``!$`` sentinels in fixed form, for Fortran. The flag also
+arranges for automatic linking of the OpenACC runtime library
+(:ref:`openacc-runtime-library-routines`).
+
+See https://gcc.gnu.org/wiki/OpenACC for more information.
+
+A complete description of all OpenACC directives accepted may be found in
+the `OpenACC <https://www.openacc.org>`_ Application Programming
+Interface manual, version 2.6. \ No newline at end of file
diff --git a/libgomp/doc/enabling-openmp.rst b/libgomp/doc/enabling-openmp.rst
new file mode 100644
index 0000000..368bc44
--- /dev/null
+++ b/libgomp/doc/enabling-openmp.rst
@@ -0,0 +1,22 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _enabling-openmp:
+
+Enabling OpenMP
+---------------
+
+To activate the OpenMP extensions for C/C++ and Fortran, the compile-time
+flag :command:`-fopenmp` must be specified. This enables the OpenMP directive
+``#pragma omp`` in C/C++ and ``!$omp`` directives in free form,
+``c$omp``, ``*$omp`` and ``!$omp`` directives in fixed form,
+``!$`` conditional compilation sentinels in free form and ``c$``,
+``*$`` and ``!$`` sentinels in fixed form, for Fortran. The flag also
+arranges for automatic linking of the OpenMP runtime library
+(:ref:`runtime-library-routines`).
+
+A complete description of all OpenMP directives may be found in the
+`OpenMP Application Program Interface <https://www.openmp.org>`_ manuals.
+See also :ref:`openmp-implementation-status`. \ No newline at end of file
diff --git a/libgomp/doc/first-invocation-nvidia-cublas-library-api.rst b/libgomp/doc/first-invocation-nvidia-cublas-library-api.rst
new file mode 100644
index 0000000..a3b30d0
--- /dev/null
+++ b/libgomp/doc/first-invocation-nvidia-cublas-library-api.rst
@@ -0,0 +1,52 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+First invocation: NVIDIA CUBLAS library API
+*******************************************
+
+In this first use case (see below), a function in the CUBLAS library is called
+prior to any of the functions in the OpenACC library. More specifically, the
+function ``cublasCreate()``.
+
+When invoked, the function initializes the library and allocates the
+hardware resources on the host and the device on behalf of the caller. Once
+the initialization and allocation has completed, a handle is returned to the
+caller. The OpenACC library also requires initialization and allocation of
+hardware resources. Since the CUBLAS library has already allocated the
+hardware resources for the device, all that is left to do is to initialize
+the OpenACC library and acquire the hardware resources on the host.
+
+Prior to calling the OpenACC function that initializes the library and
+allocate the host hardware resources, you need to acquire the device number
+that was allocated during the call to ``cublasCreate()``. The invoking of the
+runtime library function ``cudaGetDevice()`` accomplishes this. Once
+acquired, the device number is passed along with the device type as
+parameters to the OpenACC library function ``acc_set_device_num()``.
+
+Once the call to ``acc_set_device_num()`` has completed, the OpenACC
+library uses the context that was created during the call to
+``cublasCreate()``. In other words, both libraries will be sharing the
+same context.
+
+.. code-block:: c++
+
+ /* Create the handle */
+ s = cublasCreate(&h);
+ if (s != CUBLAS_STATUS_SUCCESS)
+ {
+ fprintf(stderr, "cublasCreate failed %d\n", s);
+ exit(EXIT_FAILURE);
+ }
+
+ /* Get the device number */
+ e = cudaGetDevice(&dev);
+ if (e != cudaSuccess)
+ {
+ fprintf(stderr, "cudaGetDevice failed %d\n", e);
+ exit(EXIT_FAILURE);
+ }
+
+ /* Initialize OpenACC library and use device 'dev' */
+ acc_set_device_num(dev, acc_device_nvidia); \ No newline at end of file
diff --git a/libgomp/doc/first-invocation-openacc-library-api.rst b/libgomp/doc/first-invocation-openacc-library-api.rst
new file mode 100644
index 0000000..1962daa
--- /dev/null
+++ b/libgomp/doc/first-invocation-openacc-library-api.rst
@@ -0,0 +1,74 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+First invocation: OpenACC library API
+*************************************
+
+In this second use case (see below), a function in the OpenACC library is
+called prior to any of the functions in the CUBLAS library. More specificially,
+the function ``acc_set_device_num()``.
+
+In the use case presented here, the function ``acc_set_device_num()``
+is used to both initialize the OpenACC library and allocate the hardware
+resources on the host and the device. In the call to the function, the
+call parameters specify which device to use and what device
+type to use, i.e., ``acc_device_nvidia``. It should be noted that this
+is but one method to initialize the OpenACC library and allocate the
+appropriate hardware resources. Other methods are available through the
+use of environment variables and these will be discussed in the next section.
+
+Once the call to ``acc_set_device_num()`` has completed, other OpenACC
+functions can be called as seen with multiple calls being made to
+``acc_copyin()``. In addition, calls can be made to functions in the
+CUBLAS library. In the use case a call to ``cublasCreate()`` is made
+subsequent to the calls to ``acc_copyin()``.
+As seen in the previous use case, a call to ``cublasCreate()``
+initializes the CUBLAS library and allocates the hardware resources on the
+host and the device. However, since the device has already been allocated,
+``cublasCreate()`` will only initialize the CUBLAS library and allocate
+the appropriate hardware resources on the host. The context that was created
+as part of the OpenACC initialization is shared with the CUBLAS library,
+similarly to the first use case.
+
+.. code-block:: c++
+
+ dev = 0;
+
+ acc_set_device_num(dev, acc_device_nvidia);
+
+ /* Copy the first set to the device */
+ d_X = acc_copyin(&h_X[0], N * sizeof (float));
+ if (d_X == NULL)
+ {
+ fprintf(stderr, "copyin error h_X\n");
+ exit(EXIT_FAILURE);
+ }
+
+ /* Copy the second set to the device */
+ d_Y = acc_copyin(&h_Y1[0], N * sizeof (float));
+ if (d_Y == NULL)
+ {
+ fprintf(stderr, "copyin error h_Y1\n");
+ exit(EXIT_FAILURE);
+ }
+
+ /* Create the handle */
+ s = cublasCreate(&h);
+ if (s != CUBLAS_STATUS_SUCCESS)
+ {
+ fprintf(stderr, "cublasCreate failed %d\n", s);
+ exit(EXIT_FAILURE);
+ }
+
+ /* Perform saxpy using CUBLAS library function */
+ s = cublasSaxpy(h, N, &alpha, d_X, 1, d_Y, 1);
+ if (s != CUBLAS_STATUS_SUCCESS)
+ {
+ fprintf(stderr, "cublasSaxpy failed %d\n", s);
+ exit(EXIT_FAILURE);
+ }
+
+ /* Copy the results from the device */
+ acc_memcpy_from_device(&h_Y1[0], d_Y, N * sizeof (float)); \ No newline at end of file
diff --git a/libgomp/doc/funding.rst b/libgomp/doc/funding.rst
new file mode 100644
index 0000000..09aa114
--- /dev/null
+++ b/libgomp/doc/funding.rst
@@ -0,0 +1,6 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. include:: ../../doc/funding.rst \ No newline at end of file
diff --git a/libgomp/doc/general-public-license-3.rst b/libgomp/doc/general-public-license-3.rst
new file mode 100644
index 0000000..eadeef0b
--- /dev/null
+++ b/libgomp/doc/general-public-license-3.rst
@@ -0,0 +1,6 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. include:: ../../doc/gpl-3.0.rst \ No newline at end of file
diff --git a/libgomp/doc/gnu-free-documentation-license.rst b/libgomp/doc/gnu-free-documentation-license.rst
new file mode 100644
index 0000000..089cc68
--- /dev/null
+++ b/libgomp/doc/gnu-free-documentation-license.rst
@@ -0,0 +1,6 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. include:: ../../doc/gnu_free_documentation_license.rst \ No newline at end of file
diff --git a/libgomp/doc/implementation-status-and-implementation-defined-behavior.rst b/libgomp/doc/implementation-status-and-implementation-defined-behavior.rst
new file mode 100644
index 0000000..2c65c71
--- /dev/null
+++ b/libgomp/doc/implementation-status-and-implementation-defined-behavior.rst
@@ -0,0 +1,281 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+Implementation Status and Implementation-Defined Behavior
+*********************************************************
+
+We're implementing the OpenACC Profiling Interface as defined by the
+OpenACC 2.6 specification. We're clarifying some aspects here as
+*implementation-defined behavior*, while they're still under
+discussion within the OpenACC Technical Committee.
+
+This implementation is tuned to keep the performance impact as low as
+possible for the (very common) case that the Profiling Interface is
+not enabled. This is relevant, as the Profiling Interface affects all
+the *hot* code paths (in the target code, not in the offloaded
+code). Users of the OpenACC Profiling Interface can be expected to
+understand that performance will be impacted to some degree once the
+Profiling Interface has gotten enabled: for example, because of the
+*runtime* (libgomp) calling into a third-party *library* for
+every event that has been registered.
+
+We're not yet accounting for the fact that OpenACC events may
+occur during event processing.
+We just handle one case specially, as required by CUDA 9.0
+:command:`nvprof`, that ``acc_get_device_type``
+(:ref:`acc_get_device_type`)) may be called from
+``acc_ev_device_init_start``, ``acc_ev_device_init_end``
+callbacks.
+
+We're not yet implementing initialization via a
+``acc_register_library`` function that is either statically linked
+in, or dynamically via :envvar:`LD_PRELOAD`.
+Initialization via ``acc_register_library`` functions dynamically
+loaded via the :envvar:`ACC_PROFLIB` environment variable does work, as
+does directly calling ``acc_prof_register``,
+``acc_prof_unregister``, ``acc_prof_lookup``.
+
+As currently there are no inquiry functions defined, calls to
+``acc_prof_lookup`` will always return ``NULL``.
+
+There aren't separate *start*, *stop* events defined for the
+event types ``acc_ev_create``, ``acc_ev_delete``,
+``acc_ev_alloc``, ``acc_ev_free``. It's not clear if these
+should be triggered before or after the actual device-specific call is
+made. We trigger them after.
+
+Remarks about data provided to callbacks:
+
+acc_prof_info.event_type
+ It's not clear if for *nested* event callbacks (for example,
+ ``acc_ev_enqueue_launch_start`` as part of a parent compute
+ construct), this should be set for the nested event
+ (``acc_ev_enqueue_launch_start``), or if the value of the parent
+ construct should remain (``acc_ev_compute_construct_start``). In
+ this implementation, the value will generally correspond to the
+ innermost nested event type.
+
+acc_prof_info.device_type
+ * For ``acc_ev_compute_construct_start``, and in presence of an
+ ``if`` clause with *false* argument, this will still refer to
+ the offloading device type.
+ It's not clear if that's the expected behavior.
+
+ * Complementary to the item before, for
+ ``acc_ev_compute_construct_end``, this is set to
+ ``acc_device_host`` in presence of an ``if`` clause with
+ *false* argument.
+ It's not clear if that's the expected behavior.
+
+acc_prof_info.thread_id
+ Always ``-1`` ; not yet implemented.
+
+acc_prof_info.async
+ * Not yet implemented correctly for
+ ``acc_ev_compute_construct_start``.
+
+ * In a compute construct, for host-fallback
+ execution/ ``acc_device_host`` it will always be
+ ``acc_async_sync``.
+ It's not clear if that's the expected behavior.
+
+ * For ``acc_ev_device_init_start`` and ``acc_ev_device_init_end``,
+ it will always be ``acc_async_sync``.
+ It's not clear if that's the expected behavior.
+
+acc_prof_info.async_queue
+ There is no limited number of asynchronous queues in libgomp.
+ This will always have the same value as ``acc_prof_info.async``.
+
+acc_prof_info.src_file
+ Always ``NULL`` ; not yet implemented.
+
+acc_prof_info.func_name
+ Always ``NULL`` ; not yet implemented.
+
+acc_prof_info.line_no
+ Always ``-1`` ; not yet implemented.
+
+acc_prof_info.end_line_no
+ Always ``-1`` ; not yet implemented.
+
+acc_prof_info.func_line_no
+ Always ``-1`` ; not yet implemented.
+
+acc_prof_info.func_end_line_no
+ Always ``-1`` ; not yet implemented.
+
+acc_event_info.event_type, acc_event_info.*.event_type
+ Relating to ``acc_prof_info.event_type`` discussed above, in this
+ implementation, this will always be the same value as
+ ``acc_prof_info.event_type``.
+
+acc_event_info.\*.parent_construct
+ * Will be ``acc_construct_parallel`` for all OpenACC compute
+ constructs as well as many OpenACC Runtime API calls; should be the
+ one matching the actual construct, or
+ ``acc_construct_runtime_api``, respectively.
+
+ * Will be ``acc_construct_enter_data`` or
+ ``acc_construct_exit_data`` when processing variable mappings
+ specified in OpenACC *declare* directives; should be
+ ``acc_construct_declare``.
+
+ * For implicit ``acc_ev_device_init_start``,
+ ``acc_ev_device_init_end``, and explicit as well as implicit
+ ``acc_ev_alloc``, ``acc_ev_free``,
+ ``acc_ev_enqueue_upload_start``, ``acc_ev_enqueue_upload_end``,
+ ``acc_ev_enqueue_download_start``, and
+ ``acc_ev_enqueue_download_end``, will be
+ ``acc_construct_parallel`` ; should reflect the real parent
+ construct.
+
+acc_event_info.\*.implicit
+ For ``acc_ev_alloc``, ``acc_ev_free``,
+ ``acc_ev_enqueue_upload_start``, ``acc_ev_enqueue_upload_end``,
+ ``acc_ev_enqueue_download_start``, and
+ ``acc_ev_enqueue_download_end``, this currently will be ``1``
+ also for explicit usage.
+
+acc_event_info.data_event.var_name
+ Always ``NULL`` ; not yet implemented.
+
+acc_event_info.data_event.host_ptr
+ For ``acc_ev_alloc``, and ``acc_ev_free``, this is always
+ ``NULL``.
+
+typedef union acc_api_info
+ ... as printed in 5.2.3. Third Argument: API-Specific
+ Information. This should obviously be ``typedef struct
+ acc_api_info``.
+
+acc_api_info.device_api
+ Possibly not yet implemented correctly for
+ ``acc_ev_compute_construct_start``,
+ ``acc_ev_device_init_start``, ``acc_ev_device_init_end`` :
+ will always be ``acc_device_api_none`` for these event types.
+ For ``acc_ev_enter_data_start``, it will be
+ ``acc_device_api_none`` in some cases.
+
+acc_api_info.device_type
+ Always the same as ``acc_prof_info.device_type``.
+
+acc_api_info.vendor
+ Always ``-1`` ; not yet implemented.
+
+acc_api_info.device_handle
+ Always ``NULL`` ; not yet implemented.
+
+acc_api_info.context_handle
+ Always ``NULL`` ; not yet implemented.
+
+acc_api_info.async_handle
+ Always ``NULL`` ; not yet implemented.
+
+Remarks about certain event types:
+
+acc_ev_device_init_start, acc_ev_device_init_end
+ *
+ .. See 'DEVICE_INIT_INSIDE_COMPUTE_CONSTRUCT' in
+ 'libgomp.oacc-c-c++-common/acc_prof-kernels-1.c',
+ 'libgomp.oacc-c-c++-common/acc_prof-parallel-1.c'.
+
+ When a compute construct triggers implicit
+ ``acc_ev_device_init_start`` and ``acc_ev_device_init_end``
+ events, they currently aren't *nested within* the corresponding
+ ``acc_ev_compute_construct_start`` and
+ ``acc_ev_compute_construct_end``, but they're currently observed
+ *before* ``acc_ev_compute_construct_start``.
+ It's not clear what to do: the standard asks us provide a lot of
+ details to the ``acc_ev_compute_construct_start`` callback, without
+ (implicitly) initializing a device before?
+
+ * Callbacks for these event types will not be invoked for calls to the
+ ``acc_set_device_type`` and ``acc_set_device_num`` functions.
+ It's not clear if they should be.
+
+acc_ev_enter_data_start, acc_ev_enter_data_end, acc_ev_exit_data_start, acc_ev_exit_data_end
+ * Callbacks for these event types will also be invoked for OpenACC
+ *host_data* constructs.
+ It's not clear if they should be.
+
+ * Callbacks for these event types will also be invoked when processing
+ variable mappings specified in OpenACC *declare* directives.
+ It's not clear if they should be.
+
+Callbacks for the following event types will be invoked, but dispatch
+and information provided therein has not yet been thoroughly reviewed:
+
+* ``acc_ev_alloc``
+
+* ``acc_ev_free``
+
+* ``acc_ev_update_start``, ``acc_ev_update_end``
+
+* ``acc_ev_enqueue_upload_start``, ``acc_ev_enqueue_upload_end``
+
+* ``acc_ev_enqueue_download_start``, ``acc_ev_enqueue_download_end``
+
+During device initialization, and finalization, respectively,
+callbacks for the following event types will not yet be invoked:
+
+* ``acc_ev_alloc``
+
+* ``acc_ev_free``
+
+Callbacks for the following event types have not yet been implemented,
+so currently won't be invoked:
+
+* ``acc_ev_device_shutdown_start``, ``acc_ev_device_shutdown_end``
+
+* ``acc_ev_runtime_shutdown``
+
+* ``acc_ev_create``, ``acc_ev_delete``
+
+* ``acc_ev_wait_start``, ``acc_ev_wait_end``
+
+For the following runtime library functions, not all expected
+callbacks will be invoked (mostly concerning implicit device
+initialization):
+
+* ``acc_get_num_devices``
+
+* ``acc_set_device_type``
+
+* ``acc_get_device_type``
+
+* ``acc_set_device_num``
+
+* ``acc_get_device_num``
+
+* ``acc_init``
+
+* ``acc_shutdown``
+
+Aside from implicit device initialization, for the following runtime
+library functions, no callbacks will be invoked for shared-memory
+offloading devices (it's not clear if they should be):
+
+* ``acc_malloc``
+
+* ``acc_free``
+
+* ``acc_copyin``, ``acc_present_or_copyin``, ``acc_copyin_async``
+
+* ``acc_create``, ``acc_present_or_create``, ``acc_create_async``
+
+* ``acc_copyout``, ``acc_copyout_async``, ``acc_copyout_finalize``, ``acc_copyout_finalize_async``
+
+* ``acc_delete``, ``acc_delete_async``, ``acc_delete_finalize``, ``acc_delete_finalize_async``
+
+* ``acc_update_device``, ``acc_update_device_async``
+
+* ``acc_update_self``, ``acc_update_self_async``
+
+* ``acc_map_data``, ``acc_unmap_data``
+
+* ``acc_memcpy_to_device``, ``acc_memcpy_to_device_async``
+
+* ``acc_memcpy_from_device``, ``acc_memcpy_from_device_async`` \ No newline at end of file
diff --git a/libgomp/doc/index.rst b/libgomp/doc/index.rst
new file mode 100644
index 0000000..066ed48
--- /dev/null
+++ b/libgomp/doc/index.rst
@@ -0,0 +1,35 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+GNU libgomp
+===========
+
+.. only:: html
+
+ Contents:
+
+.. toctree::
+
+ copyright
+ introduction
+ enabling-openmp
+ openmp-implementation-status
+ openmp-runtime-library-routines
+ openmp-environment-variables
+ enabling-openacc
+ openacc-runtime-library-routines
+ openacc-environment-variables
+ cuda-streams-usage
+ openacc-library-interoperability
+ openacc-profiling-interface
+ openmp-implementation-specifics
+ offload-target-specifics
+ the-libgomp-abi
+ reporting-bugs
+ general-public-license-3
+ gnu-free-documentation-license
+ funding
+
+ indices-and-tables \ No newline at end of file
diff --git a/libgomp/doc/indices-and-tables.rst b/libgomp/doc/indices-and-tables.rst
new file mode 100644
index 0000000..9799e4e
--- /dev/null
+++ b/libgomp/doc/indices-and-tables.rst
@@ -0,0 +1 @@
+.. include:: ../../doc/indices-and-tables.rst \ No newline at end of file
diff --git a/libgomp/doc/introduction.rst b/libgomp/doc/introduction.rst
new file mode 100644
index 0000000..758fed7
--- /dev/null
+++ b/libgomp/doc/introduction.rst
@@ -0,0 +1,25 @@
+.. _top:
+
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+Introduction
+============
+
+.. index:: Introduction
+
+This manual documents the usage of libgomp, the GNU Offloading and
+Multi Processing Runtime Library. This includes the GNU
+implementation of the `OpenMP <https://www.openmp.org>`_ Application
+Programming Interface (API) for multi-platform shared-memory parallel
+programming in C/C++ and Fortran, and the GNU implementation of the
+`OpenACC <https://www.openacc.org>`_ Application Programming
+Interface (API) for offloading of code to accelerator devices in C/C++
+and Fortran.
+
+Originally, libgomp implemented the GNU OpenMP Runtime Library. Based
+on this, support for OpenACC and offloading (both OpenACC and OpenMP
+4's target construct) has been added later on, and the library's name
+changed to GNU Offloading and Multi Processing Runtime Library. \ No newline at end of file
diff --git a/libgomp/doc/memory-allocation-with-libmemkind.rst b/libgomp/doc/memory-allocation-with-libmemkind.rst
new file mode 100644
index 0000000..28c102c
--- /dev/null
+++ b/libgomp/doc/memory-allocation-with-libmemkind.rst
@@ -0,0 +1,23 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _memory-allocation-with-libmemkind:
+
+Memory allocation with libmemkind
+*********************************
+
+On Linux systems, where the `memkind
+library <https://github.com/memkind/memkind>`_ (``libmemkind.so.0``) is available at runtime, it is used when
+creating memory allocators requesting
+
+* the memory space ``omp_high_bw_mem_space``
+
+* the memory space ``omp_large_cap_mem_space``
+
+* the partition trait ``omp_atv_interleaved``
+
+.. -
+ Offload-Target Specifics
+ - \ No newline at end of file
diff --git a/libgomp/doc/nvptx.rst b/libgomp/doc/nvptx.rst
new file mode 100644
index 0000000..c121e99
--- /dev/null
+++ b/libgomp/doc/nvptx.rst
@@ -0,0 +1,60 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _nvptx:
+
+nvptx
+*****
+
+On the hardware side, there is the hierarchy (fine to coarse):
+
+* thread
+
+* warp
+
+* thread block
+
+* streaming multiprocessor
+
+All OpenMP and OpenACC levels are used, i.e.
+
+* OpenMP's simd and OpenACC's vector map to threads
+
+* OpenMP's threads ('parallel') and OpenACC's workers map to warps
+
+* OpenMP's teams and OpenACC's gang use a threadpool with the
+ size of the number of teams or gangs, respectively.
+
+The used sizes are
+
+* The ``warp_size`` is always 32
+
+* CUDA kernel launched: ``dim={#teams,1,1}, blocks={#threads,warp_size,1}``.
+
+Additional information can be obtained by setting the environment variable to
+``GOMP_DEBUG=1`` (very verbose; grep for ``kernel.*launch`` for launch
+parameters).
+
+GCC generates generic PTX ISA code, which is just-in-time compiled by CUDA,
+which caches the JIT in the user's directory (see CUDA documentation; can be
+tuned by the environment variables ``CUDA_CACHE_{DISABLE,MAXSIZE,PATH}``.
+
+Note: While PTX ISA is generic, the ``-mptx=`` and ``-march=`` commandline
+options still affect the used PTX ISA code and, thus, the requirments on
+CUDA version and hardware.
+
+The implementation remark:
+
+* I/O within OpenMP target regions and OpenACC parallel/kernels is supported
+ using the C library ``printf`` functions. Note that the Fortran
+ ``print`` / ``write`` statements are not supported, yet.
+
+* Compilation OpenMP code that contains ``requires reverse_offload``
+ requires at least ``-march=sm_35``, compiling for ``-march=sm_30``
+ is not supported.
+
+.. -
+ The libgomp ABI
+ - \ No newline at end of file
diff --git a/libgomp/doc/offload-target-specifics.rst b/libgomp/doc/offload-target-specifics.rst
new file mode 100644
index 0000000..25d46d0
--- /dev/null
+++ b/libgomp/doc/offload-target-specifics.rst
@@ -0,0 +1,17 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _offload-target-specifics:
+
+Offload-Target Specifics
+------------------------
+
+The following sections present notes on the offload-target specifics
+
+.. toctree::
+ :maxdepth: 2
+
+ amd-radeon-gcn
+ nvptx \ No newline at end of file
diff --git a/libgomp/doc/openacc-environment-variables.rst b/libgomp/doc/openacc-environment-variables.rst
new file mode 100644
index 0000000..ec677a7
--- /dev/null
+++ b/libgomp/doc/openacc-environment-variables.rst
@@ -0,0 +1,23 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _openacc-environment-variables:
+
+OpenACC Environment Variables
+-----------------------------
+
+The variables :envvar:`ACC_DEVICE_TYPE` and :envvar:`ACC_DEVICE_NUM`
+are defined by section 4 of the OpenACC specification in version 2.0.
+The variable :envvar:`ACC_PROFLIB`
+is defined by section 4 of the OpenACC specification in version 2.6.
+The variable :envvar:`GCC_ACC_NOTIFY` is used for diagnostic purposes.
+
+.. toctree::
+ :maxdepth: 2
+
+ openacc-environment-variables/accdevicetype
+ openacc-environment-variables/accdevicenum
+ openacc-environment-variables/accproflib
+ openacc-environment-variables/gccaccnotify \ No newline at end of file
diff --git a/libgomp/doc/openacc-environment-variables/accdevicenum.rst b/libgomp/doc/openacc-environment-variables/accdevicenum.rst
new file mode 100644
index 0000000..2779126
--- /dev/null
+++ b/libgomp/doc/openacc-environment-variables/accdevicenum.rst
@@ -0,0 +1,13 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_device_num:
+
+ACC_DEVICE_NUM
+**************
+
+Reference:
+ :openacc:`2.6`, section
+ 4.2. \ No newline at end of file
diff --git a/libgomp/doc/openacc-environment-variables/accdevicetype.rst b/libgomp/doc/openacc-environment-variables/accdevicetype.rst
new file mode 100644
index 0000000..10aa4fc
--- /dev/null
+++ b/libgomp/doc/openacc-environment-variables/accdevicetype.rst
@@ -0,0 +1,13 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_device_type:
+
+ACC_DEVICE_TYPE
+***************
+
+Reference:
+ :openacc:`2.6`, section
+ 4.1. \ No newline at end of file
diff --git a/libgomp/doc/openacc-environment-variables/accproflib.rst b/libgomp/doc/openacc-environment-variables/accproflib.rst
new file mode 100644
index 0000000..3309368
--- /dev/null
+++ b/libgomp/doc/openacc-environment-variables/accproflib.rst
@@ -0,0 +1,16 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_proflib:
+
+ACC_PROFLIB
+***********
+
+See also:
+ :ref:`acc_register_library`, :ref:`openacc-profiling-interface`
+
+Reference:
+ :openacc:`2.6`, section
+ 4.3. \ No newline at end of file
diff --git a/libgomp/doc/openacc-environment-variables/gccaccnotify.rst b/libgomp/doc/openacc-environment-variables/gccaccnotify.rst
new file mode 100644
index 0000000..315795f
--- /dev/null
+++ b/libgomp/doc/openacc-environment-variables/gccaccnotify.rst
@@ -0,0 +1,12 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _gcc_acc_notify:
+
+GCC_ACC_NOTIFY
+**************
+
+Description:
+ Print debug information pertaining to the accelerator. \ No newline at end of file
diff --git a/libgomp/doc/openacc-introduction.rst b/libgomp/doc/openacc-introduction.rst
new file mode 100644
index 0000000..96d9f80
--- /dev/null
+++ b/libgomp/doc/openacc-introduction.rst
@@ -0,0 +1,21 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the GPL license file
+
+Introduction
+************
+
+The OpenACC library uses the CUDA Driver API, and may interact with
+programs that use the Runtime library directly, or another library
+based on the Runtime library, e.g., CUBLAS [#f1]_.
+
+This chapter describes the use cases and what changes are
+required in order to use both the OpenACC library and the CUBLAS and Runtime
+libraries within a program.
+
+.. [#f1] See section 2.26,
+ "Interactions with the CUDA Driver API" in
+ "CUDA Runtime API", Version 5.5, and section 2.27, "VDPAU
+ Interoperability", in "CUDA Driver API", TRM-06703-001, Version 5.5,
+ for additional information on library interoperability. \ No newline at end of file
diff --git a/libgomp/doc/openacc-library-and-environment-variables.rst b/libgomp/doc/openacc-library-and-environment-variables.rst
new file mode 100644
index 0000000..d9e06e3
--- /dev/null
+++ b/libgomp/doc/openacc-library-and-environment-variables.rst
@@ -0,0 +1,30 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+OpenACC library and environment variables
+*****************************************
+
+There are two environment variables associated with the OpenACC library
+that may be used to control the device type and device number:
+:envvar:`ACC_DEVICE_TYPE` and :envvar:`ACC_DEVICE_NUM`, respectively. These two
+environment variables can be used as an alternative to calling
+``acc_set_device_num()``. As seen in the second use case, the device
+type and device number were specified using ``acc_set_device_num()``.
+If however, the aforementioned environment variables were set, then the
+call to ``acc_set_device_num()`` would not be required.
+
+The use of the environment variables is only relevant when an OpenACC function
+is called prior to a call to ``cudaCreate()``. If ``cudaCreate()``
+is called prior to a call to an OpenACC function, then you must call
+``acc_set_device_num()`` [#f1]_.
+
+.. -
+ OpenACC Profiling Interface
+ -
+
+.. [#f1] More complete information
+ about :envvar:`ACC_DEVICE_TYPE` and :envvar:`ACC_DEVICE_NUM` can be found in
+ sections 4.1 and 4.2 of the `OpenACC <https://www.openacc.org>`_
+ Application Programming Interface”, Version 2.6. \ No newline at end of file
diff --git a/libgomp/doc/openacc-library-interoperability.rst b/libgomp/doc/openacc-library-interoperability.rst
new file mode 100644
index 0000000..bdd5e22
--- /dev/null
+++ b/libgomp/doc/openacc-library-interoperability.rst
@@ -0,0 +1,17 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _openacc-library-interoperability:
+
+OpenACC Library Interoperability
+--------------------------------
+
+.. toctree::
+ :maxdepth: 2
+
+ openacc-introduction
+ first-invocation-nvidia-cublas-library-api
+ first-invocation-openacc-library-api
+ openacc-library-and-environment-variables \ No newline at end of file
diff --git a/libgomp/doc/openacc-profiling-interface.rst b/libgomp/doc/openacc-profiling-interface.rst
new file mode 100644
index 0000000..4c5e94a
--- /dev/null
+++ b/libgomp/doc/openacc-profiling-interface.rst
@@ -0,0 +1,14 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _openacc-profiling-interface:
+
+OpenACC Profiling Interface
+---------------------------
+
+.. toctree::
+ :maxdepth: 2
+
+ implementation-status-and-implementation-defined-behavior \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines.rst b/libgomp/doc/openacc-runtime-library-routines.rst
new file mode 100644
index 0000000..ec8ecd1b
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines.rst
@@ -0,0 +1,74 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _openacc-runtime-library-routines:
+
+OpenACC Runtime Library Routines
+--------------------------------
+
+The runtime routines described here are defined by section 3 of the OpenACC
+specifications in version 2.6.
+They have C linkage, and do not throw exceptions.
+Generally, they are available only for the host, with the exception of
+``acc_on_device``, which is available for both the host and the
+acceleration device.
+
+.. toctree::
+ :maxdepth: 2
+
+ openacc-runtime-library-routines/accgetnumdevices
+ openacc-runtime-library-routines/accsetdevicetype
+ openacc-runtime-library-routines/accgetdevicetype
+ openacc-runtime-library-routines/accsetdevicenum
+ openacc-runtime-library-routines/accgetdevicenum
+ openacc-runtime-library-routines/accgetproperty
+ openacc-runtime-library-routines/accasynctest
+ openacc-runtime-library-routines/accasynctestall
+ openacc-runtime-library-routines/accwait
+ openacc-runtime-library-routines/accwaitall
+ openacc-runtime-library-routines/accwaitallasync
+ openacc-runtime-library-routines/accwaitasync
+ openacc-runtime-library-routines/accinit
+ openacc-runtime-library-routines/accshutdown
+ openacc-runtime-library-routines/accondevice
+ openacc-runtime-library-routines/accmalloc
+ openacc-runtime-library-routines/accfree
+ openacc-runtime-library-routines/acccopyin
+ openacc-runtime-library-routines/accpresentorcopyin
+ openacc-runtime-library-routines/acccreate
+ openacc-runtime-library-routines/accpresentorcreate
+ openacc-runtime-library-routines/acccopyout
+ openacc-runtime-library-routines/accdelete
+ openacc-runtime-library-routines/accupdatedevice
+ openacc-runtime-library-routines/accupdateself
+ openacc-runtime-library-routines/accmapdata
+ openacc-runtime-library-routines/accunmapdata
+ openacc-runtime-library-routines/accdeviceptr
+ openacc-runtime-library-routines/acchostptr
+ openacc-runtime-library-routines/accispresent
+ openacc-runtime-library-routines/accmemcpytodevice
+ openacc-runtime-library-routines/accmemcpyfromdevice
+ openacc-runtime-library-routines/accattach
+ openacc-runtime-library-routines/accdetach
+
+API routines for target platforms.
+
+.. toctree::
+ :maxdepth: 2
+
+ openacc-runtime-library-routines/accgetcurrentcudadevice
+ openacc-runtime-library-routines/accgetcurrentcudacontext
+ openacc-runtime-library-routines/accgetcudastream
+ openacc-runtime-library-routines/accsetcudastream
+
+API routines for the OpenACC Profiling Interface.
+
+.. toctree::
+ :maxdepth: 2
+
+ openacc-runtime-library-routines/accprofregister
+ openacc-runtime-library-routines/accprofunregister
+ openacc-runtime-library-routines/accproflookup
+ openacc-runtime-library-routines/accregisterlibrary \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accasynctest.rst b/libgomp/doc/openacc-runtime-library-routines/accasynctest.rst
new file mode 100644
index 0000000..57b1025
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accasynctest.rst
@@ -0,0 +1,36 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_async_test:
+
+acc_async_test -- Test for completion of a specific asynchronous operation.
+***************************************************************************
+
+Description
+ This function tests for completion of the asynchronous operation specified
+ in :samp:`{arg}`. In C/C++, a non-zero value will be returned to indicate
+ the specified asynchronous operation has completed. While Fortran will return
+ a ``true``. If the asynchronous operation has not completed, C/C++ returns
+ a zero and Fortran returns a ``false``.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int acc_async_test(int arg);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``function acc_async_test(arg)``
+ * -
+ - ``integer(kind=acc_handle_kind) arg``
+ * -
+ - ``logical acc_async_test``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.9. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accasynctestall.rst b/libgomp/doc/openacc-runtime-library-routines/accasynctestall.rst
new file mode 100644
index 0000000..2191a26
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accasynctestall.rst
@@ -0,0 +1,34 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_async_test_all:
+
+acc_async_test_all -- Tests for completion of all asynchronous operations.
+**************************************************************************
+
+Description
+ This function tests for completion of all asynchronous operations.
+ In C/C++, a non-zero value will be returned to indicate all asynchronous
+ operations have completed. While Fortran will return a ``true``. If
+ any asynchronous operation has not completed, C/C++ returns a zero and
+ Fortran returns a ``false``.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int acc_async_test_all(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``function acc_async_test()``
+ * -
+ - ``logical acc_get_device_num``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.10. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accattach.rst b/libgomp/doc/openacc-runtime-library-routines/accattach.rst
new file mode 100644
index 0000000..ecc9203
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accattach.rst
@@ -0,0 +1,25 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_attach:
+
+acc_attach -- Let device pointer point to device-pointer target.
+****************************************************************
+
+Description
+ This function updates a pointer on the device from pointing to a host-pointer
+ address to pointing to the corresponding device data.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_attach(h_void **ptr);``
+ * - *Prototype*:
+ - ``acc_attach_async(h_void **ptr, int async);``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.34. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/acccopyin.rst b/libgomp/doc/openacc-runtime-library-routines/acccopyin.rst
new file mode 100644
index 0000000..02c7aaa
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/acccopyin.rst
@@ -0,0 +1,58 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_copyin:
+
+acc_copyin -- Allocate device memory and copy host memory to it.
+****************************************************************
+
+Description
+ In C/C++, this function allocates :samp:`{len}` bytes of device memory
+ and maps it to the specified host address in :samp:`{a}`. The device
+ address of the newly allocated device memory is returned.
+
+ In Fortran, two (2) forms are supported. In the first form, :samp:`{a}` specifies
+ a contiguous array section. The second form :samp:`{a}` specifies a
+ variable or array element and :samp:`{len}` specifies the length in bytes.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void *acc_copyin(h_void *a, size_t len);``
+ * - *Prototype*:
+ - ``void *acc_copyin_async(h_void *a, size_t len, int async);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_copyin(a)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * - *Interface*:
+ - ``subroutine acc_copyin(a, len)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * - *Interface*:
+ - ``subroutine acc_copyin_async(a, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+ * - *Interface*:
+ - ``subroutine acc_copyin_async(a, len, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.20. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/acccopyout.rst b/libgomp/doc/openacc-runtime-library-routines/acccopyout.rst
new file mode 100644
index 0000000..aa21945
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/acccopyout.rst
@@ -0,0 +1,85 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_copyout:
+
+acc_copyout -- Copy device memory to host memory.
+*************************************************
+
+Description
+ This function copies mapped device memory to host memory which is specified
+ by host address :samp:`{a}` for a length :samp:`{len}` bytes in C/C++.
+
+ In Fortran, two (2) forms are supported. In the first form, :samp:`{a}` specifies
+ a contiguous array section. The second form :samp:`{a}` specifies a variable or
+ array element and :samp:`{len}` specifies the length in bytes.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_copyout(h_void *a, size_t len);``
+ * - *Prototype*:
+ - ``acc_copyout_async(h_void *a, size_t len, int async);``
+ * - *Prototype*:
+ - ``acc_copyout_finalize(h_void *a, size_t len);``
+ * - *Prototype*:
+ - ``acc_copyout_finalize_async(h_void *a, size_t len, int async);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_copyout(a)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * - *Interface*:
+ - ``subroutine acc_copyout(a, len)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * - *Interface*:
+ - ``subroutine acc_copyout_async(a, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+ * - *Interface*:
+ - ``subroutine acc_copyout_async(a, len, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+ * - *Interface*:
+ - ``subroutine acc_copyout_finalize(a)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * - *Interface*:
+ - ``subroutine acc_copyout_finalize(a, len)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * - *Interface*:
+ - ``subroutine acc_copyout_finalize_async(a, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+ * - *Interface*:
+ - ``subroutine acc_copyout_finalize_async(a, len, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.22. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/acccreate.rst b/libgomp/doc/openacc-runtime-library-routines/acccreate.rst
new file mode 100644
index 0000000..ab02142
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/acccreate.rst
@@ -0,0 +1,58 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_create:
+
+acc_create -- Allocate device memory and map it to host memory.
+***************************************************************
+
+Description
+ This function allocates device memory and maps it to host memory specified
+ by the host address :samp:`{a}` with a length of :samp:`{len}` bytes. In C/C++,
+ the function returns the device address of the allocated device memory.
+
+ In Fortran, two (2) forms are supported. In the first form, :samp:`{a}` specifies
+ a contiguous array section. The second form :samp:`{a}` specifies a variable or
+ array element and :samp:`{len}` specifies the length in bytes.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void *acc_create(h_void *a, size_t len);``
+ * - *Prototype*:
+ - ``void *acc_create_async(h_void *a, size_t len, int async);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_create(a)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * - *Interface*:
+ - ``subroutine acc_create(a, len)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * - *Interface*:
+ - ``subroutine acc_create_async(a, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+ * - *Interface*:
+ - ``subroutine acc_create_async(a, len, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.21. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accdelete.rst b/libgomp/doc/openacc-runtime-library-routines/accdelete.rst
new file mode 100644
index 0000000..6814e54
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accdelete.rst
@@ -0,0 +1,85 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_delete:
+
+acc_delete -- Free device memory.
+*********************************
+
+Description
+ This function frees previously allocated device memory specified by
+ the device address :samp:`{a}` and the length of :samp:`{len}` bytes.
+
+ In Fortran, two (2) forms are supported. In the first form, :samp:`{a}` specifies
+ a contiguous array section. The second form :samp:`{a}` specifies a variable or
+ array element and :samp:`{len}` specifies the length in bytes.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_delete(h_void *a, size_t len);``
+ * - *Prototype*:
+ - ``acc_delete_async(h_void *a, size_t len, int async);``
+ * - *Prototype*:
+ - ``acc_delete_finalize(h_void *a, size_t len);``
+ * - *Prototype*:
+ - ``acc_delete_finalize_async(h_void *a, size_t len, int async);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_delete(a)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * - *Interface*:
+ - ``subroutine acc_delete(a, len)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * - *Interface*:
+ - ``subroutine acc_delete_async(a, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+ * - *Interface*:
+ - ``subroutine acc_delete_async(a, len, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+ * - *Interface*:
+ - ``subroutine acc_delete_finalize(a)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * - *Interface*:
+ - ``subroutine acc_delete_finalize(a, len)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * - *Interface*:
+ - ``subroutine acc_delete_async_finalize(a, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+ * - *Interface*:
+ - ``subroutine acc_delete_async_finalize(a, len, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.23. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accdetach.rst b/libgomp/doc/openacc-runtime-library-routines/accdetach.rst
new file mode 100644
index 0000000..ed3691a
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accdetach.rst
@@ -0,0 +1,29 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_detach:
+
+acc_detach -- Let device pointer point to host-pointer target.
+**************************************************************
+
+Description
+ This function updates a pointer on the device from pointing to a device-pointer
+ address to pointing to the corresponding host data.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_detach(h_void **ptr);``
+ * - *Prototype*:
+ - ``acc_detach_async(h_void **ptr, int async);``
+ * - *Prototype*:
+ - ``acc_detach_finalize(h_void **ptr);``
+ * - *Prototype*:
+ - ``acc_detach_finalize_async(h_void **ptr, int async);``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.35. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accdeviceptr.rst b/libgomp/doc/openacc-runtime-library-routines/accdeviceptr.rst
new file mode 100644
index 0000000..094cca40
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accdeviceptr.rst
@@ -0,0 +1,23 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_deviceptr:
+
+acc_deviceptr -- Get device pointer associated with specific host address.
+**************************************************************************
+
+Description
+ This function returns the device address that has been mapped to the
+ host address specified by :samp:`{h}`.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void *acc_deviceptr(h_void *h);``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.28. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accfree.rst b/libgomp/doc/openacc-runtime-library-routines/accfree.rst
new file mode 100644
index 0000000..8f5b4f0
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accfree.rst
@@ -0,0 +1,22 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_free:
+
+acc_free -- Free device memory.
+*******************************
+
+Description
+ Free previously allocated device memory at the device address ``a``.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_free(d_void *a);``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.19. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accgetcudastream.rst b/libgomp/doc/openacc-runtime-library-routines/accgetcudastream.rst
new file mode 100644
index 0000000..d13d913
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accgetcudastream.rst
@@ -0,0 +1,23 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_get_cuda_stream:
+
+acc_get_cuda_stream -- Get CUDA stream handle.
+**********************************************
+
+Description
+ This function returns the CUDA stream handle for the queue :samp:`{async}`.
+ This handle is the same as used by the CUDA Runtime or Driver API's.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void *acc_get_cuda_stream(int async);``
+
+Reference:
+ :openacc:`2.6`, section
+ A.2.1.3. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accgetcurrentcudacontext.rst b/libgomp/doc/openacc-runtime-library-routines/accgetcurrentcudacontext.rst
new file mode 100644
index 0000000..b39db0e
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accgetcurrentcudacontext.rst
@@ -0,0 +1,23 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_get_current_cuda_context:
+
+acc_get_current_cuda_context -- Get CUDA context handle.
+********************************************************
+
+Description
+ This function returns the CUDA context handle. This handle is the same
+ as used by the CUDA Runtime or Driver API's.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void *acc_get_current_cuda_context(void);``
+
+Reference:
+ :openacc:`2.6`, section
+ A.2.1.2. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accgetcurrentcudadevice.rst b/libgomp/doc/openacc-runtime-library-routines/accgetcurrentcudadevice.rst
new file mode 100644
index 0000000..17ba575
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accgetcurrentcudadevice.rst
@@ -0,0 +1,23 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_get_current_cuda_device:
+
+acc_get_current_cuda_device -- Get CUDA device handle.
+******************************************************
+
+Description
+ This function returns the CUDA device handle. This handle is the same
+ as used by the CUDA Runtime or Driver API's.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void *acc_get_current_cuda_device(void);``
+
+Reference:
+ :openacc:`2.6`, section
+ A.2.1.1. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accgetdevicenum.rst b/libgomp/doc/openacc-runtime-library-routines/accgetdevicenum.rst
new file mode 100644
index 0000000..40c97b8
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accgetdevicenum.rst
@@ -0,0 +1,34 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_get_device_num:
+
+acc_get_device_num -- Get device number to be used.
+***************************************************
+
+Description
+ This function returns which device number associated with the specified device
+ type :samp:`{devicetype}`, will be used when executing a parallel or kernels
+ region.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int acc_get_device_num(acc_device_t devicetype);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``function acc_get_device_num(devicetype)``
+ * -
+ - ``integer(kind=acc_device_kind) devicetype``
+ * -
+ - ``integer acc_get_device_num``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.5. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accgetdevicetype.rst b/libgomp/doc/openacc-runtime-library-routines/accgetdevicetype.rst
new file mode 100644
index 0000000..45cc03b
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accgetdevicetype.rst
@@ -0,0 +1,36 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_get_device_type:
+
+acc_get_device_type -- Get type of device accelerator to be used.
+*****************************************************************
+
+Description
+ This function returns what device type will be used when executing a
+ parallel or kernels region.
+
+ This function returns ``acc_device_none`` if
+ ``acc_get_device_type`` is called from
+ ``acc_ev_device_init_start``, ``acc_ev_device_init_end``
+ callbacks of the OpenACC Profiling Interface (:ref:`openacc-profiling-interface`), that is, if the device is currently being initialized.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_device_t acc_get_device_type(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``function acc_get_device_type(void)``
+ * -
+ - ``integer(kind=acc_device_kind) acc_get_device_type``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.3. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accgetnumdevices.rst b/libgomp/doc/openacc-runtime-library-routines/accgetnumdevices.rst
new file mode 100644
index 0000000..529f129
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accgetnumdevices.rst
@@ -0,0 +1,31 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_get_num_devices:
+
+acc_get_num_devices -- Get number of devices for given device type
+******************************************************************
+
+Description
+ This function returns a value indicating the number of devices available
+ for the device type specified in :samp:`{devicetype}`.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int acc_get_num_devices(acc_device_t devicetype);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function acc_get_num_devices(devicetype)``
+ * -
+ - ``integer(kind=acc_device_kind) devicetype``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.1. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accgetproperty.rst b/libgomp/doc/openacc-runtime-library-routines/accgetproperty.rst
new file mode 100644
index 0000000..e6687e9
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accgetproperty.rst
@@ -0,0 +1,60 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: acc_get_property, acc_get_property_string
+
+.. _acc_get_property:
+
+acc_get_property -- Get device property.
+****************************************
+
+Description
+ These routines return the value of the specified :samp:`{property}` for the
+ device being queried according to :samp:`{devicenum}` and :samp:`{devicetype}`.
+ Integer-valued and string-valued properties are returned by
+ ``acc_get_property`` and ``acc_get_property_string`` respectively.
+ The Fortran ``acc_get_property_string`` subroutine returns the string
+ retrieved in its fourth argument while the remaining entry points are
+ functions, which pass the return value as their result.
+
+ Note for Fortran, only: the OpenACC technical committee corrected and, hence,
+ modified the interface introduced in OpenACC 2.6. The kind-value parameter
+ ``acc_device_property`` has been renamed to ``acc_device_property_kind``
+ for consistency and the return type of the ``acc_get_property`` function is
+ now a ``c_size_t`` integer instead of a ``acc_device_property`` integer.
+ The parameter ``acc_device_property`` will continue to be provided,
+ but might be removed in a future version of GCC.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``size_t acc_get_property(int devicenum, acc_device_t devicetype, acc_device_property_t property);``
+ * - *Prototype*:
+ - ``const char *acc_get_property_string(int devicenum, acc_device_t devicetype, acc_device_property_t property);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``function acc_get_property(devicenum, devicetype, property)``
+ * - *Interface*:
+ - ``subroutine acc_get_property_string(devicenum, devicetype, property, string)``
+ * -
+ - ``use ISO_C_Binding, only: c_size_t``
+ * -
+ - ``integer devicenum``
+ * -
+ - ``integer(kind=acc_device_kind) devicetype``
+ * -
+ - ``integer(kind=acc_device_property_kind) property``
+ * -
+ - ``integer(kind=c_size_t) acc_get_property``
+ * -
+ - ``character(*) string``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.6. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/acchostptr.rst b/libgomp/doc/openacc-runtime-library-routines/acchostptr.rst
new file mode 100644
index 0000000..4c63f94
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/acchostptr.rst
@@ -0,0 +1,23 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_hostptr:
+
+acc_hostptr -- Get host pointer associated with specific device address.
+************************************************************************
+
+Description
+ This function returns the host address that has been mapped to the
+ device address specified by :samp:`{d}`.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void *acc_hostptr(d_void *d);``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.29. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accinit.rst b/libgomp/doc/openacc-runtime-library-routines/accinit.rst
new file mode 100644
index 0000000..b656c98
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accinit.rst
@@ -0,0 +1,31 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_init:
+
+acc_init -- Initialize runtime for a specific device type.
+**********************************************************
+
+Description
+ This function initializes the runtime for the device type specified in
+ :samp:`{devicetype}`.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_init(acc_device_t devicetype);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_init(devicetype)``
+ * -
+ - ``integer(acc_device_kind) devicetype``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.7. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accispresent.rst b/libgomp/doc/openacc-runtime-library-routines/accispresent.rst
new file mode 100644
index 0000000..0513f63
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accispresent.rst
@@ -0,0 +1,50 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_is_present:
+
+acc_is_present -- Indicate whether host variable / array is present on device.
+******************************************************************************
+
+Description
+ This function indicates whether the specified host address in :samp:`{a}` and a
+ length of :samp:`{len}` bytes is present on the device. In C/C++, a non-zero
+ value is returned to indicate the presence of the mapped memory on the
+ device. A zero is returned to indicate the memory is not mapped on the
+ device.
+
+ In Fortran, two (2) forms are supported. In the first form, :samp:`{a}` specifies
+ a contiguous array section. The second form :samp:`{a}` specifies a variable or
+ array element and :samp:`{len}` specifies the length in bytes. If the host
+ memory is mapped to device memory, then a ``true`` is returned. Otherwise,
+ a ``false`` is return to indicate the mapped memory is not present.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int acc_is_present(h_void *a, size_t len);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``function acc_is_present(a)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``logical acc_is_present``
+ * - *Interface*:
+ - ``function acc_is_present(a, len)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * -
+ - ``logical acc_is_present``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.30. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accmalloc.rst b/libgomp/doc/openacc-runtime-library-routines/accmalloc.rst
new file mode 100644
index 0000000..2602b9e
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accmalloc.rst
@@ -0,0 +1,23 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_malloc:
+
+acc_malloc -- Allocate device memory.
+*************************************
+
+Description
+ This function allocates :samp:`{len}` bytes of device memory. It returns
+ the device address of the allocated memory.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``d_void* acc_malloc(size_t len);``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.18. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accmapdata.rst b/libgomp/doc/openacc-runtime-library-routines/accmapdata.rst
new file mode 100644
index 0000000..0a58680
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accmapdata.rst
@@ -0,0 +1,24 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_map_data:
+
+acc_map_data -- Map previously allocated device memory to host memory.
+**********************************************************************
+
+Description
+ This function maps previously allocated device and host memory. The device
+ memory is specified with the device address :samp:`{d}`. The host memory is
+ specified with the host address :samp:`{h}` and a length of :samp:`{len}`.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_map_data(h_void *h, d_void *d, size_t len);``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.26. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accmemcpyfromdevice.rst b/libgomp/doc/openacc-runtime-library-routines/accmemcpyfromdevice.rst
new file mode 100644
index 0000000..3e23b5b
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accmemcpyfromdevice.rst
@@ -0,0 +1,24 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_memcpy_from_device:
+
+acc_memcpy_from_device -- Copy device memory to host memory.
+************************************************************
+
+Description
+ This function copies host memory specified by host address of :samp:`{src}` from
+ device memory specified by the device address :samp:`{dest}` for a length of
+ :samp:`{bytes}` bytes.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_memcpy_from_device(d_void *dest, h_void *src, size_t bytes);``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.32. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accmemcpytodevice.rst b/libgomp/doc/openacc-runtime-library-routines/accmemcpytodevice.rst
new file mode 100644
index 0000000..e57c06e
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accmemcpytodevice.rst
@@ -0,0 +1,24 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_memcpy_to_device:
+
+acc_memcpy_to_device -- Copy host memory to device memory.
+**********************************************************
+
+Description
+ This function copies host memory specified by host address of :samp:`{src}` to
+ device memory specified by the device address :samp:`{dest}` for a length of
+ :samp:`{bytes}` bytes.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_memcpy_to_device(d_void *dest, h_void *src, size_t bytes);``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.31. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accondevice.rst b/libgomp/doc/openacc-runtime-library-routines/accondevice.rst
new file mode 100644
index 0000000..f5c8976
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accondevice.rst
@@ -0,0 +1,37 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_on_device:
+
+acc_on_device -- Whether executing on a particular device
+*********************************************************
+
+Description:
+ This function returns whether the program is executing on a particular
+ device specified in :samp:`{devicetype}`. In C/C++ a non-zero value is
+ returned to indicate the device is executing on the specified device type.
+ In Fortran, ``true`` will be returned. If the program is not executing
+ on the specified device type C/C++ will return a zero, while Fortran will
+ return ``false``.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_on_device(acc_device_t devicetype);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``function acc_on_device(devicetype)``
+ * -
+ - ``integer(acc_device_kind) devicetype``
+ * -
+ - ``logical acc_on_device``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.17. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accpresentorcopyin.rst b/libgomp/doc/openacc-runtime-library-routines/accpresentorcopyin.rst
new file mode 100644
index 0000000..5f17155
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accpresentorcopyin.rst
@@ -0,0 +1,58 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_present_or_copyin:
+
+acc_present_or_copyin -- If the data is not present on the device, allocate device memory and copy from host memory.
+********************************************************************************************************************
+
+Description
+ This function tests if the host data specified by :samp:`{a}` and of length
+ :samp:`{len}` is present or not. If it is not present, then device memory
+ will be allocated and the host memory copied. The device address of
+ the newly allocated device memory is returned.
+
+ In Fortran, two (2) forms are supported. In the first form, :samp:`{a}` specifies
+ a contiguous array section. The second form :samp:`{a}` specifies a variable or
+ array element and :samp:`{len}` specifies the length in bytes.
+
+ Note that ``acc_present_or_copyin`` and ``acc_pcopyin`` exist for
+ backward compatibility with OpenACC 2.0; use :ref:`acc_copyin` instead.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void *acc_present_or_copyin(h_void *a, size_t len);``
+ * - *Prototype*:
+ - ``void *acc_pcopyin(h_void *a, size_t len);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_present_or_copyin(a)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * - *Interface*:
+ - ``subroutine acc_present_or_copyin(a, len)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * - *Interface*:
+ - ``subroutine acc_pcopyin(a)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * - *Interface*:
+ - ``subroutine acc_pcopyin(a, len)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.20. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accpresentorcreate.rst b/libgomp/doc/openacc-runtime-library-routines/accpresentorcreate.rst
new file mode 100644
index 0000000..b1bff29
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accpresentorcreate.rst
@@ -0,0 +1,58 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_present_or_create:
+
+acc_present_or_create -- If the data is not present on the device, allocate device memory and map it to host memory.
+********************************************************************************************************************
+
+Description
+ This function tests if the host data specified by :samp:`{a}` and of length
+ :samp:`{len}` is present or not. If it is not present, then device memory
+ will be allocated and mapped to host memory. In C/C++, the device address
+ of the newly allocated device memory is returned.
+
+ In Fortran, two (2) forms are supported. In the first form, :samp:`{a}` specifies
+ a contiguous array section. The second form :samp:`{a}` specifies a variable or
+ array element and :samp:`{len}` specifies the length in bytes.
+
+ Note that ``acc_present_or_create`` and ``acc_pcreate`` exist for
+ backward compatibility with OpenACC 2.0; use :ref:`acc_create` instead.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void *acc_present_or_create(h_void *a, size_t len)``
+ * - *Prototype*:
+ - ``void *acc_pcreate(h_void *a, size_t len)``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_present_or_create(a)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * - *Interface*:
+ - ``subroutine acc_present_or_create(a, len)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * - *Interface*:
+ - ``subroutine acc_pcreate(a)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * - *Interface*:
+ - ``subroutine acc_pcreate(a, len)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.21. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accproflookup.rst b/libgomp/doc/openacc-runtime-library-routines/accproflookup.rst
new file mode 100644
index 0000000..91f3765
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accproflookup.rst
@@ -0,0 +1,25 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_prof_lookup:
+
+acc_prof_lookup -- Obtain inquiry functions.
+********************************************
+
+Description:
+ Function to obtain inquiry functions.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_query_fn acc_prof_lookup (const char *);``
+
+See also:
+ :ref:`openacc-profiling-interface`
+
+Reference:
+ :openacc:`2.6`, section
+ 5.3. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accprofregister.rst b/libgomp/doc/openacc-runtime-library-routines/accprofregister.rst
new file mode 100644
index 0000000..20dbe69
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accprofregister.rst
@@ -0,0 +1,25 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_prof_register:
+
+acc_prof_register -- Register callbacks.
+****************************************
+
+Description:
+ This function registers callbacks.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void acc_prof_register (acc_event_t, acc_prof_callback, acc_register_t);``
+
+See also:
+ :ref:`openacc-profiling-interface`
+
+Reference:
+ :openacc:`2.6`, section
+ 5.3. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accprofunregister.rst b/libgomp/doc/openacc-runtime-library-routines/accprofunregister.rst
new file mode 100644
index 0000000..bc648d2
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accprofunregister.rst
@@ -0,0 +1,25 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_prof_unregister:
+
+acc_prof_unregister -- Unregister callbacks.
+********************************************
+
+Description:
+ This function unregisters callbacks.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void acc_prof_unregister (acc_event_t, acc_prof_callback, acc_register_t);``
+
+See also:
+ :ref:`openacc-profiling-interface`
+
+Reference:
+ :openacc:`2.6`, section
+ 5.3. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accregisterlibrary.rst b/libgomp/doc/openacc-runtime-library-routines/accregisterlibrary.rst
new file mode 100644
index 0000000..befa7d3
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accregisterlibrary.rst
@@ -0,0 +1,25 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_register_library:
+
+acc_register_library -- Library registration.
+*********************************************
+
+Description:
+ Function for library registration.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void acc_register_library (acc_prof_reg, acc_prof_reg, acc_prof_lookup_func);``
+
+See also:
+ :ref:`openacc-profiling-interface`, :ref:`ACC_PROFLIB`
+
+Reference:
+ :openacc:`2.6`, section
+ 5.3. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accsetcudastream.rst b/libgomp/doc/openacc-runtime-library-routines/accsetcudastream.rst
new file mode 100644
index 0000000..d400baa
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accsetcudastream.rst
@@ -0,0 +1,28 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_set_cuda_stream:
+
+acc_set_cuda_stream -- Set CUDA stream handle.
+**********************************************
+
+Description
+ This function associates the stream handle specified by :samp:`{stream}` with
+ the queue :samp:`{async}`.
+
+ This cannot be used to change the stream handle associated with
+ ``acc_async_sync``.
+
+ The return value is not specified.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int acc_set_cuda_stream(int async, void *stream);``
+
+Reference:
+ :openacc:`2.6`, section
+ A.2.1.4. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accsetdevicenum.rst b/libgomp/doc/openacc-runtime-library-routines/accsetdevicenum.rst
new file mode 100644
index 0000000..a87e385
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accsetdevicenum.rst
@@ -0,0 +1,34 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_set_device_num:
+
+acc_set_device_num -- Set device number to use.
+***********************************************
+
+Description
+ This function will indicate to the runtime which device number,
+ specified by :samp:`{devicenum}`, associated with the specified device
+ type :samp:`{devicetype}`.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_set_device_num(int devicenum, acc_device_t devicetype);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_set_device_num(devicenum, devicetype)``
+ * -
+ - ``integer devicenum``
+ * -
+ - ``integer(kind=acc_device_kind) devicetype``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.4. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accsetdevicetype.rst b/libgomp/doc/openacc-runtime-library-routines/accsetdevicetype.rst
new file mode 100644
index 0000000..fa8ca76
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accsetdevicetype.rst
@@ -0,0 +1,31 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_set_device_type:
+
+acc_set_device_type -- Set type of device accelerator to use.
+*************************************************************
+
+Description
+ This function indicates to the runtime library which device type, specified
+ in :samp:`{devicetype}`, to use when executing a parallel or kernels region.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_set_device_type(acc_device_t devicetype);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_set_device_type(devicetype)``
+ * -
+ - ``integer(kind=acc_device_kind) devicetype``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.2. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accshutdown.rst b/libgomp/doc/openacc-runtime-library-routines/accshutdown.rst
new file mode 100644
index 0000000..f214d4d
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accshutdown.rst
@@ -0,0 +1,31 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_shutdown:
+
+acc_shutdown -- Shuts down the runtime for a specific device type.
+******************************************************************
+
+Description
+ This function shuts down the runtime for the device type specified in
+ :samp:`{devicetype}`.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_shutdown(acc_device_t devicetype);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_shutdown(devicetype)``
+ * -
+ - ``integer(acc_device_kind) devicetype``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.8. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accunmapdata.rst b/libgomp/doc/openacc-runtime-library-routines/accunmapdata.rst
new file mode 100644
index 0000000..bea0388
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accunmapdata.rst
@@ -0,0 +1,23 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_unmap_data:
+
+acc_unmap_data -- Unmap device memory from host memory.
+*******************************************************
+
+Description
+ This function unmaps previously mapped device and host memory. The latter
+ specified by :samp:`{h}`.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_unmap_data(h_void *h);``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.27. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accupdatedevice.rst b/libgomp/doc/openacc-runtime-library-routines/accupdatedevice.rst
new file mode 100644
index 0000000..6fbc269e
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accupdatedevice.rst
@@ -0,0 +1,58 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_update_device:
+
+acc_update_device -- Update device memory from mapped host memory.
+******************************************************************
+
+Description
+ This function updates the device copy from the previously mapped host memory.
+ The host memory is specified with the host address :samp:`{a}` and a length of
+ :samp:`{len}` bytes.
+
+ In Fortran, two (2) forms are supported. In the first form, :samp:`{a}` specifies
+ a contiguous array section. The second form :samp:`{a}` specifies a variable or
+ array element and :samp:`{len}` specifies the length in bytes.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_update_device(h_void *a, size_t len);``
+ * - *Prototype*:
+ - ``acc_update_device(h_void *a, size_t len, async);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_update_device(a)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * - *Interface*:
+ - ``subroutine acc_update_device(a, len)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * - *Interface*:
+ - ``subroutine acc_update_device_async(a, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+ * - *Interface*:
+ - ``subroutine acc_update_device_async(a, len, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.24. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accupdateself.rst b/libgomp/doc/openacc-runtime-library-routines/accupdateself.rst
new file mode 100644
index 0000000..b1eabb9
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accupdateself.rst
@@ -0,0 +1,58 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_update_self:
+
+acc_update_self -- Update host memory from mapped device memory.
+****************************************************************
+
+Description
+ This function updates the host copy from the previously mapped device memory.
+ The host memory is specified with the host address :samp:`{a}` and a length of
+ :samp:`{len}` bytes.
+
+ In Fortran, two (2) forms are supported. In the first form, :samp:`{a}` specifies
+ a contiguous array section. The second form :samp:`{a}` specifies a variable or
+ array element and :samp:`{len}` specifies the length in bytes.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_update_self(h_void *a, size_t len);``
+ * - *Prototype*:
+ - ``acc_update_self_async(h_void *a, size_t len, int async);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_update_self(a)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * - *Interface*:
+ - ``subroutine acc_update_self(a, len)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * - *Interface*:
+ - ``subroutine acc_update_self_async(a, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+ * - *Interface*:
+ - ``subroutine acc_update_self_async(a, len, async)``
+ * -
+ - ``type, dimension(:[,:]...) :: a``
+ * -
+ - ``integer len``
+ * -
+ - ``integer(acc_handle_kind) :: async``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.25. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accwait.rst b/libgomp/doc/openacc-runtime-library-routines/accwait.rst
new file mode 100644
index 0000000..27dc78d
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accwait.rst
@@ -0,0 +1,37 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_wait:
+
+acc_wait -- Wait for completion of a specific asynchronous operation.
+*********************************************************************
+
+Description
+ This function waits for completion of the asynchronous operation
+ specified in :samp:`{arg}`.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_wait(arg);``
+ * - *Prototype (OpenACC 1.0 compatibility)*:
+ - ``acc_async_wait(arg);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_wait(arg)``
+ * -
+ - ``integer(acc_handle_kind) arg``
+ * - *Interface (OpenACC 1.0 compatibility)*:
+ - ``subroutine acc_async_wait(arg)``
+ * -
+ - ``integer(acc_handle_kind) arg``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.11. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accwaitall.rst b/libgomp/doc/openacc-runtime-library-routines/accwaitall.rst
new file mode 100644
index 0000000..398c248
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accwaitall.rst
@@ -0,0 +1,32 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_wait_all:
+
+acc_wait_all -- Waits for completion of all asynchronous operations.
+********************************************************************
+
+Description
+ This function waits for the completion of all asynchronous operations.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_wait_all(void);``
+ * - *Prototype (OpenACC 1.0 compatibility)*:
+ - ``acc_async_wait_all(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_wait_all()``
+ * - *Interface (OpenACC 1.0 compatibility)*:
+ - ``subroutine acc_async_wait_all()``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.13. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accwaitallasync.rst b/libgomp/doc/openacc-runtime-library-routines/accwaitallasync.rst
new file mode 100644
index 0000000..6589f2a
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accwaitallasync.rst
@@ -0,0 +1,32 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_wait_all_async:
+
+acc_wait_all_async -- Wait for completion of all asynchronous operations.
+*************************************************************************
+
+Description
+ This function enqueues a wait operation on the queue :samp:`{async}` for any
+ and all asynchronous operations that have been previously enqueued on
+ any queue.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_wait_all_async(int async);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_wait_all_async(async)``
+ * -
+ - ``integer(acc_handle_kind) async``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.14. \ No newline at end of file
diff --git a/libgomp/doc/openacc-runtime-library-routines/accwaitasync.rst b/libgomp/doc/openacc-runtime-library-routines/accwaitasync.rst
new file mode 100644
index 0000000..1fbb54b
--- /dev/null
+++ b/libgomp/doc/openacc-runtime-library-routines/accwaitasync.rst
@@ -0,0 +1,31 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _acc_wait_async:
+
+acc_wait_async -- Wait for completion of asynchronous operations.
+*****************************************************************
+
+Description
+ This function enqueues a wait operation on queue :samp:`{async}` for any and all
+ asynchronous operations enqueued on queue :samp:`{arg}`.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``acc_wait_async(int arg, int async);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine acc_wait_async(arg, async)``
+ * -
+ - ``integer(acc_handle_kind) arg, async``
+
+Reference:
+ :openacc:`2.6`, section
+ 3.2.12. \ No newline at end of file
diff --git a/libgomp/doc/openmp-context-selectors.rst b/libgomp/doc/openmp-context-selectors.rst
new file mode 100644
index 0000000..8a32cf1
--- /dev/null
+++ b/libgomp/doc/openmp-context-selectors.rst
@@ -0,0 +1,28 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _openmp-context-selectors:
+
+OpenMP Context Selectors
+************************
+
+``vendor`` is always ``gnu``. References are to the GCC manual.
+
+.. list-table::
+ :header-rows: 1
+
+ * - ``arch``
+ - ``kind``
+ - ``isa``
+
+ * - ``x86``, ``x86_64``, ``i386``, ``i486``, ``i586``, ``i686``, ``ia32``
+ - ``host``
+ - See ``-m...`` flags in :ref:`gcc:x86-options` (without ``-m``)
+ * - ``amdgcn``, ``gcn``
+ - ``gpu``
+ - See ``-march=`` in :ref:`gcc:amd-gcn-options`
+ * - ``nvptx``
+ - ``gpu``
+ - See ``-march=`` in :ref:`gcc:nvidia-ptx-options` \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables.rst b/libgomp/doc/openmp-environment-variables.rst
new file mode 100644
index 0000000..0893e8d
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables.rst
@@ -0,0 +1,39 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _environment-variables:
+
+OpenMP Environment Variables
+----------------------------
+
+The environment variables which beginning with :envvar:`OMP_` are defined by
+section 4 of the OpenMP specification in version 4.5, while those
+beginning with :envvar:`GOMP_` are GNU extensions.
+
+.. toctree::
+ :maxdepth: 2
+
+ openmp-environment-variables/ompcancellation
+ openmp-environment-variables/ompdisplayenv
+ openmp-environment-variables/ompdefaultdevice
+ openmp-environment-variables/ompdynamic
+ openmp-environment-variables/ompmaxactivelevels
+ openmp-environment-variables/ompmaxtaskpriority
+ openmp-environment-variables/ompnested
+ openmp-environment-variables/ompnumteams
+ openmp-environment-variables/ompnumthreads
+ openmp-environment-variables/ompprocbind
+ openmp-environment-variables/ompplaces
+ openmp-environment-variables/ompstacksize
+ openmp-environment-variables/ompschedule
+ openmp-environment-variables/omptargetoffload
+ openmp-environment-variables/ompteamsthreadlimit
+ openmp-environment-variables/ompthreadlimit
+ openmp-environment-variables/ompwaitpolicy
+ openmp-environment-variables/gompcpuaffinity
+ openmp-environment-variables/gompdebug
+ openmp-environment-variables/gompstacksize
+ openmp-environment-variables/gompspincount
+ openmp-environment-variables/gomprtemsthreadpools \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/gompcpuaffinity.rst b/libgomp/doc/openmp-environment-variables/gompcpuaffinity.rst
new file mode 100644
index 0000000..9b15d11
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/gompcpuaffinity.rst
@@ -0,0 +1,37 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable
+
+.. _gomp_cpu_affinity:
+
+GOMP_CPU_AFFINITY -- Bind threads to specific CPUs
+**************************************************
+
+Description:
+ Binds threads to specific CPUs. The variable should contain a space-separated
+ or comma-separated list of CPUs. This list may contain different kinds of
+ entries: either single CPU numbers in any order, a range of CPUs (M-N)
+ or a range with some stride (M-N:S). CPU numbers are zero based. For example,
+ ``GOMP_CPU_AFFINITY="0 3 1-2 4-15:2"`` will bind the initial thread
+ to CPU 0, the second to CPU 3, the third to CPU 1, the fourth to
+ CPU 2, the fifth to CPU 4, the sixth through tenth to CPUs 6, 8, 10, 12,
+ and 14 respectively and then start assigning back from the beginning of
+ the list. ``GOMP_CPU_AFFINITY=0`` binds all threads to CPU 0.
+
+ There is no libgomp library routine to determine whether a CPU affinity
+ specification is in effect. As a workaround, language-specific library
+ functions, e.g., ``getenv`` in C or ``GET_ENVIRONMENT_VARIABLE`` in
+ Fortran, may be used to query the setting of the ``GOMP_CPU_AFFINITY``
+ environment variable. A defined CPU affinity on startup cannot be changed
+ or disabled during the runtime of the application.
+
+ If both :envvar:`GOMP_CPU_AFFINITY` and :envvar:`OMP_PROC_BIND` are set,
+ :envvar:`OMP_PROC_BIND` has a higher precedence. If neither has been set and
+ :envvar:`OMP_PROC_BIND` is unset, or when :envvar:`OMP_PROC_BIND` is set to
+ ``FALSE``, the host system will handle the assignment of threads to CPUs.
+
+See also:
+ :ref:`OMP_PLACES`, :ref:`OMP_PROC_BIND` \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/gompdebug.rst b/libgomp/doc/openmp-environment-variables/gompdebug.rst
new file mode 100644
index 0000000..3961953
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/gompdebug.rst
@@ -0,0 +1,18 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable
+
+.. _gomp_debug:
+
+GOMP_DEBUG -- Enable debugging output
+*************************************
+
+Description:
+ Enable debugging output. The variable should be set to ``0``
+ (disabled, also the default if not set), or ``1`` (enabled).
+
+ If enabled, some debugging output will be printed during execution.
+ This is currently not specified in more detail, and subject to change. \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/gomprtemsthreadpools.rst b/libgomp/doc/openmp-environment-variables/gomprtemsthreadpools.rst
new file mode 100644
index 0000000..cb92175
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/gomprtemsthreadpools.rst
@@ -0,0 +1,46 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable, Implementation specific setting
+
+.. _gomp_rtems_thread_pools:
+
+GOMP_RTEMS_THREAD_POOLS -- Set the RTEMS specific thread pools
+**************************************************************
+
+Description:
+ This environment variable is only used on the RTEMS real-time operating system.
+ It determines the scheduler instance specific thread pools. The format for
+ :envvar:`GOMP_RTEMS_THREAD_POOLS` is a list of optional
+ ``<thread-pool-count>[$<priority>]@<scheduler-name>`` configurations
+ separated by ``:`` where:
+
+ * ``<thread-pool-count>`` is the thread pool count for this scheduler
+ instance.
+
+ * ``$<priority>`` is an optional priority for the worker threads of a
+ thread pool according to ``pthread_setschedparam``. In case a priority
+ value is omitted, then a worker thread will inherit the priority of the OpenMP
+ primary thread that created it. The priority of the worker thread is not
+ changed after creation, even if a new OpenMP primary thread using the worker has
+ a different priority.
+
+ * ``@<scheduler-name>`` is the scheduler instance name according to the
+ RTEMS application configuration.
+
+ In case no thread pool configuration is specified for a scheduler instance,
+ then each OpenMP primary thread of this scheduler instance will use its own
+ dynamically allocated thread pool. To limit the worker thread count of the
+ thread pools, each OpenMP primary thread must call ``omp_set_num_threads``.
+
+Example:
+ Lets suppose we have three scheduler instances ``IO``, ``WRK0``, and
+ ``WRK1`` with :envvar:`GOMP_RTEMS_THREAD_POOLS` set to
+ ``"1@WRK0:3$4@WRK1"``. Then there are no thread pool restrictions for
+ scheduler instance ``IO``. In the scheduler instance ``WRK0`` there is
+ one thread pool available. Since no priority is specified for this scheduler
+ instance, the worker thread inherits the priority of the OpenMP primary thread
+ that created it. In the scheduler instance ``WRK1`` there are three thread
+ pools available and their worker threads run at priority four. \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/gompspincount.rst b/libgomp/doc/openmp-environment-variables/gompspincount.rst
new file mode 100644
index 0000000..7bd819b
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/gompspincount.rst
@@ -0,0 +1,30 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable, Implementation specific setting
+
+.. _gomp_spincount:
+
+GOMP_SPINCOUNT -- Set the busy-wait spin count
+**********************************************
+
+Description:
+ Determines how long a threads waits actively with consuming CPU power
+ before waiting passively without consuming CPU power. The value may be
+ either ``INFINITE``, ``INFINITY`` to always wait actively or an
+ integer which gives the number of spins of the busy-wait loop. The
+ integer may optionally be followed by the following suffixes acting
+ as multiplication factors: ``k`` (kilo, thousand), ``M`` (mega,
+ million), ``G`` (giga, billion), or ``T`` (tera, trillion).
+ If undefined, 0 is used when :envvar:`OMP_WAIT_POLICY` is ``PASSIVE``,
+ 300,000 is used when :envvar:`OMP_WAIT_POLICY` is undefined and
+ 30 billion is used when :envvar:`OMP_WAIT_POLICY` is ``ACTIVE``.
+ If there are more OpenMP threads than available CPUs, 1000 and 100
+ spins are used for :envvar:`OMP_WAIT_POLICY` being ``ACTIVE`` or
+ undefined, respectively; unless the :envvar:`GOMP_SPINCOUNT` is lower
+ or :envvar:`OMP_WAIT_POLICY` is ``PASSIVE``.
+
+See also:
+ :ref:`OMP_WAIT_POLICY` \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/gompstacksize.rst b/libgomp/doc/openmp-environment-variables/gompstacksize.rst
new file mode 100644
index 0000000..c07a391
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/gompstacksize.rst
@@ -0,0 +1,25 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable, Implementation specific setting
+
+.. _gomp_stacksize:
+
+GOMP_STACKSIZE -- Set default thread stack size
+***********************************************
+
+Description:
+ Set the default thread stack size in kilobytes. This is different from
+ ``pthread_attr_setstacksize`` which gets the number of bytes as an
+ argument. If the stack size cannot be set due to system constraints, an
+ error is reported and the initial stack size is left unchanged. If undefined,
+ the stack size is system dependent.
+
+See also:
+ :ref:`OMP_STACKSIZE`
+
+Reference:
+ `GCC Patches Mailinglist <https://gcc.gnu.org/ml/gcc-patches/2006-06/msg00493.html>`_,
+ `GCC Patches Mailinglist (2) <https://gcc.gnu.org/ml/gcc-patches/2006-06/msg00496.html>`_ \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompcancellation.rst b/libgomp/doc/openmp-environment-variables/ompcancellation.rst
new file mode 100644
index 0000000..b17cf4c
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompcancellation.rst
@@ -0,0 +1,21 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable
+
+.. _omp_cancellation:
+
+OMP_CANCELLATION -- Set whether cancellation is activated
+*********************************************************
+
+Description:
+ If set to ``TRUE``, the cancellation is activated. If set to ``FALSE`` or
+ if unset, cancellation is disabled and the ``cancel`` construct is ignored.
+
+See also:
+ :ref:`omp_get_cancellation`
+
+Reference:
+ :openmp:`4.5`, Section 4.11 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompdefaultdevice.rst b/libgomp/doc/openmp-environment-variables/ompdefaultdevice.rst
new file mode 100644
index 0000000..8138903
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompdefaultdevice.rst
@@ -0,0 +1,24 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable
+
+.. _omp_default_device:
+
+OMP_DEFAULT_DEVICE -- Set the device used in target regions
+***********************************************************
+
+Description:
+ Set to choose the device which is used in a ``target`` region, unless the
+ value is overridden by ``omp_set_default_device`` or by a ``device``
+ clause. The value shall be the nonnegative device number. If no device with
+ the given device number exists, the code is executed on the host. If unset,
+ device number 0 will be used.
+
+See also:
+ :ref:`omp_get_default_device`, :ref:`omp_set_default_device`,
+
+Reference:
+ :openmp:`4.5`, Section 4.13 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompdisplayenv.rst b/libgomp/doc/openmp-environment-variables/ompdisplayenv.rst
new file mode 100644
index 0000000..684d3f2
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompdisplayenv.rst
@@ -0,0 +1,21 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable
+
+.. _omp_display_env:
+
+OMP_DISPLAY_ENV -- Show OpenMP version and environment variables
+****************************************************************
+
+Description:
+ If set to ``TRUE``, the OpenMP version number and the values
+ associated with the OpenMP environment variables are printed to ``stderr``.
+ If set to ``VERBOSE``, it additionally shows the value of the environment
+ variables which are GNU extensions. If undefined or set to ``FALSE``,
+ this information will not be shown.
+
+Reference:
+ :openmp:`4.5`, Section 4.12 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompdynamic.rst b/libgomp/doc/openmp-environment-variables/ompdynamic.rst
new file mode 100644
index 0000000..ab66f41
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompdynamic.rst
@@ -0,0 +1,23 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable
+
+.. _omp_dynamic:
+
+OMP_DYNAMIC -- Dynamic adjustment of threads
+********************************************
+
+Description:
+ Enable or disable the dynamic adjustment of the number of threads
+ within a team. The value of this environment variable shall be
+ ``TRUE`` or ``FALSE``. If undefined, dynamic adjustment is
+ disabled by default.
+
+See also:
+ :ref:`omp_set_dynamic`
+
+Reference:
+ :openmp:`4.5`, Section 4.3 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompmaxactivelevels.rst b/libgomp/doc/openmp-environment-variables/ompmaxactivelevels.rst
new file mode 100644
index 0000000..505055f
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompmaxactivelevels.rst
@@ -0,0 +1,26 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable
+
+.. _omp_max_active_levels:
+
+OMP_MAX_ACTIVE_LEVELS -- Set the maximum number of nested parallel regions
+**************************************************************************
+
+Description:
+ Specifies the initial value for the maximum number of nested parallel
+ regions. The value of this variable shall be a positive integer.
+ If undefined, then if :envvar:`OMP_NESTED` is defined and set to true, or
+ if :envvar:`OMP_NUM_THREADS` or :envvar:`OMP_PROC_BIND` are defined and set to
+ a list with more than one item, the maximum number of nested parallel
+ regions will be initialized to the largest number supported, otherwise
+ it will be set to one.
+
+See also:
+ :ref:`omp_set_max_active_levels`, :ref:`OMP_NESTED`
+
+Reference:
+ :openmp:`4.5`, Section 4.9 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompmaxtaskpriority.rst b/libgomp/doc/openmp-environment-variables/ompmaxtaskpriority.rst
new file mode 100644
index 0000000..56f79e9
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompmaxtaskpriority.rst
@@ -0,0 +1,25 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_max_task_priority:
+
+OMP_MAX_TASK_PRIORITY -- Set the maximum priority
+*************************************************
+
+number that can be set for a task.
+
+.. index:: Environment Variable
+
+Description:
+ Specifies the initial value for the maximum priority value that can be
+ set for a task. The value of this variable shall be a non-negative
+ integer, and zero is allowed. If undefined, the default priority is
+ 0.
+
+See also:
+ :ref:`omp_get_max_task_priority`
+
+Reference:
+ :openmp:`4.5`, Section 4.14 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompnested.rst b/libgomp/doc/openmp-environment-variables/ompnested.rst
new file mode 100644
index 0000000..683b044
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompnested.rst
@@ -0,0 +1,28 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable, Implementation specific setting
+
+.. _omp_nested:
+
+OMP_NESTED -- Nested parallel regions
+*************************************
+
+Description:
+ Enable or disable nested parallel regions, i.e., whether team members
+ are allowed to create new teams. The value of this environment variable
+ shall be ``TRUE`` or ``FALSE``. If set to ``TRUE``, the number
+ of maximum active nested regions supported will by default be set to the
+ maximum supported, otherwise it will be set to one. If
+ :envvar:`OMP_MAX_ACTIVE_LEVELS` is defined, its setting will override this
+ setting. If both are undefined, nested parallel regions are enabled if
+ :envvar:`OMP_NUM_THREADS` or :envvar:`OMP_PROC_BINDS` are defined to a list with
+ more than one item, otherwise they are disabled by default.
+
+See also:
+ :ref:`omp_set_max_active_levels`, :ref:`omp_set_nested`
+
+Reference:
+ :openmp:`4.5`, Section 4.6 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompnumteams.rst b/libgomp/doc/openmp-environment-variables/ompnumteams.rst
new file mode 100644
index 0000000..4a1ed15
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompnumteams.rst
@@ -0,0 +1,23 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable
+
+.. _omp_num_teams:
+
+OMP_NUM_TEAMS -- Specifies the number of teams to use by teams region
+*********************************************************************
+
+Description:
+ Specifies the upper bound for number of teams to use in teams regions
+ without explicit ``num_teams`` clause. The value of this variable shall
+ be a positive integer. If undefined it defaults to 0 which means
+ implementation defined upper bound.
+
+See also:
+ :ref:`omp_set_num_teams`
+
+Reference:
+ :openmp:`5.1`, Section 6.23 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompnumthreads.rst b/libgomp/doc/openmp-environment-variables/ompnumthreads.rst
new file mode 100644
index 0000000..224a7d0
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompnumthreads.rst
@@ -0,0 +1,24 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable, Implementation specific setting
+
+.. _omp_num_threads:
+
+OMP_NUM_THREADS -- Specifies the number of threads to use
+*********************************************************
+
+Description:
+ Specifies the default number of threads to use in parallel regions. The
+ value of this variable shall be a comma-separated list of positive integers;
+ the value specifies the number of threads to use for the corresponding nested
+ level. Specifying more than one item in the list will automatically enable
+ nesting by default. If undefined one thread per CPU is used.
+
+See also:
+ :ref:`omp_set_num_threads`, :ref:`OMP_NESTED`
+
+Reference:
+ :openmp:`4.5`, Section 4.2 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompplaces.rst b/libgomp/doc/openmp-environment-variables/ompplaces.rst
new file mode 100644
index 0000000..e78bd0a
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompplaces.rst
@@ -0,0 +1,54 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable
+
+.. _omp_places:
+
+OMP_PLACES -- Specifies on which CPUs the theads should be placed
+*****************************************************************
+
+Description:
+ The thread placement can be either specified using an abstract name or by an
+ explicit list of the places. The abstract names ``threads``, ``cores``,
+ ``sockets``, ``ll_caches`` and ``numa_domains`` can be optionally
+ followed by a positive number in parentheses, which denotes the how many places
+ shall be created. With ``threads`` each place corresponds to a single
+ hardware thread; ``cores`` to a single core with the corresponding number of
+ hardware threads; with ``sockets`` the place corresponds to a single
+ socket; with ``ll_caches`` to a set of cores that shares the last level
+ cache on the device; and ``numa_domains`` to a set of cores for which their
+ closest memory on the device is the same memory and at a similar distance from
+ the cores. The resulting placement can be shown by setting the
+ :envvar:`OMP_DISPLAY_ENV` environment variable.
+
+ Alternatively, the placement can be specified explicitly as comma-separated
+ list of places. A place is specified by set of nonnegative numbers in curly
+ braces, denoting the hardware threads. The curly braces can be omitted
+ when only a single number has been specified. The hardware threads
+ belonging to a place can either be specified as comma-separated list of
+ nonnegative thread numbers or using an interval. Multiple places can also be
+ either specified by a comma-separated list of places or by an interval. To
+ specify an interval, a colon followed by the count is placed after
+ the hardware thread number or the place. Optionally, the length can be
+ followed by a colon and the stride number -- otherwise a unit stride is
+ assumed. Placing an exclamation mark (``!``) directly before a curly
+ brace or numbers inside the curly braces (excluding intervals) will
+ exclude those hardware threads.
+
+ For instance, the following specifies the same places list:
+ ``"{0,1,2}, {3,4,6}, {7,8,9}, {10,11,12}"`` ;
+ ``"{0:3}, {3:3}, {7:3}, {10:3}"`` ; and ``"{0:2}:4:3"``.
+
+ If :envvar:`OMP_PLACES` and :envvar:`GOMP_CPU_AFFINITY` are unset and
+ :envvar:`OMP_PROC_BIND` is either unset or ``false``, threads may be moved
+ between CPUs following no placement policy.
+
+See also:
+ :ref:`OMP_PROC_BIND`, :ref:`GOMP_CPU_AFFINITY`, :ref:`omp_get_proc_bind`,
+ :ref:`OMP_DISPLAY_ENV`
+
+Reference:
+ :openmp:`4.5`, Section 4.5 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompprocbind.rst b/libgomp/doc/openmp-environment-variables/ompprocbind.rst
new file mode 100644
index 0000000..22a9473
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompprocbind.rst
@@ -0,0 +1,34 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable
+
+.. _omp_proc_bind:
+
+OMP_PROC_BIND -- Whether theads may be moved between CPUs
+*********************************************************
+
+Description:
+ Specifies whether threads may be moved between processors. If set to
+ ``TRUE``, OpenMP theads should not be moved; if set to ``FALSE``
+ they may be moved. Alternatively, a comma separated list with the
+ values ``PRIMARY``, ``MASTER``, ``CLOSE`` and ``SPREAD`` can
+ be used to specify the thread affinity policy for the corresponding nesting
+ level. With ``PRIMARY`` and ``MASTER`` the worker threads are in the
+ same place partition as the primary thread. With ``CLOSE`` those are
+ kept close to the primary thread in contiguous place partitions. And
+ with ``SPREAD`` a sparse distribution
+ across the place partitions is used. Specifying more than one item in the
+ list will automatically enable nesting by default.
+
+ When undefined, :envvar:`OMP_PROC_BIND` defaults to ``TRUE`` when
+ :envvar:`OMP_PLACES` or :envvar:`GOMP_CPU_AFFINITY` is set and ``FALSE`` otherwise.
+
+See also:
+ :ref:`omp_get_proc_bind`, :ref:`GOMP_CPU_AFFINITY`,
+ :ref:`OMP_NESTED`, :ref:`OMP_PLACES`
+
+Reference:
+ :openmp:`4.5`, Section 4.4 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompschedule.rst b/libgomp/doc/openmp-environment-variables/ompschedule.rst
new file mode 100644
index 0000000..b8b6c41
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompschedule.rst
@@ -0,0 +1,24 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable, Implementation specific setting
+
+.. _omp_schedule:
+
+OMP_SCHEDULE -- How threads are scheduled
+*****************************************
+
+Description:
+ Allows to specify ``schedule type`` and ``chunk size``.
+ The value of the variable shall have the form: ``type[,chunk]`` where
+ ``type`` is one of ``static``, ``dynamic``, ``guided`` or ``auto``
+ The optional ``chunk`` size shall be a positive integer. If undefined,
+ dynamic scheduling and a chunk size of 1 is used.
+
+See also:
+ :ref:`omp_set_schedule`
+
+Reference:
+ :openmp:`4.5`, Sections 2.7.1.1 and 4.1 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompstacksize.rst b/libgomp/doc/openmp-environment-variables/ompstacksize.rst
new file mode 100644
index 0000000..1523552
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompstacksize.rst
@@ -0,0 +1,24 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable
+
+.. _omp_stacksize:
+
+OMP_STACKSIZE -- Set default thread stack size
+**********************************************
+
+Description:
+ Set the default thread stack size in kilobytes, unless the number
+ is suffixed by ``B``, ``K``, ``M`` or ``G``, in which
+ case the size is, respectively, in bytes, kilobytes, megabytes
+ or gigabytes. This is different from ``pthread_attr_setstacksize``
+ which gets the number of bytes as an argument. If the stack size cannot
+ be set due to system constraints, an error is reported and the initial
+ stack size is left unchanged. If undefined, the stack size is system
+ dependent.
+
+Reference:
+ :openmp:`4.5`, Section 4.7 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/omptargetoffload.rst b/libgomp/doc/openmp-environment-variables/omptargetoffload.rst
new file mode 100644
index 0000000..4aaba8e
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/omptargetoffload.rst
@@ -0,0 +1,27 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable, Implementation specific setting
+
+.. _omp_target_offload:
+
+OMP_TARGET_OFFLOAD -- Controls offloading behaviour
+***************************************************
+
+Description:
+ Specifies the behaviour with regard to offloading code to a device. This
+ variable can be set to one of three values - ``MANDATORY``, ``DISABLED``
+ or ``DEFAULT``.
+
+ If set to ``MANDATORY``, the program will terminate with an error if
+ the offload device is not present or is not supported. If set to
+ ``DISABLED``, then offloading is disabled and all code will run on the
+ host. If set to ``DEFAULT``, the program will try offloading to the
+ device first, then fall back to running code on the host if it cannot.
+
+ If undefined, then the program will behave as if ``DEFAULT`` was set.
+
+Reference:
+ :openmp:`5.0`, Section 6.17 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompteamsthreadlimit.rst b/libgomp/doc/openmp-environment-variables/ompteamsthreadlimit.rst
new file mode 100644
index 0000000..1865428
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompteamsthreadlimit.rst
@@ -0,0 +1,24 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable
+
+.. _omp_teams_thread_limit:
+
+OMP_TEAMS_THREAD_LIMIT -- Set the maximum number of threads imposed by teams
+****************************************************************************
+
+Description:
+ Specifies an upper bound for the number of threads to use by each contention
+ group created by a teams construct without explicit ``thread_limit``
+ clause. The value of this variable shall be a positive integer. If undefined,
+ the value of 0 is used which stands for an implementation defined upper
+ limit.
+
+See also:
+ :ref:`OMP_THREAD_LIMIT`, :ref:`omp_set_teams_thread_limit`
+
+Reference:
+ :openmp:`5.1`, Section 6.24 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompthreadlimit.rst b/libgomp/doc/openmp-environment-variables/ompthreadlimit.rst
new file mode 100644
index 0000000..3157eda
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompthreadlimit.rst
@@ -0,0 +1,22 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable
+
+.. _omp_thread_limit:
+
+OMP_THREAD_LIMIT -- Set the maximum number of threads
+*****************************************************
+
+Description:
+ Specifies the number of threads to use for the whole program. The
+ value of this variable shall be a positive integer. If undefined,
+ the number of threads is not limited.
+
+See also:
+ :ref:`OMP_NUM_THREADS`, :ref:`omp_get_thread_limit`
+
+Reference:
+ :openmp:`4.5`, Section 4.10 \ No newline at end of file
diff --git a/libgomp/doc/openmp-environment-variables/ompwaitpolicy.rst b/libgomp/doc/openmp-environment-variables/ompwaitpolicy.rst
new file mode 100644
index 0000000..c88f0fd
--- /dev/null
+++ b/libgomp/doc/openmp-environment-variables/ompwaitpolicy.rst
@@ -0,0 +1,24 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. index:: Environment Variable
+
+.. _omp_wait_policy:
+
+OMP_WAIT_POLICY -- How waiting threads are handled
+**************************************************
+
+Description:
+ Specifies whether waiting threads should be active or passive. If
+ the value is ``PASSIVE``, waiting threads should not consume CPU
+ power while waiting; while the value is ``ACTIVE`` specifies that
+ they should. If undefined, threads wait actively for a short time
+ before waiting passively.
+
+See also:
+ :ref:`GOMP_SPINCOUNT`
+
+Reference:
+ :openmp:`4.5`, Section 4.8 \ No newline at end of file
diff --git a/libgomp/doc/openmp-implementation-specifics.rst b/libgomp/doc/openmp-implementation-specifics.rst
new file mode 100644
index 0000000..1a18bde
--- /dev/null
+++ b/libgomp/doc/openmp-implementation-specifics.rst
@@ -0,0 +1,15 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _openmp-implementation-specifics:
+
+OpenMP-Implementation Specifics
+-------------------------------
+
+.. toctree::
+ :maxdepth: 2
+
+ openmp-context-selectors
+ memory-allocation-with-libmemkind \ No newline at end of file
diff --git a/libgomp/doc/openmp-implementation-status.rst b/libgomp/doc/openmp-implementation-status.rst
new file mode 100644
index 0000000..223ee68
--- /dev/null
+++ b/libgomp/doc/openmp-implementation-status.rst
@@ -0,0 +1,21 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _openmp-implementation-status:
+
+OpenMP Implementation Status
+----------------------------
+
+The ``_OPENMP`` preprocessor macro and Fortran's ``openmp_version``
+parameter, provided by ``omp_lib.h`` and the ``omp_lib`` module, have
+the value ``201511`` (i.e. OpenMP 4.5).
+
+.. toctree::
+ :maxdepth: 2
+
+ openmp-implementation-status/openmp-45
+ openmp-implementation-status/openmp-50
+ openmp-implementation-status/openmp-51
+ openmp-implementation-status/openmp-52 \ No newline at end of file
diff --git a/libgomp/doc/openmp-implementation-status/openmp-45.rst b/libgomp/doc/openmp-implementation-status/openmp-45.rst
new file mode 100644
index 0000000..bd77b0d
--- /dev/null
+++ b/libgomp/doc/openmp-implementation-status/openmp-45.rst
@@ -0,0 +1,11 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _openmp-4.5:
+
+OpenMP 4.5
+**********
+
+The OpenMP 4.5 specification is fully supported. \ No newline at end of file
diff --git a/libgomp/doc/openmp-implementation-status/openmp-50.rst b/libgomp/doc/openmp-implementation-status/openmp-50.rst
new file mode 100644
index 0000000..c5127a0
--- /dev/null
+++ b/libgomp/doc/openmp-implementation-status/openmp-50.rst
@@ -0,0 +1,212 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _openmp-5.0:
+
+OpenMP 5.0
+**********
+
+New features listed in Appendix B of the OpenMP specification
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. This list is sorted as in OpenMP 5.1's B.3 not as in OpenMP 5.0's B.2
+
+.. list-table::
+ :header-rows: 1
+ :widths: 50 10 25
+
+ * - Description
+ - Status
+ - Comments
+
+ * - Array shaping
+ - N
+ -
+ * - Array sections with non-unit strides in C and C++
+ - N
+ -
+ * - Iterators
+ - Y
+ -
+ * - ``metadirective`` directive
+ - N
+ -
+ * - ``declare variant`` directive
+ - P
+ - *simd* traits not handled correctly
+ * - *target-offload-var* ICV and ``OMP_TARGET_OFFLOAD`` env variable
+ - Y
+ -
+ * - Nested-parallel changes to *max-active-levels-var* ICV
+ - Y
+ -
+ * - ``requires`` directive
+ - P
+ - complete but no non-host devices provides ``unified_address``, ``unified_shared_memory`` or ``reverse_offload``
+ * - ``teams`` construct outside an enclosing target region
+ - Y
+ -
+ * - Non-rectangular loop nests
+ - Y
+ -
+ * - ``!=`` as relational-op in canonical loop form for C/C++
+ - Y
+ -
+ * - ``nonmonotonic`` as default loop schedule modifier for worksharing-loop constructs
+ - Y
+ -
+ * - Collapse of associated loops that are imperfectly nested loops
+ - N
+ -
+ * - Clauses ``if``, ``nontemporal`` and ``order(concurrent)`` in ``simd`` construct
+ - Y
+ -
+ * - ``atomic`` constructs in ``simd``
+ - Y
+ -
+ * - ``loop`` construct
+ - Y
+ -
+ * - ``order(concurrent)`` clause
+ - Y
+ -
+ * - ``scan`` directive and ``in_scan`` modifier for the ``reduction`` clause
+ - Y
+ -
+ * - ``in_reduction`` clause on ``task`` constructs
+ - Y
+ -
+ * - ``in_reduction`` clause on ``target`` constructs
+ - P
+ - ``nowait`` only stub
+ * - ``task_reduction`` clause with ``taskgroup``
+ - Y
+ -
+ * - ``task`` modifier to ``reduction`` clause
+ - Y
+ -
+ * - ``affinity`` clause to ``task`` construct
+ - Y
+ - Stub only
+ * - ``detach`` clause to ``task`` construct
+ - Y
+ -
+ * - ``omp_fulfill_event`` runtime routine
+ - Y
+ -
+ * - ``reduction`` and ``in_reduction`` clauses on ``taskloop`` and ``taskloop simd`` constructs
+ - Y
+ -
+ * - ``taskloop`` construct cancelable by ``cancel`` construct
+ - Y
+ -
+ * - ``mutexinoutset`` *dependence-type* for ``depend`` clause
+ - Y
+ -
+ * - Predefined memory spaces, memory allocators, allocator traits
+ - Y
+ - Some are only stubs
+ * - Memory management routines
+ - Y
+ -
+ * - ``allocate`` directive
+ - N
+ -
+ * - ``allocate`` clause
+ - P
+ - Initial support
+ * - ``use_device_addr`` clause on ``target data``
+ - Y
+ -
+ * - ``ancestor`` modifier on ``device`` clause
+ - Y
+ - See comment for ``requires``
+ * - Implicit declare target directive
+ - Y
+ -
+ * - Discontiguous array section with ``target update`` construct
+ - N
+ -
+ * - C/C++'s lvalue expressions in ``to``, ``from`` and ``map`` clauses
+ - N
+ -
+ * - C/C++'s lvalue expressions in ``depend`` clauses
+ - Y
+ -
+ * - Nested ``declare target`` directive
+ - Y
+ -
+ * - Combined ``master`` constructs
+ - Y
+ -
+ * - ``depend`` clause on ``taskwait``
+ - Y
+ -
+ * - Weak memory ordering clauses on ``atomic`` and ``flush`` construct
+ - Y
+ -
+ * - ``hint`` clause on the ``atomic`` construct
+ - Y
+ - Stub only
+ * - ``depobj`` construct and depend objects
+ - Y
+ -
+ * - Lock hints were renamed to synchronization hints
+ - Y
+ -
+ * - ``conditional`` modifier to ``lastprivate`` clause
+ - Y
+ -
+ * - Map-order clarifications
+ - P
+ -
+ * - ``close`` *map-type-modifier*
+ - Y
+ -
+ * - Mapping C/C++ pointer variables and to assign the address of device memory mapped by an array section
+ - P
+ -
+ * - Mapping of Fortran pointer and allocatable variables, including pointer and allocatable components of variables
+ - P
+ - Mapping of vars with allocatable components unsupported
+ * - ``defaultmap`` extensions
+ - Y
+ -
+ * - ``declare mapper`` directive
+ - N
+ -
+ * - ``omp_get_supported_active_levels`` routine
+ - Y
+ -
+ * - Runtime routines and environment variables to display runtime thread affinity information
+ - Y
+ -
+ * - ``omp_pause_resource`` and ``omp_pause_resource_all`` runtime routines
+ - Y
+ -
+ * - ``omp_get_device_num`` runtime routine
+ - Y
+ -
+ * - OMPT interface
+ - N
+ -
+ * - OMPD interface
+ - N
+ -
+
+Other new OpenMP 5.0 features
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :header-rows: 1
+ :widths: 50 10 25
+
+ * - Description
+ - Status
+ - Comments
+
+ * - Supporting C++'s range-based for loop
+ - Y
+ - \ No newline at end of file
diff --git a/libgomp/doc/openmp-implementation-status/openmp-51.rst b/libgomp/doc/openmp-implementation-status/openmp-51.rst
new file mode 100644
index 0000000..07c3b11
--- /dev/null
+++ b/libgomp/doc/openmp-implementation-status/openmp-51.rst
@@ -0,0 +1,177 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _openmp-5.1:
+
+OpenMP 5.1
+**********
+
+New features listed in Appendix B of the OpenMP specification
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :header-rows: 1
+ :widths: 50 10 25
+
+ * - Description
+ - Status
+ - Comments
+
+ * - OpenMP directive as C++ attribute specifiers
+ - Y
+ -
+ * - ``omp_all_memory`` reserved locator
+ - Y
+ -
+ * - *target_device trait* in OpenMP Context
+ - N
+ -
+ * - ``target_device`` selector set in context selectors
+ - N
+ -
+ * - C/C++'s ``declare variant`` directive: elision support of preprocessed code
+ - N
+ -
+ * - ``declare variant`` : new clauses ``adjust_args`` and ``append_args``
+ - N
+ -
+ * - ``dispatch`` construct
+ - N
+ -
+ * - device-specific ICV settings with environment variables
+ - Y
+ -
+ * - ``assume`` directive
+ - Y
+ -
+ * - ``nothing`` directive
+ - Y
+ -
+ * - ``error`` directive
+ - Y
+ -
+ * - ``masked`` construct
+ - Y
+ -
+ * - ``scope`` directive
+ - Y
+ -
+ * - Loop transformation constructs
+ - N
+ -
+ * - ``strict`` modifier in the ``grainsize`` and ``num_tasks`` clauses of the ``taskloop`` construct
+ - Y
+ -
+ * - ``align`` clause/modifier in ``allocate`` directive/clause and ``allocator`` directive
+ - P
+ - C/C++ on clause only
+ * - ``thread_limit`` clause to ``target`` construct
+ - Y
+ -
+ * - ``has_device_addr`` clause to ``target`` construct
+ - Y
+ -
+ * - Iterators in ``target update`` motion clauses and ``map`` clauses
+ - N
+ -
+ * - Indirect calls to the device version of a procedure or function in ``target`` regions
+ - N
+ -
+ * - ``interop`` directive
+ - N
+ -
+ * - ``omp_interop_t`` object support in runtime routines
+ - N
+ -
+ * - ``nowait`` clause in ``taskwait`` directive
+ - Y
+ -
+ * - Extensions to the ``atomic`` directive
+ - Y
+ -
+ * - ``seq_cst`` clause on a ``flush`` construct
+ - Y
+ -
+ * - ``inoutset`` argument to the ``depend`` clause
+ - Y
+ -
+ * - ``private`` and ``firstprivate`` argument to ``default`` clause in C and C++
+ - Y
+ -
+ * - ``present`` argument to ``defaultmap`` clause
+ - N
+ -
+ * - ``omp_set_num_teams``, ``omp_set_teams_thread_limit``, ``omp_get_max_teams``, ``omp_get_teams_thread_limit`` runtime routines
+ - Y
+ -
+ * - ``omp_target_is_accessible`` runtime routine
+ - Y
+ -
+ * - ``omp_target_memcpy_async`` and ``omp_target_memcpy_rect_async`` runtime routines
+ - Y
+ -
+ * - ``omp_get_mapped_ptr`` runtime routine
+ - Y
+ -
+ * - ``omp_calloc``, ``omp_realloc``, ``omp_aligned_alloc`` and ``omp_aligned_calloc`` runtime routines
+ - Y
+ -
+ * - ``omp_alloctrait_key_t`` enum: ``omp_atv_serialized`` added, ``omp_atv_default`` changed
+ - Y
+ -
+ * - ``omp_display_env`` runtime routine
+ - Y
+ -
+ * - ``ompt_scope_endpoint_t`` enum: ``ompt_scope_beginend``
+ - N
+ -
+ * - ``ompt_sync_region_t`` enum additions
+ - N
+ -
+ * - ``ompt_state_t`` enum: ``ompt_state_wait_barrier_implementation`` and ``ompt_state_wait_barrier_teams``
+ - N
+ -
+ * - ``ompt_callback_target_data_op_emi_t``, ``ompt_callback_target_emi_t``, ``ompt_callback_target_map_emi_t`` and ``ompt_callback_target_submit_emi_t``
+ - N
+ -
+ * - ``ompt_callback_error_t`` type
+ - N
+ -
+ * - ``OMP_PLACES`` syntax extensions
+ - Y
+ -
+ * - ``OMP_NUM_TEAMS`` and ``OMP_TEAMS_THREAD_LIMIT`` environment variables
+ - Y
+ -
+
+Other new OpenMP 5.1 features
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :header-rows: 1
+ :widths: 50 10 25
+
+ * - Description
+ - Status
+ - Comments
+
+ * - Support of strictly structured blocks in Fortran
+ - Y
+ -
+ * - Support of structured block sequences in C/C++
+ - Y
+ -
+ * - ``unconstrained`` and ``reproducible`` modifiers on ``order`` clause
+ - Y
+ -
+ * - Support ``begin/end declare target`` syntax in C/C++
+ - Y
+ -
+ * - Pointer predetermined firstprivate getting initialized to address of matching mapped list item per 5.1, Sect. 2.21.7.2
+ - N
+ -
+ * - For Fortran, diagnose placing declarative before/between ``USE``, ``IMPORT``, and ``IMPLICIT`` as invalid
+ - N
+ - \ No newline at end of file
diff --git a/libgomp/doc/openmp-implementation-status/openmp-52.rst b/libgomp/doc/openmp-implementation-status/openmp-52.rst
new file mode 100644
index 0000000..cbdd20d
--- /dev/null
+++ b/libgomp/doc/openmp-implementation-status/openmp-52.rst
@@ -0,0 +1,132 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _openmp-5.2:
+
+OpenMP 5.2
+**********
+
+New features listed in Appendix B of the OpenMP specification
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :header-rows: 1
+ :widths: 50 10 25
+
+ * - Description
+ - Status
+ - Comments
+
+ * - ``omp_in_explicit_task`` routine and *explicit-task-var* ICV
+ - Y
+ -
+ * - ``omp`` / ``ompx`` / ``omx`` sentinels and ``omp_`` / ``ompx_`` namespaces
+ - N/A
+ - warning for ``ompx/omx`` sentinels [#f1]_
+ * - Clauses on ``end`` directive can be on directive
+ - N
+ -
+ * - Deprecation of no-argument ``destroy`` clause on ``depobj``
+ - N
+ -
+ * - ``linear`` clause syntax changes and ``step`` modifier
+ - Y
+ -
+ * - Deprecation of minus operator for reductions
+ - N
+ -
+ * - Deprecation of separating ``map`` modifiers without comma
+ - N
+ -
+ * - ``declare mapper`` with iterator and ``present`` modifiers
+ - N
+ -
+ * - If a matching mapped list item is not found in the data environment, the pointer retains its original value
+ - N
+ -
+ * - New ``enter`` clause as alias for ``to`` on declare target directive
+ - Y
+ -
+ * - Deprecation of ``to`` clause on declare target directive
+ - N
+ -
+ * - Extended list of directives permitted in Fortran pure procedures
+ - N
+ -
+ * - New ``allocators`` directive for Fortran
+ - N
+ -
+ * - Deprecation of ``allocate`` directive for Fortran allocatables/pointers
+ - N
+ -
+ * - Optional paired ``end`` directive with ``dispatch``
+ - N
+ -
+ * - New ``memspace`` and ``traits`` modifiers for ``uses_allocators``
+ - N
+ -
+ * - Deprecation of traits array following the allocator_handle expression in ``uses_allocators``
+ - N
+ -
+ * - New ``otherwise`` clause as alias for ``default`` on metadirectives
+ - N
+ -
+ * - Deprecation of ``default`` clause on metadirectives
+ - N
+ -
+ * - Deprecation of delimited form of ``declare target``
+ - N
+ -
+ * - Reproducible semantics changed for ``order(concurrent)``
+ - N
+ -
+ * - ``allocate`` and ``firstprivate`` clauses on ``scope``
+ - Y
+ -
+ * - ``ompt_callback_work``
+ - N
+ -
+ * - Default map-type for ``map`` clause in ``target enter/exit data``
+ - Y
+ -
+ * - New ``doacross`` clause as alias for ``depend`` with ``source`` / ``sink`` modifier
+ - Y
+ -
+ * - Deprecation of ``depend`` with ``source`` / ``sink`` modifier
+ - N
+ -
+ * - ``omp_cur_iteration`` keyword
+ - Y
+ -
+
+.. [#f1] The ``ompx`` sentinel as C/C++ pragma and C++ attributes are warned for with ``-Wunknown-pragmas`` (implied by ``-Wall``) and ``-Wattributes`` (enabled by default), respectively; for Fortran free-source code, there is a warning enabled by default and, for fixed-source code, the ``omx`` sentinel is warned for with with ``-Wsurprising`` (enabled by ``-Wall``). Unknown clauses are always rejected with an error.
+
+Other new OpenMP 5.2 features
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :header-rows: 1
+ :widths: 50 10 25
+
+ * - Description
+ - Status
+ - Comments
+
+ * - For Fortran, optional comma between directive and clause
+ - N
+ -
+ * - Conforming device numbers and ``omp_initial_device`` and ``omp_invalid_device`` enum/PARAMETER
+ - Y
+ -
+ * - Initial value of *default-device-var* ICV with ``OMP_TARGET_OFFLOAD=mandatory``
+ - N
+ -
+ * - *interop_types* in any position of the modifier list for the ``init`` clause of the ``interop`` construct
+ - N
+ -
+
+.. -
+ OpenMP Runtime Library Routines
+ - \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines.rst b/libgomp/doc/openmp-runtime-library-routines.rst
new file mode 100644
index 0000000..77c5c75
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines.rst
@@ -0,0 +1,87 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _runtime-library-routines:
+
+OpenMP Runtime Library Routines
+-------------------------------
+
+The runtime routines described here are defined by Section 3 of the OpenMP
+specification in version 4.5. The routines are structured in following
+three parts:
+
+Control threads, processors and the parallel environment. They have C
+linkage, and do not throw exceptions.
+
+.. toctree::
+ :maxdepth: 2
+
+ openmp-runtime-library-routines/ompgetactivelevel
+ openmp-runtime-library-routines/ompgetancestorthreadnum
+ openmp-runtime-library-routines/ompgetcancellation
+ openmp-runtime-library-routines/ompgetdefaultdevice
+ openmp-runtime-library-routines/ompgetdevicenum
+ openmp-runtime-library-routines/ompgetdynamic
+ openmp-runtime-library-routines/ompgetinitialdevice
+ openmp-runtime-library-routines/ompgetlevel
+ openmp-runtime-library-routines/ompgetmaxactivelevels
+ openmp-runtime-library-routines/ompgetmaxtaskpriority
+ openmp-runtime-library-routines/ompgetmaxteams
+ openmp-runtime-library-routines/ompgetmaxthreads
+ openmp-runtime-library-routines/ompgetnested
+ openmp-runtime-library-routines/ompgetnumdevices
+ openmp-runtime-library-routines/ompgetnumprocs
+ openmp-runtime-library-routines/ompgetnumteams
+ openmp-runtime-library-routines/ompgetnumthreads
+ openmp-runtime-library-routines/ompgetprocbind
+ openmp-runtime-library-routines/ompgetschedule
+ openmp-runtime-library-routines/ompgetsupportedactivelevels
+ openmp-runtime-library-routines/ompgetteamnum
+ openmp-runtime-library-routines/ompgetteamsize
+ openmp-runtime-library-routines/ompgetteamsthreadlimit
+ openmp-runtime-library-routines/ompgetthreadlimit
+ openmp-runtime-library-routines/ompgetthreadnum
+ openmp-runtime-library-routines/ompinparallel
+ openmp-runtime-library-routines/ompinfinal
+ openmp-runtime-library-routines/ompisinitialdevice
+ openmp-runtime-library-routines/ompsetdefaultdevice
+ openmp-runtime-library-routines/ompsetdynamic
+ openmp-runtime-library-routines/ompsetmaxactivelevels
+ openmp-runtime-library-routines/ompsetnested
+ openmp-runtime-library-routines/ompsetnumteams
+ openmp-runtime-library-routines/ompsetnumthreads
+ openmp-runtime-library-routines/ompsetschedule
+ openmp-runtime-library-routines/ompsetteamsthreadlimit
+
+Initialize, set, test, unset and destroy simple and nested locks.
+
+.. toctree::
+ :maxdepth: 2
+
+ openmp-runtime-library-routines/ompinitlock
+ openmp-runtime-library-routines/ompsetlock
+ openmp-runtime-library-routines/omptestlock
+ openmp-runtime-library-routines/ompunsetlock
+ openmp-runtime-library-routines/ompdestroylock
+ openmp-runtime-library-routines/ompinitnestlock
+ openmp-runtime-library-routines/ompsetnestlock
+ openmp-runtime-library-routines/omptestnestlock
+ openmp-runtime-library-routines/ompunsetnestlock
+ openmp-runtime-library-routines/ompdestroynestlock
+
+Portable, thread-based, wall clock timer.
+
+.. toctree::
+ :maxdepth: 2
+
+ openmp-runtime-library-routines/ompgetwtick
+ openmp-runtime-library-routines/ompgetwtime
+
+Support for event objects.
+
+.. toctree::
+ :maxdepth: 2
+
+ openmp-runtime-library-routines/ompfulfillevent \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompdestroylock.rst b/libgomp/doc/openmp-runtime-library-routines/ompdestroylock.rst
new file mode 100644
index 0000000..5de285b
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompdestroylock.rst
@@ -0,0 +1,33 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_destroy_lock:
+
+omp_destroy_lock -- Destroy simple lock
+***************************************
+
+Description:
+ Destroy a simple lock. In order to be destroyed, a simple lock must be
+ in the unlocked state.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_destroy_lock(omp_lock_t *lock);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_destroy_lock(svar)``
+ * -
+ - ``integer(omp_lock_kind), intent(inout) :: svar``
+
+See also:
+ :ref:`omp_init_lock`
+
+Reference:
+ :openmp:`4.5`, Section 3.3.3. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompdestroynestlock.rst b/libgomp/doc/openmp-runtime-library-routines/ompdestroynestlock.rst
new file mode 100644
index 0000000..a4a991e
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompdestroynestlock.rst
@@ -0,0 +1,33 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_destroy_nest_lock:
+
+omp_destroy_nest_lock -- Destroy nested lock
+********************************************
+
+Description:
+ Destroy a nested lock. In order to be destroyed, a nested lock must be
+ in the unlocked state and its nesting count must equal zero.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_destroy_nest_lock(omp_nest_lock_t *);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_destroy_nest_lock(nvar)``
+ * -
+ - ``integer(omp_nest_lock_kind), intent(inout) :: nvar``
+
+See also:
+ :ref:`omp_init_lock`
+
+Reference:
+ :openmp:`4.5`, Section 3.3.3. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompfulfillevent.rst b/libgomp/doc/openmp-runtime-library-routines/ompfulfillevent.rst
new file mode 100644
index 0000000..b0beddd
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompfulfillevent.rst
@@ -0,0 +1,36 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_fulfill_event:
+
+omp_fulfill_event -- Fulfill and destroy an OpenMP event
+********************************************************
+
+Description:
+ Fulfill the event associated with the event handle argument. Currently, it
+ is only used to fulfill events generated by detach clauses on task
+ constructs - the effect of fulfilling the event is to allow the task to
+ complete.
+
+ The result of calling ``omp_fulfill_event`` with an event handle other
+ than that generated by a detach clause is undefined. Calling it with an
+ event handle that has already been fulfilled is also undefined.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_fulfill_event(omp_event_handle_t event);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_fulfill_event(event)``
+ * -
+ - ``integer (kind=omp_event_handle_kind) :: event``
+
+Reference:
+ :openmp:`5.0`, Section 3.5.1. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetactivelevel.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetactivelevel.rst
new file mode 100644
index 0000000..da26ecd
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetactivelevel.rst
@@ -0,0 +1,31 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_active_level:
+
+omp_get_active_level -- Number of parallel regions
+**************************************************
+
+Description:
+ This function returns the nesting level for the active parallel blocks,
+ which enclose the calling call.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_active_level(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_active_level()``
+
+See also:
+ :ref:`omp_get_level`, :ref:`omp_get_max_active_levels`, :ref:`omp_set_max_active_levels`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.20. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetancestorthreadnum.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetancestorthreadnum.rst
new file mode 100644
index 0000000..b5ea569
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetancestorthreadnum.rst
@@ -0,0 +1,35 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_ancestor_thread_num:
+
+omp_get_ancestor_thread_num -- Ancestor thread ID
+*************************************************
+
+Description:
+ This function returns the thread identification number for the given
+ nesting level of the current thread. For values of :samp:`{level}` outside
+ zero to ``omp_get_level`` -1 is returned; if :samp:`{level}` is
+ ``omp_get_level`` the result is identical to ``omp_get_thread_num``.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_ancestor_thread_num(int level);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_ancestor_thread_num(level)``
+ * -
+ - ``integer level``
+
+See also:
+ :ref:`omp_get_level`, :ref:`omp_get_thread_num`, :ref:`omp_get_team_size`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.18. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetcancellation.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetcancellation.rst
new file mode 100644
index 0000000..92c6793
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetcancellation.rst
@@ -0,0 +1,33 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_cancellation:
+
+omp_get_cancellation -- Whether cancellation support is enabled
+***************************************************************
+
+Description:
+ This function returns ``true`` if cancellation is activated, ``false``
+ otherwise. Here, ``true`` and ``false`` represent their language-specific
+ counterparts. Unless :envvar:`OMP_CANCELLATION` is set true, cancellations are
+ deactivated.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_cancellation(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``logical function omp_get_cancellation()``
+
+See also:
+ :ref:`OMP_CANCELLATION`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.9. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetdefaultdevice.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetdefaultdevice.rst
new file mode 100644
index 0000000..5d8c5fa
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetdefaultdevice.rst
@@ -0,0 +1,30 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_default_device:
+
+omp_get_default_device -- Get the default device for target regions
+*******************************************************************
+
+Description:
+ Get the default device for target regions without device clause.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_default_device(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_default_device()``
+
+See also:
+ :ref:`OMP_DEFAULT_DEVICE`, :ref:`omp_set_default_device`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.30. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetdevicenum.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetdevicenum.rst
new file mode 100644
index 0000000..04158ce
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetdevicenum.rst
@@ -0,0 +1,33 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_device_num:
+
+omp_get_device_num -- Return device number of current device
+************************************************************
+
+Description:
+ This function returns a device number that represents the device that the
+ current thread is executing on. For OpenMP 5.0, this must be equal to the
+ value returned by the ``omp_get_initial_device`` function when called
+ from the host.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_device_num(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_device_num()``
+
+See also:
+ :ref:`omp_get_initial_device`
+
+Reference:
+ :openmp:`5.0`, Section 3.2.37. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetdynamic.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetdynamic.rst
new file mode 100644
index 0000000..6e461f1
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetdynamic.rst
@@ -0,0 +1,37 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_dynamic:
+
+omp_get_dynamic -- Dynamic teams setting
+****************************************
+
+Description:
+ This function returns ``true`` if enabled, ``false`` otherwise.
+ Here, ``true`` and ``false`` represent their language-specific
+ counterparts.
+
+ The dynamic team setting may be initialized at startup by the
+ :envvar:`OMP_DYNAMIC` environment variable or at runtime using
+ ``omp_set_dynamic``. If undefined, dynamic adjustment is
+ disabled by default.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_dynamic(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``logical function omp_get_dynamic()``
+
+See also:
+ :ref:`omp_set_dynamic`, :ref:`OMP_DYNAMIC`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.8. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetinitialdevice.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetinitialdevice.rst
new file mode 100644
index 0000000..670fea8
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetinitialdevice.rst
@@ -0,0 +1,32 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_initial_device:
+
+omp_get_initial_device -- Return device number of initial device
+****************************************************************
+
+Description:
+ This function returns a device number that represents the host device.
+ For OpenMP 5.1, this must be equal to the value returned by the
+ ``omp_get_num_devices`` function.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_initial_device(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_initial_device()``
+
+See also:
+ :ref:`omp_get_num_devices`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.35. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetlevel.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetlevel.rst
new file mode 100644
index 0000000..604aa8d
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetlevel.rst
@@ -0,0 +1,31 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_level:
+
+omp_get_level -- Obtain the current nesting level
+*************************************************
+
+Description:
+ This function returns the nesting level for the parallel blocks,
+ which enclose the calling call.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_level(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_level()``
+
+See also:
+ :ref:`omp_get_active_level`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.17. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetmaxactivelevels.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetmaxactivelevels.rst
new file mode 100644
index 0000000..a1e631f
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetmaxactivelevels.rst
@@ -0,0 +1,30 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_max_active_levels:
+
+omp_get_max_active_levels -- Current maximum number of active regions
+*********************************************************************
+
+Description:
+ This function obtains the maximum allowed number of nested, active parallel regions.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_max_active_levels(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_max_active_levels()``
+
+See also:
+ :ref:`omp_set_max_active_levels`, :ref:`omp_get_active_level`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.16. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetmaxtaskpriority.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetmaxtaskpriority.rst
new file mode 100644
index 0000000..e41dd28
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetmaxtaskpriority.rst
@@ -0,0 +1,29 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_max_task_priority:
+
+omp_get_max_task_priority -- Maximum priority value
+***************************************************
+
+that can be set for tasks.
+
+Description:
+ This function obtains the maximum allowed priority number for tasks.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_max_task_priority(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_max_task_priority()``
+
+Reference:
+ :openmp:`4.5`, Section 3.2.29. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetmaxteams.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetmaxteams.rst
new file mode 100644
index 0000000..6e73555
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetmaxteams.rst
@@ -0,0 +1,31 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_max_teams:
+
+omp_get_max_teams -- Maximum number of teams of teams region
+************************************************************
+
+Description:
+ Return the maximum number of teams used for the teams region
+ that does not use the clause ``num_teams``.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_max_teams(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_max_teams()``
+
+See also:
+ :ref:`omp_set_num_teams`, :ref:`omp_get_num_teams`
+
+Reference:
+ :openmp:`5.1`, Section 3.4.4. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetmaxthreads.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetmaxthreads.rst
new file mode 100644
index 0000000..d8c4fb8
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetmaxthreads.rst
@@ -0,0 +1,31 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_max_threads:
+
+omp_get_max_threads -- Maximum number of threads of parallel region
+*******************************************************************
+
+Description:
+ Return the maximum number of threads used for the current parallel region
+ that does not use the clause ``num_threads``.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_max_threads(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_max_threads()``
+
+See also:
+ :ref:`omp_set_num_threads`, :ref:`omp_set_dynamic`, :ref:`omp_get_thread_limit`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.3. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetnested.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetnested.rst
new file mode 100644
index 0000000..a5d7339
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetnested.rst
@@ -0,0 +1,48 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_nested:
+
+omp_get_nested -- Nested parallel regions
+*****************************************
+
+Description:
+ This function returns ``true`` if nested parallel regions are
+ enabled, ``false`` otherwise. Here, ``true`` and ``false``
+ represent their language-specific counterparts.
+
+ The state of nested parallel regions at startup depends on several
+ environment variables. If :envvar:`OMP_MAX_ACTIVE_LEVELS` is defined
+ and is set to greater than one, then nested parallel regions will be
+ enabled. If not defined, then the value of the :envvar:`OMP_NESTED`
+ environment variable will be followed if defined. If neither are
+ defined, then if either :envvar:`OMP_NUM_THREADS` or :envvar:`OMP_PROC_BIND`
+ are defined with a list of more than one value, then nested parallel
+ regions are enabled. If none of these are defined, then nested parallel
+ regions are disabled by default.
+
+ Nested parallel regions can be enabled or disabled at runtime using
+ ``omp_set_nested``, or by setting the maximum number of nested
+ regions with ``omp_set_max_active_levels`` to one to disable, or
+ above one to enable.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_nested(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``logical function omp_get_nested()``
+
+See also:
+ :ref:`omp_set_max_active_levels`, :ref:`omp_set_nested`,
+ :ref:`OMP_MAX_ACTIVE_LEVELS`, :ref:`OMP_NESTED`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.11. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetnumdevices.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetnumdevices.rst
new file mode 100644
index 0000000..4e44a5b
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetnumdevices.rst
@@ -0,0 +1,27 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_num_devices:
+
+omp_get_num_devices -- Number of target devices
+***********************************************
+
+Description:
+ Returns the number of target devices.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_num_devices(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_num_devices()``
+
+Reference:
+ :openmp:`4.5`, Section 3.2.31. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetnumprocs.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetnumprocs.rst
new file mode 100644
index 0000000..20db47b
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetnumprocs.rst
@@ -0,0 +1,27 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_num_procs:
+
+omp_get_num_procs -- Number of processors online
+************************************************
+
+Description:
+ Returns the number of processors online on that device.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_num_procs(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_num_procs()``
+
+Reference:
+ :openmp:`4.5`, Section 3.2.5. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetnumteams.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetnumteams.rst
new file mode 100644
index 0000000..da3af05
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetnumteams.rst
@@ -0,0 +1,27 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_num_teams:
+
+omp_get_num_teams -- Number of teams
+************************************
+
+Description:
+ Returns the number of teams in the current team region.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_num_teams(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_num_teams()``
+
+Reference:
+ :openmp:`4.5`, Section 3.2.32. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetnumthreads.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetnumthreads.rst
new file mode 100644
index 0000000..1b4bc59
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetnumthreads.rst
@@ -0,0 +1,38 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_num_threads:
+
+omp_get_num_threads -- Size of the active team
+**********************************************
+
+Description:
+ Returns the number of threads in the current team. In a sequential section of
+ the program ``omp_get_num_threads`` returns 1.
+
+ The default team size may be initialized at startup by the
+ :envvar:`OMP_NUM_THREADS` environment variable. At runtime, the size
+ of the current team may be set either by the ``NUM_THREADS``
+ clause or by ``omp_set_num_threads``. If none of the above were
+ used to define a specific value and :envvar:`OMP_DYNAMIC` is disabled,
+ one thread per CPU online is used.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_num_threads(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_num_threads()``
+
+See also:
+ :ref:`omp_get_max_threads`, :ref:`omp_set_num_threads`, :ref:`OMP_NUM_THREADS`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.2. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetprocbind.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetprocbind.rst
new file mode 100644
index 0000000..0270657
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetprocbind.rst
@@ -0,0 +1,34 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_proc_bind:
+
+omp_get_proc_bind -- Whether theads may be moved between CPUs
+*************************************************************
+
+Description:
+ This functions returns the currently active thread affinity policy, which is
+ set via :envvar:`OMP_PROC_BIND`. Possible values are ``omp_proc_bind_false``,
+ ``omp_proc_bind_true``, ``omp_proc_bind_primary``,
+ ``omp_proc_bind_master``, ``omp_proc_bind_close`` and ``omp_proc_bind_spread``,
+ where ``omp_proc_bind_master`` is an alias for ``omp_proc_bind_primary``.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``omp_proc_bind_t omp_get_proc_bind(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer(kind=omp_proc_bind_kind) function omp_get_proc_bind()``
+
+See also:
+ :ref:`OMP_PROC_BIND`, :ref:`OMP_PLACES`, :ref:`GOMP_CPU_AFFINITY`,
+
+Reference:
+ :openmp:`4.5`, Section 3.2.22. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetschedule.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetschedule.rst
new file mode 100644
index 0000000..43a2588
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetschedule.rst
@@ -0,0 +1,37 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_schedule:
+
+omp_get_schedule -- Obtain the runtime scheduling method
+********************************************************
+
+Description:
+ Obtain the runtime scheduling method. The :samp:`{kind}` argument will be
+ set to the value ``omp_sched_static``, ``omp_sched_dynamic``,
+ ``omp_sched_guided`` or ``omp_sched_auto``. The second argument,
+ :samp:`{chunk_size}`, is set to the chunk size.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_get_schedule(omp_sched_t *kind, int *chunk_size);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_get_schedule(kind, chunk_size)``
+ * -
+ - ``integer(kind=omp_sched_kind) kind``
+ * -
+ - ``integer chunk_size``
+
+See also:
+ :ref:`omp_set_schedule`, :ref:`OMP_SCHEDULE`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.13. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetsupportedactivelevels.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetsupportedactivelevels.rst
new file mode 100644
index 0000000..b8d6929
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetsupportedactivelevels.rst
@@ -0,0 +1,31 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_supported_active_levels:
+
+omp_get_supported_active_levels -- Maximum number of active regions supported
+*****************************************************************************
+
+Description:
+ This function returns the maximum number of nested, active parallel regions
+ supported by this implementation.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_supported_active_levels(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_supported_active_levels()``
+
+See also:
+ :ref:`omp_get_max_active_levels`, :ref:`omp_set_max_active_levels`
+
+Reference:
+ :openmp:`5.0`, Section 3.2.15. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetteamnum.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetteamnum.rst
new file mode 100644
index 0000000..6b1727e
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetteamnum.rst
@@ -0,0 +1,27 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_team_num:
+
+omp_get_team_num -- Get team number
+***********************************
+
+Description:
+ Returns the team number of the calling thread.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_team_num(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_team_num()``
+
+Reference:
+ :openmp:`4.5`, Section 3.2.33. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetteamsize.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetteamsize.rst
new file mode 100644
index 0000000..03c09ef
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetteamsize.rst
@@ -0,0 +1,36 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_team_size:
+
+omp_get_team_size -- Number of threads in a team
+************************************************
+
+Description:
+ This function returns the number of threads in a thread team to which
+ either the current thread or its ancestor belongs. For values of :samp:`{level}`
+ outside zero to ``omp_get_level``, -1 is returned; if :samp:`{level}` is zero,
+ 1 is returned, and for ``omp_get_level``, the result is identical
+ to ``omp_get_num_threads``.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_team_size(int level);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_team_size(level)``
+ * -
+ - ``integer level``
+
+See also:
+ :ref:`omp_get_num_threads`, :ref:`omp_get_level`, :ref:`omp_get_ancestor_thread_num`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.19. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetteamsthreadlimit.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetteamsthreadlimit.rst
new file mode 100644
index 0000000..5e4e2ee
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetteamsthreadlimit.rst
@@ -0,0 +1,31 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_teams_thread_limit:
+
+omp_get_teams_thread_limit -- Maximum number of threads imposed by teams
+************************************************************************
+
+Description:
+ Return the maximum number of threads that will be able to participate in
+ each team created by a teams construct.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_teams_thread_limit(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_teams_thread_limit()``
+
+See also:
+ :ref:`omp_set_teams_thread_limit`, :ref:`OMP_TEAMS_THREAD_LIMIT`
+
+Reference:
+ :openmp:`5.1`, Section 3.4.6. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetthreadlimit.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetthreadlimit.rst
new file mode 100644
index 0000000..6c35a69
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetthreadlimit.rst
@@ -0,0 +1,30 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_thread_limit:
+
+omp_get_thread_limit -- Maximum number of threads
+*************************************************
+
+Description:
+ Return the maximum number of threads of the program.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_thread_limit(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_thread_limit()``
+
+See also:
+ :ref:`omp_get_max_threads`, :ref:`OMP_THREAD_LIMIT`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.14. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetthreadnum.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetthreadnum.rst
new file mode 100644
index 0000000..584157a
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetthreadnum.rst
@@ -0,0 +1,34 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_thread_num:
+
+omp_get_thread_num -- Current thread ID
+***************************************
+
+Description:
+ Returns a unique thread identification number within the current team.
+ In a sequential parts of the program, ``omp_get_thread_num``
+ always returns 0. In parallel regions the return value varies
+ from 0 to ``omp_get_num_threads`` -1 inclusive. The return
+ value of the primary thread of a team is always 0.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_get_thread_num(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``integer function omp_get_thread_num()``
+
+See also:
+ :ref:`omp_get_num_threads`, :ref:`omp_get_ancestor_thread_num`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.4. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetwtick.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetwtick.rst
new file mode 100644
index 0000000..b188d94
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetwtick.rst
@@ -0,0 +1,31 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_wtick:
+
+omp_get_wtick -- Get timer precision
+************************************
+
+Description:
+ Gets the timer precision, i.e., the number of seconds between two
+ successive clock ticks.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``double omp_get_wtick(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``double precision function omp_get_wtick()``
+
+See also:
+ :ref:`omp_get_wtime`
+
+Reference:
+ :openmp:`4.5`, Section 3.4.2. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompgetwtime.rst b/libgomp/doc/openmp-runtime-library-routines/ompgetwtime.rst
new file mode 100644
index 0000000..27b3b2f
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompgetwtime.rst
@@ -0,0 +1,33 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_get_wtime:
+
+omp_get_wtime -- Elapsed wall clock time
+****************************************
+
+Description:
+ Elapsed wall clock time in seconds. The time is measured per thread, no
+ guarantee can be made that two distinct threads measure the same time.
+ Time is measured from some "time in the past", which is an arbitrary time
+ guaranteed not to change during the execution of the program.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``double omp_get_wtime(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``double precision function omp_get_wtime()``
+
+See also:
+ :ref:`omp_get_wtick`
+
+Reference:
+ :openmp:`4.5`, Section 3.4.1. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompinfinal.rst b/libgomp/doc/openmp-runtime-library-routines/ompinfinal.rst
new file mode 100644
index 0000000..e36af9f
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompinfinal.rst
@@ -0,0 +1,29 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_in_final:
+
+omp_in_final -- Whether in final or included task region
+********************************************************
+
+Description:
+ This function returns ``true`` if currently running in a final
+ or included task region, ``false`` otherwise. Here, ``true``
+ and ``false`` represent their language-specific counterparts.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_in_final(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``logical function omp_in_final()``
+
+Reference:
+ :openmp:`4.5`, Section 3.2.21. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompinitlock.rst b/libgomp/doc/openmp-runtime-library-routines/ompinitlock.rst
new file mode 100644
index 0000000..34c52e1
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompinitlock.rst
@@ -0,0 +1,33 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_init_lock:
+
+omp_init_lock -- Initialize simple lock
+***************************************
+
+Description:
+ Initialize a simple lock. After initialization, the lock is in
+ an unlocked state.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_init_lock(omp_lock_t *lock);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_init_lock(svar)``
+ * -
+ - ``integer(omp_lock_kind), intent(out) :: svar``
+
+See also:
+ :ref:`omp_destroy_lock`
+
+Reference:
+ :openmp:`4.5`, Section 3.3.1. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompinitnestlock.rst b/libgomp/doc/openmp-runtime-library-routines/ompinitnestlock.rst
new file mode 100644
index 0000000..042c188
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompinitnestlock.rst
@@ -0,0 +1,33 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_init_nest_lock:
+
+omp_init_nest_lock -- Initialize nested lock
+********************************************
+
+Description:
+ Initialize a nested lock. After initialization, the lock is in
+ an unlocked state and the nesting count is set to zero.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_init_nest_lock(omp_nest_lock_t *lock);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_init_nest_lock(nvar)``
+ * -
+ - ``integer(omp_nest_lock_kind), intent(out) :: nvar``
+
+See also:
+ :ref:`omp_destroy_nest_lock`
+
+Reference:
+ :openmp:`4.5`, Section 3.3.1. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompinparallel.rst b/libgomp/doc/openmp-runtime-library-routines/ompinparallel.rst
new file mode 100644
index 0000000..55bc1e1
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompinparallel.rst
@@ -0,0 +1,29 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_in_parallel:
+
+omp_in_parallel -- Whether a parallel region is active
+******************************************************
+
+Description:
+ This function returns ``true`` if currently running in parallel,
+ ``false`` otherwise. Here, ``true`` and ``false`` represent
+ their language-specific counterparts.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_in_parallel(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``logical function omp_in_parallel()``
+
+Reference:
+ :openmp:`4.5`, Section 3.2.6. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompisinitialdevice.rst b/libgomp/doc/openmp-runtime-library-routines/ompisinitialdevice.rst
new file mode 100644
index 0000000..501891f
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompisinitialdevice.rst
@@ -0,0 +1,29 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_is_initial_device:
+
+omp_is_initial_device -- Whether executing on the host device
+*************************************************************
+
+Description:
+ This function returns ``true`` if currently running on the host device,
+ ``false`` otherwise. Here, ``true`` and ``false`` represent
+ their language-specific counterparts.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_is_initial_device(void);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``logical function omp_is_initial_device()``
+
+Reference:
+ :openmp:`4.5`, Section 3.2.34. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompsetdefaultdevice.rst b/libgomp/doc/openmp-runtime-library-routines/ompsetdefaultdevice.rst
new file mode 100644
index 0000000..33202b9
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompsetdefaultdevice.rst
@@ -0,0 +1,33 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_set_default_device:
+
+omp_set_default_device -- Set the default device for target regions
+*******************************************************************
+
+Description:
+ Set the default device for target regions without device clause. The argument
+ shall be a nonnegative device number.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_set_default_device(int device_num);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_set_default_device(device_num)``
+ * -
+ - ``integer device_num``
+
+See also:
+ :ref:`OMP_DEFAULT_DEVICE`, :ref:`omp_get_default_device`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.29. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompsetdynamic.rst b/libgomp/doc/openmp-runtime-library-routines/ompsetdynamic.rst
new file mode 100644
index 0000000..d18346b
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompsetdynamic.rst
@@ -0,0 +1,35 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_set_dynamic:
+
+omp_set_dynamic -- Enable/disable dynamic teams
+***********************************************
+
+Description:
+ Enable or disable the dynamic adjustment of the number of threads
+ within a team. The function takes the language-specific equivalent
+ of ``true`` and ``false``, where ``true`` enables dynamic
+ adjustment of team sizes and ``false`` disables it.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_set_dynamic(int dynamic_threads);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_set_dynamic(dynamic_threads)``
+ * -
+ - ``logical, intent(in) :: dynamic_threads``
+
+See also:
+ :ref:`OMP_DYNAMIC`, :ref:`omp_get_dynamic`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.7. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompsetlock.rst b/libgomp/doc/openmp-runtime-library-routines/ompsetlock.rst
new file mode 100644
index 0000000..fbaea1d
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompsetlock.rst
@@ -0,0 +1,35 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_set_lock:
+
+omp_set_lock -- Wait for and set simple lock
+********************************************
+
+Description:
+ Before setting a simple lock, the lock variable must be initialized by
+ ``omp_init_lock``. The calling thread is blocked until the lock
+ is available. If the lock is already held by the current thread,
+ a deadlock occurs.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_set_lock(omp_lock_t *lock);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_set_lock(svar)``
+ * -
+ - ``integer(omp_lock_kind), intent(inout) :: svar``
+
+See also:
+ :ref:`omp_init_lock`, :ref:`omp_test_lock`, :ref:`omp_unset_lock`
+
+Reference:
+ :openmp:`4.5`, Section 3.3.4. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompsetmaxactivelevels.rst b/libgomp/doc/openmp-runtime-library-routines/ompsetmaxactivelevels.rst
new file mode 100644
index 0000000..24c1fd1
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompsetmaxactivelevels.rst
@@ -0,0 +1,35 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_set_max_active_levels:
+
+omp_set_max_active_levels -- Limits the number of active parallel regions
+*************************************************************************
+
+Description:
+ This function limits the maximum allowed number of nested, active
+ parallel regions. :samp:`{max_levels}` must be less or equal to
+ the value returned by ``omp_get_supported_active_levels``.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_set_max_active_levels(int max_levels);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_set_max_active_levels(max_levels)``
+ * -
+ - ``integer max_levels``
+
+See also:
+ :ref:`omp_get_max_active_levels`, :ref:`omp_get_active_level`,
+ :ref:`omp_get_supported_active_levels`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.15. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompsetnested.rst b/libgomp/doc/openmp-runtime-library-routines/ompsetnested.rst
new file mode 100644
index 0000000..3700585
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompsetnested.rst
@@ -0,0 +1,40 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_set_nested:
+
+omp_set_nested -- Enable/disable nested parallel regions
+********************************************************
+
+Description:
+ Enable or disable nested parallel regions, i.e., whether team members
+ are allowed to create new teams. The function takes the language-specific
+ equivalent of ``true`` and ``false``, where ``true`` enables
+ dynamic adjustment of team sizes and ``false`` disables it.
+
+ Enabling nested parallel regions will also set the maximum number of
+ active nested regions to the maximum supported. Disabling nested parallel
+ regions will set the maximum number of active nested regions to one.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_set_nested(int nested);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_set_nested(nested)``
+ * -
+ - ``logical, intent(in) :: nested``
+
+See also:
+ :ref:`omp_get_nested`, :ref:`omp_set_max_active_levels`,
+ :ref:`OMP_MAX_ACTIVE_LEVELS`, :ref:`OMP_NESTED`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.10. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompsetnestlock.rst b/libgomp/doc/openmp-runtime-library-routines/ompsetnestlock.rst
new file mode 100644
index 0000000..c159d95
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompsetnestlock.rst
@@ -0,0 +1,35 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_set_nest_lock:
+
+omp_set_nest_lock -- Wait for and set nested lock
+*************************************************
+
+Description:
+ Before setting a nested lock, the lock variable must be initialized by
+ ``omp_init_nest_lock``. The calling thread is blocked until the lock
+ is available. If the lock is already held by the current thread, the
+ nesting count for the lock is incremented.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_set_nest_lock(omp_nest_lock_t *lock);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_set_nest_lock(nvar)``
+ * -
+ - ``integer(omp_nest_lock_kind), intent(inout) :: nvar``
+
+See also:
+ :ref:`omp_init_nest_lock`, :ref:`omp_unset_nest_lock`
+
+Reference:
+ :openmp:`4.5`, Section 3.3.4. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompsetnumteams.rst b/libgomp/doc/openmp-runtime-library-routines/ompsetnumteams.rst
new file mode 100644
index 0000000..83642f6
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompsetnumteams.rst
@@ -0,0 +1,34 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_set_num_teams:
+
+omp_set_num_teams -- Set upper teams limit for teams construct
+**************************************************************
+
+Description:
+ Specifies the upper bound for number of teams created by the teams construct
+ which does not specify a ``num_teams`` clause. The
+ argument of ``omp_set_num_teams`` shall be a positive integer.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_set_num_teams(int num_teams);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_set_num_teams(num_teams)``
+ * -
+ - ``integer, intent(in) :: num_teams``
+
+See also:
+ :ref:`OMP_NUM_TEAMS`, :ref:`omp_get_num_teams`, :ref:`omp_get_max_teams`
+
+Reference:
+ :openmp:`5.1`, Section 3.4.3. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompsetnumthreads.rst b/libgomp/doc/openmp-runtime-library-routines/ompsetnumthreads.rst
new file mode 100644
index 0000000..dd9ad45
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompsetnumthreads.rst
@@ -0,0 +1,34 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_set_num_threads:
+
+omp_set_num_threads -- Set upper team size limit
+************************************************
+
+Description:
+ Specifies the number of threads used by default in subsequent parallel
+ sections, if those do not specify a ``num_threads`` clause. The
+ argument of ``omp_set_num_threads`` shall be a positive integer.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_set_num_threads(int num_threads);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_set_num_threads(num_threads)``
+ * -
+ - ``integer, intent(in) :: num_threads``
+
+See also:
+ :ref:`OMP_NUM_THREADS`, :ref:`omp_get_num_threads`, :ref:`omp_get_max_threads`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.1. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompsetschedule.rst b/libgomp/doc/openmp-runtime-library-routines/ompsetschedule.rst
new file mode 100644
index 0000000..4c7e08f
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompsetschedule.rst
@@ -0,0 +1,40 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_set_schedule:
+
+omp_set_schedule -- Set the runtime scheduling method
+*****************************************************
+
+Description:
+ Sets the runtime scheduling method. The :samp:`{kind}` argument can have the
+ value ``omp_sched_static``, ``omp_sched_dynamic``,
+ ``omp_sched_guided`` or ``omp_sched_auto``. Except for
+ ``omp_sched_auto``, the chunk size is set to the value of
+ :samp:`{chunk_size}` if positive, or to the default value if zero or negative.
+ For ``omp_sched_auto`` the :samp:`{chunk_size}` argument is ignored.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_set_schedule(omp_sched_t kind, int chunk_size);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_set_schedule(kind, chunk_size)``
+ * -
+ - ``integer(kind=omp_sched_kind) kind``
+ * -
+ - ``integer chunk_size``
+
+See also:
+ :ref:`omp_get_schedule`
+ :ref:`OMP_SCHEDULE`
+
+Reference:
+ :openmp:`4.5`, Section 3.2.12. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompsetteamsthreadlimit.rst b/libgomp/doc/openmp-runtime-library-routines/ompsetteamsthreadlimit.rst
new file mode 100644
index 0000000..36385b4
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompsetteamsthreadlimit.rst
@@ -0,0 +1,35 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_set_teams_thread_limit:
+
+omp_set_teams_thread_limit -- Set upper thread limit for teams construct
+************************************************************************
+
+Description:
+ Specifies the upper bound for number of threads that will be available
+ for each team created by the teams construct which does not specify a
+ ``thread_limit`` clause. The argument of
+ ``omp_set_teams_thread_limit`` shall be a positive integer.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_set_teams_thread_limit(int thread_limit);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_set_teams_thread_limit(thread_limit)``
+ * -
+ - ``integer, intent(in) :: thread_limit``
+
+See also:
+ :ref:`OMP_TEAMS_THREAD_LIMIT`, :ref:`omp_get_teams_thread_limit`, :ref:`omp_get_thread_limit`
+
+Reference:
+ :openmp:`5.1`, Section 3.4.5. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/omptestlock.rst b/libgomp/doc/openmp-runtime-library-routines/omptestlock.rst
new file mode 100644
index 0000000..500c12b
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/omptestlock.rst
@@ -0,0 +1,36 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_test_lock:
+
+omp_test_lock -- Test and set simple lock if available
+******************************************************
+
+Description:
+ Before setting a simple lock, the lock variable must be initialized by
+ ``omp_init_lock``. Contrary to ``omp_set_lock``, ``omp_test_lock``
+ does not block if the lock is not available. This function returns
+ ``true`` upon success, ``false`` otherwise. Here, ``true`` and
+ ``false`` represent their language-specific counterparts.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_test_lock(omp_lock_t *lock);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``logical function omp_test_lock(svar)``
+ * -
+ - ``integer(omp_lock_kind), intent(inout) :: svar``
+
+See also:
+ :ref:`omp_init_lock`, :ref:`omp_set_lock`, :ref:`omp_set_lock`
+
+Reference:
+ :openmp:`4.5`, Section 3.3.6. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/omptestnestlock.rst b/libgomp/doc/openmp-runtime-library-routines/omptestnestlock.rst
new file mode 100644
index 0000000..9a6df1c
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/omptestnestlock.rst
@@ -0,0 +1,36 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_test_nest_lock:
+
+omp_test_nest_lock -- Test and set nested lock if available
+***********************************************************
+
+Description:
+ Before setting a nested lock, the lock variable must be initialized by
+ ``omp_init_nest_lock``. Contrary to ``omp_set_nest_lock``,
+ ``omp_test_nest_lock`` does not block if the lock is not available.
+ If the lock is already held by the current thread, the new nesting count
+ is returned. Otherwise, the return value equals zero.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``int omp_test_nest_lock(omp_nest_lock_t *lock);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``logical function omp_test_nest_lock(nvar)``
+ * -
+ - ``integer(omp_nest_lock_kind), intent(inout) :: nvar``
+
+See also:
+ :ref:`omp_init_lock`, :ref:`omp_set_lock`, :ref:`omp_set_lock`
+
+Reference:
+ :openmp:`4.5`, Section 3.3.6. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompunsetlock.rst b/libgomp/doc/openmp-runtime-library-routines/ompunsetlock.rst
new file mode 100644
index 0000000..d8940a9
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompunsetlock.rst
@@ -0,0 +1,36 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_unset_lock:
+
+omp_unset_lock -- Unset simple lock
+***********************************
+
+Description:
+ A simple lock about to be unset must have been locked by ``omp_set_lock``
+ or ``omp_test_lock`` before. In addition, the lock must be held by the
+ thread calling ``omp_unset_lock``. Then, the lock becomes unlocked. If one
+ or more threads attempted to set the lock before, one of them is chosen to,
+ again, set the lock to itself.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_unset_lock(omp_lock_t *lock);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_unset_lock(svar)``
+ * -
+ - ``integer(omp_lock_kind), intent(inout) :: svar``
+
+See also:
+ :ref:`omp_set_lock`, :ref:`omp_test_lock`
+
+Reference:
+ :openmp:`4.5`, Section 3.3.5. \ No newline at end of file
diff --git a/libgomp/doc/openmp-runtime-library-routines/ompunsetnestlock.rst b/libgomp/doc/openmp-runtime-library-routines/ompunsetnestlock.rst
new file mode 100644
index 0000000..a39115d
--- /dev/null
+++ b/libgomp/doc/openmp-runtime-library-routines/ompunsetnestlock.rst
@@ -0,0 +1,36 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _omp_unset_nest_lock:
+
+omp_unset_nest_lock -- Unset nested lock
+****************************************
+
+Description:
+ A nested lock about to be unset must have been locked by ``omp_set_nested_lock``
+ or ``omp_test_nested_lock`` before. In addition, the lock must be held by the
+ thread calling ``omp_unset_nested_lock``. If the nesting count drops to zero, the
+ lock becomes unlocked. If one ore more threads attempted to set the lock before,
+ one of them is chosen to, again, set the lock to itself.
+
+C/C++:
+ .. list-table::
+
+ * - *Prototype*:
+ - ``void omp_unset_nest_lock(omp_nest_lock_t *lock);``
+
+Fortran:
+ .. list-table::
+
+ * - *Interface*:
+ - ``subroutine omp_unset_nest_lock(nvar)``
+ * -
+ - ``integer(omp_nest_lock_kind), intent(inout) :: nvar``
+
+See also:
+ :ref:`omp_set_nest_lock`
+
+Reference:
+ :openmp:`4.5`, Section 3.3.5. \ No newline at end of file
diff --git a/libgomp/doc/reporting-bugs.rst b/libgomp/doc/reporting-bugs.rst
new file mode 100644
index 0000000..46beaf8
--- /dev/null
+++ b/libgomp/doc/reporting-bugs.rst
@@ -0,0 +1,14 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _reporting-bugs:
+
+Reporting Bugs
+--------------
+
+Bugs in the GNU Offloading and Multi Processing Runtime Library should
+be reported via `Bugzilla <https://gcc.gnu.org/bugzilla/>`_. Please add
+"openacc", or "openmp", or both to the keywords field in the bug
+report, as appropriate. \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi.rst b/libgomp/doc/the-libgomp-abi.rst
new file mode 100644
index 0000000..3b53085
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi.rst
@@ -0,0 +1,31 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _the-libgomp-abi:
+
+The libgomp ABI
+---------------
+
+The following sections present notes on the external ABI as
+presented by libgomp. Only maintainers should need them.
+
+.. toctree::
+ :maxdepth: 2
+
+ the-libgomp-abi/implementing-master-construct
+ the-libgomp-abi/implementing-critical-construct
+ the-libgomp-abi/implementing-atomic-construct
+ the-libgomp-abi/implementing-flush-construct
+ the-libgomp-abi/implementing-barrier-construct
+ the-libgomp-abi/implementing-threadprivate-construct
+ the-libgomp-abi/implementing-private-clause
+ the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses
+ the-libgomp-abi/implementing-reduction-clause
+ the-libgomp-abi/implementing-parallel-construct
+ the-libgomp-abi/implementing-for-construct
+ the-libgomp-abi/implementing-ordered-construct
+ the-libgomp-abi/implementing-sections-construct
+ the-libgomp-abi/implementing-single-construct
+ the-libgomp-abi/implementing-openaccs-parallel-construct \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi/implementing-atomic-construct.rst b/libgomp/doc/the-libgomp-abi/implementing-atomic-construct.rst
new file mode 100644
index 0000000..f66155e
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi/implementing-atomic-construct.rst
@@ -0,0 +1,21 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _implementing-atomic-construct:
+
+Implementing ATOMIC construct
+*****************************
+
+The target should implement the ``__sync`` builtins.
+
+Failing that we could add
+
+.. code-block:: c++
+
+ void GOMP_atomic_enter (void)
+ void GOMP_atomic_exit (void)
+
+which reuses the regular lock code, but with yet another lock
+object private to the library. \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi/implementing-barrier-construct.rst b/libgomp/doc/the-libgomp-abi/implementing-barrier-construct.rst
new file mode 100644
index 0000000..444afcc
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi/implementing-barrier-construct.rst
@@ -0,0 +1,13 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _implementing-barrier-construct:
+
+Implementing BARRIER construct
+******************************
+
+.. code-block:: c++
+
+ void GOMP_barrier (void) \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi/implementing-critical-construct.rst b/libgomp/doc/the-libgomp-abi/implementing-critical-construct.rst
new file mode 100644
index 0000000..587163e
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi/implementing-critical-construct.rst
@@ -0,0 +1,30 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _implementing-critical-construct:
+
+Implementing CRITICAL construct
+*******************************
+
+Without a specified name,
+
+.. code-block:: c++
+
+ void GOMP_critical_start (void);
+ void GOMP_critical_end (void);
+
+so that we don't get COPY relocations from libgomp to the main
+application.
+
+With a specified name, use omp_set_lock and omp_unset_lock with
+name being transformed into a variable declared like
+
+.. code-block:: c++
+
+ omp_lock_t gomp_critical_user_<name> __attribute__((common))
+
+Ideally the ABI would specify that all zero is a valid unlocked
+state, and so we wouldn't need to initialize this at
+startup. \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst b/libgomp/doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst
new file mode 100644
index 0000000..cfda2a8
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst
@@ -0,0 +1,45 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses:
+
+Implementing FIRSTPRIVATE LASTPRIVATE COPYIN and COPYPRIVATE clauses
+********************************************************************
+
+This seems simple enough for PARALLEL blocks. Create a private
+struct for communicating between the parent and subfunction.
+In the parent, copy in values for scalar and "small" structs;
+copy in addresses for others TREE_ADDRESSABLE types. In the
+subfunction, copy the value into the local variable.
+
+It is not clear what to do with bare FOR or SECTION blocks.
+The only thing I can figure is that we do something like:
+
+.. code-block:: c++
+
+ #pragma omp for firstprivate(x) lastprivate(y)
+ for (int i = 0; i < n; ++i)
+ body;
+
+which becomes
+
+.. code-block:: c++
+
+ {
+ int x = x, y;
+
+ // for stuff
+
+ if (i == n)
+ y = y;
+ }
+
+where the "x=x" and "y=y" assignments actually have different
+uids for the two variables, i.e. not something you could write
+directly in C. Presumably this only makes sense if the "outer"
+x and y are global variables.
+
+COPYPRIVATE would work the same way, except the structure
+broadcast would have to happen via SINGLE machinery instead. \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi/implementing-flush-construct.rst b/libgomp/doc/the-libgomp-abi/implementing-flush-construct.rst
new file mode 100644
index 0000000..9f9419e
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi/implementing-flush-construct.rst
@@ -0,0 +1,11 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _implementing-flush-construct:
+
+Implementing FLUSH construct
+****************************
+
+Expands to the ``__sync_synchronize`` builtin. \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi/implementing-for-construct.rst b/libgomp/doc/the-libgomp-abi/implementing-for-construct.rst
new file mode 100644
index 0000000..5291465
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi/implementing-for-construct.rst
@@ -0,0 +1,73 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _implementing-for-construct:
+
+Implementing FOR construct
+**************************
+
+.. code-block:: c++
+
+ #pragma omp parallel for
+ for (i = lb; i <= ub; i++)
+ body;
+
+becomes
+
+.. code-block:: c++
+
+ void subfunction (void *data)
+ {
+ long _s0, _e0;
+ while (GOMP_loop_static_next (&_s0, &_e0))
+ {
+ long _e1 = _e0, i;
+ for (i = _s0; i < _e1; i++)
+ body;
+ }
+ GOMP_loop_end_nowait ();
+ }
+
+ GOMP_parallel_loop_static (subfunction, NULL, 0, lb, ub+1, 1, 0);
+ subfunction (NULL);
+ GOMP_parallel_end ();
+
+.. code-block:: c++
+
+ #pragma omp for schedule(runtime)
+ for (i = 0; i < n; i++)
+ body;
+
+becomes
+
+.. code-block:: c++
+
+ {
+ long i, _s0, _e0;
+ if (GOMP_loop_runtime_start (0, n, 1, &_s0, &_e0))
+ do {
+ long _e1 = _e0;
+ for (i = _s0, i < _e0; i++)
+ body;
+ } while (GOMP_loop_runtime_next (&_s0, _&e0));
+ GOMP_loop_end ();
+ }
+
+Note that while it looks like there is trickiness to propagating
+a non-constant STEP, there isn't really. We're explicitly allowed
+to evaluate it as many times as we want, and any variables involved
+should automatically be handled as PRIVATE or SHARED like any other
+variables. So the expression should remain evaluable in the
+subfunction. We can also pull it into a local variable if we like,
+but since its supposed to remain unchanged, we can also not if we like.
+
+If we have SCHEDULE(STATIC), and no ORDERED, then we ought to be
+able to get away with no work-sharing context at all, since we can
+simply perform the arithmetic directly in each thread to divide up
+the iterations. Which would mean that we wouldn't need to call any
+of these routines.
+
+There are separate routines for handling loops with an ORDERED
+clause. Bookkeeping for that is non-trivial... \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi/implementing-master-construct.rst b/libgomp/doc/the-libgomp-abi/implementing-master-construct.rst
new file mode 100644
index 0000000..29e085c
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi/implementing-master-construct.rst
@@ -0,0 +1,18 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _implementing-master-construct:
+
+Implementing MASTER construct
+*****************************
+
+.. code-block:: c++
+
+ if (omp_get_thread_num () == 0)
+ block
+
+Alternately, we generate two copies of the parallel subfunction
+and only include this in the version run by the primary thread.
+Surely this is not worthwhile though... \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi/implementing-openaccs-parallel-construct.rst b/libgomp/doc/the-libgomp-abi/implementing-openaccs-parallel-construct.rst
new file mode 100644
index 0000000..03b9053
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi/implementing-openaccs-parallel-construct.rst
@@ -0,0 +1,13 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _implementing-openacc's-parallel-construct:
+
+Implementing OpenACC's PARALLEL construct
+*****************************************
+
+.. code-block:: c++
+
+ void GOACC_parallel () \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi/implementing-ordered-construct.rst b/libgomp/doc/the-libgomp-abi/implementing-ordered-construct.rst
new file mode 100644
index 0000000..2c5a196
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi/implementing-ordered-construct.rst
@@ -0,0 +1,14 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _implementing-ordered-construct:
+
+Implementing ORDERED construct
+******************************
+
+.. code-block:: c++
+
+ void GOMP_ordered_start (void)
+ void GOMP_ordered_end (void) \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi/implementing-parallel-construct.rst b/libgomp/doc/the-libgomp-abi/implementing-parallel-construct.rst
new file mode 100644
index 0000000..c2f0dc3
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi/implementing-parallel-construct.rst
@@ -0,0 +1,55 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _implementing-parallel-construct:
+
+Implementing PARALLEL construct
+*******************************
+
+.. code-block:: c++
+
+ #pragma omp parallel
+ {
+ body;
+ }
+
+becomes
+
+.. code-block:: c++
+
+ void subfunction (void *data)
+ {
+ use data;
+ body;
+ }
+
+ setup data;
+ GOMP_parallel_start (subfunction, &data, num_threads);
+ subfunction (&data);
+ GOMP_parallel_end ();
+
+.. code-block:: c++
+
+ void GOMP_parallel_start (void (*fn)(void *), void *data, unsigned num_threads)
+
+The :samp:`{FN}` argument is the subfunction to be run in parallel.
+
+The :samp:`{DATA}` argument is a pointer to a structure used to
+communicate data in and out of the subfunction, as discussed
+above with respect to FIRSTPRIVATE et al.
+
+The :samp:`{NUM_THREADS}` argument is 1 if an IF clause is present
+and false, or the value of the NUM_THREADS clause, if
+present, or 0.
+
+The function needs to create the appropriate number of
+threads and/or launch them from the dock. It needs to
+create the team structure and assign team ids.
+
+.. code-block:: c++
+
+ void GOMP_parallel_end (void)
+
+Tears down the team and returns us to the previous ``omp_in_parallel()`` state. \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi/implementing-private-clause.rst b/libgomp/doc/the-libgomp-abi/implementing-private-clause.rst
new file mode 100644
index 0000000..9b36da6
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi/implementing-private-clause.rst
@@ -0,0 +1,17 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _implementing-private-clause:
+
+Implementing PRIVATE clause
+***************************
+
+In association with a PARALLEL, or within the lexical extent
+of a PARALLEL block, the variable becomes a local variable in
+the parallel subfunction.
+
+In association with FOR or SECTIONS blocks, create a new
+automatic variable within the current function. This preserves
+the semantic of new variable creation. \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi/implementing-reduction-clause.rst b/libgomp/doc/the-libgomp-abi/implementing-reduction-clause.rst
new file mode 100644
index 0000000..5db34e0
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi/implementing-reduction-clause.rst
@@ -0,0 +1,15 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _implementing-reduction-clause:
+
+Implementing REDUCTION clause
+*****************************
+
+The private struct mentioned in the previous section should have
+a pointer to an array of the type of the variable, indexed by the
+thread's :samp:`{team_id}`. The thread stores its final value into the
+array, and after the barrier, the primary thread iterates over the
+array to collect the values. \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi/implementing-sections-construct.rst b/libgomp/doc/the-libgomp-abi/implementing-sections-construct.rst
new file mode 100644
index 0000000..4fcdf49
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi/implementing-sections-construct.rst
@@ -0,0 +1,42 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _implementing-sections-construct:
+
+Implementing SECTIONS construct
+*******************************
+
+A block as
+
+.. code-block:: c++
+
+ #pragma omp sections
+ {
+ #pragma omp section
+ stmt1;
+ #pragma omp section
+ stmt2;
+ #pragma omp section
+ stmt3;
+ }
+
+becomes
+
+.. code-block:: c++
+
+ for (i = GOMP_sections_start (3); i != 0; i = GOMP_sections_next ())
+ switch (i)
+ {
+ case 1:
+ stmt1;
+ break;
+ case 2:
+ stmt2;
+ break;
+ case 3:
+ stmt3;
+ break;
+ }
+ GOMP_barrier (); \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi/implementing-single-construct.rst b/libgomp/doc/the-libgomp-abi/implementing-single-construct.rst
new file mode 100644
index 0000000..2919e6b
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi/implementing-single-construct.rst
@@ -0,0 +1,48 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _implementing-single-construct:
+
+Implementing SINGLE construct
+*****************************
+
+A block like
+
+.. code-block:: c++
+
+ #pragma omp single
+ {
+ body;
+ }
+
+becomes
+
+.. code-block:: c++
+
+ if (GOMP_single_start ())
+ body;
+ GOMP_barrier ();
+
+while
+
+.. code-block:: c++
+
+ #pragma omp single copyprivate(x)
+ body;
+
+becomes
+
+.. code-block:: c++
+
+ datap = GOMP_single_copy_start ();
+ if (datap == NULL)
+ {
+ body;
+ data.x = x;
+ GOMP_single_copy_end (&data);
+ }
+ else
+ x = datap->x;
+ GOMP_barrier (); \ No newline at end of file
diff --git a/libgomp/doc/the-libgomp-abi/implementing-threadprivate-construct.rst b/libgomp/doc/the-libgomp-abi/implementing-threadprivate-construct.rst
new file mode 100644
index 0000000..0ea107e
--- /dev/null
+++ b/libgomp/doc/the-libgomp-abi/implementing-threadprivate-construct.rst
@@ -0,0 +1,18 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+.. _implementing-threadprivate-construct:
+
+Implementing THREADPRIVATE construct
+************************************
+
+In _most_ cases we can map this directly to ``__thread``. Except
+that OMP allows constructors for C++ objects. We can either
+refuse to support this (how often is it used?) or we can
+implement something akin to .ctors.
+
+Even more ideally, this ctor feature is handled by extensions
+to the main pthreads library. Failing that, we can have a set
+of entry points to register ctor functions to be called. \ No newline at end of file