This is gccint.info, produced by makeinfo version 7.1 from gccint.texi. Copyright © 1988-2024 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with the Invariant Sections being "Funding Free Software", the Front-Cover Texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is included in the section entitled "GNU Free Documentation License". (a) The FSF's Front-Cover Text is: A GNU Manual (b) The FSF's Back-Cover Text is: You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. INFO-DIR-SECTION Software development START-INFO-DIR-ENTRY * gccint: (gccint). Internals of the GNU Compiler Collection. END-INFO-DIR-ENTRY This file documents the internals of the GNU compilers. Copyright © 1988-2024 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with the Invariant Sections being "Funding Free Software", the Front-Cover Texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is included in the section entitled "GNU Free Documentation License". (a) The FSF's Front-Cover Text is: A GNU Manual (b) The FSF's Back-Cover Text is: You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development.  Indirect: gccint.info-1: 1787 gccint.info-2: 305416 gccint.info-3: 605341 gccint.info-4: 904728 gccint.info-5: 1303585 gccint.info-6: 1513389 gccint.info-7: 1813500 gccint.info-8: 2102071  Tag Table: (Indirect) Node: Top1787 Node: Contributing5207 Node: Portability5942 Node: Interface7746 Node: Libgcc10811 Node: Integer library routines12726 Node: Soft float library routines22569 Node: Decimal float library routines35853 Node: Fixed-point fractional library routines52746 Node: Exception handling routines153306 Node: Miscellaneous routines154413 Node: Languages156549 Node: Source Tree158106 Node: Configure Terms158693 Node: Top Level161733 Node: gcc Directory166007 Node: Subdirectories166983 Node: Configuration169275 Node: Config Fragments170055 Node: System Config171344 Node: Configuration Files172304 Node: Build175112 Node: Makefile175528 Ref: Makefile-Footnote-1182962 Ref: Makefile-Footnote-2183113 Node: Library Files183191 Node: Headers183773 Node: Documentation185968 Node: Texinfo Manuals186843 Node: Man Page Generation189296 Node: Miscellaneous Docs191076 Node: Front End192531 Node: Front End Directory196659 Node: Front End Config198028 Node: Front End Makefile200981 Node: Back End204949 Node: Testsuites210271 Node: Test Idioms211260 Node: Test Directives214722 Node: Directives215261 Node: Selectors228281 Node: Effective-Target Keywords231739 Ref: arm_fp_ok248486 Ref: arm_fp_dp_ok248665 Ref: arm_neon_ok249754 Ref: arm_neon_ok_no_float_abi249931 Ref: arm_neonv2_ok250106 Ref: arm_fp16_ok250281 Ref: arm_neon_fp16_ok250631 Ref: arm_vfp3_ok251619 Ref: arm_arch_v8a_hard_ok251770 Ref: arm_v8_1a_neon_ok252560 Ref: arm_v8_2a_fp16_scalar_ok253000 Ref: arm_v8_2a_fp16_neon_ok253459 Ref: arm_v8_2a_dotprod_neon_ok253942 Ref: arm_fp16fml_neon_ok254599 Ref: arm_coproc1_ok257697 Ref: arm_coproc2_ok257847 Ref: arm_coproc3_ok258107 Ref: arm_simd32_ok258498 Ref: arm_sat_ok258683 Ref: arm_dsp_ok258872 Ref: arm_softfp_ok259057 Ref: arm_hard_ok259138 Ref: arm_mve259213 Ref: arm_v8_1_lob_ok259290 Ref: default_packed275730 Ref: stack_size_et279593 Node: Add Options282759 Ref: arm_fp16_ieee284033 Ref: arm_fp16_alternative284292 Ref: stack_size_ao286936 Node: Require Support287618 Node: Final Actions290860 Node: Ada Tests305416 Node: C Tests306615 Node: LTO Testing311127 Node: gcov Testing312842 Node: profopt Testing315880 Node: compat Testing317643 Node: Torture Tests321999 Node: GIMPLE Tests323707 Node: RTL Tests324977 Node: Options326299 Node: Option file format326744 Node: Option properties335488 Node: Passes354964 Node: Parsing pass355837 Node: Gimplification pass359385 Node: Pass manager361255 Node: IPA passes363117 Node: Small IPA passes364010 Node: Regular IPA passes367614 Node: Late IPA passes372580 Node: Tree SSA passes373563 Node: RTL passes396285 Node: Optimization info408926 Node: Dump setup409745 Node: Optimization groups410907 Node: Dump files and streams411942 Node: Dump output verbosity413185 Node: Dump types414257 Node: Dump examples416690 Node: poly_int418219 Node: Overview of poly_int419731 Node: Consequences of using poly_int422455 Node: Comparisons involving poly_int424122 Node: Comparison functions for poly_int425780 Node: Properties of the poly_int comparisons427023 Node: Comparing potentially-unordered poly_ints429587 Node: Comparing ordered poly_ints430510 Node: Checking for a poly_int marker value432600 Node: Range checks on poly_ints433469 Node: Sorting poly_ints436175 Node: Arithmetic on poly_ints436972 Node: Using poly_int with C++ arithmetic operators437785 Node: wi arithmetic on poly_ints439360 Node: Division of poly_ints440228 Node: Other poly_int arithmetic441803 Node: Alignment of poly_ints443249 Node: Computing bounds on poly_ints446610 Node: Converting poly_ints448035 Node: Miscellaneous poly_int routines451786 Node: Guidelines for using poly_int452450 Node: GENERIC457508 Node: Deficiencies459350 Node: Tree overview459591 Node: Macros and Functions463791 Node: Identifiers464676 Node: Containers466377 Node: Types467602 Node: Declarations481167 Node: Working with declarations481666 Node: Internal structure487582 Node: Current structure hierarchy487970 Node: Adding new DECL node types490199 Node: Attributes494657 Node: Expression trees495941 Node: Constant expressions497711 Node: Storage References504063 Node: Unary and Binary Expressions508004 Node: Vectors530299 Node: Statements542213 Node: Basic Statements542753 Node: Blocks547804 Node: Statement Sequences549549 Node: Empty Statements549890 Node: Jumps550472 Node: Cleanups551165 Node: OpenMP553242 Node: OpenACC562169 Node: Functions563382 Node: Function Basics563857 Node: Function Properties567649 Node: Language-dependent trees570522 Node: C and C++ Trees571417 Node: Types for C++574310 Node: Namespaces579592 Node: Classes582838 Node: Functions for C++588046 Node: Statements for C and C++594627 Node: C++ Expressions605341 Node: GIMPLE606956 Node: Tuple representation610669 Node: Class hierarchy of GIMPLE statements617989 Node: GIMPLE instruction set622985 Node: GIMPLE Exception Handling624770 Node: Temporaries626718 Ref: Temporaries-Footnote-1628056 Node: Operands628121 Node: Compound Expressions628894 Node: Compound Lvalues629128 Node: Conditional Expressions629910 Node: Logical Operators630589 Node: Manipulating GIMPLE statements638102 Node: Tuple specific accessors643960 Node: GIMPLE_ASM644771 Node: GIMPLE_ASSIGN647310 Node: GIMPLE_BIND652230 Node: GIMPLE_CALL654152 Node: GIMPLE_CATCH658501 Node: GIMPLE_COND659715 Node: GIMPLE_DEBUG662670 Node: GIMPLE_EH_FILTER667448 Node: GIMPLE_LABEL669071 Node: GIMPLE_GOTO669724 Node: GIMPLE_NOP670271 Node: GIMPLE_OMP_ATOMIC_LOAD670653 Node: GIMPLE_OMP_ATOMIC_STORE671681 Node: GIMPLE_OMP_CONTINUE672392 Node: GIMPLE_OMP_CRITICAL673919 Node: GIMPLE_OMP_FOR674957 Node: GIMPLE_OMP_MASTER678605 Node: GIMPLE_OMP_ORDERED678995 Node: GIMPLE_OMP_PARALLEL679410 Node: GIMPLE_OMP_RETURN682353 Node: GIMPLE_OMP_SECTION683030 Node: GIMPLE_OMP_SECTIONS683726 Node: GIMPLE_OMP_SINGLE685416 Node: GIMPLE_OMP_STRUCTURED_BLOCK686427 Node: GIMPLE_PHI687247 Node: GIMPLE_RESX688632 Node: GIMPLE_RETURN689383 Node: GIMPLE_SWITCH689985 Node: GIMPLE_TRY691922 Node: GIMPLE_WITH_CLEANUP_EXPR693786 Node: GIMPLE sequences694705 Node: Sequence iterators698051 Node: Adding a new GIMPLE statement code706846 Node: Statement and operand traversals708255 Node: Tree SSA711007 Node: Annotations712795 Node: SSA Operands713208 Node: SSA727380 Node: Alias analysis737339 Node: Memory model741208 Node: RTL742567 Node: RTL Objects744813 Node: RTL Classes748761 Node: Accessors754511 Node: Special Accessors756760 Node: Flags762803 Node: Machine Modes778994 Node: Constants797541 Node: Regs and Memory809838 Node: Arithmetic827703 Node: Comparisons838882 Node: Bit-Fields842720 Node: Vector Operations844311 Node: Conversions846451 Node: RTL Declarations851021 Node: Side Effects851885 Node: Incdec868884 Node: Assembler872308 Node: Debug Information873905 Node: Insns875896 Node: Calls904728 Node: RTL SSA907401 Node: Using RTL SSA908796 Node: RTL SSA Instructions910737 Ref: RTL SSA Instructions-Footnote-1912135 Node: RTL SSA Basic Blocks912269 Ref: real RTL SSA insns912749 Ref: RTL SSA Basic Blocks-Footnote-1915023 Node: RTL SSA Resources915165 Node: RTL SSA Accesses916294 Ref: RTL SSA Accesses-Footnote-1918039 Node: RTL SSA Phi Nodes918186 Node: RTL SSA Access Lists920198 Node: Changing RTL Instructions924545 Node: Changing One RTL SSA Instruction925154 Node: Changing Multiple RTL SSA Instructions930198 Node: Sharing934566 Node: Reading RTL937824 Node: Control Flow938832 Node: Basic Blocks940628 Node: Edges946302 Node: Profile information955149 Node: Maintaining the CFG959917 Node: Liveness information965861 Node: Loop Analysis and Representation968060 Node: Loop representation969096 Node: Loop querying976706 Node: Loop manipulation979673 Node: LCSSA982095 Node: Scalar evolutions984178 Node: loop-iv987482 Node: Number of iterations989490 Node: Dependency analysis993687 Node: Machine Desc1000251 Node: Overview1002910 Node: Patterns1005010 Node: Example1010073 Node: RTL Template1011550 Node: Output Template1022434 Node: Output Statement1026739 Node: Compact Syntax1031166 Node: Predicates1036161 Node: Machine-Independent Predicates1039157 Node: Defining Predicates1044258 Node: Constraints1050439 Node: Simple Constraints1051924 Node: Multi-Alternative1065086 Node: Class Preferences1068374 Node: Modifiers1069282 Node: Machine Constraints1074136 Node: Disable Insn Alternatives1138848 Node: Define Constraints1142412 Node: C Constraint Interface1153011 Node: Standard Names1156222 Ref: shift patterns1208221 Ref: prologue instruction pattern1277235 Ref: window_save instruction pattern1277740 Ref: epilogue instruction pattern1278021 Node: Pattern Ordering1303585 Node: Dependent Patterns1304821 Node: Jump Patterns1306449 Node: Looping Patterns1308134 Node: Insn Canonicalizations1313881 Node: Expander Definitions1319655 Node: Insn Splitting1328082 Node: Including Patterns1343459 Node: Peephole Definitions1345264 Node: define_peephole1346537 Node: define_peephole21352967 Node: Insn Attributes1357699 Node: Defining Attributes1358804 Ref: define_enum_attr1362406 Node: Expressions1363458 Node: Tagging Insns1370500 Node: Attr Example1374973 Node: Insn Lengths1377358 Node: Constant Attributes1380834 Node: Mnemonic Attribute1382030 Node: Delay Slots1383569 Node: Processor pipeline description1386824 Ref: Processor pipeline description-Footnote-11405964 Node: Conditional Execution1406288 Node: Define Subst1409847 Node: Define Subst Example1411938 Node: Define Subst Pattern Matching1414993 Node: Define Subst Output Template1416307 Node: Constant Definitions1418730 Ref: define_enum1422657 Node: Iterators1423157 Node: Mode Iterators1423802 Node: Defining Mode Iterators1424824 Node: Substitutions1426912 Node: Examples1429228 Node: Code Iterators1430696 Node: Int Iterators1433870 Node: Subst Iterators1436455 Node: Parameterized Names1438207 Node: Target Macros1442325 Node: Target Structure1445516 Node: Driver1448570 Node: Run-time Target1468115 Node: Per-Function Data1479004 Node: Storage Layout1481824 Node: Type Layout1513389 Node: Registers1527207 Node: Register Basics1528181 Node: Allocation Order1535947 Node: Values in Registers1538447 Node: Leaf Functions1546011 Node: Stack Registers1548900 Node: Register Classes1550177 Node: Stack and Calling1586807 Node: Frame Layout1587413 Node: Exception Handling1602440 Node: Stack Checking1609303 Node: Frame Registers1614965 Node: Elimination1623675 Node: Stack Arguments1627595 Node: Register Arguments1635140 Node: Scalar Return1660742 Node: Aggregate Return1667310 Node: Caller Saves1672144 Node: Function Entry1672890 Node: Profiling1684602 Node: Tail Calls1686748 Node: Shrink-wrapping separate components1688666 Node: Stack Smashing Protection1691755 Node: Miscellaneous Register Hooks1694276 Node: Varargs1695141 Node: Trampolines1704947 Node: Library Calls1714720 Node: Addressing Modes1721153 Node: Anchored Addresses1753544 Node: Condition Code1756263 Node: MODE_CC Condition Codes1758120 Node: Costs1764975 Node: Scheduling1787671 Node: Sections1813500 Node: PIC1830210 Node: Assembler Format1832305 Node: File Framework1833443 Ref: TARGET_HAVE_SWITCHABLE_BSS_SECTIONS1841154 Node: Data Output1842853 Node: Uninitialized Data1851269 Node: Label Output1856360 Node: Initialization1881461 Node: Macros for Initialization1887640 Node: Instruction Output1894959 Node: Dispatch Tables1905813 Node: Exception Region Output1911624 Node: Alignment Output1918866 Node: Debugging Info1922625 Node: All Debuggers1923175 Node: DWARF1926156 Node: VMS Debug1932007 Node: CTF Debug1932624 Node: BTF Debug1932989 Node: Floating Point1933336 Node: Mode Switching1936103 Node: Target Attributes1944193 Node: Emulated TLS1957421 Node: MIPS Coprocessors1960839 Node: PCH Target1962002 Node: C++ ABI1963884 Node: D Language and ABI1968746 Node: Rust Language and ABI1972055 Node: Named Address Spaces1972802 Node: Misc1978928 Ref: TARGET_SHIFT_TRUNCATION_MASK1986927 Node: Host Config2050130 Node: Host Common2051223 Node: Filesystem2053613 Node: Host Misc2057832 Node: Fragments2060401 Node: Target Fragment2061648 Node: Host Fragment2072876 Node: Collect22073120 Node: Header Dirs2075950 Node: Type Information2077417 Node: GTY Options2081018 Node: Inheritance and GTY2094580 Ref: Inheritance and GTY-Footnote-12096155 Node: User GC2096425 Node: GGC Roots2102071 Node: Files2102814 Node: Invoking the garbage collector2105533 Node: Troubleshooting2107207 Node: Plugins2108306 Node: Plugins loading2109435 Node: Plugin API2110583 Node: Plugins pass2118598 Node: Plugins GC2120581 Node: Plugins description2122366 Node: Plugins attr2122914 Node: Plugins recording2125238 Node: Plugins gate2126116 Node: Plugins tracking2126715 Node: Plugins building2127311 Node: LTO2130922 Node: LTO Overview2131798 Node: LTO object file layout2137670 Node: IPA2142349 Node: WHOPR2151557 Node: Internal flags2156181 Node: Match and Simplify2157616 Node: GIMPLE API2158586 Node: The Language2161412 Node: Static Analyzer2174371 Node: Analyzer Internals2174636 Node: Debugging the Analyzer2190646 Node: User Experience Guidelines2198464 Node: Guidelines for Diagnostics2199400 Ref: input_location_example2207681 Node: Guidelines for Options2217554 Node: Funding2217731 Node: GNU Project2220237 Node: Copying2220888 Node: GNU Free Documentation License2258420 Node: Contributors2283549 Node: Option Index2326115 Node: Concept Index2327008  End Tag Table  Local Variables: coding: utf-8 End: