Mercurial > hg > CbC > CbC_gcc
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. */ |