2 Copyright 1988-2022 Free Software Foundation, Inc.
3 This is part of the GCC manual.
4 For copying conditions, see the copyright.rst file.
6 .. index:: GIMPLE class hierarchy
8 .. _class-hierarchy-of-gimple-statements:
10 Class hierarchy of GIMPLE statements
11 ************************************
13 The following diagram shows the C++ inheritance hierarchy of statement
14 kinds, along with their relationships to ``GSS_`` values (layouts) and
15 ``GIMPLE_`` values (codes):
21 | used for 4 codes: GIMPLE_ERROR_MARK
23 | GIMPLE_OMP_SECTIONS_SWITCH
26 + gimple_statement_with_ops_base
29 | + gimple_statement_with_ops
30 | | | layout: GSS_WITH_OPS
33 | | | code: GIMPLE_COND
36 | | | code: GIMPLE_DEBUG
39 | | | code: GIMPLE_GOTO
42 | | | code: GIMPLE_LABEL
45 | | code: GIMPLE_SWITCH
47 | + gimple_statement_with_memory_ops_base
48 | | layout: GSS_WITH_MEM_OPS_BASE
50 | + gimple_statement_with_memory_ops
51 | | | layout: GSS_WITH_MEM_OPS
54 | | | code GIMPLE_ASSIGN
57 | | code GIMPLE_RETURN
60 | | layout: GSS_CALL, code: GIMPLE_CALL
63 | | layout: GSS_ASM, code: GIMPLE_ASM
66 | layout: GSS_TRANSACTION, code: GIMPLE_TRANSACTION
68 + gimple_statement_omp
69 | | layout: GSS_OMP. Used for code GIMPLE_OMP_SECTION
72 | | layout: GSS_OMP_CRITICAL, code: GIMPLE_OMP_CRITICAL
75 | | layout: GSS_OMP_FOR, code: GIMPLE_OMP_FOR
77 | + gomp_parallel_layout
78 | | | layout: GSS_OMP_PARALLEL_LAYOUT
80 | | + gimple_statement_omp_taskreg
83 | | | | code: GIMPLE_OMP_PARALLEL
86 | | | code: GIMPLE_OMP_TASK
88 | | + gimple_statement_omp_target
89 | | code: GIMPLE_OMP_TARGET
92 | | layout: GSS_OMP_SECTIONS, code: GIMPLE_OMP_SECTIONS
94 | + gimple_statement_omp_single_layout
95 | | layout: GSS_OMP_SINGLE_LAYOUT
98 | | code: GIMPLE_OMP_SINGLE
101 | code: GIMPLE_OMP_TEAMS
104 | layout: GSS_BIND, code: GIMPLE_BIND
107 | layout: GSS_CATCH, code: GIMPLE_CATCH
110 | layout: GSS_EH_FILTER, code: GIMPLE_EH_FILTER
113 | layout: GSS_EH_ELSE, code: GIMPLE_EH_ELSE
116 | layout: GSS_EH_MNT, code: GIMPLE_EH_MUST_NOT_THROW
119 | layout: GSS_PHI, code: GIMPLE_PHI
121 + gimple_statement_eh_ctrl
122 | | layout: GSS_EH_CTRL
125 | | code: GIMPLE_RESX
128 | code: GIMPLE_EH_DISPATCH
131 | layout: GSS_TRY, code: GIMPLE_TRY
133 + gimple_statement_wce
134 | layout: GSS_WCE, code: GIMPLE_WITH_CLEANUP_EXPR
137 | layout: GSS_OMP_CONTINUE, code: GIMPLE_OMP_CONTINUE
140 | layout: GSS_OMP_ATOMIC_LOAD, code: GIMPLE_OMP_ATOMIC_LOAD
142 + gimple_statement_omp_atomic_store_layout
143 | layout: GSS_OMP_ATOMIC_STORE_LAYOUT,
144 | code: GIMPLE_OMP_ATOMIC_STORE
147 | code: GIMPLE_OMP_ATOMIC_STORE
150 code: GIMPLE_OMP_RETURN