GCC Middle and Back End API Reference
context.h
Go to the documentation of this file.
1
/* context.h - Holder for global state
2
Copyright (C) 2013-2024 Free Software Foundation, Inc.
3
4
This file is part of GCC.
5
6
GCC is free software; you can redistribute it and/or modify it under
7
the terms of the GNU General Public License as published by the Free
8
Software Foundation; either version 3, or (at your option) any later
9
version.
10
11
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12
WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
for more details.
15
16
You should have received a copy of the GNU General Public License
17
along with GCC; see the file COPYING3. If not see
18
<http://www.gnu.org/licenses/>. */
19
20
#ifndef GCC_CONTEXT_H
21
#define GCC_CONTEXT_H
22
23
namespace
gcc
{
24
25
class
pass_manager
;
26
class
dump_manager
;
27
28
/* GCC's internal state can be divided into zero or more
29
"parallel universe" of state; an instance of this class is one such
30
context of state. */
31
class
context
32
{
33
public
:
34
context
();
35
~context
();
36
37
/* The flag shows if there are symbols to be streamed for offloading. */
38
bool
have_offload
;
39
40
/* Pass-management. */
41
42
void
set_passes
(
pass_manager
*m)
43
{
44
gcc_assert
(!
m_passes
);
45
m_passes
= m;
46
}
47
48
pass_manager
*
get_passes
() {
gcc_assert
(
m_passes
);
return
m_passes
; }
49
50
/* Handling dump files. */
51
52
dump_manager
*
get_dumps
() {
gcc_assert
(
m_dumps
);
return
m_dumps
; }
53
54
private
:
55
/* Pass-management. */
56
pass_manager
*
m_passes
;
57
58
/* Dump files. */
59
dump_manager
*
m_dumps
;
60
61
};
// class context
62
63
}
// namespace gcc
64
65
/* The global singleton context aka "g".
66
(the name is chosen to be easy to type in a debugger). */
67
extern
gcc::context
*
g
;
68
69
#endif
/* ! GCC_CONTEXT_H */
gcc::context
Definition
context.h:32
gcc::context::~context
~context()
Definition
context.cc:37
gcc::context::context
context()
Definition
context.cc:31
gcc::context::get_passes
pass_manager * get_passes()
Definition
context.h:48
gcc::context::set_passes
void set_passes(pass_manager *m)
Definition
context.h:42
gcc::context::m_passes
pass_manager * m_passes
Definition
context.h:56
gcc::context::get_dumps
dump_manager * get_dumps()
Definition
context.h:52
gcc::context::have_offload
bool have_offload
Definition
context.h:38
gcc::context::m_dumps
dump_manager * m_dumps
Definition
context.h:59
gcc::dump_manager
Definition
dumpfile.h:666
gcc::pass_manager
Definition
pass_manager.h:48
g
gcc::context * g
Definition
context.cc:29
gcc
Definition
context.h:23
gcc_assert
#define gcc_assert(EXPR)
Definition
system.h:814
gcc
context.h
Generated by
1.12.0