aboutsummaryrefslogtreecommitdiff
path: root/libitm
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 /libitm
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 'libitm')
-rw-r--r--libitm/doc/c-c++-language-constructs-for-tm.rst39
-rw-r--r--libitm/doc/conf.py24
-rw-r--r--libitm/doc/copyright.rst13
-rw-r--r--libitm/doc/enabling-libitm.rst13
-rw-r--r--libitm/doc/gnu-free-documentation-license.rst6
-rw-r--r--libitm/doc/index.rst27
-rw-r--r--libitm/doc/indices-and-tables.rst1
-rw-r--r--libitm/doc/internals.rst16
-rw-r--r--libitm/doc/locking-conventions.rst261
-rw-r--r--libitm/doc/nesting-flat-vs-closed.rst28
-rw-r--r--libitm/doc/the-libitm-abi.rst27
-rw-r--r--libitm/doc/the-libitm-abi/function-list.rst272
-rw-r--r--libitm/doc/the-libitm-abi/future-enhancements-to-the-abi.rst7
-rw-r--r--libitm/doc/the-libitm-abi/library-design-principles.rst61
-rw-r--r--libitm/doc/the-libitm-abi/memory-model.rst18
-rw-r--r--libitm/doc/the-libitm-abi/non-objectives.rst7
-rw-r--r--libitm/doc/the-libitm-abi/objectives.rst7
-rw-r--r--libitm/doc/the-libitm-abi/sample-code.rst10
-rw-r--r--libitm/doc/the-libitm-abi/types-and-macros-list.rst10
-rw-r--r--libitm/doc/tm-methods-and-method-groups.rst47
20 files changed, 894 insertions, 0 deletions
diff --git a/libitm/doc/c-c++-language-constructs-for-tm.rst b/libitm/doc/c-c++-language-constructs-for-tm.rst
new file mode 100644
index 0000000..8487eae
--- /dev/null
+++ b/libitm/doc/c-c++-language-constructs-for-tm.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.
+
+.. _c-c++-language-constructs-for-tm:
+
+C/C++ Language Constructs for TM
+--------------------------------
+
+Transactions are supported in C++ and C in the form of transaction statements,
+transaction expressions, and function transactions. In the following example,
+both ``a`` and ``b`` will be read and the difference will be written to
+``c``, all atomically and isolated from other transactions:
+
+.. code-block:: c++
+
+ __transaction_atomic { c = a - b; }
+
+Therefore, another thread can use the following code to concurrently update
+``b`` without ever causing ``c`` to hold a negative value (and without
+having to use other synchronization constructs such as locks or C++11
+atomics):
+
+.. code-block:: c++
+
+ __transaction_atomic { if (a > b) b++; }
+
+GCC follows the `Draft
+Specification of Transactional Language Constructs for C++ (v1.1) <https://sites.google.com/site/tmforcplusplus/>`_ in its
+implementation of transactions.
+
+The precise semantics of transactions are defined in terms of the C++11/C11
+memory model (see the specification). Roughly, transactions provide
+synchronization guarantees that are similar to what would be guaranteed when
+using a single global lock as a guard for all transactions. Note that like
+other synchronization constructs in C/C++, transactions rely on a
+data-race-free program (e.g., a nontransactional write that is concurrent
+with a transactional read to the same memory location is a data race). \ No newline at end of file
diff --git a/libitm/doc/conf.py b/libitm/doc/conf.py
new file mode 100644
index 0000000..c288e34
--- /dev/null
+++ b/libitm/doc/conf.py
@@ -0,0 +1,24 @@
+# Configuration file for the Sphinx documentation builder.
+
+import sys
+sys.path.append('../..//doc')
+
+from baseconf import *
+
+name = 'libitm'
+project = 'The GNU Transactional Memory Library'
+copyright = '2011-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/libitm/doc/copyright.rst b/libitm/doc/copyright.rst
new file mode 100644
index 0000000..f0a7a07
--- /dev/null
+++ b/libitm/doc/copyright.rst
@@ -0,0 +1,13 @@
+..
+ 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.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+A copy of the license is included in the section entitled :ref:`gnu_fdl`. \ No newline at end of file
diff --git a/libitm/doc/enabling-libitm.rst b/libitm/doc/enabling-libitm.rst
new file mode 100644
index 0000000..212c120
--- /dev/null
+++ b/libitm/doc/enabling-libitm.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.
+
+.. _enabling-libitm:
+
+Enabling libitm
+---------------
+
+To activate support for TM in C/C++, the compile-time flag :option:`-fgnu-tm`
+must be specified. This enables TM language-level constructs such as
+transaction statements (e.g., ``__transaction_atomic``, see :ref:`c-c++-language-constructs-for-tm` for details). \ No newline at end of file
diff --git a/libitm/doc/gnu-free-documentation-license.rst b/libitm/doc/gnu-free-documentation-license.rst
new file mode 100644
index 0000000..089cc68
--- /dev/null
+++ b/libitm/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/libitm/doc/index.rst b/libitm/doc/index.rst
new file mode 100644
index 0000000..45ff20f
--- /dev/null
+++ b/libitm/doc/index.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.
+
+GCC libquadmath
+===============
+
+Introduction
+============
+
+.. index:: Introduction
+
+This manual documents the usage and internals of libitm, the GNU Transactional
+Memory Library. It provides transaction support for accesses to a process'
+memory, enabling easy-to-use synchronization of accesses to shared memory by
+several threads.
+
+.. toctree::
+
+ copyright
+ enabling-libitm
+ c-c++-language-constructs-for-tm
+ the-libitm-abi
+ internals
+ gnu-free-documentation-license
+ indices-and-tables \ No newline at end of file
diff --git a/libitm/doc/indices-and-tables.rst b/libitm/doc/indices-and-tables.rst
new file mode 100644
index 0000000..9799e4e
--- /dev/null
+++ b/libitm/doc/indices-and-tables.rst
@@ -0,0 +1 @@
+.. include:: ../../doc/indices-and-tables.rst \ No newline at end of file
diff --git a/libitm/doc/internals.rst b/libitm/doc/internals.rst
new file mode 100644
index 0000000..2e1c24c
--- /dev/null
+++ b/libitm/doc/internals.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.
+
+.. _internals:
+
+Internals
+---------
+
+.. toctree::
+ :maxdepth: 2
+
+ tm-methods-and-method-groups
+ nesting-flat-vs-closed
+ locking-conventions \ No newline at end of file
diff --git a/libitm/doc/locking-conventions.rst b/libitm/doc/locking-conventions.rst
new file mode 100644
index 0000000..b7a8d31
--- /dev/null
+++ b/libitm/doc/locking-conventions.rst
@@ -0,0 +1,261 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+Locking conventions
+*******************
+
+This section documents the locking scheme and rules for all uses of locking
+in libitm. We have to support serial(-irrevocable) mode, which is implemented
+using a global lock as explained next (called the *serial lock*). To
+simplify the overall design, we use the same lock as catch-all locking
+mechanism for other infrequent tasks such as (de)registering clone tables or
+threads. Besides the serial lock, there are *per-method-group locks* that
+are managed by specific method groups (i.e., groups of similar TM concurrency
+control algorithms), and lock-like constructs for quiescence-based operations
+such as ensuring privatization safety.
+
+Thus, the actions that participate in the libitm-internal locking are either
+*active transactions* that do not run in serial mode, *serial
+transactions* (which (are about to) run in serial mode), and management tasks
+that do not execute within a transaction but have acquired the serial mode
+like a serial transaction would do (e.g., to be able to register threads with
+libitm). Transactions become active as soon as they have successfully used the
+serial lock to announce this globally (see :ref:`serial-lock-impl`). Likewise, transactions become serial transactions as soon as
+they have acquired the exclusive rights provided by the serial lock (i.e.,
+serial mode, which also means that there are no other concurrent active or
+serial transactions). Note that active transactions can become serial
+transactions when they enter serial mode during the runtime of the
+transaction.
+
+State-to-lock mapping
+^^^^^^^^^^^^^^^^^^^^^
+
+Application data is protected by the serial lock if there is a serial
+transaction and no concurrently running active transaction (i.e., non-serial).
+Otherwise, application data is protected by the currently selected method
+group, which might use per-method-group locks or other mechanisms. Also note
+that application data that is about to be privatized might not be allowed to be
+accessed by nontransactional code until privatization safety has been ensured;
+the details of this are handled by the current method group.
+
+libitm-internal state is either protected by the serial lock or accessed
+through custom concurrent code. The latter applies to the public/shared part
+of a transaction object and most typical method-group-specific state.
+
+The former category (protected by the serial lock) includes:
+
+* The list of active threads that have used transactions.
+
+* The tables that map functions to their transactional clones.
+
+* The current selection of which method group to use.
+
+* Some method-group-specific data, or invariants of this data. For example,
+ resetting a method group to its initial state is handled by switching to the
+ same method group, so the serial lock protects such resetting as well.
+
+In general, such state is immutable whenever there exists an active
+(non-serial) transaction. If there is no active transaction, a serial
+transaction (or a thread that is not currently executing a transaction but has
+acquired the serial lock) is allowed to modify this state (but must of course
+be careful to not surprise the current method group's implementation with such
+modifications).
+
+Lock acquisition order
+^^^^^^^^^^^^^^^^^^^^^^
+
+To prevent deadlocks, locks acquisition must happen in a globally agreed-upon
+order. Note that this applies to other forms of blocking too, but does not
+necessarily apply to lock acquisitions that do not block (e.g., trylock()
+calls that do not get retried forever). Note that serial transactions are
+never return back to active transactions until the transaction has committed.
+Likewise, active transactions stay active until they have committed.
+Per-method-group locks are typically also not released before commit.
+
+Lock acquisition / blocking rules:
+
+* Transactions must become active or serial before they are allowed to
+ use method-group-specific locks or blocking (i.e., the serial lock must be
+ acquired before those other locks, either in serial or nonserial mode).
+
+* Any number of threads that do not currently run active transactions can
+ block while trying to get the serial lock in exclusive mode. Note that active
+ transactions must not block when trying to upgrade to serial mode unless there
+ is no other transaction that is trying that (the latter is ensured by the
+ serial lock implementation.
+
+* Method groups must prevent deadlocks on their locks. In particular, they
+ must also be prepared for another active transaction that has acquired
+ method-group-specific locks but is blocked during an attempt to upgrade to
+ being a serial transaction. See below for details.
+
+* Serial transactions can acquire method-group-specific locks because there
+ will be no other active nor serial transaction.
+
+There is no single rule for per-method-group blocking because this depends on
+when a TM method might acquire locks. If no active transaction can upgrade to
+being a serial transaction after it has acquired per-method-group locks (e.g.,
+when those locks are only acquired during an attempt to commit), then the TM
+method does not need to consider a potential deadlock due to serial mode.
+
+If there can be upgrades to serial mode after the acquisition of
+per-method-group locks, then TM methods need to avoid those deadlocks:
+
+* When upgrading to a serial transaction, after acquiring exclusive rights
+ to the serial lock but before waiting for concurrent active transactions to
+ finish (see :ref:`serial-lock-impl` for details),
+ we have to wake up all active transactions waiting on the upgrader's
+ per-method-group locks.
+
+* Active transactions blocking on per-method-group locks need to check the
+ serial lock and abort if there is a pending serial transaction.
+
+* Lost wake-ups have to be prevented (e.g., by changing a bit in each
+ per-method-group lock before doing the wake-up, and only blocking on this lock
+ using a futex if this bit is not group).
+
+.. todo:: Can reuse serial lock for gl-\*? And if we can, does it make
+ sense to introduce further complexity in the serial lock? For gl-\*, we can
+ really only avoid an abort if we do -wb and -vbv.
+
+.. _serial-lock-impl:
+
+Serial lock implementation
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The serial lock implementation is optimized towards assuming that serial
+transactions are infrequent and not the common case. However, the performance
+of entering serial mode can matter because when only few transactions are run
+concurrently or if there are few threads, then it can be efficient to run
+transactions serially.
+
+The serial lock is similar to a multi-reader-single-writer lock in that there
+can be several active transactions but only one serial transaction. However,
+we do want to avoid contention (in the lock implementation) between active
+transactions, so we split up the reader side of the lock into per-transaction
+flags that are true iff the transaction is active. The exclusive writer side
+remains a shared single flag, which is acquired using a CAS, for example.
+On the fast-path, the serial lock then works similar to Dekker's algorithm but
+with several reader flags that a serial transaction would have to check.
+A serial transaction thus requires a list of all threads with potentially
+active transactions; we can use the serial lock itself to protect this list
+(i.e., only threads that have acquired the serial lock can modify this list).
+
+We want starvation-freedom for the serial lock to allow for using it to ensure
+progress for potentially starved transactions (see :ref:`progress-guarantees` for details). However, this is currently not enforced by
+the implementation of the serial lock.
+
+Here is pseudo-code for the read/write fast paths of acquiring the serial
+lock (read-to-write upgrade is similar to write_lock:
+
+.. code-block:: c++
+
+ // read_lock:
+ tx->shared_state |= active;
+ __sync_synchronize(); // or STLD membar, or C++0x seq-cst fence
+ while (!serial_lock.exclusive)
+ if (spinning_for_too_long) goto slowpath;
+
+ // write_lock:
+ if (CAS(&serial_lock.exclusive, 0, this) != 0)
+ goto slowpath; // writer-writer contention
+ // need a membar here, but CAS already has full membar semantics
+ bool need_blocking = false;
+ for (t: all txns)
+ {
+ for (;t->shared_state & active;)
+ if (spinning_for_too_long) { need_blocking = true; break; }
+ }
+ if (need_blocking) goto slowpath;
+
+Releasing a lock in this spin-lock version then just consists of resetting
+``tx->shared_state`` to inactive or clearing ``serial_lock.exclusive``.
+
+However, we can't rely on a pure spinlock because we need to get the OS
+involved at some time (e.g., when there are more threads than CPUs to run on).
+Therefore, the real implementation falls back to a blocking slow path, either
+based on pthread mutexes or Linux futexes.
+
+Reentrancy
+^^^^^^^^^^
+
+libitm has to consider the following cases of reentrancy:
+
+* Transaction calls unsafe code that starts a new transaction: The outer
+ transaction will become a serial transaction before executing unsafe code.
+ Therefore, nesting within serial transactions must work, even if the nested
+ transaction is called from within uninstrumented code.
+
+* Transaction calls either a transactional wrapper or safe code, which in
+ turn starts a new transaction: It is not yet defined in the specification
+ whether this is allowed. Thus, it is undefined whether libitm supports this.
+
+* Code that starts new transactions might be called from within any part
+ of libitm: This kind of reentrancy would likely be rather complex and can
+ probably be avoided. Therefore, it is not supported.
+
+Privatization safety
+^^^^^^^^^^^^^^^^^^^^
+
+Privatization safety is ensured by libitm using a quiescence-based approach.
+Basically, a privatizing transaction waits until all concurrent active
+transactions will either have finished (are not active anymore) or operate on
+a sufficiently recent snapshot to not access the privatized data anymore. This
+happens after the privatizing transaction has stopped being an active
+transaction, so waiting for quiescence does not contribute to deadlocks.
+
+In method groups that need to ensure publication safety explicitly, active
+transactions maintain a flag or timestamp in the public/shared part of the
+transaction descriptor. Before blocking, privatizers need to let the other
+transactions know that they should wake up the privatizer.
+
+.. todo:: How to implement the waiters? Should those flags be
+ per-transaction or at a central place? We want to avoid one wake/wait call
+ per active transactions, so we might want to use either a tree or combining
+ to reduce the syscall overhead, or rather spin for a long amount of time
+ instead of doing blocking. Also, it would be good if only the last transaction
+ that the privatizer waits for would do the wake-up.
+
+.. _progress-guarantees:
+
+Progress guarantees
+^^^^^^^^^^^^^^^^^^^
+
+Transactions that do not make progress when using the current TM method will
+eventually try to execute in serial mode. Thus, the serial lock's progress
+guarantees determine the progress guarantees of the whole TM. Obviously, we at
+least need deadlock-freedom for the serial lock, but it would also be good to
+provide starvation-freedom (informally, all threads will finish executing a
+transaction eventually iff they get enough cycles).
+
+However, the scheduling of transactions (e.g., thread scheduling by the OS)
+also affects the handling of progress guarantees by the TM. First, the TM
+can only guarantee deadlock-freedom if threads do not get stopped. Likewise,
+low-priority threads can starve if they do not get scheduled when other
+high-priority threads get those cycles instead.
+
+If all threads get scheduled eventually, correct lock implementations will
+provide deadlock-freedom, but might not provide starvation-freedom. We can
+either enforce the latter in the TM's lock implementation, or assume that
+the scheduling is sufficiently random to yield a probabilistic guarantee that
+no thread will starve (because eventually, a transaction will encounter a
+scheduling that will allow it to run). This can indeed work well in practice
+but is not necessarily guaranteed to work (e.g., simple spin locks can be
+pretty efficient).
+
+Because enforcing stronger progress guarantees in the TM has a higher runtime
+overhead, we focus on deadlock-freedom right now and assume that the threads
+will get scheduled eventually by the OS (but don't consider threads with
+different priorities). We should support starvation-freedom for serial
+transactions in the future. Everything beyond that is highly related to proper
+contention management across all of the TM (including with TM method to
+choose), and is future work.
+
+**TODO** Handling thread priorities: We want to avoid priority inversion
+but it's unclear how often that actually matters in practice. Workloads that
+have threads with different priorities will likely also require lower latency
+or higher throughput for high-priority threads. Therefore, it probably makes
+not that much sense (except for eventual progress guarantees) to use
+priority inheritance until the TM has priority-aware contention management. \ No newline at end of file
diff --git a/libitm/doc/nesting-flat-vs-closed.rst b/libitm/doc/nesting-flat-vs-closed.rst
new file mode 100644
index 0000000..8b157ba
--- /dev/null
+++ b/libitm/doc/nesting-flat-vs-closed.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.
+
+Nesting: flat vs. closed
+************************
+
+We support two different kinds of nesting of transactions. In the case of
+*flat nesting*, the nesting structure is flattened and all nested
+transactions are subsumed by the enclosing transaction. In contrast,
+with *closed nesting*, nested transactions that have not yet committed
+can be rolled back separately from the enclosing transactions; when they
+commit, they are subsumed by the enclosing transaction, and their effects
+will be finally committed when the outermost transaction commits.
+*Open nesting* (where nested transactions can commit independently of the
+enclosing transactions) are not supported.
+
+Flat nesting is the default nesting mode, but closed nesting is supported and
+used when transactions contain user-controlled aborts
+(``__transaction_cancel`` statements). We assume that user-controlled
+aborts are rare in typical code and used mostly in exceptional situations.
+Thus, it makes more sense to use flat nesting by default to avoid the
+performance overhead of the additional checkpoints required for closed
+nesting. User-controlled aborts will correctly abort the innermost enclosing
+transaction, whereas the whole (i.e., outermost) transaction will be restarted
+otherwise (e.g., when a transaction encounters data conflicts during
+optimistic execution). \ No newline at end of file
diff --git a/libitm/doc/the-libitm-abi.rst b/libitm/doc/the-libitm-abi.rst
new file mode 100644
index 0000000..2340074
--- /dev/null
+++ b/libitm/doc/the-libitm-abi.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.
+
+.. _the-libitm-abi:
+
+The libitm ABI
+--------------
+
+The ABI provided by libitm is basically equal to the Linux variant of Intel's
+current TM ABI specification document (Revision 1.1, May 6 2009) but with the
+differences listed in this chapter. It would be good if these changes would
+eventually be merged into a future version of this specification. To ease
+look-up, the following subsections mirror the structure of this specification.
+
+.. toctree::
+ :maxdepth: 2
+
+ the-libitm-abi/objectives
+ the-libitm-abi/non-objectives
+ the-libitm-abi/library-design-principles
+ the-libitm-abi/types-and-macros-list
+ the-libitm-abi/function-list
+ the-libitm-abi/future-enhancements-to-the-abi
+ the-libitm-abi/sample-code
+ the-libitm-abi/memory-model \ No newline at end of file
diff --git a/libitm/doc/the-libitm-abi/function-list.rst b/libitm/doc/the-libitm-abi/function-list.rst
new file mode 100644
index 0000000..79cc5d8
--- /dev/null
+++ b/libitm/doc/the-libitm-abi/function-list.rst
@@ -0,0 +1,272 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+Function list
+*************
+
+Initialization and finalization functions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+These functions are not part of the ABI.
+
+[No changes] Version checking
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+[No changes] Error reporting
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+[No changes] inTransaction call
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+State manipulation functions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+There is no ``getTransaction`` function. Transaction identifiers for
+nested transactions will be ordered but not necessarily sequential (i.e., for
+a nested transaction's identifier :samp:`{IN}` and its enclosing transaction's
+identifier :samp:`{IE}`, it is guaranteed that IN >= IE).
+
+[No changes] Source locations
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Starting a transaction
+^^^^^^^^^^^^^^^^^^^^^^
+
+.. _txn-code-properties:
+
+Transaction code properties
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The bit ``hasNoXMMUpdate`` is instead called ``hasNoVectorUpdate``.
+Iff it is set, vector register save/restore is not necessary for any target
+machine.
+
+The ``hasNoFloatUpdate`` bit (``0x0010``) is new. Iff it is set, floating
+point register save/restore is not necessary for any target machine.
+
+``undoLogCode`` is not supported and a fatal runtime error will be raised
+if this bit is set. It is not properly defined in the ABI why barriers
+other than undo logging are not present; Are they not necessary (e.g., a
+transaction operating purely on thread-local data) or have they been omitted by
+the compiler because it thinks that some kind of global synchronization
+(e.g., serial mode) might perform better? The specification suggests that the
+latter might be the case, but the former seems to be more useful.
+
+The ``readOnly`` bit (``0x4000``) is new.
+
+.. todo:: Lexical or dynamic scope?
+
+``hasNoRetry`` is not supported. If this bit is not set, but
+``hasNoAbort`` is set, the library can assume that transaction
+rollback will not be requested.
+
+It would be useful if the absence of externally-triggered rollbacks would be
+reported for the dynamic scope as well, not just for the lexical scope
+(``hasNoAbort``). Without this, a library cannot exploit this together
+with flat nesting.
+
+``exceptionBlock`` is not supported because exception blocks are not used.
+
+[No changes] Windows exception state
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+[No changes] Other machine state
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+[No changes] Results from beginTransaction
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Aborting a transaction
+^^^^^^^^^^^^^^^^^^^^^^
+
+``_ITM_rollbackTransaction`` is not supported. ``_ITM_abortTransaction``
+is supported but the abort reasons ``exceptionBlockAbort``,
+``TMConflict``, and ``userRetry`` are not supported. There are no
+exception blocks in general, so the related cases also do not have to be
+considered. To encode ``__transaction_cancel [[outer]]``, compilers must
+set the new ``outerAbort`` bit (``0x10``) additionally to the
+``userAbort`` bit in the abort reason.
+
+Committing a transaction
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+The exception handling (EH) scheme is different. The Intel ABI requires the
+``_ITM_tryCommitTransaction`` function that will return even when the
+commit failed and will have to be matched with calls to either
+``_ITM_abortTransaction`` or ``_ITM_commitTransaction``. In contrast,
+gcc relies on transactional wrappers for the functions of the Exception
+Handling ABI and on one additional commit function (shown below). This allows
+the TM to keep track of EH internally and thus it does not have to embed the
+cleanup of EH state into the existing EH code in the program.
+``_ITM_tryCommitTransaction`` is not supported.
+``_ITM_commitTransactionToId`` is also not supported because the
+propagation of thrown exceptions will not bypass commits of nested
+transactions.
+
+.. code-block:: c++
+
+ void _ITM_commitTransactionEH(void *exc_ptr) ITM_REGPARM;
+ void *_ITM_cxa_allocate_exception (size_t);
+ void _ITM_cxa_free_exception (void *exc_ptr);
+ void _ITM_cxa_throw (void *obj, void *tinfo, void (*dest) (void *));
+ void *_ITM_cxa_begin_catch (void *exc_ptr);
+ void _ITM_cxa_end_catch (void);
+
+The EH scheme changed in version 6 of GCC. Previously, the compiler
+added a call to ``_ITM_commitTransactionEH`` to commit a transaction if
+an exception could be in flight at this position in the code; ``exc_ptr`` is
+the address of the current exception and must be non-zero. Now, the
+compiler must catch all exceptions that are about to be thrown out of a
+transaction and call ``_ITM_commitTransactionEH`` from the catch clause,
+with ``exc_ptr`` being zero.
+
+Note that the old EH scheme never worked completely in GCC's implementation;
+libitm currently does not try to be compatible with the old scheme.
+
+The ``_ITM_cxa...`` functions are transactional wrappers for the respective
+``__cxa...`` functions and must be called instead of these in transactional
+code. ``_ITM_cxa_free_exception`` is new in GCC 6.
+
+To support this EH scheme, libstdc++ needs to provide one additional function
+(``_cxa_tm_cleanup``), which is used by the TM to clean up the exception
+handling state while rolling back a transaction:
+
+.. code-block:: c++
+
+ void __cxa_tm_cleanup (void *unthrown_obj, void *cleanup_exc,
+ unsigned int caught_count);
+
+Since GCC 6, ``unthrown_obj`` is not used anymore and always null;
+prior to that, ``unthrown_obj`` is non-null if the program called
+``__cxa_allocate_exception`` for this exception but did not yet called
+``__cxa_throw`` for it. ``cleanup_exc`` is non-null if the program is
+currently processing a cleanup along an exception path but has not caught this
+exception yet. ``caught_count`` is the nesting depth of
+``__cxa_begin_catch`` within the transaction (which can be counted by the TM
+using ``_ITM_cxa_begin_catch`` and ``_ITM_cxa_end_catch``);
+``__cxa_tm_cleanup`` then performs rollback by essentially performing
+``__cxa_end_catch`` that many times.
+
+Exception handling support
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Currently, there is no support for functionality like
+``__transaction_cancel throw`` as described in the C++ TM specification.
+Supporting this should be possible with the EH scheme explained previously
+because via the transactional wrappers for the EH ABI, the TM is able to
+observe and intercept EH.
+
+[No changes] Transition to serial--irrevocable mode
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+[No changes] Data transfer functions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+[No changes] Transactional memory copies
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Transactional versions of memmove
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If either the source or destination memory region is to be accessed
+nontransactionally, then source and destination regions must not be
+overlapping. The respective ``_ITM_memmove`` functions are still
+available but a fatal runtime error will be raised if such regions do overlap.
+To support this functionality, the ABI would have to specify how the
+intersection of the regions has to be accessed (i.e., transactionally or
+nontransactionally).
+
+[No changes] Transactional versions of memset
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+[No changes] Logging functions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+User-registered commit and undo actions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Commit actions will get executed in the same order in which the respective
+calls to ``_ITM_addUserCommitAction`` happened. Only
+``_ITM_noTransactionId`` is allowed as value for the
+``resumingTransactionId`` argument. Commit actions get executed after
+privatization safety has been ensured.
+
+Undo actions will get executed in reverse order compared to the order in which
+the respective calls to ``_ITM_addUserUndoAction`` happened. The ordering of
+undo actions w.r.t. the roll-back of other actions (e.g., data transfers or
+memory allocations) is undefined.
+
+``_ITM_getThreadnum`` is not supported currently because its only purpose
+is to provide a thread ID that matches some assumed performance tuning output,
+but this output is not part of the ABI nor further defined by it.
+
+``_ITM_dropReferences`` is not supported currently because its semantics and
+the intention behind it is not entirely clear. The
+specification suggests that this function is necessary because of certain
+orderings of data transfer undos and the releasing of memory regions (i.e.,
+privatization). However, this ordering is never defined, nor is the ordering of
+dropping references w.r.t. other events.
+
+[New] Transactional indirect calls
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Indirect calls (i.e., calls through a function pointer) within transactions
+should execute the transactional clone of the original function (i.e., a clone
+of the original that has been fully instrumented to use the TM runtime), if
+such a clone is available. The runtime provides two functions to
+register/deregister clone tables:
+
+.. code-block:: c++
+
+ struct clone_entry
+ {
+ void *orig, *clone;
+ };
+
+ void _ITM_registerTMCloneTable (clone_entry *table, size_t entries);
+ void _ITM_deregisterTMCloneTable (clone_entry *table);
+
+Registered tables must be writable by the TM runtime, and must be live
+throughout the life-time of the TM runtime.
+
+.. todo:: The intention was always to drop the registration functions
+ entirely, and create a new ELF Phdr describing the linker-sorted table. Much
+ like what currently happens for ``PT_GNU_EH_FRAME``.
+ This work kept getting bogged down in how to represent the :samp:`{N}` different
+ code generation variants. We clearly needed at least two---SW and HW
+ transactional clones---but there was always a suggestion of more variants for
+ different TM assumptions/invariants.
+
+The compiler can then use two TM runtime functions to perform indirect calls in
+transactions:
+
+.. code-block:: c++
+
+ void *_ITM_getTMCloneOrIrrevocable (void *function) ITM_REGPARM;
+ void *_ITM_getTMCloneSafe (void *function) ITM_REGPARM;
+
+If there is a registered clone for supplied function, both will return a
+pointer to the clone. If not, the first runtime function will attempt to switch
+to serial--irrevocable mode and return the original pointer, whereas the second
+will raise a fatal runtime error.
+
+[New] Transactional dynamic memory management
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: c++
+
+ void *_ITM_malloc (size_t)
+ __attribute__((__malloc__)) ITM_PURE;
+ void *_ITM_calloc (size_t, size_t)
+ __attribute__((__malloc__)) ITM_PURE;
+ void _ITM_free (void *) ITM_PURE;
+
+These functions are essentially transactional wrappers for ``malloc``,
+``calloc``, and ``free``. Within transactions, the compiler should
+replace calls to the original functions with calls to the wrapper functions.
+
+libitm also provides transactional clones of C++ memory management functions
+such as global operator new and delete. They are part of libitm for historic
+reasons but do not need to be part of this ABI. \ No newline at end of file
diff --git a/libitm/doc/the-libitm-abi/future-enhancements-to-the-abi.rst b/libitm/doc/the-libitm-abi/future-enhancements-to-the-abi.rst
new file mode 100644
index 0000000..f8fbac3
--- /dev/null
+++ b/libitm/doc/the-libitm-abi/future-enhancements-to-the-abi.rst
@@ -0,0 +1,7 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+[No changes] Future Enhancements to the ABI
+******************************************* \ No newline at end of file
diff --git a/libitm/doc/the-libitm-abi/library-design-principles.rst b/libitm/doc/the-libitm-abi/library-design-principles.rst
new file mode 100644
index 0000000..7482994
--- /dev/null
+++ b/libitm/doc/the-libitm-abi/library-design-principles.rst
@@ -0,0 +1,61 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+Library design principles
+*************************
+
+[No changes] Calling conventions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+[No changes] TM library algorithms
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+[No changes] Optimized load and store routines
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+[No changes] Aligned load and store routines
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Data logging functions
+^^^^^^^^^^^^^^^^^^^^^^
+
+The memory locations accessed with transactional loads and stores and the
+memory locations whose values are logged must not overlap. This required
+separation only extends to the scope of the execution of one transaction
+including all the executions of all nested transactions.
+
+The compiler must be consistent (within the scope of a single transaction)
+about which memory locations are shared and which are not shared with other
+threads (i.e., data must be accessed either transactionally or
+nontransactionally). Otherwise, non-write-through TM algorithms would not work.
+
+For memory locations on the stack, this requirement extends to only the
+lifetime of the stack frame that the memory location belongs to (or the
+lifetime of the transaction, whichever is shorter). Thus, memory that is
+reused for several stack frames could be target of both data logging and
+transactional accesses; however, this is harmless because these stack frames'
+lifetimes will end before the transaction finishes.
+
+[No changes] Scatter/gather calls
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+[No changes] Serial and irrevocable mode
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+[No changes] Transaction descriptor
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Store allocation
+^^^^^^^^^^^^^^^^
+
+There is no ``getTransaction`` function.
+
+[No changes] Naming conventions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Function pointer encryption
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Currently, this is not implemented. \ No newline at end of file
diff --git a/libitm/doc/the-libitm-abi/memory-model.rst b/libitm/doc/the-libitm-abi/memory-model.rst
new file mode 100644
index 0000000..f43e2f8
--- /dev/null
+++ b/libitm/doc/the-libitm-abi/memory-model.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.
+
+[New] Memory model
+******************
+
+The ABI should define a memory model and the ordering that is guaranteed for
+data transfers and commit/undo actions, or at least refer to another memory
+model that needs to be preserved. Without that, the compiler cannot ensure the
+memory model specified on the level of the programming language (e.g., by the
+C++ TM specification).
+
+For example, if a transactional load is ordered before another load/store, then
+the TM runtime must also ensure this ordering when accessing shared state. If
+not, this might break the kind of publication safety used in the C++ TM
+specification. Likewise, the TM runtime must ensure privatization safety. \ No newline at end of file
diff --git a/libitm/doc/the-libitm-abi/non-objectives.rst b/libitm/doc/the-libitm-abi/non-objectives.rst
new file mode 100644
index 0000000..b3c558e
--- /dev/null
+++ b/libitm/doc/the-libitm-abi/non-objectives.rst
@@ -0,0 +1,7 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+[No changes] Non-objectives
+*************************** \ No newline at end of file
diff --git a/libitm/doc/the-libitm-abi/objectives.rst b/libitm/doc/the-libitm-abi/objectives.rst
new file mode 100644
index 0000000..d4c5d460
--- /dev/null
+++ b/libitm/doc/the-libitm-abi/objectives.rst
@@ -0,0 +1,7 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+[No changes] Objectives
+*********************** \ No newline at end of file
diff --git a/libitm/doc/the-libitm-abi/sample-code.rst b/libitm/doc/the-libitm-abi/sample-code.rst
new file mode 100644
index 0000000..c8e9541
--- /dev/null
+++ b/libitm/doc/the-libitm-abi/sample-code.rst
@@ -0,0 +1,10 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+Sample code
+************
+
+The code examples might not be correct w.r.t. the current version of the ABI,
+especially everything related to exception handling. \ No newline at end of file
diff --git a/libitm/doc/the-libitm-abi/types-and-macros-list.rst b/libitm/doc/the-libitm-abi/types-and-macros-list.rst
new file mode 100644
index 0000000..248c666
--- /dev/null
+++ b/libitm/doc/the-libitm-abi/types-and-macros-list.rst
@@ -0,0 +1,10 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+Types and macros list
+*********************
+
+``_ITM_codeProperties`` has changed, see :ref:`txn-code-properties`.
+``_ITM_srcLocation`` is not used. \ No newline at end of file
diff --git a/libitm/doc/tm-methods-and-method-groups.rst b/libitm/doc/tm-methods-and-method-groups.rst
new file mode 100644
index 0000000..a9b5619
--- /dev/null
+++ b/libitm/doc/tm-methods-and-method-groups.rst
@@ -0,0 +1,47 @@
+..
+ Copyright 1988-2022 Free Software Foundation, Inc.
+ This is part of the GCC manual.
+ For copying conditions, see the copyright.rst file.
+
+TM methods and method groups
+****************************
+
+libitm supports several ways of synchronizing transactions with each other.
+These TM methods (or TM algorithms) are implemented in the form of
+subclasses of ``abi_dispatch``, which provide methods for
+transactional loads and stores as well as callbacks for rollback and commit.
+All methods that are compatible with each other (i.e., that let concurrently
+running transactions still synchronize correctly even if different methods
+are used) belong to the same TM method group. Pointers to TM methods can be
+obtained using the factory methods prefixed with ``dispatch_`` in
+:samp:`libitm_i.h`. There are two special methods, ``dispatch_serial`` and
+``dispatch_serialirr``, that are compatible with all methods because they
+run transactions completely in serial mode.
+
+TM method life cycle
+^^^^^^^^^^^^^^^^^^^^
+
+The state of TM methods does not change after construction, but they do alter
+the state of transactions that use this method. However, because
+per-transaction data gets used by several methods, ``gtm_thread`` is
+responsible for setting an initial state that is useful for all methods.
+After that, methods are responsible for resetting/clearing this state on each
+rollback or commit (of outermost transactions), so that the transaction
+executed next is not affected by the previous transaction.
+
+There is also global state associated with each method group, which is
+initialized and shut down (``method_group::init()`` and ``fini()``)
+when switching between method groups (see :samp:`retry.cc`).
+
+Selecting the default method
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The default method that libitm uses for freshly started transactions (but
+not necessarily for restarted transactions) can be set via an environment
+variable (:envvar:`ITM_DEFAULT_METHOD`), whose value should be equal to the name
+of one of the factory methods returning abi_dispatch subclasses but without
+the "dispatch\_" prefix (e.g., "serialirr" instead of
+``GTM::dispatch_serialirr()``).
+
+Note that this environment variable is only a hint for libitm and might not
+be supported in the future. \ No newline at end of file