comparison gcc/flags.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 /* Compilation switch flag definitions for GCC. 1 /* Compilation switch flag definitions for GCC.
2 Copyright (C) 1987-2017 Free Software Foundation, Inc. 2 Copyright (C) 1987-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
40 extern bool final_insns_dump_p; 40 extern bool final_insns_dump_p;
41 41
42 42
43 /* Other basic status info about current function. */ 43 /* Other basic status info about current function. */
44 44
45 /* Target-dependent global state. */ 45 struct target_flag_state
46 struct target_flag_state { 46 {
47 /* Values of the -falign-* flags: how much to align labels in code. 47 /* Each falign-foo can generate up to two levels of alignment:
48 0 means `use default', 1 means `don't align'. 48 -falign-foo=N:M[:N2:M2] */
49 For each variable, there is an _log variant which is the power 49 align_flags x_align_loops;
50 of two not less than the variable, for .align output. */ 50 align_flags x_align_jumps;
51 int x_align_loops_log; 51 align_flags x_align_labels;
52 int x_align_loops_max_skip; 52 align_flags x_align_functions;
53 int x_align_jumps_log;
54 int x_align_jumps_max_skip;
55 int x_align_labels_log;
56 int x_align_labels_max_skip;
57 int x_align_functions_log;
58 53
59 /* The excess precision currently in effect. */ 54 /* The excess precision currently in effect. */
60 enum excess_precision x_flag_excess_precision; 55 enum excess_precision x_flag_excess_precision;
61 }; 56 };
62 57
65 extern struct target_flag_state *this_target_flag_state; 60 extern struct target_flag_state *this_target_flag_state;
66 #else 61 #else
67 #define this_target_flag_state (&default_target_flag_state) 62 #define this_target_flag_state (&default_target_flag_state)
68 #endif 63 #endif
69 64
70 #define align_loops_log \ 65 #define align_loops (this_target_flag_state->x_align_loops)
71 (this_target_flag_state->x_align_loops_log) 66 #define align_jumps (this_target_flag_state->x_align_jumps)
72 #define align_loops_max_skip \ 67 #define align_labels (this_target_flag_state->x_align_labels)
73 (this_target_flag_state->x_align_loops_max_skip) 68 #define align_functions (this_target_flag_state->x_align_functions)
74 #define align_jumps_log \ 69
75 (this_target_flag_state->x_align_jumps_log) 70 /* String representaions of the above options are available in
76 #define align_jumps_max_skip \ 71 const char *str_align_foo. NULL if not set. */
77 (this_target_flag_state->x_align_jumps_max_skip) 72
78 #define align_labels_log \
79 (this_target_flag_state->x_align_labels_log)
80 #define align_labels_max_skip \
81 (this_target_flag_state->x_align_labels_max_skip)
82 #define align_functions_log \
83 (this_target_flag_state->x_align_functions_log)
84 #define flag_excess_precision \ 73 #define flag_excess_precision \
85 (this_target_flag_state->x_flag_excess_precision) 74 (this_target_flag_state->x_flag_excess_precision)
86 75
87 /* Returns TRUE if generated code should match ABI version N or 76 /* Returns TRUE if generated code should match ABI version N or
88 greater is in use. */ 77 greater is in use. */