GCC Middle and Back End API Reference
|
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "backend.h"
#include "target.h"
#include "tree.h"
#include "gimple.h"
#include "tree-streamer.h"
#include "cgraph.h"
#include "alias.h"
#include "stor-layout.h"
#include "gomp-constants.h"
#include "print-tree.h"
Pack all the non-pointer fields of the TS_BASE structure of expression EXPR into bitpack BP.
References AGGREGATE_TYPE_P, bp_pack_value(), CALL_EXPR_BY_DESCRIPTOR, DECL_NAMELESS, DECL_P, DECL_UNSIGNED, lto_stream_offload_p, REF_REVERSE_STORAGE_ORDER, SSA_NAME_IS_DEFAULT_DEF, TREE_ADDRESSABLE, TREE_ASM_WRITTEN, TREE_CODE, TREE_CONSTANT, TREE_DEPRECATED, TREE_NO_WARNING, TREE_NOTHROW, TREE_PRIVATE, TREE_PROTECTED, TREE_PUBLIC, TREE_READONLY, TREE_SIDE_EFFECTS, TREE_STATIC, TREE_THIS_VOLATILE, TYPE_ADDR_SPACE, TYPE_ARTIFICIAL, TYPE_P, TYPE_REVERSE_STORAGE_ORDER, TYPE_SATURATING, and TYPE_UNSIGNED.
Referenced by streamer_write_tree_bitfields().
|
static |
Pack all the non-pointer fields of the TS_BLOCK structure of expression EXPR into bitpack BP.
References BLOCK_SOURCE_LOCATION, inlined_function_outer_scope_p(), stream_output_location, and UNKNOWN_LOCATION.
Referenced by streamer_write_tree_bitfields().
Pack all the non-pointer fields of the TS_DECL_COMMON structure of expression EXPR into bitpack BP.
References AGGREGATE_TYPE_P, bp_pack_machine_mode(), bp_pack_value(), bp_pack_var_len_unsigned(), DECL_ABSTRACT_P, DECL_ALIGN, DECL_ARTIFICIAL, DECL_BIT_FIELD, DECL_BY_REFERENCE, DECL_EXTERNAL, DECL_FIELD_ABI_IGNORED, DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD, DECL_HAS_DEBUG_EXPR_P, DECL_HAS_VALUE_EXPR_P, DECL_HIDDEN_STRING_LENGTH, DECL_IGNORED_P, DECL_MODE, DECL_NONADDRESSABLE_P, DECL_NONLOCAL, DECL_NONLOCAL_FRAME, DECL_NOT_FLEXARRAY, DECL_NOT_GIMPLE_REG_P, DECL_PACKED, DECL_PADDING_P, DECL_PRESERVE_P, DECL_USER_ALIGN, DECL_VIRTUAL_P, EH_LANDING_PAD_NR, lto_stream_offload_p, TREE_CODE, TREE_TYPE, VAR_P, and VECTOR_TYPE_P.
Referenced by streamer_write_tree_bitfields().
Pack all the non-pointer fields of the TS_DECL_WITH_VIS structure of expression EXPR into bitpack BP.
References bp_pack_value(), DECL_COMDAT, DECL_COMMON, DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P, DECL_DLLIMPORT_P, DECL_FINAL_P, DECL_HARD_REGISTER, DECL_IN_CONSTANT_POOL, DECL_SEEN_IN_BIND_EXPR_P, DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_WEAK, TREE_CODE, and VAR_P.
Referenced by streamer_write_tree_bitfields().
Pack all the non-pointer fields of the TS_DECL_WRTL structure of expression EXPR into bitpack BP.
References bp_pack_value(), and DECL_REGISTER.
Referenced by streamer_write_tree_bitfields().
Pack all the non-pointer fields of the TS_FIXED_CST structure of expression EXPR into bitpack BP.
References bp_pack_machine_mode(), bp_pack_var_len_int(), fixed_value::data, double_int::high, double_int::low, fixed_value::mode, and TREE_FIXED_CST.
Referenced by streamer_write_tree_bitfields().
Pack all the non-pointer fields of the TS_FUNCTION_DECL structure of expression EXPR into bitpack BP.
References bp_pack_enum, bp_pack_value(), BUILT_IN_LAST, DECL_BUILT_IN_CLASS, DECL_DECLARED_INLINE_P, DECL_DISREGARD_INLINE_LIMITS, DECL_IS_MALLOC, DECL_IS_NOVOPS, DECL_IS_OPERATOR_DELETE_P, DECL_IS_REPLACEABLE_OPERATOR, DECL_IS_RETURNS_TWICE, DECL_LOOPING_CONST_OR_PURE_P, DECL_NO_INLINE_WARNING_P, DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK, DECL_POSSIBLY_INLINED, DECL_PURE_P, DECL_STATIC_CHAIN, DECL_STATIC_CONSTRUCTOR, DECL_STATIC_DESTRUCTOR, DECL_UNCHECKED_FUNCTION_CODE, DECL_UNINLINABLE, FUNCTION_DECL_DECL_TYPE, and NOT_BUILT_IN.
Referenced by streamer_write_tree_bitfields().
Pack all the non-pointer fields of the TS_INTEGER_CST structure of expression EXPR into bitpack BP.
References bp_pack_var_len_int(), i, TREE_INT_CST_ELT, and TREE_INT_CST_EXT_NUNITS.
Referenced by streamer_write_tree_bitfields().
|
static |
Pack all the non-pointer fields of the TS_OMP_CLAUSE structure of expression EXPR into bitpack BP.
References bp_pack_enum, MAX_TREE_CODES, OMP_CLAUSE_CODE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_DEFAULT_KIND, OMP_CLAUSE_DEFAULT_LAST, OMP_CLAUSE_DEPEND, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_DEPEND_LAST, OMP_CLAUSE_DOACROSS, OMP_CLAUSE_DOACROSS_KIND, OMP_CLAUSE_DOACROSS_LAST, OMP_CLAUSE_IN_REDUCTION, OMP_CLAUSE_LOCATION, OMP_CLAUSE_MAP, OMP_CLAUSE_MAP_KIND, OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_PROC_BIND_KIND, OMP_CLAUSE_PROC_BIND_LAST, OMP_CLAUSE_REDUCTION, OMP_CLAUSE_REDUCTION_CODE, OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_SCHEDULE_KIND, OMP_CLAUSE_SCHEDULE_LAST, OMP_CLAUSE_TASK_REDUCTION, and stream_output_location.
Referenced by streamer_write_tree_bitfields().
Pack all the non-pointer fields of the TS_REAL_CST structure of expression EXPR into bitpack BP.
References bp_pack_real_value(), r, REAL_VALUE_TYPE, and TREE_REAL_CST.
Referenced by streamer_write_tree_bitfields().
|
static |
Pack all the non-pointer fields of the TS_TRANSLATION_UNIT_DECL structure of expression EXPR into bitpack BP.
References bp_pack_string(), and TRANSLATION_UNIT_LANGUAGE.
Referenced by streamer_write_tree_bitfields().
Pack all the non-pointer fields of the TS_TYPE_COMMON structure of expression EXPR into bitpack BP.
References AGGREGATE_TYPE_P, bp_pack_machine_mode(), bp_pack_value(), bp_pack_var_len_unsigned(), FUNC_OR_METHOD_TYPE_P, lto_stream_offload_p, NULL_TREE, RECORD_OR_UNION_TYPE_P, TREE_CODE, TYPE_ALIGN, TYPE_CANONICAL, TYPE_CXX_ODR_P, TYPE_EMPTY_P, TYPE_FINAL_P, TYPE_INCLUDES_FLEXARRAY, TYPE_LANG_FLAG_0, TYPE_MAIN_VARIANT, TYPE_MODE_RAW, TYPE_NO_NAMED_ARGS_STDARG_P, TYPE_NONALIASED_COMPONENT, TYPE_PACKED, TYPE_PRECISION_RAW, TYPE_READONLY, TYPE_RESTRICT, TYPE_STRING_FLAG, TYPE_TRANSPARENT_AGGR, TYPE_TYPELESS_STORAGE, TYPE_USER_ALIGN, variably_modified_type_p(), and VECTOR_TYPE_P.
Referenced by streamer_write_tree_bitfields().
|
static |
Emit the chain of tree nodes starting at T. OB is the output block to write to. REF_P is true if chain elements should be emitted as references.
References DECL_EXTERNAL, gcc_assert, NULL_TREE, stream_write_tree_ref(), TREE_CHAIN, and VAR_OR_FUNCTION_DECL_P.
Referenced by write_ts_block_tree_pointers(), and write_ts_type_non_common_tree_pointers().
void streamer_write_integer_cst | ( | struct output_block * | ob, |
tree | cst ) |
Emit the integer constant CST to output block OB. If REF_P is true, CST's type will be emitted as a reference.
References gcc_assert, i, LTO_integer_cst, print_node_brief(), stream_write_tree_ref(), streamer_dump_file, streamer_write_hwi(), streamer_write_record_start(), streamer_write_uhwi(), TREE_INT_CST_ELT, TREE_INT_CST_NUNITS, TREE_OVERFLOW, and TREE_TYPE.
Referenced by lto_output_tree_1().
void streamer_write_string_cst | ( | struct output_block * | ob, |
struct lto_output_stream * | index_stream, | ||
tree | string ) |
Routines for emitting trees to a file stream. Copyright (C) 2011-2024 Free Software Foundation, Inc. Contributed by Diego Novillo <dnovillo@google.com> 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. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>.
Output the STRING constant to the string table in OB. Then put the index onto the INDEX_STREAM.
References NULL, streamer_write_string_with_length(), TREE_STRING_LENGTH, and TREE_STRING_POINTER.
Referenced by lto_output_toplevel_asms(), and streamer_write_tree_header().
void streamer_write_tree_bitfields | ( | struct output_block * | ob, |
tree | expr ) |
Pack all the bitfields in EXPR into a bit pack.
References bitpack_create(), bp_pack_enum, bp_pack_value(), bp_pack_var_len_unsigned(), CALL_EXPR_IFN, cl_optimization_stream_out(), cl_target_option_stream_out(), CLOBBER_KIND, CLOBBER_LAST, CODE_CONTAINS_STRUCT, CONSTRUCTOR_NELTS, DECL_SOURCE_LOCATION, EXPR_LOCATION, lto_stream_offload_p, output_block::main_stream, MR_DEPENDENCE_BASE, MR_DEPENDENCE_CLIQUE, pack_ts_base_value_fields(), pack_ts_block_value_fields(), pack_ts_decl_common_value_fields(), pack_ts_decl_with_vis_value_fields(), pack_ts_decl_wrtl_value_fields(), pack_ts_fixed_cst_value_fields(), pack_ts_function_decl_value_fields(), pack_ts_int_cst_value_fields(), pack_ts_omp_clause_value_fields(), pack_ts_real_cst_value_fields(), pack_ts_translation_unit_decl_value_fields(), pack_ts_type_common_value_fields(), stream_output_location, streamer_write_bitpack(), TREE_CODE, TREE_OPTIMIZATION, and TREE_TARGET_OPTION.
Referenced by lto_write_tree_1().
void streamer_write_tree_body | ( | struct output_block * | ob, |
tree | expr ) |
Write all pointer fields in EXPR to output block OB. If REF_P is true, the leaves of EXPR are emitted as references.
References CODE_CONTAINS_STRUCT, lto_stats, lto_stats_d::num_tree_bodies_output, TREE_CODE, write_ts_binfo_tree_pointers(), write_ts_block_tree_pointers(), write_ts_common_tree_pointers(), write_ts_complex_tree_pointers(), write_ts_constructor_tree_pointers(), write_ts_decl_common_tree_pointers(), write_ts_decl_minimal_tree_pointers(), write_ts_decl_non_common_tree_pointers(), write_ts_decl_with_vis_tree_pointers(), write_ts_exp_tree_pointers(), write_ts_field_decl_tree_pointers(), write_ts_function_decl_tree_pointers(), write_ts_list_tree_pointers(), write_ts_omp_clause_tree_pointers(), write_ts_poly_tree_pointers(), write_ts_raw_data_cst_tree_pointers(), write_ts_type_common_tree_pointers(), write_ts_type_non_common_tree_pointers(), write_ts_vec_tree_pointers(), and write_ts_vector_tree_pointers().
Referenced by lto_write_tree_1().
void streamer_write_tree_header | ( | struct output_block * | ob, |
tree | expr ) |
Emit header information for tree EXPR to output block OB. The header contains everything needed to instantiate an empty skeleton for EXPR on the reading side. IX is the index into the streamer cache where EXPR is stored.
References BINFO_N_BASE_BINFOS, bitpack_create(), bp_pack_value(), call_expr_nargs, CODE_CONTAINS_STRUCT, gcc_checking_assert, lto_section_name, lto_tree_code_to_tag(), output_block::main_stream, NULL_TREE, OMP_CLAUSE_CODE, print_node_brief(), RAW_DATA_LENGTH, RAW_DATA_OWNER, RAW_DATA_POINTER, output_block::section_type, streamer_dump_file, streamer_write_bitpack(), streamer_write_hwi(), streamer_write_record_start(), streamer_write_string_cst(), streamer_write_string_with_length(), streamer_write_uhwi(), TREE_CODE, TREE_INT_CST_EXT_NUNITS, TREE_INT_CST_NUNITS, TREE_STRING_POINTER, TREE_VEC_LENGTH, VECTOR_CST_LOG2_NPATTERNS, VECTOR_CST_NELTS_PER_PATTERN, and write_identifier().
Referenced by DFS::DFS(), and lto_write_tree().
|
static |
Output the identifier ID to the string table in OB. Then put the index onto the INDEX_STREAM.
References IDENTIFIER_LENGTH, IDENTIFIER_POINTER, and streamer_write_string_with_length().
Referenced by streamer_write_tree_header().
|
static |
Write all pointer fields in the TS_BINFO structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References BINFO_BASE_BINFOS, BINFO_OFFSET, BINFO_VTABLE, FOR_EACH_VEC_ELT, i, NULL_TREE, and stream_write_tree_ref().
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_BLOCK structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References BLOCK_ABSTRACT_ORIGIN, BLOCK_SUPERCONTEXT, BLOCK_VARS, stream_write_tree_ref(), and streamer_write_chain().
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_COMMON structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References stream_write_tree_ref(), TREE_CODE, and TREE_TYPE.
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_COMPLEX structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References stream_write_tree_ref(), TREE_IMAGPART, and TREE_REALPART.
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_CONSTRUCTOR structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References CONSTRUCTOR_ELTS, FOR_EACH_CONSTRUCTOR_ELT, i, and stream_write_tree_ref().
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_DECL_COMMON structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References DECL_ABSTRACT_ORIGIN, DECL_ATTRIBUTES, DECL_DEBUG_EXPR, DECL_HAS_DEBUG_EXPR_P, DECL_HAS_VALUE_EXPR_P, DECL_SIZE, DECL_SIZE_UNIT, DECL_VALUE_EXPR, DINFO_LEVEL_NONE, NULL_TREE, stream_write_tree_ref(), TREE_CODE, and VAR_P.
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_DECL_MINIMAL structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References all_translation_units, DECL_CONTEXT, DECL_NAME, IDENTIFIER_ANON_P, NULL_TREE, stream_write_tree_ref(), and TREE_CODE.
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_DECL_NON_COMMON structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_DECL_WITH_VIS structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References DECL_ASSEMBLER_NAME, DECL_ASSEMBLER_NAME_SET_P, NULL_TREE, and stream_write_tree_ref().
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_EXP structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References i, stream_write_tree_ref(), TREE_BLOCK, TREE_OPERAND, and TREE_OPERAND_LENGTH.
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_FIELD_DECL structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References DECL_BIT_FIELD_REPRESENTATIVE, DECL_BIT_FIELD_TYPE, DECL_FIELD_BIT_OFFSET, DECL_FIELD_OFFSET, and stream_write_tree_ref().
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_FUNCTION_DECL structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References DECL_FUNCTION_PERSONALITY, DECL_FUNCTION_SPECIFIC_OPTIMIZATION, DECL_FUNCTION_SPECIFIC_TARGET, lto_stream_offload_p, and stream_write_tree_ref().
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_LIST structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References stream_write_tree_ref(), TREE_CHAIN, TREE_PURPOSE, and TREE_VALUE.
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_OMP_CLAUSE structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References gcc_assert, i, NULL, OMP_CLAUSE_CHAIN, OMP_CLAUSE_CODE, OMP_CLAUSE_IN_REDUCTION, omp_clause_num_ops, OMP_CLAUSE_OPERAND, OMP_CLAUSE_REDUCTION, OMP_CLAUSE_REDUCTION_GIMPLE_INIT, OMP_CLAUSE_REDUCTION_GIMPLE_MERGE, OMP_CLAUSE_TASK_REDUCTION, and stream_write_tree_ref().
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_POLY_INT_CST structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References i, NUM_POLY_INT_COEFFS, POLY_INT_CST_COEFF, and stream_write_tree_ref().
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the RAW_DATA_CST/TS_RAW_DATA_CST structure of EXPR to output block OB.
References NULL_TREE, RAW_DATA_OWNER, and stream_write_tree_ref().
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_TYPE_COMMON structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References stream_write_tree_ref(), TYPE_ATTRIBUTES, TYPE_CONTEXT, TYPE_MAIN_VARIANT, TYPE_NAME, TYPE_SIZE, and TYPE_SIZE_UNIT.
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_TYPE_NON_COMMON structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References FUNC_OR_METHOD_TYPE_P, POINTER_TYPE_P, RECORD_OR_UNION_TYPE_P, stream_write_tree_ref(), streamer_write_chain(), TREE_CODE, TYPE_ARG_TYPES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_MAX_VALUE_RAW, and TYPE_MIN_VALUE_RAW.
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_VEC structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References i, stream_write_tree_ref(), TREE_VEC_ELT, and TREE_VEC_LENGTH.
Referenced by streamer_write_tree_body().
|
static |
Write all pointer fields in the TS_VECTOR structure of EXPR to output block OB. If REF_P is true, write a reference to EXPR's pointer fields.
References count, i, stream_write_tree_ref(), VECTOR_CST_ENCODED_ELT, and vector_cst_encoded_nelts().
Referenced by streamer_write_tree_body().