summaryrefslogtreecommitdiff
path: root/ChangeLog.google-4_7
blob: 1465a6f6b3784c6e3ae57c64ad1b92391a1cc081 (plain)
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.