| 1 | /* GCC core type declarations. |
| 2 | Copyright (C) 2002-2026 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 | Under Section 7 of GPL version 3, you are granted additional |
| 17 | permissions described in the GCC Runtime Library Exception, version |
| 18 | 3.1, as published by the Free Software Foundation. |
| 19 | |
| 20 | You should have received a copy of the GNU General Public License and |
| 21 | a copy of the GCC Runtime Library Exception along with this program; |
| 22 | see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
| 23 | <http://www.gnu.org/licenses/>. */ |
| 24 | |
| 25 | /* Provide forward declarations of core types which are referred to by |
| 26 | most of the compiler. This allows header files to use these types |
| 27 | (e.g. in function prototypes) without concern for whether the full |
| 28 | definitions are visible. Some other declarations that need to be |
| 29 | universally visible are here, too. |
| 30 | |
| 31 | In the context of tconfig.h, most of these have special definitions |
| 32 | which prevent them from being used except in further type |
| 33 | declarations. This is a kludge; the right thing is to avoid |
| 34 | including the "tm.h" header set in the context of tconfig.h, but |
| 35 | we're not there yet. */ |
| 36 | |
| 37 | #ifndef GCC_CORETYPES_H |
| 38 | #define GCC_CORETYPES_H |
| 39 | |
| 40 | #ifndef GTY |
| 41 | #define GTY(x) /* nothing - marker for gengtype */ |
| 42 | #endif |
| 43 | |
| 44 | #ifndef USED_FOR_TARGET |
| 45 | |
| 46 | typedef int64_t gcov_type; |
| 47 | typedef uint64_t gcov_type_unsigned; |
| 48 | |
| 49 | struct bitmap_obstack; |
| 50 | class bitmap_head; |
| 51 | typedef class bitmap_head *bitmap; |
| 52 | typedef const class bitmap_head *const_bitmap; |
| 53 | struct simple_bitmap_def; |
| 54 | typedef struct simple_bitmap_def *sbitmap; |
| 55 | typedef const struct simple_bitmap_def *const_sbitmap; |
| 56 | struct rtx_def; |
| 57 | typedef struct rtx_def *rtx; |
| 58 | typedef const struct rtx_def *const_rtx; |
| 59 | class scalar_mode; |
| 60 | class scalar_int_mode; |
| 61 | class scalar_float_mode; |
| 62 | class complex_mode; |
| 63 | class fixed_size_mode; |
| 64 | template<typename> class opt_mode; |
| 65 | typedef opt_mode<scalar_mode> opt_scalar_mode; |
| 66 | typedef opt_mode<scalar_int_mode> opt_scalar_int_mode; |
| 67 | typedef opt_mode<scalar_float_mode> opt_scalar_float_mode; |
| 68 | template<typename> struct pod_mode; |
| 69 | typedef pod_mode<scalar_mode> scalar_mode_pod; |
| 70 | typedef pod_mode<scalar_int_mode> scalar_int_mode_pod; |
| 71 | typedef pod_mode<fixed_size_mode> fixed_size_mode_pod; |
| 72 | |
| 73 | /* Subclasses of rtx_def, using indentation to show the class |
| 74 | hierarchy, along with the relevant invariant. |
| 75 | Where possible, keep this list in the same order as in rtl.def. */ |
| 76 | struct rtx_def; |
| 77 | struct rtx_expr_list; /* GET_CODE (X) == EXPR_LIST */ |
| 78 | struct rtx_insn_list; /* GET_CODE (X) == INSN_LIST */ |
| 79 | struct rtx_sequence; /* GET_CODE (X) == SEQUENCE */ |
| 80 | struct rtx_insn; |
| 81 | struct rtx_debug_insn; /* DEBUG_INSN_P (X) */ |
| 82 | struct rtx_nonjump_insn; /* NONJUMP_INSN_P (X) */ |
| 83 | struct rtx_jump_insn; /* JUMP_P (X) */ |
| 84 | struct rtx_call_insn; /* CALL_P (X) */ |
| 85 | struct rtx_jump_table_data; /* JUMP_TABLE_DATA_P (X) */ |
| 86 | struct rtx_barrier; /* BARRIER_P (X) */ |
| 87 | struct rtx_code_label; /* LABEL_P (X) */ |
| 88 | struct rtx_note; /* NOTE_P (X) */ |
| 89 | |
| 90 | struct rtvec_def; |
| 91 | typedef struct rtvec_def *rtvec; |
| 92 | typedef const struct rtvec_def *const_rtvec; |
| 93 | struct hwivec_def; |
| 94 | typedef struct hwivec_def *hwivec; |
| 95 | typedef const struct hwivec_def *const_hwivec; |
| 96 | union tree_node; |
| 97 | typedef union tree_node *tree; |
| 98 | typedef const union tree_node *const_tree; |
| 99 | struct gimple; |
| 100 | typedef gimple *gimple_seq; |
| 101 | struct gimple_stmt_iterator; |
| 102 | class code_helper; |
| 103 | enum tree_index : unsigned; |
| 104 | |
| 105 | /* Forward declare rtx_code, so that we can use it in target hooks without |
| 106 | needing to pull in rtl.h. */ |
| 107 | enum rtx_code : unsigned; |
| 108 | |
| 109 | /* Forward decls for leaf gimple subclasses (for individual gimple codes). |
| 110 | Keep this in the same order as the corresponding codes in gimple.def. */ |
| 111 | |
| 112 | struct gcond; |
| 113 | struct gdebug; |
| 114 | struct ggoto; |
| 115 | struct glabel; |
| 116 | struct gswitch; |
| 117 | struct gassign; |
| 118 | struct gasm; |
| 119 | struct gcall; |
| 120 | struct gtransaction; |
| 121 | struct greturn; |
| 122 | struct gbind; |
| 123 | struct gcatch; |
| 124 | struct geh_filter; |
| 125 | struct geh_mnt; |
| 126 | struct geh_else; |
| 127 | struct gresx; |
| 128 | struct geh_dispatch; |
| 129 | struct gphi; |
| 130 | struct gtry; |
| 131 | struct gomp_atomic_load; |
| 132 | struct gomp_atomic_store; |
| 133 | struct gomp_continue; |
| 134 | struct gomp_critical; |
| 135 | struct gomp_ordered; |
| 136 | struct gomp_for; |
| 137 | struct gomp_parallel; |
| 138 | struct gomp_task; |
| 139 | struct gomp_sections; |
| 140 | struct gomp_single; |
| 141 | struct gomp_target; |
| 142 | struct gomp_teams; |
| 143 | |
| 144 | /* Forward declaration of CFI's and DWARF's types. */ |
| 145 | struct dw_cfi_node; |
| 146 | using dw_cfi_ref = struct dw_cfi_node *; |
| 147 | enum dw_cfi_oprnd_type: int; |
| 148 | enum dwarf_call_frame_info: int; |
| 149 | |
| 150 | /* Subclasses of toplevel_node, using indentation to show the class |
| 151 | hierarchy. */ |
| 152 | |
| 153 | struct toplevel_node; |
| 154 | struct asm_node; |
| 155 | struct symtab_node; |
| 156 | struct cgraph_node; |
| 157 | struct varpool_node; |
| 158 | struct cgraph_edge; |
| 159 | |
| 160 | union section; |
| 161 | typedef union section section; |
| 162 | struct gcc_options; |
| 163 | struct cl_target_option; |
| 164 | struct cl_optimization; |
| 165 | struct cl_option; |
| 166 | struct cl_decoded_option; |
| 167 | struct cl_option_handlers; |
| 168 | class rich_location; |
| 169 | namespace diagnostics { |
| 170 | class context; |
| 171 | class text_sink; |
| 172 | } // namespace diagnostics |
| 173 | class pretty_printer; |
| 174 | class diagnostic_event_id_t; |
| 175 | typedef const char * (*diagnostic_input_charset_callback)(const char *); |
| 176 | namespace pp_markup { class element; } |
| 177 | typedef pp_markup::element pp_element; |
| 178 | |
| 179 | template<typename T> struct array_traits; |
| 180 | |
| 181 | /* Provides a read-only bitmap view of a single integer bitmask or an |
| 182 | array of integer bitmasks, or of a wrapper around such bitmasks. */ |
| 183 | template<typename T, typename Traits = array_traits<T>, |
| 184 | bool has_constant_size = Traits::has_constant_size> |
| 185 | class bitmap_view; |
| 186 | |
| 187 | /* Address space number for named address space support. */ |
| 188 | typedef unsigned char addr_space_t; |
| 189 | |
| 190 | /* The value of addr_space_t that represents the generic address space. */ |
| 191 | #define ADDR_SPACE_GENERIC 0 |
| 192 | #define ADDR_SPACE_GENERIC_P(AS) ((AS) == ADDR_SPACE_GENERIC) |
| 193 | |
| 194 | /* The major intermediate representations of GCC. */ |
| 195 | enum ir_type { |
| 196 | IR_GIMPLE, |
| 197 | IR_RTL_CFGRTL, |
| 198 | IR_RTL_CFGLAYOUT |
| 199 | }; |
| 200 | |
| 201 | /* Provide forward struct declaration so that we don't have to include |
| 202 | all of cpplib.h whenever a random prototype includes a pointer. |
| 203 | Note that the cpp_reader and cpp_token typedefs remain part of |
| 204 | cpplib.h. */ |
| 205 | |
| 206 | struct cpp_reader; |
| 207 | struct cpp_token; |
| 208 | |
| 209 | /* The thread-local storage model associated with a given VAR_DECL |
| 210 | or SYMBOL_REF. This isn't used much, but both trees and RTL refer |
| 211 | to it, so it's here. */ |
| 212 | enum tls_model { |
| 213 | TLS_MODEL_NONE, |
| 214 | TLS_MODEL_EMULATED, |
| 215 | TLS_MODEL_REAL, |
| 216 | TLS_MODEL_GLOBAL_DYNAMIC = TLS_MODEL_REAL, |
| 217 | TLS_MODEL_LOCAL_DYNAMIC, |
| 218 | TLS_MODEL_INITIAL_EXEC, |
| 219 | TLS_MODEL_LOCAL_EXEC |
| 220 | }; |
| 221 | |
| 222 | /* Types of trampoline implementation. */ |
| 223 | enum trampoline_impl { |
| 224 | TRAMPOLINE_IMPL_STACK, |
| 225 | TRAMPOLINE_IMPL_HEAP |
| 226 | }; |
| 227 | |
| 228 | /* Types of ABI for an offload compiler. */ |
| 229 | enum offload_abi { |
| 230 | OFFLOAD_ABI_UNSET, |
| 231 | OFFLOAD_ABI_LP64, |
| 232 | OFFLOAD_ABI_ILP32 |
| 233 | }; |
| 234 | |
| 235 | /* Types of profile update methods. */ |
| 236 | enum profile_update { |
| 237 | PROFILE_UPDATE_SINGLE, |
| 238 | PROFILE_UPDATE_ATOMIC, |
| 239 | PROFILE_UPDATE_PREFER_ATOMIC |
| 240 | }; |
| 241 | |
| 242 | /* Type of profile reproducibility methods. */ |
| 243 | enum profile_reproducibility { |
| 244 | PROFILE_REPRODUCIBILITY_SERIAL, |
| 245 | PROFILE_REPRODUCIBILITY_PARALLEL_RUNS, |
| 246 | PROFILE_REPRODUCIBILITY_MULTITHREADED |
| 247 | }; |
| 248 | |
| 249 | /* Type of -fstack-protector-*. */ |
| 250 | enum stack_protector { |
| 251 | SPCT_FLAG_DEFAULT = 1, |
| 252 | SPCT_FLAG_ALL = 2, |
| 253 | SPCT_FLAG_STRONG = 3, |
| 254 | SPCT_FLAG_EXPLICIT = 4 |
| 255 | }; |
| 256 | |
| 257 | /* Types of unwind/exception handling info that can be generated. |
| 258 | Note that a UI_TARGET (or larger) setting is considered to be |
| 259 | incompatible with -freorder-blocks-and-partition. */ |
| 260 | |
| 261 | enum unwind_info_type |
| 262 | { |
| 263 | UI_NONE, |
| 264 | UI_SJLJ, |
| 265 | UI_DWARF2, |
| 266 | UI_SEH, |
| 267 | UI_TARGET |
| 268 | }; |
| 269 | |
| 270 | /* Callgraph node profile representation. */ |
| 271 | enum node_frequency { |
| 272 | /* This function most likely won't be executed at all. |
| 273 | (set only when profile feedback is available or via function attribute). */ |
| 274 | NODE_FREQUENCY_UNLIKELY_EXECUTED, |
| 275 | /* For functions that are known to be executed once (i.e. constructors, destructors |
| 276 | and main function. */ |
| 277 | NODE_FREQUENCY_EXECUTED_ONCE, |
| 278 | /* The default value. */ |
| 279 | NODE_FREQUENCY_NORMAL, |
| 280 | /* Optimize this function hard |
| 281 | (set only when profile feedback is available or via function attribute). */ |
| 282 | NODE_FREQUENCY_HOT |
| 283 | }; |
| 284 | |
| 285 | /* Ways of optimizing code. */ |
| 286 | enum optimization_type { |
| 287 | /* Prioritize speed over size. */ |
| 288 | OPTIMIZE_FOR_SPEED, |
| 289 | |
| 290 | /* Only do things that are good for both size and speed. */ |
| 291 | OPTIMIZE_FOR_BOTH, |
| 292 | |
| 293 | /* Prioritize size over speed. */ |
| 294 | OPTIMIZE_FOR_SIZE |
| 295 | }; |
| 296 | |
| 297 | /* Enumerates a padding direction. */ |
| 298 | enum pad_direction { |
| 299 | /* No padding is required. */ |
| 300 | PAD_NONE, |
| 301 | |
| 302 | /* Insert padding above the data, i.e. at higher memeory addresses |
| 303 | when dealing with memory, and at the most significant end when |
| 304 | dealing with registers. */ |
| 305 | PAD_UPWARD, |
| 306 | |
| 307 | /* Insert padding below the data, i.e. at lower memeory addresses |
| 308 | when dealing with memory, and at the least significant end when |
| 309 | dealing with registers. */ |
| 310 | PAD_DOWNWARD |
| 311 | }; |
| 312 | |
| 313 | /* Possible initialization status of a variable. When requested |
| 314 | by the user, this information is tracked and recorded in the DWARF |
| 315 | debug information, along with the variable's location. */ |
| 316 | enum var_init_status |
| 317 | { |
| 318 | VAR_INIT_STATUS_UNKNOWN, |
| 319 | VAR_INIT_STATUS_UNINITIALIZED, |
| 320 | VAR_INIT_STATUS_INITIALIZED |
| 321 | }; |
| 322 | |
| 323 | /* Names for the different levels of -Wstrict-overflow=N. The numeric |
| 324 | values here correspond to N. */ |
| 325 | enum warn_strict_overflow_code |
| 326 | { |
| 327 | /* Overflow warning that should be issued with -Wall: a questionable |
| 328 | construct that is easy to avoid even when using macros. Example: |
| 329 | folding (x + CONSTANT > x) to 1. */ |
| 330 | WARN_STRICT_OVERFLOW_ALL = 1, |
| 331 | /* Overflow warning about folding a comparison to a constant because |
| 332 | of undefined signed overflow, other than cases covered by |
| 333 | WARN_STRICT_OVERFLOW_ALL. Example: folding (abs (x) >= 0) to 1 |
| 334 | (this is false when x == INT_MIN). */ |
| 335 | WARN_STRICT_OVERFLOW_CONDITIONAL = 2, |
| 336 | /* Overflow warning about changes to comparisons other than folding |
| 337 | them to a constant. Example: folding (x + 1 > 1) to (x > 0). */ |
| 338 | WARN_STRICT_OVERFLOW_COMPARISON = 3, |
| 339 | /* Overflow warnings not covered by the above cases. Example: |
| 340 | folding ((x * 10) / 5) to (x * 2). */ |
| 341 | WARN_STRICT_OVERFLOW_MISC = 4, |
| 342 | /* Overflow warnings about reducing magnitude of constants in |
| 343 | comparison. Example: folding (x + 2 > y) to (x + 1 >= y). */ |
| 344 | WARN_STRICT_OVERFLOW_MAGNITUDE = 5 |
| 345 | }; |
| 346 | |
| 347 | /* Kind of artificial, compiler-generated lookup table. Type of the |
| 348 | second argument of TARGET_ADDR_SPACE_FOR_ARTIFICIAL_RODATA resp. |
| 349 | targetm.addr_space.for_artificial_rodata. */ |
| 350 | enum artificial_rodata |
| 351 | { |
| 352 | /* Generated by tree-switch-conversion.cc: Lowered GIMPLE_SWITCH expressions |
| 353 | to something more efficient than a jump table. */ |
| 354 | ARTIFICIAL_RODATA_CSWITCH, |
| 355 | |
| 356 | /* Generated by gimple-crc-optimization.cc: CRC optimization. */ |
| 357 | ARTIFICIAL_RODATA_CRC |
| 358 | }; |
| 359 | |
| 360 | /* The type of an alias set. Code currently assumes that variables of |
| 361 | this type can take the values 0 (the alias set which aliases |
| 362 | everything) and -1 (sometimes indicating that the alias set is |
| 363 | unknown, sometimes indicating a memory barrier) and -2 (indicating |
| 364 | that the alias set should be set to a unique value but has not been |
| 365 | set yet). */ |
| 366 | typedef int alias_set_type; |
| 367 | |
| 368 | class edge_def; |
| 369 | typedef class edge_def *edge; |
| 370 | typedef const class edge_def *const_edge; |
| 371 | struct basic_block_def; |
| 372 | typedef struct basic_block_def *basic_block; |
| 373 | typedef const struct basic_block_def *const_basic_block; |
| 374 | |
| 375 | #if !defined (GENERATOR_FILE) |
| 376 | # define OBSTACK_CHUNK_SIZE memory_block_pool::block_size |
| 377 | # define obstack_chunk_alloc mempool_obstack_chunk_alloc |
| 378 | # define obstack_chunk_free mempool_obstack_chunk_free |
| 379 | #else |
| 380 | # define OBSTACK_CHUNK_SIZE 0 |
| 381 | # define obstack_chunk_alloc xmalloc |
| 382 | # define obstack_chunk_free free |
| 383 | #endif |
| 384 | |
| 385 | #define gcc_obstack_init(OBSTACK) \ |
| 386 | obstack_specify_allocation ((OBSTACK), OBSTACK_CHUNK_SIZE, 0, \ |
| 387 | obstack_chunk_alloc, \ |
| 388 | obstack_chunk_free) |
| 389 | |
| 390 | /* enum reg_class is target specific, so it should not appear in |
| 391 | target-independent code or interfaces, like the target hook declarations |
| 392 | in target.h. */ |
| 393 | typedef int reg_class_t; |
| 394 | |
| 395 | class rtl_opt_pass; |
| 396 | |
| 397 | namespace gcc { |
| 398 | class context; |
| 399 | } |
| 400 | |
| 401 | typedef std::pair <tree, tree> tree_pair; |
| 402 | typedef std::pair <const char *, int> string_int_pair; |
| 403 | |
| 404 | /* Define a name->value mapping. */ |
| 405 | template <typename ValueType> |
| 406 | struct kv_pair |
| 407 | { |
| 408 | const char *const name; /* the name of the value */ |
| 409 | const ValueType value; /* the value of the name */ |
| 410 | }; |
| 411 | |
| 412 | #else |
| 413 | |
| 414 | struct _dont_use_rtx_here_; |
| 415 | struct _dont_use_rtvec_here_; |
| 416 | struct _dont_use_rtx_insn_here_; |
| 417 | union _dont_use_tree_here_; |
| 418 | #define rtx struct _dont_use_rtx_here_ * |
| 419 | #define const_rtx struct _dont_use_rtx_here_ * |
| 420 | #define rtvec struct _dont_use_rtvec_here * |
| 421 | #define const_rtvec struct _dont_use_rtvec_here * |
| 422 | #define rtx_insn struct _dont_use_rtx_insn_here_ |
| 423 | #define tree union _dont_use_tree_here_ * |
| 424 | #define const_tree union _dont_use_tree_here_ * |
| 425 | |
| 426 | typedef struct scalar_mode scalar_mode; |
| 427 | typedef struct scalar_int_mode scalar_int_mode; |
| 428 | typedef struct scalar_float_mode scalar_float_mode; |
| 429 | typedef struct complex_mode complex_mode; |
| 430 | |
| 431 | #endif |
| 432 | |
| 433 | /* Classes of functions that compiler needs to check |
| 434 | whether they are present at the runtime or not. */ |
| 435 | enum function_class { |
| 436 | function_c94, |
| 437 | function_c99_misc, |
| 438 | function_c99_math_complex, |
| 439 | function_sincos, |
| 440 | function_c11_misc, |
| 441 | function_c23_misc, |
| 442 | function_c2y_misc |
| 443 | }; |
| 444 | |
| 445 | /* Enumerate visibility settings. This is deliberately ordered from most |
| 446 | to least visibility. */ |
| 447 | enum symbol_visibility |
| 448 | { |
| 449 | VISIBILITY_DEFAULT, |
| 450 | VISIBILITY_PROTECTED, |
| 451 | VISIBILITY_HIDDEN, |
| 452 | VISIBILITY_INTERNAL |
| 453 | }; |
| 454 | |
| 455 | /* enums used by the targetm.excess_precision hook. */ |
| 456 | |
| 457 | enum flt_eval_method |
| 458 | { |
| 459 | FLT_EVAL_METHOD_UNPREDICTABLE = -1, |
| 460 | FLT_EVAL_METHOD_PROMOTE_TO_FLOAT = 0, |
| 461 | FLT_EVAL_METHOD_PROMOTE_TO_DOUBLE = 1, |
| 462 | FLT_EVAL_METHOD_PROMOTE_TO_LONG_DOUBLE = 2, |
| 463 | FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 = 16 |
| 464 | }; |
| 465 | |
| 466 | enum excess_precision_type |
| 467 | { |
| 468 | EXCESS_PRECISION_TYPE_IMPLICIT, |
| 469 | EXCESS_PRECISION_TYPE_STANDARD, |
| 470 | EXCESS_PRECISION_TYPE_FAST, |
| 471 | EXCESS_PRECISION_TYPE_FLOAT16 |
| 472 | }; |
| 473 | |
| 474 | /* Level of size optimization. */ |
| 475 | |
| 476 | enum optimize_size_level |
| 477 | { |
| 478 | /* Do not optimize for size. */ |
| 479 | OPTIMIZE_SIZE_NO, |
| 480 | /* Optimize for size but not at extreme performance costs. */ |
| 481 | OPTIMIZE_SIZE_BALANCED, |
| 482 | /* Optimize for size as much as possible. */ |
| 483 | OPTIMIZE_SIZE_MAX |
| 484 | }; |
| 485 | |
| 486 | /* Support for user-provided GGC and PCH markers. The first parameter |
| 487 | is a pointer to a pointer, the second either NULL if the pointer to |
| 488 | pointer points into a GC object or the actual pointer address if |
| 489 | the first argument points to a temporary and the third a cookie. */ |
| 490 | typedef void (*gt_pointer_operator) (void *, void *, void *); |
| 491 | |
| 492 | #if !defined (HAVE_UCHAR) |
| 493 | typedef unsigned char uchar; |
| 494 | #endif |
| 495 | |
| 496 | /* Most source files will require the following headers. */ |
| 497 | #if !defined (USED_FOR_TARGET) |
| 498 | #include "insn-modes.h" |
| 499 | #include "signop.h" |
| 500 | #include "wide-int.h" |
| 501 | #include "wide-int-print.h" |
| 502 | |
| 503 | /* On targets that don't need polynomial offsets, target-specific code |
| 504 | should be able to treat poly_int like a normal constant, with a |
| 505 | conversion operator going from the former to the latter. We also |
| 506 | allow this for gencondmd.cc for all targets, so that we can treat |
| 507 | machine_modes as enums without causing build failures. */ |
| 508 | #if (defined (IN_TARGET_CODE) \ |
| 509 | && (defined (USE_ENUM_MODES) || NUM_POLY_INT_COEFFS == 1)) |
| 510 | #define POLY_INT_CONVERSION 1 |
| 511 | #else |
| 512 | #define POLY_INT_CONVERSION 0 |
| 513 | #endif |
| 514 | |
| 515 | #include "poly-int.h" |
| 516 | #include "poly-int-types.h" |
| 517 | #include "insn-modes-inline.h" |
| 518 | #include "machmode.h" |
| 519 | #include "double-int.h" |
| 520 | #include "align.h" |
| 521 | /* Most host source files will require the following headers. */ |
| 522 | #if !defined (GENERATOR_FILE) |
| 523 | #include "iterator-utils.h" |
| 524 | #include "real.h" |
| 525 | #include "fixed-value.h" |
| 526 | #include "hash-table.h" |
| 527 | #include "hash-set.h" |
| 528 | #include "input.h" |
| 529 | #include "is-a.h" |
| 530 | #include "memory-block.h" |
| 531 | #include "dumpfile.h" |
| 532 | #endif |
| 533 | #endif /* GENERATOR_FILE && !USED_FOR_TARGET */ |
| 534 | |
| 535 | #endif /* coretypes.h */ |
| 536 | |