]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/doc/gccint/gimple/class-hierarchy-of-gimple-statements.rst
sphinx: add missing trailing newline
[thirdparty/gcc.git] / gcc / doc / gccint / gimple / class-hierarchy-of-gimple-statements.rst
1 ..
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.
5
6 .. index:: GIMPLE class hierarchy
7
8 .. _class-hierarchy-of-gimple-statements:
9
10 Class hierarchy of GIMPLE statements
11 ************************************
12
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):
16
17 .. code-block:: c++
18
19 gimple
20 | layout: GSS_BASE
21 | used for 4 codes: GIMPLE_ERROR_MARK
22 | GIMPLE_NOP
23 | GIMPLE_OMP_SECTIONS_SWITCH
24 | GIMPLE_PREDICT
25 |
26 + gimple_statement_with_ops_base
27 | | (no GSS layout)
28 | |
29 | + gimple_statement_with_ops
30 | | | layout: GSS_WITH_OPS
31 | | |
32 | | + gcond
33 | | | code: GIMPLE_COND
34 | | |
35 | | + gdebug
36 | | | code: GIMPLE_DEBUG
37 | | |
38 | | + ggoto
39 | | | code: GIMPLE_GOTO
40 | | |
41 | | + glabel
42 | | | code: GIMPLE_LABEL
43 | | |
44 | | + gswitch
45 | | code: GIMPLE_SWITCH
46 | |
47 | + gimple_statement_with_memory_ops_base
48 | | layout: GSS_WITH_MEM_OPS_BASE
49 | |
50 | + gimple_statement_with_memory_ops
51 | | | layout: GSS_WITH_MEM_OPS
52 | | |
53 | | + gassign
54 | | | code GIMPLE_ASSIGN
55 | | |
56 | | + greturn
57 | | code GIMPLE_RETURN
58 | |
59 | + gcall
60 | | layout: GSS_CALL, code: GIMPLE_CALL
61 | |
62 | + gasm
63 | | layout: GSS_ASM, code: GIMPLE_ASM
64 | |
65 | + gtransaction
66 | layout: GSS_TRANSACTION, code: GIMPLE_TRANSACTION
67 |
68 + gimple_statement_omp
69 | | layout: GSS_OMP. Used for code GIMPLE_OMP_SECTION
70 | |
71 | + gomp_critical
72 | | layout: GSS_OMP_CRITICAL, code: GIMPLE_OMP_CRITICAL
73 | |
74 | + gomp_for
75 | | layout: GSS_OMP_FOR, code: GIMPLE_OMP_FOR
76 | |
77 | + gomp_parallel_layout
78 | | | layout: GSS_OMP_PARALLEL_LAYOUT
79 | | |
80 | | + gimple_statement_omp_taskreg
81 | | | |
82 | | | + gomp_parallel
83 | | | | code: GIMPLE_OMP_PARALLEL
84 | | | |
85 | | | + gomp_task
86 | | | code: GIMPLE_OMP_TASK
87 | | |
88 | | + gimple_statement_omp_target
89 | | code: GIMPLE_OMP_TARGET
90 | |
91 | + gomp_sections
92 | | layout: GSS_OMP_SECTIONS, code: GIMPLE_OMP_SECTIONS
93 | |
94 | + gimple_statement_omp_single_layout
95 | | layout: GSS_OMP_SINGLE_LAYOUT
96 | |
97 | + gomp_single
98 | | code: GIMPLE_OMP_SINGLE
99 | |
100 | + gomp_teams
101 | code: GIMPLE_OMP_TEAMS
102 |
103 + gbind
104 | layout: GSS_BIND, code: GIMPLE_BIND
105 |
106 + gcatch
107 | layout: GSS_CATCH, code: GIMPLE_CATCH
108 |
109 + geh_filter
110 | layout: GSS_EH_FILTER, code: GIMPLE_EH_FILTER
111 |
112 + geh_else
113 | layout: GSS_EH_ELSE, code: GIMPLE_EH_ELSE
114 |
115 + geh_mnt
116 | layout: GSS_EH_MNT, code: GIMPLE_EH_MUST_NOT_THROW
117 |
118 + gphi
119 | layout: GSS_PHI, code: GIMPLE_PHI
120 |
121 + gimple_statement_eh_ctrl
122 | | layout: GSS_EH_CTRL
123 | |
124 | + gresx
125 | | code: GIMPLE_RESX
126 | |
127 | + geh_dispatch
128 | code: GIMPLE_EH_DISPATCH
129 |
130 + gtry
131 | layout: GSS_TRY, code: GIMPLE_TRY
132 |
133 + gimple_statement_wce
134 | layout: GSS_WCE, code: GIMPLE_WITH_CLEANUP_EXPR
135 |
136 + gomp_continue
137 | layout: GSS_OMP_CONTINUE, code: GIMPLE_OMP_CONTINUE
138 |
139 + gomp_atomic_load
140 | layout: GSS_OMP_ATOMIC_LOAD, code: GIMPLE_OMP_ATOMIC_LOAD
141 |
142 + gimple_statement_omp_atomic_store_layout
143 | layout: GSS_OMP_ATOMIC_STORE_LAYOUT,
144 | code: GIMPLE_OMP_ATOMIC_STORE
145 |
146 + gomp_atomic_store
147 | code: GIMPLE_OMP_ATOMIC_STORE
148 |
149 + gomp_return
150 code: GIMPLE_OMP_RETURN