GCC Middle and Back End API Reference
varasm.h
Go to the documentation of this file.
1/* Declarations for varasm.h.
2 Copyright (C) 2013-2024 Free Software Foundation, Inc.
3
4This file is part of GCC.
5
6GCC is free software; you can redistribute it and/or modify it under
7the terms of the GNU General Public License as published by the Free
8Software Foundation; either version 3, or (at your option) any later
9version.
10
11GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12WARRANTY; without even the implied warranty of MERCHANTABILITY or
13FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14for more details.
15
16You should have received a copy of the GNU General Public License
17along with GCC; see the file COPYING3. If not see
18<http://www.gnu.org/licenses/>. */
19
20#ifndef GCC_VARASM_H
21#define GCC_VARASM_H
22
23/* The following global holds the "function name" for the code in the
24 cold section of a function, if hot/cold function splitting is enabled
25 and there was actually code that went into the cold section. A
26 pseudo function name is needed for the cold section of code for some
27 debugging tools that perform symbolization. */
29
31extern void make_decl_rtl (tree);
33extern void make_decl_one_only (tree, tree);
34extern bool supports_one_only (void);
35extern void resolve_unique_section (tree, int, int);
36extern void mark_referenced (tree);
37extern void mark_decl_referenced (tree);
38extern void notice_global_symbol (tree);
39extern void set_user_assembler_name (tree, const char *);
40extern void process_pending_assemble_externals (void);
41extern bool decl_replaceable_p (tree, bool);
44
45/* Declare DECL to be a weak symbol. */
46extern void declare_weak (tree);
47
48/* Merge weak status. */
49extern void merge_weak (tree, tree);
50
51/* Make one symbol an alias for another. */
52extern void assemble_alias (tree, tree);
53
54/* Return nonzero if VALUE is a valid constant-valued expression
55 for use in initializing a static variable; one that can be an
56 element of a "constant" initializer.
57
58 Return null_pointer_node if the value is absolute;
59 if it is relocatable, return the variable that determines the relocation.
60 We assume that VALUE has been folded as much as possible;
61 therefore, we do not need to check for such things as
62 arithmetic-combinations of integers. */
63extern tree initializer_constant_valid_p (tree, tree, bool = false);
64
65/* Return true if VALUE is a valid constant-valued expression
66 for use in initializing a static bit-field; one that can be
67 an element of a "constant" initializer. */
69
70/* Whether a constructor CTOR is a valid static constant initializer if all
71 its elements are. This used to be internal to initializer_constant_valid_p
72 and has been exposed to let other functions like categorize_ctor_elements
73 evaluate the property while walking a constructor for other purposes. */
75
76extern void init_varasm_status (void);
77
78extern rtx assemble_static_space (unsigned HOST_WIDE_INT);
79
81
83
84extern void varasm_cc_finalize ();
85
86#endif // GCC_VARASM_H
tls_model
Definition coretypes.h:208
const union tree_node * const_tree
Definition coretypes.h:98
union tree_node * tree
Definition coretypes.h:97
Definition rtl.h:311
Definition output.h:514
bool initializer_constant_valid_for_bitfield_p(const_tree)
Definition varasm.cc:5155
void notice_global_symbol(tree)
Definition varasm.cc:1784
rtx assemble_static_space(unsigned HOST_WIDE_INT)
Definition varasm.cc:2773
void set_user_assembler_name(tree, const char *)
Definition varasm.cc:960
void resolve_unique_section(tree, int, int)
Definition varasm.cc:483
void varasm_cc_finalize()
Definition varasm.cc:8870
tree tree_output_constant_def(tree)
Definition varasm.cc:3785
void make_decl_rtl(tree)
Definition varasm.cc:1440
void init_varasm_status(void)
Definition varasm.cc:3960
void declare_weak(tree)
Definition varasm.cc:6106
void mark_referenced(tree)
Definition varasm.cc:2688
tree initializer_constant_valid_p(tree, tree, bool=false)
Definition varasm.cc:5135
bool supports_one_only(void)
Definition varasm.cc:6713
bool decl_replaceable_p(tree, bool)
Definition varasm.cc:7872
rtx make_decl_rtl_for_debug(tree)
Definition varasm.cc:1653
void switch_to_comdat_section(section *, tree)
Definition varasm.cc:8818
void make_decl_one_only(tree, tree)
Definition varasm.cc:6726
bool decl_binds_to_current_def_p(const_tree)
Definition varasm.cc:7824
enum tls_model decl_default_tls_model(const_tree)
Definition varasm.cc:6860
void merge_weak(tree, tree)
Definition varasm.cc:6036
void assemble_alias(tree, tree)
Definition varasm.cc:6440
void process_pending_assemble_externals(void)
Definition varasm.cc:2571
tree cold_function_name
Definition varasm.cc:172
bool constructor_static_from_elts_p(const_tree)
Definition varasm.cc:4752
void mark_decl_referenced(tree)
Definition varasm.cc:2695
rtx assemble_trampoline_template(void)
Definition varasm.cc:2815