GCC Middle and Back End API Reference
|
#include "insn-modes.h"
#include "signop.h"
#include "wide-int.h"
#include "wide-int-print.h"
#include "poly-int.h"
#include "poly-int-types.h"
#include "insn-modes-inline.h"
#include "machmode.h"
#include "double-int.h"
#include "align.h"
#include "iterator-utils.h"
#include "real.h"
#include "fixed-value.h"
#include "hash-table.h"
#include "hash-set.h"
#include "input.h"
#include "is-a.h"
#include "memory-block.h"
#include "dumpfile.h"
Go to the source code of this file.
Data Structures | |
struct | kv_pair< ValueType > |
Namespaces | |
namespace | pp_markup |
namespace | gcc |
Macros | |
#define | GTY(x) |
#define | ADDR_SPACE_GENERIC 0 |
#define | ADDR_SPACE_GENERIC_P(AS) |
#define | OBSTACK_CHUNK_SIZE memory_block_pool::block_size |
#define | obstack_chunk_alloc mempool_obstack_chunk_alloc |
#define | obstack_chunk_free mempool_obstack_chunk_free |
#define | gcc_obstack_init(OBSTACK) |
#define | POLY_INT_CONVERSION 0 |
Typedefs | |
typedef int64_t | gcov_type |
typedef uint64_t | gcov_type_unsigned |
typedef class bitmap_head * | bitmap |
typedef const class bitmap_head * | const_bitmap |
typedef struct simple_bitmap_def * | sbitmap |
typedef const struct simple_bitmap_def * | const_sbitmap |
typedef struct rtx_def * | rtx |
typedef const struct rtx_def * | const_rtx |
typedef opt_mode< scalar_mode > | opt_scalar_mode |
typedef opt_mode< scalar_int_mode > | opt_scalar_int_mode |
typedef opt_mode< scalar_float_mode > | opt_scalar_float_mode |
typedef pod_mode< scalar_mode > | scalar_mode_pod |
typedef pod_mode< scalar_int_mode > | scalar_int_mode_pod |
typedef pod_mode< fixed_size_mode > | fixed_size_mode_pod |
typedef struct rtvec_def * | rtvec |
typedef const struct rtvec_def * | const_rtvec |
typedef struct hwivec_def * | hwivec |
typedef const struct hwivec_def * | const_hwivec |
typedef union tree_node * | tree |
typedef const union tree_node * | const_tree |
typedef gimple * | gimple_seq |
using | dw_cfi_ref = struct dw_cfi_node * |
typedef union section | section |
typedef const char *(* | diagnostic_input_charset_callback) (const char *) |
typedef pp_markup::element | pp_element |
typedef unsigned char | addr_space_t |
typedef int | alias_set_type |
typedef class edge_def * | edge |
typedef const class edge_def * | const_edge |
typedef struct basic_block_def * | basic_block |
typedef const struct basic_block_def * | const_basic_block |
typedef int | reg_class_t |
typedef std::pair< tree, tree > | tree_pair |
typedef std::pair< const char *, int > | string_int_pair |
typedef void(* | gt_pointer_operator) (void *, void *, void *) |
typedef unsigned char | uchar |
#define ADDR_SPACE_GENERIC 0 |
The value of addr_space_t that represents the generic address space.
Referenced by build_def_use(), copyprop_hardreg_forward_1(), create_new_invariant(), decompose_lea_address(), expand_expr_addr_expr(), find_reloads(), find_reloads_address(), get_variable_section(), init_caller_save(), init_emit_regs(), ira_build_conflicts(), maybe_fix_stack_asms(), preprocess_constraints(), process_alt_operands(), record_operand_costs(), record_reg_classes(), reg_class_from_constraints(), set_mem_attrs_for_spill(), simplify_context::simplify_unary_operation_1(), and tree_nop_conversion_p().
#define ADDR_SPACE_GENERIC_P | ( | AS | ) |
Referenced by asan_protect_global(), canon_address(), clear_storage_hints(), dump_generic_node(), emit_block_move_hints(), expand_assignment(), find_reloads_address(), find_single_drs(), function_and_variable_visibility(), get_memory_rtx(), get_variable_section(), gimplify_modify_expr(), gimplify_modify_expr_to_memcpy(), gimplify_modify_expr_to_memset(), instrument_derefs(), instrument_expr(), instrument_mem_ref(), memory_address_addr_space_p(), modified_type_die(), print_node(), print_node_brief(), rtx_writer::print_rtx(), strict_memory_address_addr_space_p(), ubsan_expand_null_ifn(), and valid_address_p().
#define gcc_obstack_init | ( | OBSTACK | ) |
Referenced by addr_stridxptr(), alloc_aux_for_blocks(), alloc_aux_for_edges(), alloc_mem(), analyze_subscript_affine_affine(), combine_instructions(), create_coalesce_list(), create_output_block(), dbr_schedule(), DFS::DFS(), do_rpo_vn_1(), dse_step0(), find_always_executed_bbs(), init_alias_vars(), init_opts_obstack(), init_pre(), init_reload(), init_subregs_of_mode(), ipa_odr_read_section(), ipa_pta_execute(), ipa_sra_summarize_function(), ira(), lto_reader_init(), new_graph(), one_code_hoisting_pass(), one_cprop_pass(), one_pre_gcse_pass(), parallelize_loops(), perform_var_substitution(), vn_walk_cb_data::push_partial_def(), regrename_init(), sra_initialize(), tree_ssa_iv_optimize_init(), and tree_ssa_lim_initialize().
#define GTY | ( | x | ) |
GCC core type declarations. Copyright (C) 2002-2024 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Under Section 7 of GPL version 3, you are granted additional permissions described in the GCC Runtime Library Exception, version 3.1, as published by the Free Software Foundation. You should have received a copy of the GNU General Public License and a copy of the GCC Runtime Library Exception along with this program; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see <http://www.gnu.org/licenses/>.
Provide forward declarations of core types which are referred to by most of the compiler. This allows header files to use these types (e.g. in function prototypes) without concern for whether the full definitions are visible. Some other declarations that need to be universally visible are here, too. In the context of tconfig.h, most of these have special definitions which prevent them from being used except in further type declarations. This is a kludge; the right thing is to avoid including the "tm.h" header set in the context of tconfig.h, but we're not there yet.
#define obstack_chunk_alloc mempool_obstack_chunk_alloc |
Referenced by bitmap_obstack_initialize(), and pair_fusion_bb_info::pair_fusion_bb_info().
#define obstack_chunk_free mempool_obstack_chunk_free |
Referenced by bitmap_obstack_initialize(), and pair_fusion_bb_info::pair_fusion_bb_info().
#define OBSTACK_CHUNK_SIZE memory_block_pool::block_size |
Referenced by bitmap_obstack_initialize(), and pair_fusion_bb_info::pair_fusion_bb_info().
#define POLY_INT_CONVERSION 0 |
Most source files will require the following headers.
On targets that don't need polynomial offsets, target-specific code should be able to treat poly_int like a normal constant, with a conversion operator going from the former to the latter. We also allow this for gencondmd.cc for all targets, so that we can treat machine_modes as enums without causing build failures.
typedef unsigned char addr_space_t |
Address space number for named address space support.
typedef int alias_set_type |
The type of an alias set. Code currently assumes that variables of this type can take the values 0 (the alias set which aliases everything) and -1 (sometimes indicating that the alias set is unknown, sometimes indicating a memory barrier) and -2 (indicating that the alias set should be set to a unique value but has not been set yet).
typedef struct basic_block_def* basic_block |
typedef class bitmap_head* bitmap |
typedef const struct basic_block_def* const_basic_block |
typedef const class bitmap_head* const_bitmap |
typedef const class edge_def* const_edge |
typedef const struct hwivec_def* const_hwivec |
typedef const struct rtvec_def* const_rtvec |
typedef const struct simple_bitmap_def* const_sbitmap |
typedef const union tree_node* const_tree |
typedef const char *(* diagnostic_input_charset_callback) (const char *) |
using dw_cfi_ref = struct dw_cfi_node * |
typedef pod_mode<fixed_size_mode> fixed_size_mode_pod |
typedef int64_t gcov_type |
typedef uint64_t gcov_type_unsigned |
typedef gimple* gimple_seq |
typedef void(* gt_pointer_operator) (void *, void *, void *) |
Support for user-provided GGC and PCH markers. The first parameter is a pointer to a pointer, the second either NULL if the pointer to pointer points into a GC object or the actual pointer address if the first argument points to a temporary and the third a cookie.
typedef struct hwivec_def* hwivec |
typedef opt_mode<scalar_int_mode> opt_scalar_int_mode |
typedef opt_mode<scalar_mode> opt_scalar_mode |
typedef pp_markup::element pp_element |
typedef int reg_class_t |
enum reg_class is target specific, so it should not appear in target-independent code or interfaces, like the target hook declarations in target.h.
typedef struct simple_bitmap_def* sbitmap |
typedef pod_mode<scalar_int_mode> scalar_int_mode_pod |
typedef pod_mode<scalar_mode> scalar_mode_pod |
typedef union section section |
typedef std::pair<const char *, int> string_int_pair |
typedef union tree_node* tree |
typedef unsigned char uchar |
enum flt_eval_method |
enum function_class |
enum ir_type |
enum node_frequency |
enum offload_abi |
enum optimization_type |
enum optimize_size_level |
enum pad_direction |
enum profile_update |
enum stack_protector |
enum symbol_visibility |
enum tls_model |
The thread-local storage model associated with a given VAR_DECL or SYMBOL_REF. This isn't used much, but both trees and RTL refer to it, so it's here.
Enumerator | |
---|---|
TLS_MODEL_NONE | |
TLS_MODEL_EMULATED | |
TLS_MODEL_REAL | |
TLS_MODEL_GLOBAL_DYNAMIC | |
TLS_MODEL_LOCAL_DYNAMIC | |
TLS_MODEL_INITIAL_EXEC | |
TLS_MODEL_LOCAL_EXEC |
enum trampoline_impl |
enum unwind_info_type |
enum var_init_status |