Jakub Jelinek [Wed, 9 Nov 2022 10:37:58 +0000 (11:37 +0100)]
testsuite: Fix up pr107541.c test
The test fails when long is 32-bit rather than 64-bit (say x86_64 with
RUNTESTFLAGS='--target_board=unix\{-m32,-m64\} tree-ssa.exp=pr107541.c'
).
I've tweaked it to use long long so it passes even on the 32-bit
targets, and added an early out for weirdo targets because I think
the test assumes the usual 1/2/4/8 bytes sizes for char/short/int/long long.
2022-11-09 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/107541
* gcc.dg/tree-ssa/pr107541.c (c): Use long long type rather than long.
(main): Punt if sizeof short isn't 2, or int 4, or long long 8.
Martin Liska [Mon, 7 Nov 2022 12:59:01 +0000 (13:59 +0100)]
sphinx: do not use tm.rst.in with empty content
gcc/ChangeLog:
* doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst:
Do not include tm.rst.in.
* doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst:
Likewise.
* doc/gccint/target-macros/run-time-target-specification.rst:
Likewise.
Martin Liska [Mon, 7 Nov 2022 11:54:13 +0000 (12:54 +0100)]
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.
Aldy Hernandez [Tue, 8 Nov 2022 22:49:04 +0000 (23:49 +0100)]
[range-op-float] Abstract out binary operator code out of PLUS_EXPR entry.
The PLUS_EXPR was always meant to be a template for further
development, since most of the binary operators will share a similar
structure. This patch abstracts out the common bits into the default
definition for range_operator_float::fold_range() and provides an
rv_fold() to be implemented by the individual entries wishing to use
the generic folder. This is akin to what we do with fold_range() and
wi_fold() in the integer version of range-ops.
Aldy Hernandez [Tue, 8 Nov 2022 22:42:04 +0000 (23:42 +0100)]
[range-op-float] Set NAN possibility for INF + (-INF) and vice versa.
Some combinations of operations can yield a NAN even if no operands
have the possiblity of a NAN. For example, [-INF] + [+INF] = NAN and
vice versa.
For [-INF,+INF] + [-INF,+INF], frange_arithmetic will not return a
NAN, and since the operands have no possibility of a NAN, we will
mistakenly assume the result cannot have a NAN. This fixes the
oversight.
gcc/ChangeLog:
* range-op-float.cc (foperator_plus::fold_range): Set NAN for
addition of different signed infinities.
(range_op_float_tests): New test.
Marek Polacek [Fri, 28 Oct 2022 17:39:40 +0000 (13:39 -0400)]
c++: Tweaks for -Wredundant-move [PR107363]
Two things here:
1) when we're pointing out that std::move on a constant object is
redundant, don't say "in return statement" when we aren't in a
return statement;
2) suppress the warning when the std::move call was dependent, because
removing the std::move may not be correct for a different
instantiation of the original template.
PR c++/107363
gcc/cp/ChangeLog:
* semantics.cc (finish_call_expr): Suppress OPT_Wpessimizing_move.
* typeck.cc (maybe_warn_pessimizing_move): Check warn_redundant_move
and warning_suppressed_p. Adjust a message depending on return_p.
(check_return_expr): Don't suppress OPT_Wpessimizing_move here.
liuhongt [Mon, 7 Nov 2022 01:55:25 +0000 (09:55 +0800)]
Fix incorrect insn type to avoid ICE in memory attr auto-detection.
Memory attribute auto detection will check operand 2 for type sselog,
and check operand 1 for type sselog1. For below 2 insns, there's no
operand 2. Change type to sselog1.
gcc/ChangeLog:
PR target/107540
* config/i386/sse.md (avx512f_movddup512<mask_name>): Change
type from sselog to sselog1.
(avx_movddup256<mask_name>): Ditto.
In r12-3094-ge82e0f149b0aba I added the assumption that
POINTER_PLUS_EXPR of non-NULL is non-NULL (for PR analyzer/101962).
Whilst working on another bug, I noticed that this only works
when the LHS is known to be non-NULL via
region_model::eval_condition_without_cm, but not when it's known through
a constraint.
This distinction predates the original commit of the analyzer in GCC 10,
but I believe it became irrelevant in the GCC 11 rewrite of the region
model code (r11-2694-g808f4dfeb3a95f).
Hence this patch eliminates region_model::eval_condition_without_cm in
favor of all users simply calling region_model::eval_condition. Doing
so enables the "POINTER_PLUS_EXPR of non-NULL is non-NULL" assumption to
also be made when the LHS is known through a constraint (e.g. a
conditional).
gcc/analyzer/ChangeLog:
PR analyzer/101962
* region-model-impl-calls.cc: Update comment.
* region-model.cc (region_model::check_symbolic_bounds): Fix
layout of "void" return. Replace usage of
eval_condition_without_cm with eval_condition.
(region_model::eval_condition): Take over body of...
(region_model::eval_condition_without_cm): ...this subroutine,
dropping the latter. Eliminating this distinction avoids issues
where constraints were not considered when recursing.
(region_model::compare_initial_and_pointer): Update comment.
(region_model::symbolic_greater_than): Replace usage of
eval_condition_without_cm with eval_condition.
* region-model.h
(region_model::eval_condition_without_cm): Delete decl.
gcc/testsuite/ChangeLog:
PR analyzer/101962
* gcc.dg/analyzer/data-model-23.c (test_3): New test.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Jonathan Wakely [Fri, 16 Sep 2022 15:30:02 +0000 (16:30 +0100)]
libstdc++: Add always_inline to most allocator functions
This reduces the abstraction penalty for allocator support in
unoptimized code. Constructing and using allocators in containers calls
many one-line (or completely empty) inline functions. Those can all be
inlined to reduce code size and function call overhead for -O0.
libstdc++-v3/ChangeLog:
* include/bits/alloc_traits.h (allocator_traits): Add
always_inline attribute to all member functions.
(__do_alloc_on_copy, __alloc_on_copy, __do_alloc_on_move)
(__alloc_on_move, __do_alloc_on_swap, __alloc_on_swap)
(_Destroy(FwdIter, FwdIter, allocator<T>&)): : Add
always_inline attribute.
* include/bits/allocator.h (allocator): Add always_inline
attribute to all member functions and equality operators.
* include/bits/new_allocator.h (__new_allocator): Likewise.
* include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits):
Likewise.
libstdc++: basic_filebuf: don't flush more often than necessary [PR63746]
`basic_filebuf::xsputn` would bypass the buffer when passed a chunk of
size 1024 and above, seemingly as an optimisation.
This can have a significant performance impact if the overhead of a
`write` syscall is non-negligible, e.g. on a slow disk, on network
filesystems, or simply during IO contention because instead of flushing
every `BUFSIZ` (by default), we can flush every 1024 char.
The impact is even greater with custom larger buffers, e.g. for network
filesystems, because the code could issue `write` for example 1000X more
often than necessary with respect to the buffer size.
It also introduces a significant discontinuity in performance when
writing chunks of size 1024 and above.
Instead, it makes sense to only bypass the buffer if the amount of data
to be written is larger than the buffer capacity.
PR libstdc++/63746
* include/bits/fstream.tcc (basic_filbuf::xsputn): Remove
1024-byte chunking that bypasses the buffer for large writes.
* testsuite/27_io/basic_filebuf/sputn/char/63746.cc: New test.
Will Hawkins [Thu, 20 Oct 2022 00:05:59 +0000 (20:05 -0400)]
libstdc++: Refactor implementation of operator+ for std::string
Until now operator+(char*, string) and operator+(string, char*) had
different performance characteristics. The former required a single
memory allocation and the latter required two. This patch makes the
performance equal.
After consultation with Jonathan, it seemed like a good idea to create a
single function that performed one-allocation string concatenation that
could be used by various different version of operator+. This patch adds
such a function and calls it from the relevant implementations.
Co-authored-by: Jonathan Wakely <jwakely@redhat.com>
libstdc++-v3/ChangeLog:
* include/bits/basic_string.h (__str_cat): Add common function
that performs single-allocation string concatenation.
(operator+): Use __str_cat.
* include/bits/basic_string.tcc (operator+): Move to .h and
define inline using __str_cat.
David Faust [Mon, 7 Nov 2022 18:40:01 +0000 (10:40 -0800)]
bpf: Use enum for resolved overloaded builtins
Change several places in the eBPF backend dealing with overloaded
built-in functions to consistently use the enum bpf_builtins type,
rather than variously using integer constants or booleans. The result is
eaiser to read and extend.
gcc/
* config/bpf/bpf.cc (struct core_walk_data): Add field `which'...
(bpf_resolve_overloaded_builtin): ... set it here. Use values of enum
bpf_builtins for error checks.
(bpf_core_walk): Use values of enum bpf_builtins.
(bpf_core_newdecl): Likewise.
(bpf_expand_builtin): Likewise.
Aldy Hernandez [Thu, 13 Oct 2022 06:14:16 +0000 (08:14 +0200)]
[PR24021] Implement PLUS_EXPR range-op entry for floats.
This is the range-op entry for floating point PLUS_EXPR. It's the
most intricate range entry we have so far, because we need to keep
track of rounding and target FP formats. This will be the last FP
entry I commit, mostly to avoid disturbing the tree any further, and
also because what we have so far is enough for a solid VRP.
So far we track NANs and signs correctly. We also handle relationals
(symbolics and numeric), both ordered and unordered, ABS_EXPR and
NEGATE_EXPR which are used to fold __builtin_isinf, and __builtin_sign
(__builtin_copysign is coming up). All in all, I think this provide
more than enough for basic VRP on floats, as well as provide a basis
to flesh out the rest if there's interest.
My goal with this entry is to provide a template for additional binary
operators, as they tend to follow a similar pattern: handle NANs, do
the arithmetic while keeping track of rounding, and adjust for NAN. I
may abstract the general parts as we do for irange's fold_range and
wi_fold.
Aldy Hernandez [Mon, 7 Nov 2022 13:18:57 +0000 (14:18 +0100)]
Provide normalized and denormal format version of real_isdenormal.
Implement a variant of real_isdenormal() to be used within real.cc
where the argument is known to be in denormal format. Rewrite
real_isdenormal() for use outside of real.cc where the argument is
known to be normalized.
Richard Biener [Tue, 8 Nov 2022 12:49:16 +0000 (13:49 +0100)]
tree-optimization/107389 - honor __builtin_assume_alignment at -O0
The following makes sure to set alignment information on the LHS
of __builtin_assume_alignment calls even when not optimizing so
uses as arguments to builtin functions like memcpy or __atomic_load_n
can be reflected at RTL expansion time.
PR tree-optimization/107389
* gimple-low.cc (lower_builtin_assume_aligned): New.
(lower_stmt): Call it.
Aldy Hernandez [Sun, 6 Nov 2022 19:38:42 +0000 (20:38 +0100)]
CCP: handle division by a power of 2 as a right shift.
We have some code in range-ops that sets better maybe nonzero bits for
TRUNC_DIV_EXPR by a power of 2 than CCP does, by just shifting the
mask. I'd like to offload this functionality into the CCP mask
tracking code, which already does the right thing for right shifts.
The testcase for this change is gcc.dg/tree-ssa/vrp123.c and
gcc.dg/tree-ssa/pr107541.c.
gcc/ChangeLog:
* range-op.cc (operator_div::fold_range): Call
update_known_bitmask.
* tree-ssa-ccp.cc (bit_value_binop): Handle divisions by powers of
2 as a right shift.
Aldy Hernandez [Sun, 6 Nov 2022 12:05:39 +0000 (13:05 +0100)]
Use bit-CCP in range-ops.
After Jakub and Richi's suggestion of using the same representation
for tracking known bits as we do in CCP, I took a peek at the code and
realized there's a plethora of bit-tracking code there that we could
be sharing with range-ops. For example, the multiplication
optimizations are way better than what I had cobbled together. For
that matter, our maybe nonzero tracking as a whole has a lot of room
for improvement. Being the lazy ass that I am, I think we should just
use one code base (CCP's).
This patch provides a thin wrapper for converting the irange maybe
nonzero bits to what CCP requires, and uses that to call into
bit_value_binop(). I have so far converted the MULT_EXPR range-op
entry to use it, as the DIV_EXPR entry we have gets a case CCP doesn't
get so I'd like to contribute the enhancement to CCP before converting
over.
I'd like to use this approach with the dozen or so tree_code's that
are handled in CCP, thus saving us from having to implement any of
them :).
Early next season I'd like to change irange's internal representation
to a pair of value / mask, and start tracking all known bits. This
ties in nicely with our plan for tracking known set bits.
Perhaps if the stars align, we could merge the bit twiddling in CCP
into range-ops and have a central repository for it. That is, once we
make the switch to wide-ints, and assuming there are no performance
issues. Note that range-ops is our lowest level abstraction.
i.e. it's just the math, there's no GORI or ranger, or even the
concept of a symbolic or SSA.
testsuite: Fix failure in test pr105586.c [PR107171]
The test pr105586.c fails on a big endian system when run in 32bit
mode. The failure occurs as the test case does not guard against
unsupported __int128.
Jakub Jelinek [Tue, 8 Nov 2022 12:24:02 +0000 (13:24 +0100)]
cdce: Fix up get_no_error_domain for new f{16,32,64,128} builtins [PR107547]
I've missed that this function needs to handle all the builtins that
are handled in can_test_argument_range.
The following patch does that. For many of the builtins (like acos, or
log) it is the same range regardless of the floating point type, but for
some (cosh, sinh, exp{,m1,2}) it is different for each format,
so I had to compute those ranges.
Note, seems the existing ranges were in some cases (e.g. for exp2)
the smallest in absolute value which results infinite result, in others
the largest which still results in finite result (but consistently so
for the IEEE single vs. double). I've followed that for IEEE half and
quad cases too, just am not sure why it was like that. I think
get_domain with true, false is open interval rather than closed
and the comments indicate that too, conservatively that is certainly
correct.
OT, with frange, perhaps we could DCE the calls unconditionally if
frange can prove we are in the domain range.
Jakub Jelinek [Tue, 8 Nov 2022 11:21:55 +0000 (12:21 +0100)]
i386: Improve vector [GL]E{,U} comparison against vector constants [PR107546]
For integer vector comparisons without XOP before AVX512{F,VL} we are
constrained by only GT and EQ being supported in HW.
For GTU we play tricks to implement it using GT or unsigned saturating
subtraction, for LT/LTU we swap the operands and thus turn it into
GT/GTU. For LE/LEU we handle it by using GT/GTU and negating the
result and for GE/GEU by using GT/GTU on swapped operands and negating
the result.
If the second operand is a CONST_VECTOR, we can usually do better though,
we can avoid the negation. For LE/LEU cst by doing LT/LTU cst+1 (and
then cst+1 GT/GTU x) and for GE/GEU cst by doing GT/GTU cst-1, provided
there is no wrap-around on those cst+1 or cst-1.
GIMPLE canonicalizes x < cst to x <= cst-1 etc. (the rule is smaller
absolute value on constant), but only for scalars or uniform vectors,
so in some cases this undoes that canonicalization in order to avoid
the extra negation, but it handles also non-uniform constants.
E.g. with -mavx2 the testcase assembly difference is:
- movl $47, %eax
+ movl $48, %eax
vmovdqa %xmm0, %xmm1
vmovd %eax, %xmm0
vpbroadcastb %xmm0, %xmm0
- vpminsb %xmm0, %xmm1, %xmm0
- vpcmpeqb %xmm1, %xmm0, %xmm0
+ vpcmpgtb %xmm1, %xmm0, %xmm0
and
- vmovdqa %xmm0, %xmm1
- vmovdqa .LC1(%rip), %xmm0
- vpminsb %xmm1, %xmm0, %xmm1
- vpcmpeqb %xmm1, %xmm0, %xmm0
+ vpcmpgtb .LC1(%rip), %xmm0, %xmm0
while with just SSE2:
- pcmpgtb .LC0(%rip), %xmm0
- pxor %xmm1, %xmm1
- pcmpeqb %xmm1, %xmm0
+ movdqa %xmm0, %xmm1
+ movdqa .LC0(%rip), %xmm0
+ pcmpgtb %xmm1, %xmm0
and
- movdqa %xmm0, %xmm1
- movdqa .LC1(%rip), %xmm0
- pcmpgtb %xmm1, %xmm0
- pxor %xmm1, %xmm1
- pcmpeqb %xmm1, %xmm0
+ pcmpgtb .LC1(%rip), %xmm0
2022-11-08 Jakub Jelinek <jakub@redhat.com>
PR target/107546
* config/i386/predicates.md (vector_or_const_vector_operand): New
predicate.
* config/i386/sse.md (vec_cmp<mode><sseintvecmodelower>,
vec_cmpv2div2di, vec_cmpu<mode><sseintvecmodelower>,
vec_cmpuv2div2di): Use nonimmediate_or_const_vector_operand
predicate instead of nonimmediate_operand and
vector_or_const_vector_operand instead of vector_operand.
* config/i386/i386-expand.cc (ix86_expand_int_sse_cmp): For
LE/LEU or GE/GEU with CONST_VECTOR cop1 try to transform those
into LE/LEU or GT/GTU with larger or smaller by one cop1 if
there is no wrap-around. Force CONST_VECTOR cop0 or cop1 into
REG. Formatting fix.
Eric Botcazou [Tue, 18 Oct 2022 09:32:02 +0000 (11:32 +0200)]
ada: Fix oversight in implementation of allocators for storage models
When the allocator is of an unconstrained array type and has an initializing
expression, the copy of the initializing expression must be done separately
from that of the bounds.
gcc/ada/
* gcc-interface/utils2.cc (build_allocator): For unconstrained
array types with a storage model and an initializing expression,
copy the initialization expression separately from the bounds. In
all cases with a storage model, pass the locally computed size for
the store.
Steve Baird [Tue, 25 Oct 2022 23:59:29 +0000 (16:59 -0700)]
ada: Compile-time simplification of 'Image incorrectly ignores Put_Image
In the case of Some_Enumeration_Type'Image (<some static value>),
the compiler will replace this expression in its internal program
representation with a corresponding string literal. This is incorrect
if the Put_Image aspect has been specified (directly or via inheritance)
for the enumeration type.
gcc/ada/
* sem_attr.adb
(Eval_Attribute): Don't simplify 'Image call if Put_Image has been
specified.
Before this patch, a classwide contract expression was preanalyzed
only when its primitive operation's type was frozen. It caused name
resolution to be off in the cases where the freezing took place
after the end of the declaration list the primitive operation was
declared in.
This patch makes it so that if the compiler gets to the end of
the declaration list before the type is frozen, it preanalyzes the
classwide contract expression, so that the names are resolved in the
right context.
gcc/ada/
* contracts.adb
(Preanalyze_Class_Conditions): New procedure.
(Preanalyze_Condition): Moved out from Merge_Class_Conditions in
order to be spec-visible.
* contracts.ads
(Preanalyze_Class_Conditions): New procedure.
* sem_prag.adb
(Analyze_Pre_Post_Condition_In_Decl_Part): Call
Preanalyze_Class_Conditions when necessary.
ada: Set Support_Atomic_Primitives for VxWorks 7 runtimes
gcc/ada/
* libgnat/system-vxworks7-aarch64-rtp-smp.ads: Set
Support_Atomic_Primitives to True.
* libgnat/system-vxworks7-aarch64.ads: Set
Support_Atomic_Primitives to True.
* libgnat/system-vxworks7-arm-rtp-smp.ads: Set
Support_Atomic_Primitives to True.
* libgnat/system-vxworks7-arm.ads: Set Support_Atomic_Primitives
to True.
* libgnat/system-vxworks7-ppc-kernel.ads: Set
Support_Atomic_Primitives to False.
* libgnat/system-vxworks7-ppc-rtp-smp.ads: Set
Support_Atomic_Primitives to False.
* libgnat/system-vxworks7-ppc64-kernel.ads: Set
Support_Atomic_Primitives to True.
* libgnat/system-vxworks7-ppc64-rtp-smp.ads: Set
Support_Atomic_Primitives to True.
* libgnat/system-vxworks7-x86-kernel.ads: Set
Support_Atomic_Primitives to True.
* libgnat/system-vxworks7-x86-rtp-smp.ads: Set
Support_Atomic_Primitives to True.
* libgnat/system-vxworks7-x86_64-kernel.ads: Set
Support_Atomic_Primitives to True.
* libgnat/system-vxworks7-x86_64-rtp-smp.ads: Set
Support_Atomic_Primitives to True.
Piotr Trojanek [Fri, 21 Oct 2022 18:12:15 +0000 (20:12 +0200)]
ada: Propagate aspect Ghost when instantiating null formal procedures
When instantiating generic package that includes a formal subprogram
declaration with Ghost aspect and a subprogram_default of null, e.g.:
generic
with procedure Proc is null with Ghost;
package P is ...
the Ghost aspect should be propagated to the internally generated null
subprogram, so this null subprogram can be used in contexts that require
ghost entities.
gcc/ada/
* sem_ch12.adb (Instantiate_Formal_Subprogram): Copy aspect Ghost
from formal subprogram declaration to the internally generated
procedure.
Eric Botcazou [Thu, 20 Oct 2022 18:41:08 +0000 (20:41 +0200)]
ada: Implement RM 4.5.7(10/3) name resolution rule
This rule deals with the specific case of a conditional expression that is
the operand of a type conversion and effectively distributes the conversion
to the dependent expressions with the help of the dynamic semantics.
gcc/ada/
* sem_ch4.adb (Analyze_Case_Expression): Compute the
interpretations of the expression only at the end of the analysis,
but skip doing it if it is the operand of a type conversion.
(Analyze_If_Expression): Likewise.
* sem_res.adb (Resolve): Deal specially with conditional
expression that is the operand of a type conversion.
(Resolve_Dependent_Expression): New procedure.
(Resolve_Case_Expression): Call Resolve_Dependent_Expression.
(Resolve_If_Expression): Likewise.
(Resolve_If_Expression.Apply_Check): Take result type as
parameter.
(Resolve_Type_Conversion): Do not warn about a redundant
conversion when the operand is a conditional expression.
Javier Miranda [Sun, 16 Oct 2022 19:48:53 +0000 (19:48 +0000)]
ada: Enforce matching of extra formals
This patch enforces matching of extra formals in overridden subprograms,
subprogram renamings, and subprograms to which attributes 'Access,
'Unchecked_Access, or 'Unrestricted_Access is applied (for these access
cases the subprogram is checked against its corresponding subprogram
type). This enforcement is an internal consistency check, not an
implementation of some language legality rule.
gcc/ada/
* debug.adb
(Debug_Flag_Underscore_XX): Switch -gnatd_X used temporarily to allow
disabling extra formal checks.
* exp_attr.adb
(Expand_N_Attribute_Reference [access types]): Add extra formals
to the subprogram referenced in the prefix of 'Unchecked_Access,
'Unrestricted_Access or 'Access; required to check that its extra
formals match the extra formals of the corresponding subprogram type.
* exp_ch3.adb
(Stream_Operation_OK): Declaration moved to the public part of the
package.
(Validate_Tagged_Type_Extra_Formals): New subprogram.
(Expand_Freeze_Record_Type): Improve the code that takes care of
adding the extra formals of dispatching primitives; extended to
add also the extra formals to renamings of dispatching primitives.
* exp_ch3.ads
(Stream_Operation_OK): Declaration moved from the package body.
* exp_ch6.adb
(Check_BIP_Actuals): Complete documentation.
(Has_BIP_Extra_Formal): Subprogram declaration moved to the public
part of the package. In addition, a parameter has been added to
disable an assertion that requires its use with frozen entities.
(Duplicate_Params_Without_Extra_Actuals): New subprogram.
(Check_Subprogram_Variant): Emit the call without duplicating the
extra formals since they will be added when the call is analyzed.
(Expand_Call_Helper): Ensure that the called subprogram has all its
extra formals, enforce assertion checking extra formals on thunks,
and mark calls from thunks as processed-BIP-calls to avoid adding
their extra formals twice.
(Is_Build_In_Place_Function): Return False for entities with foreign
convention.
(Is_Build_In_Place_Function_Call): Return True also for not BIP functions
that have BIP formals since the extra actuals are required.
(Make_Build_In_Place_Call_In_Object_Declaration): Occurrences of
Is_Return_Object replaced by the local variable Is_OK_Return_Object
that evaluates to False for scopes with foreign convention.
(Might_Have_Tasks): Fix check of class-wide limited record types.
(Needs_BIP_Task_Actuals): Remove assertion to allow calling this
function in more contexts; in addition it returns False for functions
returning objects with foreign convention.
(Needs_BIP_Finalization_Master): Likewise.
(Needs_BIP_Alloc_Form): Likewise.
(Validate_Subprogram_Calls): Check that the number of actuals (including
extra actuals) of calls in the subtree N match their corresponding
formals.
* exp_ch6.ads
(Has_BIP_Extra_Formal): Subprogram declaration moved to the public
part of the package. In addition, a parameter has been added to
disable an assertion that requires its use with frozen entities.
(Is_Build_In_Place_Function_Call): Complete documentation.
(Validate_Subprogram_Calls): Check that the number of actuals (including
extra actuals) of calls in the subtree N match their corresponding
formals.
* freeze.adb
(Check_Itype): Add extra formals to anonymous access subprogram itypes.
(Freeze_Expression): Improve code that disables the addition of extra
formals to functions with foreign convention.
(Check_Extra_Formals): Moved to package Sem_Ch6 as Extra_Formals_OK.
(Freeze_Subprogram): Add extra formals to non-dispatching subprograms.
* frontend.adb
(Frontend): Validate all the subprogram calls; it can be disabled using
switch -gnatd_X
* sem_ch3.adb
(Access_Subprogram_Declaration): Defer the addition of extra formals to
the freezing point so that we know the convention.
(Check_Anonymous_Access_Component): Likewise.
(Derive_Subprogram): Fix documentation.
* sem_ch6.adb
(Has_Reliable_Extra_Formals): New subprogram.
(Check_Anonymous_Return): Fix check of access to class-wide limited
record types.
(Check_Untagged_Equality): Placed in alphabetical order.
(Extra_Formals_OK): Subprogram moved from freeze.adb.
(Extra_Formals_Match_OK): New subprogram.
(Has_BIP_Formals): New subprogram.
(Has_Extra_Formals): New subprograms.
(Needs_Accessibility_Check_Extra): New subprogram.
(Parent_Subprogram): New subprogram.
(Add_Extra_Formal): Minor code cleanup.
(Create_Extra_Formals): Enforce matching extra formals on overridden
and aliased entities.
* sem_ch6.ads
(Extra_Formals_Match_OK): New subprogram.
(Extra_Formals_OK): Subprogram moved from freeze.adb.
* sem_eval.adb
(Compile_Time_Known_Value): Improve predicate to avoid assertion
failure; found working on this ticket; this change does not
affect the behavior of the compiler because this subprogram
has an exception handler that returns False when the assertion
fails.
* sem_util.adb
(Needs_Result_Accessibility_Level): Do not return False for dispatching
operations compiled with Ada_Version < 2012 since they they may be
overridden by primitives compiled with Ada_Version >= Ada_2012.
Bob Duff [Fri, 21 Oct 2022 15:09:49 +0000 (11:09 -0400)]
ada: Move warnings switches -- initial work
This patch prepares to move warning switches from Opt into Warnsw.
gcc/ada/
* warnsw.ads, warnsw.adb, fe.h, err_vars.ads, errout.ads: Move
Warning_Doc_Switch from Err_Vars to Warnsw. Access
Warn_On_Questionable_Layout on the C side via a function rather
than a variable, because we plan to turn the variables into
renamings, and you can't Export renamings.
* erroutc.adb, switch-c.adb, errout.adb: Likewise.
* gcc-interface/decl.cc: Use Get_Warn_On_Questionable_Layout
instead of Warn_On_Questionable_Layout.
* gcc-interface/Makefile.in (GNATMAKE_OBJS): Add warnsw.o, because
it is indirectly imported via Errout.
* gcc-interface/Make-lang.in (GNATBIND_OBJS): Likewise and remove
restrict.o (not needed).
Steve Baird [Wed, 19 Oct 2022 19:42:55 +0000 (12:42 -0700)]
ada: Improve handling of declare expressions in deferred-freezing contexts
In some cases where a declare expression occurs in a deferred-freezing
context (e.g., within the default value for a discriminant or for a formal
parameter, or within the expression of an expression function), the compiler
generates a bugbox.
gcc/ada/
* sem_ch3.adb
(Analyze_Object_Declaration): Do not perform expansion actions if
In_Spec_Expression is true.
Eric Botcazou [Thu, 20 Oct 2022 09:05:16 +0000 (11:05 +0200)]
ada: Minor consistency tweaks in Sem_Ch4
This ensures that, during the analysis of the qualified expressions, type
conversions and unchecked type conversions, the determination of the type
of the node and the analysis of its expression are done in the same order.
No functional changes.
gcc/ada/
* sem_ch4.adb (Analyze_Qualified_Expression): Analyze the
expression only after setting the type.
(Analyze_Unchecked_Type_Conversion): Likewise.
(Analyze_Short_Circuit): Likewise for the operands.
(Analyze_Type_Conversion): Minor tweaks.
(Analyze_Unchecked_Expression): Likewise.
ada: Preanalyze classwide contracts as spec expressions
Classwide contracts are "spec expressions" as defined in the
documentation in sem.ads. Before this patch, the instances of
classwide contracts that are destined to class conditions merging
were not preanalyzed as spec expressions. That caused preanalysis to
emit spurious errors in some cases.
gcc/ada/
* contracts.adb (Preanalyze_Condition): Use
Preanalyze_Spec_Expression.
Piotr Trojanek [Thu, 17 Jun 2021 17:44:40 +0000 (19:44 +0200)]
ada: Fix expansion of 'Wide_Image and 'Wide_Wide_Image on composite types
Attributes Wide_Image and Wide_Wide_Image applied to composite types are
now expanded just like attribute Image.
gcc/ada/
* exp_imgv.adb
(Expand_Wide_Image_Attribute): Handle just like attribute Image.
(Expand_Wide_Wide_Image_Attribute): Likewise.
* exp_put_image.adb
(Build_Image_Call): Adapt to also work for Wide and Wide_Wide
attributes.
* exp_put_image.ads
(Build_Image_Call): Update comment.
* rtsfind.ads
(RE_Id): Support wide variants of Get.
(RE_Unit_Table): Likewise.
Piotr Trojanek [Tue, 6 Sep 2022 21:20:47 +0000 (23:20 +0200)]
ada: Remove unneeded code in handling formal type defaults
Unneeded code found while experimenting with improved detection of
unreferenced objects.
gcc/ada/
* sem_ch12.adb (Validate_Formal_Type_Default): Remove call to
Collect_Interfaces, which had no effect apart from populating a
list that was not used; fix style.
Piotr Trojanek [Tue, 6 Sep 2022 21:28:26 +0000 (23:28 +0200)]
ada: Cleanup local variable that is only set as an out parameter
Minor improvements; found experimenting with improved detection of
unreferenced objects.
gcc/ada/
* exp_spark.adb (SPARK_Freeze_Type): Refine type of a local
object.
* sem_ch3.adb (Derive_Subprograms): Remove initial value for
New_Subp, which is in only written as an out parameter and never
read.
Piotr Trojanek [Thu, 14 Oct 2021 21:31:21 +0000 (23:31 +0200)]
ada: Reject limited objects in array and record delta aggregates
For array delta aggregates the base expression cannot be limited; for
record delta aggregates the base expression can only be limited if it is
a newly constructed object.
gcc/ada/
* sem_aggr.adb (Resolve_Delta_Aggregate): Implement rules related
to limited objects appearing as the base expression.
Piotr Trojanek [Thu, 14 Oct 2021 21:24:54 +0000 (23:24 +0200)]
ada: Allow initialization of limited objects with delta aggregates
Objects of a limited type can be initialized with "aggregates", which is
a collective term for ordinary aggregates (i.e. record aggregates and
array aggregates), extension aggregates and finally for delta
aggregates (introduced by Ada 2022).
gcc/ada/
* sem_ch3.adb (OK_For_Limited_Init_In_05): Handle delta aggregates
just like other aggregates.
Piotr Trojanek [Tue, 18 Oct 2022 12:31:00 +0000 (14:31 +0200)]
ada: Raise Tag_Error when Ada.Tags operations are called with No_Tag
Implement missing behavior of RM 13.9 (25.1/3): Tag_Error is raised by a
call of Interface_Ancestor_Tags and Is_Descendant_At_Same_Level, if any
tag passed is No_Tag. This change also fixes Descendant_Tag, which
relies on Is_Descendant_At_Same_Level. The remaining operations already
worked properly.
gcc/ada/
* libgnat/a-tags.adb
(Interface_Ancestor_Tags): Raise Tag_Error on No_Tag.
(Is_Descendant_At_Same_Level): Likewise.
Tweak analyzer handling of strchr, so that we show the
when 'strchr' returns non-NULL
message for that execution path.
gcc/analyzer/ChangeLog:
* region-model-impl-calls.cc (region_model::impl_call_strchr):
Move to on_call_post. Handle both outcomes using bifurcation,
rather than just the "not found" case.
* region-model.cc (region_model::on_call_pre): Move
BUILT_IN_STRCHR and "strchr" to...
(region_model::on_call_post): ...here.
gcc/testsuite/ChangeLog:
* gcc.dg/analyzer/strchr-1.c (test_literal): Detect writing to a
string literal. Verify that we emit the "when '__builtin_strchr'
returns non-NULL" message.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Jason Merrill [Fri, 4 Nov 2022 19:22:45 +0000 (15:22 -0400)]
c++: implement P2468R2, the equality operator you are looking for
This paper is resolving the problem of well-formed C++17 code becoming
ambiguous in C++20 due to asymmetrical operator== being compared with itself
in reverse. I had previously implemented a tiebreaker such that if the two
candidates were functions with the same parameter types, we would prefer the
non-reversed candidate. But the committee went with a different approach:
if there's an operator!= with the same parameter types as the operator==,
don't consider the reversed form of the ==.
So this patch implements that, and changes my old tiebreaker to give a
pedwarn if it is used. I also noticed that we were giving duplicate errors
for some testcases, and fixed the tourney logic to avoid that.
As a result, a lot of tests of the form
struct A { bool operator==(const A&); };
need to be fixed to add a const function-cv-qualifier, e.g.
struct A { bool operator==(const A&) const; };
The committee thought such code ought to be fixed, so breaking it was fine.
18_support/comparisons/algorithms/fallback.cc also breaks with this patch,
because of the similarly asymmetrical
bool operator==(const S&, S&) { return true; }
As a result, some of the asserts need to be reversed.
The H test in spaceship-eq15.C is specified in the standard to be
well-formed because the op!= in the inline namespace is not found by the
search, but that seems wrong to me. I've implemented that behavior, but
disabled it for now; if we decide that is the way we want to go, we can just
remove the "0 &&" in add_candidates to enable it.
Co-authored-by: Jakub Jelinek <jakub@redhat.com>
gcc/cp/ChangeLog:
* cp-tree.h (fns_correspond): Declare.
* decl.cc (fns_correspond): New.
* call.cc (add_candidates): Look for op!= matching op==.
(joust): Complain about non-standard reversed tiebreaker.
(tourney): Fix champ_compared_to_predecessor logic.
(build_new_op): Don't complain about error_mark_node not having
'bool' type.
* pt.cc (tsubst_copy_and_build): Don't try to be permissive
when seen_error().
Andrew MacLeod [Mon, 7 Nov 2022 20:07:35 +0000 (15:07 -0500)]
Add transitive inferred range processing.
Rewalk statements at the end of a block to see if any inferred ranges
affect earlier calculations and register those as inferred ranges.
gcc/
PR tree-optimization/104530
* gimple-range-cache.cc (ranger_cache::register_inferred_value):
New. Split from:
(ranger_cache::apply_inferred_ranges): Move setting cache to
separate function.
* gimple-range-cache.h (register_inferred_value): New prototype.
* gimple-range-infer.cc (infer_range_manager::has_range_p): New.
* gimple-range-infer.h (has_range_p): New prototype.
* gimple-range.cc (register_transitive_inferred_ranges): New.
* gimple-range.h (register_transitive_inferred_ranges): New proto.
* tree-vrp.cc (rvrp_folder::fold_stmt): Check for transitive inferred
ranges at the end of the block before folding final stmt.
Jakub Jelinek [Mon, 7 Nov 2022 23:35:09 +0000 (00:35 +0100)]
libstdc++: Fix up libstdc++ build against glibc 2.25 or older [PR107562]
On Mon, Nov 07, 2022 at 05:48:42PM +0000, Jonathan Wakely wrote:
> On Mon, 7 Nov 2022 at 16:11, Joseph Myers <joseph@codesourcery.com> wrote:
> >
> > On Wed, 2 Nov 2022, Jakub Jelinek via Gcc-patches wrote:
> >
> > > APIs. So that one can build gcc against older glibc and then compile
> > > user programs on newer glibc, the patch uses weak references unless
> > > gcc is compiled against glibc 2.26+. strfromf128 unfortunately can't
> >
> > This support for older glibc doesn't actually seem to be working, on an
> > older system with glibc 2.19 I'm seeing
> >
> > /scratch/jmyers/fsf/gcc-mainline/libstdc++-v3/src/c++17/floating_to_chars.cc:52:3: error: expected initializer before '__asm'
> > 52 | __asm ("strfromf128");
> > | ^~~~~
> >
> > and a series of subsequent errors.
>
> This seems to "fix" it (not sure if it's right though):
>
> #ifndef _GLIBCXX_HAVE_FLOAT128_MATH
> extern "C" _Float128 __strtof128(const char*, char**)
> __attribute__((__weak__));
> #endif
> extern "C" _Float128 __strtof128(const char*, char**)
> __asm ("strtof128");
It is, but floating_from_chars.cc has the same problem,
and I think we can avoid the duplication, like this:
2022-11-08 Jakub Jelinek <jakub@redhat.com>
PR libstdc++/107562
* src/c++17/floating_from_chars.cc (__strtof128): Put __asm before
__attribute__.
* src/c++17/floating_to_chars.cc (__strfromf128): Likewise.
David Faust [Mon, 7 Nov 2022 18:30:52 +0000 (10:30 -0800)]
bpf: cleanup missed refactor
Commit 068baae1864 "bpf: add preserve_field_info builtin" factored out
some repeated code to a new function maybe_make_core_relo (), but missed
using it in one place. Clean that up.
gcc/
* config/bpf/bpf.cc (handle_attr_preserve): Use maybe_make_core_relo().
Aldy Hernandez [Fri, 4 Nov 2022 21:24:42 +0000 (22:24 +0100)]
Improve multiplication by powers of 2 in range-ops.
For unsigned numbers, multiplication by X, where X is a power of 2 is
[0,0][X,+INF].
This patch causes a regression to g++.dg/pr71488.C where
-Wstringop-overflow gets the same IL as before, but better ranges
cause it to issue a bogus warning. I will create a PR with some
notes.
No discernible changes in performance.
Tested on x86-64 Linux.
PR tree-optimization/55157
gcc/ChangeLog:
* range-op.cc (operator_mult::wi_fold): Optimize multiplications
by powers of 2.
Patrick Palka [Mon, 7 Nov 2022 18:29:30 +0000 (13:29 -0500)]
libstdc++: Implement ranges::cartesian_product_view from P2374R4
This also implements the proposed resolutions of the tentatively ready
LWG issues 3760, 3761 and 3801 for cartesian_product_view.
I'm not sure how/if we should implement the recommended practice of:
iterator::difference_type should be the smallest signed-integer-like
type that is sufficiently wide to store the product of the maximum
sizes of all underlying ranges if such a type exists
because for e.g.
extern std::vector<int> x, y;
auto v = views::cartesian_product(x, y);
IIUC it'd mean difference_type should be __int128 (on 64-bit systems),
which seems quite wasteful: in practice the size of any cartesian product
probably won't exceed the precision of say ptrdiff_t, and using anything
larger will just incur unnecessary space/time overhead. It's also
probably not worth the complexity to use less precision than ptrdiff_t
(when possible) either. So this patch defines difference_type as
which should mean it's least as large as the difference_type of each
underlying range, and at least as large as ptrdiff_t. This patch also
adds assertions to catch any overflow that occurs due to this choice of
difference_type.
libstdc++-v3/ChangeLog:
* include/std/ranges (__maybe_const_t): New alias for
__detail::__maybe_const_t.
(__detail::__cartesian_product_is_random_access): Define.
(__detail::__cartesian_product_common_arg): Define.
(__detail::__cartesian_product_is_bidirectional): Define.
(__detail::__cartesian_product_is_common): Define.
(__detail::__cartesian_product_is_sized): Define.
(__detail::__cartesian_is_sized_sentinel): Define.
(__detail::__cartesian_common_arg_end): Define.
(cartesian_product_view): Define.
(cartesian_product_view::_Iterator): Define.
(views::__detail::__can_cartesian_product_view): Define.
(views::_CartesianProduct, views::cartesian_product): Define.
* testsuite/std/ranges/cartesian_product/1.cc: New test.
Richard Purdie [Mon, 7 Nov 2022 16:26:44 +0000 (17:26 +0100)]
Fix NULL filename handling
The previous commit introduced a regression as some Ada tests end up passing
NULL as the filename to remap_filename. Handle this as before to fix them.
Jakub Jelinek [Mon, 7 Nov 2022 14:17:21 +0000 (15:17 +0100)]
libstdc++: Update from latest fast_float [PR107468]
The following patch updates from fast_float trunk. That way
it grabs two of the 4 LOCAL_PATCHES, some smaller tweaks, to_extended
cleanups and most importantly fix for the incorrect rounding case,
PR107468 aka https://github.com/fastfloat/fast_float/issues/149
Using std::fegetround showed in benchmarks too slow, so instead of
doing that the patch limits the fast path where it uses floating
point multiplication rather than integral to cases where we can
prove there will be no rounding (the multiplication will be exact, not
just that the two multiplication or division operation arguments are
exactly representable).
2022-11-07 Jakub Jelinek <jakub@redhat.com>
PR libstdc++/107468
* src/c++17/fast_float/MERGE: Adjust for merge from upstream.
* src/c++17/fast_float/LOCAL_PATCHES: Remove commits that were
upstreamed.
* src/c++17/fast_float/README.md: Merge from fast_float 662497742fea7055f0e0ee27e5a7ddc382c2c38e commit.
* src/c++17/fast_float/fast_float.h: Likewise.
* testsuite/20_util/from_chars/pr107468.cc: New test.
Jakub Jelinek [Mon, 7 Nov 2022 14:15:50 +0000 (15:15 +0100)]
libstdc++: Add _Float128 to_chars/from_chars support for x86, ia64 and ppc64le with glibc
The following patch adds std::{to,from}_chars support for std::float128_t
on glibc 2.26+ for {i?86,x86_64,ia64,powerpc64le}-linux.
When long double is already IEEE quad, previous changes already handle
it by using long double overloads in _Float128 overloads.
The powerpc64le case (with explicit or implicit -mabi=ibmlongdouble)
is handled by using the __float128/__ieee128 entrypoints which are
already in the library and used for -mabi=ieeelongdouble.
For i?86, x86_64 and ia64 this patch adds new library entrypoints,
mostly by enabling the code that was already there for powerpc64le-linux.
Those use __float128 or __ieee128, the patch uses _Float128 for the
exported overloads and internally as template parameter. While
powerpc64le-linux uses __sprintfieee128 and __strtoieee128,
for _Float128 the patch uses the glibc 2.26 strfromf128 and strtof128
APIs. So that one can build gcc against older glibc and then compile
user programs on newer glibc, the patch uses weak references unless
gcc is compiled against glibc 2.26+. strfromf128 unfortunately can't
handle %.0Lf and %.*Le, %.*Lf, %.*Lg format strings sprintf/__sprintfieee128
use, we need to remove the L from those and replace * with actually
directly printing the precision into the format string (i.e. it can
handle %.0f and %.27f (floating point type is implied from the function
name)).
Unlike the std::{,b}float16_t support, this one actually exports APIs
with std::float128_t aka _Float128 in the mangled name, because no
standard format is superset of it. On the other side, e.g. on i?86/x86_64
it doesn't have restrictions like for _Float16/__bf16 which ISAs need
to be enabled in order to use it.
The denorm_min case in the testcase is temporarily commented out because
of the ERANGE subnormal issue Patrick posted patch for.
2022-11-07 Jakub Jelinek <jakub@redhat.com>
* include/std/charconv (from_chars, to_chars): Add _Float128
overfloads if _GLIBCXX_HAVE_FLOAT128_MATH is defined.
* config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export
_ZSt8to_charsPcS_DF128_, _ZSt8to_charsPcS_DF128_St12chars_format,
_ZSt8to_charsPcS_DF128_St12chars_formati and
_ZSt10from_charsPKcS0_RDF128_St12chars_format.
* src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
Define if needed.
(__strtof128): Declare.
(from_chars_impl): Handle _Float128.
(from_chars): New _Float128 overload if USE_STRTOF128_FOR_FROM_CHARS
is define.
* src/c++17/floating_to_chars.cc (__strfromf128): Declare.
(FLOAT128_TO_CHARS): Define even when _Float128 is supported and
wider than long double.
(F128_type): Use _Float128 for that case.
(floating_type_traits): Specialize for F128_type rather than
__float128.
(sprintf_ld): Add length argument. Handle _Float128.
(__floating_to_chars_shortest, __floating_to_chars_precision):
Pass length to sprintf_ld.
(to_chars): Add _Float128 overloads for the F128_type being
_Float128 cases.
* testsuite/20_util/to_chars/float128_c++23.cc: New test.
Aldy Hernandez [Mon, 7 Nov 2022 07:40:12 +0000 (08:40 +0100)]
[range-op] Restrict division by power of 2 optimization to positive numbers.
The problem here is that we are transforming a division by a power of
2 into a right shift, and using this to shift the maybe nonzero bits.
This gives the wrong result when the number being divided is negative.
In the testcase we are dividing this by 8:
[irange] int [-256, -255] NONZERO 0xffffff01
and coming up with:
[irange] int [-32, -31] NONZERO 0xffffffe0
The maybe nonzero bits are wrong as -31 has the LSB set (0xffffffe1)
whereas the bitmask says the lower 4 bits are off.
PR tree-optimization/107541
gcc/ChangeLog:
* range-op.cc (operator_div::fold_range): Restrict power of 2
optimization to positive numbers.
Tobias Burnus [Mon, 7 Nov 2022 10:32:33 +0000 (11:32 +0100)]
Fortran: Fix reallocation on assignment for kind=4 strings [PR107508]
The check whether reallocation on assignment was required did not handle
kind=4 characters correctly such that there was always a reallocation,
implying issues with pointer addresses and lower bounds. Additionally,
with all deferred strings, the old memory was not freed on reallocation.
And, finally, inside the block which was only executed if string lengths
or bounds or dynamic types changed, was a subcheck of the same, which
was effectively a no op but still confusing and at least added with -O0
extra instructions to the binary.
PR fortran/107508
gcc/fortran/ChangeLog:
* trans-array.cc (gfc_alloc_allocatable_for_assignment): Fix
string-length check, plug memory leak, and avoid generation of
effectively no-op code.
* trans-expr.cc (alloc_scalar_allocatable_for_assignment): Extend
comment; minor cleanup.
Richard Biener [Tue, 27 Sep 2022 08:16:52 +0000 (10:16 +0200)]
unswitch most profitable condition first
When doing the loop unswitching re-org we promised to followup
with improvements on the cost modeling. The following makes sure we
try to unswitch on the most profitable condition first. As most profitable
we pick the condition leading to the edge with the highest profile count.
Note the profile is only applied when picking the first unswitching
opportunity since the profile counts are not updated with earlier
unswitchings in mind. Further opportunities are picked in DFS order.
* tree-ssa-loop-unswitch.cc (unswitch_predicate::count): New.
(unswitch_predicate::unswitch_predicate): Initialize count.
(init_loop_unswitch_info): First collect candidates and
determine the outermost loop to unswitch.
(tree_ssa_unswitch_loops): First perform all guard hoisting,
then perform unswitching on innermost loop predicates.
(find_unswitching_predicates_for_bb): Keep track of the
most profitable predicate to unswitch on.
(tree_unswitch_single_loop): Unswitch given predicate if
not NULL.