comparison gcc/coretypes.h @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 /* GCC core type declarations. 1 /* GCC core type declarations.
2 Copyright (C) 2002-2017 Free Software Foundation, Inc. 2 Copyright (C) 2002-2018 Free Software Foundation, Inc.
3 3
4 This file is part of GCC. 4 This file is part of GCC.
5 5
6 GCC is free software; you can redistribute it and/or modify it under 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 7 the terms of the GNU General Public License as published by the Free
44 #ifndef USED_FOR_TARGET 44 #ifndef USED_FOR_TARGET
45 45
46 typedef int64_t gcov_type; 46 typedef int64_t gcov_type;
47 typedef uint64_t gcov_type_unsigned; 47 typedef uint64_t gcov_type_unsigned;
48 48
49 struct bitmap_obstack;
49 struct bitmap_head; 50 struct bitmap_head;
50 typedef struct bitmap_head *bitmap; 51 typedef struct bitmap_head *bitmap;
51 typedef const struct bitmap_head *const_bitmap; 52 typedef const struct bitmap_head *const_bitmap;
52 struct simple_bitmap_def; 53 struct simple_bitmap_def;
53 typedef struct simple_bitmap_def *sbitmap; 54 typedef struct simple_bitmap_def *sbitmap;
57 typedef const struct rtx_def *const_rtx; 58 typedef const struct rtx_def *const_rtx;
58 class scalar_mode; 59 class scalar_mode;
59 class scalar_int_mode; 60 class scalar_int_mode;
60 class scalar_float_mode; 61 class scalar_float_mode;
61 class complex_mode; 62 class complex_mode;
63 class fixed_size_mode;
62 template<typename> class opt_mode; 64 template<typename> class opt_mode;
63 typedef opt_mode<scalar_mode> opt_scalar_mode; 65 typedef opt_mode<scalar_mode> opt_scalar_mode;
64 typedef opt_mode<scalar_int_mode> opt_scalar_int_mode; 66 typedef opt_mode<scalar_int_mode> opt_scalar_int_mode;
65 typedef opt_mode<scalar_float_mode> opt_scalar_float_mode; 67 typedef opt_mode<scalar_float_mode> opt_scalar_float_mode;
66 template<typename> class pod_mode; 68 template<typename> class pod_mode;
67 typedef pod_mode<scalar_mode> scalar_mode_pod; 69 typedef pod_mode<scalar_mode> scalar_mode_pod;
68 typedef pod_mode<scalar_int_mode> scalar_int_mode_pod; 70 typedef pod_mode<scalar_int_mode> scalar_int_mode_pod;
71 typedef pod_mode<fixed_size_mode> fixed_size_mode_pod;
69 72
70 /* Subclasses of rtx_def, using indentation to show the class 73 /* Subclasses of rtx_def, using indentation to show the class
71 hierarchy, along with the relevant invariant. 74 hierarchy, along with the relevant invariant.
72 Where possible, keep this list in the same order as in rtl.def. */ 75 Where possible, keep this list in the same order as in rtl.def. */
73 class rtx_def; 76 class rtx_def;
130 struct gomp_sections; 133 struct gomp_sections;
131 struct gomp_single; 134 struct gomp_single;
132 struct gomp_target; 135 struct gomp_target;
133 struct gomp_teams; 136 struct gomp_teams;
134 137
138 /* Subclasses of symtab_node, using indentation to show the class
139 hierarchy. */
140
141 class symtab_node;
142 struct cgraph_node;
143 class varpool_node;
144
135 union section; 145 union section;
136 typedef union section section; 146 typedef union section section;
137 struct gcc_options; 147 struct gcc_options;
138 struct cl_target_option; 148 struct cl_target_option;
139 struct cl_optimization; 149 struct cl_optimization;
321 class context; 331 class context;
322 } 332 }
323 333
324 typedef std::pair <tree, tree> tree_pair; 334 typedef std::pair <tree, tree> tree_pair;
325 335
336 /* Define a name->value mapping. */
337 template <typename ValueType>
338 struct kv_pair
339 {
340 const char *const name; /* the name of the value */
341 const ValueType value; /* the value of the name */
342 };
343
326 #else 344 #else
327 345
328 struct _dont_use_rtx_here_; 346 struct _dont_use_rtx_here_;
329 struct _dont_use_rtvec_here_; 347 struct _dont_use_rtvec_here_;
330 struct _dont_use_rtx_insn_here_; 348 struct _dont_use_rtx_insn_here_;
394 #if !defined (USED_FOR_TARGET) 412 #if !defined (USED_FOR_TARGET)
395 #include "insn-modes.h" 413 #include "insn-modes.h"
396 #include "signop.h" 414 #include "signop.h"
397 #include "wide-int.h" 415 #include "wide-int.h"
398 #include "wide-int-print.h" 416 #include "wide-int-print.h"
417
418 /* On targets that don't need polynomial offsets, target-specific code
419 should be able to treat poly_int like a normal constant, with a
420 conversion operator going from the former to the latter. We also
421 allow this for gencondmd.c for all targets, so that we can treat
422 machine_modes as enums without causing build failures. */
423 #if (defined (IN_TARGET_CODE) \
424 && (defined (USE_ENUM_MODES) || NUM_POLY_INT_COEFFS == 1))
425 #define POLY_INT_CONVERSION 1
426 #else
427 #define POLY_INT_CONVERSION 0
428 #endif
429
430 #include "poly-int.h"
431 #include "poly-int-types.h"
399 #include "insn-modes-inline.h" 432 #include "insn-modes-inline.h"
400 #include "machmode.h" 433 #include "machmode.h"
401 #include "double-int.h" 434 #include "double-int.h"
435 #include "align.h"
402 /* Most host source files will require the following headers. */ 436 /* Most host source files will require the following headers. */
403 #if !defined (GENERATOR_FILE) 437 #if !defined (GENERATOR_FILE)
404 #include "real.h" 438 #include "real.h"
405 #include "fixed-value.h" 439 #include "fixed-value.h"
406 #include "hash-table.h" 440 #include "hash-table.h"