1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
|
2012-12-04 Sterling Augustine <saugustine@google.com>
Backport changes to fission implementation required by
trunk. See
http://gcc.gnu.org/ml/gcc-patches/2012-10/msg02684.html and
susbsequent messages for a full description of what needed to
change for it to be accepted into trunk. Most of the original
changes were already in google-4_7, so this is just the diff
between the two implementations.
These changes happen to make the resulting debug info smaller, so are
useful to have on this branch.
* dwarf2out.h (addr_table_entry_struct): Forward declare.
(dw_val_struct): Change name and associated type of field val_index
to val_entry.
* dwarf2out.c (NOT_INDEXED, NO_INDEX_ASSIGNED, UNRELOCATED_OFFSET,
RELOCATED_OFFSET): New defines.
(ate_kind): New enum with enumerators ate_kind_rtx,
ate_kind_rtx_dtprel, ate_kind_label.
(addr_table_entry_struct, addr_table_entry): New structure and type.
(dw_loc_list_struct): Change field name from begin_index to
begin_entry, likewise with the type.
(new_loc_descr, build_cfa_loc, new_addr_loc_descr, add_AT_flag,
add_AT_int, add_AT_unsigned, add_AT_double, add_AT_vec,
add_AT_string, add_AT_die_ref, add_AT_fde_ref,
add_AT_loc, add_AT_loc_list, add_AT_addr, add_AT_file, add_AT_vms_delta,
add_AT_lbl_id, add_AT_lineptr, add_AT_macptr, add_AT_offset):
Change field name from val_index to val_entry, and intialize properly.
(size_of_loc_descr, output_loc_operands): Add assertion and update call.
(set_AT_index): Remove obsolete function.
(remove_addr_table_entry, add_AT_lbl_id,
add_AT_range_list, add_ranges_by_labels): Update prototypes, adjust
all calls in file.
(dtprel_bool): New enum with dtprel_false and dtprel_true.
(dw_addr_op, new_addr_loc_descr): Update functions to use dtprel_bool,
plus additional logic to handle val_entries. Use RELOCATED_OFFSET
and UNRELOCATED_OFFSET.
(AT_index, output_loc_list): Update comment. Update logic to handle
val_entry.
(add_AT_low_high_pc): Update comment. Change field name from
val_index to val_entry, and call add_addr_table entry.
(indirect_string_node, index_string_table): Delete obsolete types,
variables and tables.
(AT_string_form): Move most logic to ...
(find_string_form): ... here and ...
(set_indirect_string): ... here. New function.
(addr_index_table): Change type from vector to hash table.
(addr_table_entry_do_hash, addr_table_entry_eq, init_addr_table_entry,
index_addr_table_entry): New functions.
(add_addr_table_entry): Update prototype. Convert logic to
hash tables.
(remove_loc_list_addr_table_entries): Convert logic to hash tables.
(size_of_die, value_format, output_attr_index_or_value): Use
NOT_INDEXED and NO_INDEX_ASSIGNED.
(output_range_list_offset): Use RELOCATED_OFFSET. Update comment.
(output_comdat_type_unit): Check OBJECT_FORMAT_ELF.
(add_ranges_by_labels, loc_descriptor, mem_loc_descriptor,
loc_list_from_tree, add_const_value_attribute): Update comment. Use
dtprel_bool enumerators.
(output_macinfo_op): Fix FIXME by handling DW_FORM_strp's and
DW_FORM_GNU_str_index.
(save_macinfo_strings, index_string, output_index_string_offset,
output_index_string, output_indirect_strings, output_addr_table_entry):
New functions.
(output_indirect_string): Check refcount.
(output_addr_table): Update logic for hash tables.
(resolve_addr_in_expr, resolve_addr, hash_loc_operands,
compare_loc_operands, index_location_lists): Update logic for val_entry.
(dwarf2out_finish): Update logic for val_entry. Call
htab_traverse_noresize multiple times, save macinfo_strings,
index_string output_addr_table, output_indirect_strings. Add comments.
Remove calls to output_addr_table, output_index_strings,
and index_location_lists.
2012-11-27 Simon Baldwin <simonb@google.com>
* contrib/testsuite-management/powerpc-grtev3-linux-gnu.xfail:
Permanently ignore pr54127 and Google ref b/6983319.
2012-11-27 Simon Baldwin <simonb@google.com>
* contrib/testsuite-management/powerpc-grtev3-linux-gnu.xfail:
Extend expiration date for pr54127 and Google ref b/6983319.
2012-09-11 Sterling Augustine <saugustine@google.com>
* dwarf2out.c (output_pubname): Add conditional.
2012-09-07 Sterling Augustine <saugustine@google.com>
* gcc/dwarf2out.c (output_pubnames): Call comp_unit_die.
2012-09-05 Ollie Wild <aaw@google.com>
* ltmain.sh (func_mode_compile): Add -Xcompiler-shared and
-Xcompiler-static options.
(func_mode_help): Document new options.
2012-08-22 Han Shen <shenhan@google.com>
Fixed the problem that LINUX_GRTE_EXTRA_SPECS overrides
SUBTARGET_EXTRA_SPECS by prepending LINUX_GRTE_EXTRA_SPECS to
SUBTARGET_EXTRA_SPECS.
* gcc/config/i386/gnu-user.h (SUBTARGET_EXTRA_SPECS_STR): Add
new MACRO to hold value of SUBTARET_EXTRA_SPECS so that
SUBTARET_EXTRA_SPECS could be replaced later in gnu-user.h
* gcc/config/i386/linux.h (SUBTARGET_EXTRA_SPECS): Compute new value
of LINUX_GRTE_EXTRA_SPECS by pre-pending LINUX_GRTE_EXTRA_SPECS to its
origin value.
2012-08-22 Sriraman Tallam <tmsriram@google.com>
Revert old implementation of CPU runtime detection to allow
the new implementation checked in to trunk at rev. 188417 to
be merged.
Revert rev 185093
Backport rev 185083 from google/main
Patch to add builtins to detect CPU type:
========================================
I have ported the patch from google/gcc-4_6 to google/main. I also want this
patch to be considered for trunk. Please see this discussion:
http://gcc.gnu.org/ml/gcc-patches/2011-08/msg01355.html
when this patch for reviewed the last time.
One of the main concerns was about making CPU detection initialization a
constructor. The main point raised was about constructor ordering. I have now
added a priority value to the CPU detection constructor to make it very high
priority so that it is guaranteed to fire before every constructor without
an explicitly marked priority value of 101. However, IFUNC initializers
will still fire before this constructor, so the cpu initialization routine
has to be explicitly called in such initializers for which I have added a
builtin: __builtin_cpu_init ().
I would like to reopen discussions on this to make it suitable for trunk
this time around.
This patch adds the following new builtins:
__builtin_cpu_init
__builtin_cpu_supports_cmov
__builtin_cpu_supports_mmx
__builtin_cpu_supports_popcount
__builtin_cpu_supports_sse
__builtin_cpu_supports_sse2
__builtin_cpu_supports_sse3
__builtin_cpu_supports_ssse3
__builtin_cpu_supports_sse4_1
__builtin_cpu_supports_sse4_2
__builtin_cpu_is_amd
__builtin_cpu_is_intel_atom
__builtin_cpu_is_intel_core2
__builtin_cpu_is_intel
__builtin_cpu_is_intel_corei7
__builtin_cpu_is_intel_corei7_nehalem
__builtin_cpu_is_intel_corei7_westmere
__builtin_cpu_is_intel_corei7_sandybridge
__builtin_cpu_is_amdfam10
__builtin_cpu_is_amdfam10_barcelona
__builtin_cpu_is_amdfam10_shanghai
__builtin_cpu_is_amdfam10_istanbul
__builtin_cpu_is_amdfam15_bdver1
__builtin_cpu_is_amdfam15_bdver2
* gcc/config/i386/i386.c (build_struct_with_one_bit_fields): New function.
(make_var_decl): New function.
(get_field_from_struct): New function.
(fold_builtin_target): New function.
(ix86_fold_builtin): New function.
(ix86_expand_builtin): Expand new builtins by folding them.
(make_platform_builtin): New functions.
(ix86_init_platform_type_builtins): Make the new builtins.
(ix86_init_builtins): Make new builtins to detect CPU type.
(TARGET_FOLD_BUILTIN): New macro.
(IX86_BUILTIN_CPU_SUPPORTS_CMOV): New enum value.
(IX86_BUILTIN_CPU_SUPPORTS_MMX): New enum value.
(IX86_BUILTIN_CPU_SUPPORTS_POPCOUNT): New enum value.
(IX86_BUILTIN_CPU_SUPPORTS_SSE): New enum value.
(IX86_BUILTIN_CPU_SUPPORTS_SSE2): New enum value.
(IX86_BUILTIN_CPU_SUPPORTS_SSE3): New enum value.
(IX86_BUILTIN_CPU_SUPPORTS_SSSE3): New enum value.
(IX86_BUILTIN_CPU_SUPPORTS_SSE4_1): New enum value.
(IX86_BUILTIN_CPU_SUPPORTS_SSE4_2): New enum value.
(IX86_BUILTIN_CPU_INIT): New enum value.
(IX86_BUILTIN_CPU_IS_AMD): New enum value.
(IX86_BUILTIN_CPU_IS_INTEL): New enum value.
(IX86_BUILTIN_CPU_IS_INTEL_ATOM): New enum value.
(IX86_BUILTIN_CPU_IS_INTEL_CORE2): New enum value.
(IX86_BUILTIN_CPU_IS_INTEL_COREI7_NEHALEM): New enum value.
(IX86_BUILTIN_CPU_IS_INTEL_COREI7_WESTMERE): New enum value.
(IX86_BUILTIN_CPU_IS_INTEL_COREI7_SANDYBRIDGE): New enum value.
(IX86_BUILTIN_CPU_IS_AMDFAM10_BARCELONA): New enum value.
(IX86_BUILTIN_CPU_IS_AMDFAM10_SHANGHAI): New enum value.
(IX86_BUILTIN_CPU_IS_AMDFAM10_ISTANBUL): New enum value.
(IX86_BUILTIN_CPU_IS_AMDFAM15H_BDVER1): New enum value.
(IX86_BUILTIN_CPU_IS_AMDFAM15H_BDVER2): New enum value.
* gcc/config/i386/i386-builtin-types.def: New function type.
* gcc/testsuite/gcc.target/builtin_target.c: New testcase.
* libgcc/config/i386/i386-cpuinfo.c: New file.
* libgcc/config/i386/t-cpuinfo: New file.
* libgcc/config.host: Include t-cpuinfo.
* libgcc/config/i386/libgcc-glibc.ver: Version symbols __cpu_model
and __cpu_features.
2012-08-08 Simon Baldwin <simonb@google.com>
Cherry pick revision 190232.
2012-08-08 Simon Baldwin <simonb@google.com>
* Makefile.tpl: Omit another TARGET_LIB_PATH from RPATH_ENVVAR set
on bootstrap builds.
* Makefile.in: Regenerate.
2012-08-07 Simon Baldwin <simonb@google.com>
Cherry pick r190203.
2012-08-07 Simon Baldwin <simonb@google.com>
* Makefile.tpl: Omit TARGET_LIB_PATH from RPATH_ENVVAR set in
HOST_EXPORTS on bootstrap builds.
* Makefile.in: Regenerate.
2012-05-29 Simon Baldwin <simonb@google.com>
Port r184840 from gcc-4_6.
2012-03-02 Doug Kwan <dougkwan@google.com>
Backport r184357 from trunk
2012-02-17 Doug Kwan <dougkwan@google.com>
* contrib/testsuite-management/validate_failures.py
(GetMakefileValue): Check for cross compilers.
2012-05-16 Sriraman Tallam <tmsriram@google.com>
Port from google/gcc-4_6
r177289, r177308, r179104, r179289, r179303, r179404, r182447
* Makefile.in: Regenerate.
* Makefile.def: Build function reordering plugin.
* configure.ac: Build function reordering plugin.
* configure: Regenerate.
|