Don't check zero/sign extended hard registers.
[gcc.git] / gcc / ChangeLog
1 2011-06-20 H.J. Lu <hongjiu.lu@intel.com>
2
3 PR middle-end/47725
4 * combine.c (cant_combine_insn_p): Don't check zero/sign
5 extended hard registers.
6
7 2011-06-21 Alan Modra <amodra@gmail.com>
8
9 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
10 CONST high part large-toc address.
11 (rs6000_tls_referenced_p): Make static.
12 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
13
14 2011-06-20 H.J. Lu <hongjiu.lu@intel.com>
15
16 PR middle-end/47725
17 * combine.c (cant_combine_insn_p): Check zero/sign extended
18 hard registers.
19
20 2011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
21
22 PR target/49385
23 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
24 one of the operands is a register.
25
26 2011-06-20 Kai Tietz <ktietz@redhat.com>
27
28 * fold-const.c (fold_binary_loc): Add missing
29 folding for truth-not operations in combination
30 with binary and.
31
32 2011-06-20 Bernd Schmidt <bernds@codesourcery.com>
33
34 * regrename.c (do_replace): Don't update notes.
35
36 2011-06-20 Alan Modra <amodra@gmail.com>
37
38 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
39 of toc-relative address in CONST.
40 (rs6000_delegitimize_address): Recognize changed address.
41 (rs6000_legitimize_reload_address): Likewise.
42 (rs6000_emit_move): Don't force these constants to memory.
43 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
44 toc-relative address in CONST.
45 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
46 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
47
48 2011-06-18 H.J. Lu <hongjiu.lu@intel.com>
49
50 * longlong.h (count_leading_zeros): Use long long builtin for
51 x86-64.
52 (count_trailing_zeros): Likewise.
53
54 2011-06-18 H.J. Lu <hongjiu.lu@intel.com>
55
56 PR other/49325
57 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
58 .init_array can be used with .ctors on targets.
59 * configure: Regenerated.
60
61 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
62
63 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
64 if the element type is volatile.
65
66 2011-06-18 Jan Hubicka <jh@suse.cz>
67
68 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
69 extra name aliases.
70 (lto_symtab_resolve_can_prevail_p): Likewise.
71 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
72 * cgraphbuild.c (record_reference): Remove extra body alias code.
73 (mark_load): Likewise.
74 (mark_store): Likewise.
75 * cgraph.h (varpool_node): Remove extra_name filed;
76 add alias_of and extraname_alias.
77 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
78 (varpool_alias_aliased_node): New inline function.
79 (varpool_variable_node): New function.
80 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
81 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
82 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
83 (input_varpool_node): Likewise.
84 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
85 (varpool_externally_visible_p): Remove extra body alias code.
86 (function_and_variable_visibility): Likewise.
87 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
88 (ipa_pta_execute): Use it.
89 * varpool.c (varpool_remove_node): Remove extra name alias code.
90 (varpool_mark_needed_node): Likewise.
91 (varpool_analyze_pending_decls): Analyze aliases.
92 (assemble_aliases): New functoin.
93 (varpool_assemble_decl): Use it.
94 (varpool_create_variable_alias): New function.
95 (varpool_extra_name_alias): Rewrite.
96 (varpool_for_node_and_aliases): New function.
97
98 2011-06-18 Jakub Jelinek <jakub@redhat.com>
99
100 PR target/49411
101 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
102 last_arg_constant and last argument doesn't match its predicate,
103 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
104 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
105 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
106 spelling of error message.
107 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
108 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
109 const_0_to_255_operand instead of const_int_operand.
110
111 Revert:
112 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
113
114 * config/i386/sse.md (blendbits): Remove mode attribute.
115 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
116 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
117 Check integer value of operand 3 in insn constraint.
118
119 2011-06-17 Hans-Peter Nilsson <hp@axis.com>
120
121 PR rtl-optimization/48542
122 * reload.c (find_equiv_reg): Stop looking when finding a
123 setjmp-type call.
124 * reload1.c (reload_as_needed): Invalidate all reload
125 registers when crossing a setjmp-type call.
126
127 2011-06-16 Jeff Law <law@redhat.com>
128
129 * tree-ssa-threadupdate.c (struct redirection_data): New field
130 intermediate_edge.
131 (THREAD_TARGET2): Define.
132 (redirection_data_eq): Also check that the intermediate edge is
133 equal.
134 (lookup_redirection_data): Drop useless argument. Extract the
135 outgoing_edge and intermediate edge from E. Callers updated.
136 (copy_phi_args, update_destination_phis): New functions.
137 (fix_duplicate_block_edges): Likewise.
138 (create_edge_and_update_destination_phis): Duplicate all the edges
139 hung off e->aux. Use copy_phi_args.
140 (create_duplicates): Use fix_duplicate_block_edges.
141 (fixup_template_block): Likewise.
142 (redirect_edges): If necessary, redirect the joiner block's incoming
143 edge to the duplicate of the joiner block.
144 (thread_block): Don't muck up loops when threading through a joiner
145 block.
146 (thread_through_loop_header): Handle threading through a joiner
147 block.
148 (mark_threaded_blocks, register_jump_thread): Likewise.
149 * tree-flow.h (register_jump_thread): Add new argument. Callers
150 updated.
151 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
152 (thread_across_edge): Handle threading through a joiner block.
153
154 2011-06-16 Martin Jambor <mjambor@suse.cz>
155
156 PR tree-optimization/49343
157 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
158 calculate offset, provide 2nd operand for the new COMPONENT_REF.
159
160 2011-06-16 Iain Sandoe <iains@gcc.gnu.org>
161
162 * config/darwin-protos.h (machopic_select_rtx_section): Move to
163 inside RTX_CODE ifdef.
164
165 2011-06-16 Tom de Vries <tom@codesourcery.com>
166
167 PR target/45098
168 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): Disallow
169 NULL pointer for pointer arithmetic.
170
171 2011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
172
173 PR target/49398
174 Revert.
175 2011-06-10 Wei Guozhi <carrot@google.com>
176
177 PR target/45335
178 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
179 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
180 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
181 related peephole2.
182 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
183 related peephole2.
184 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
185 (arm_legitimate_ldrd_p): New prototype.
186 (arm_output_ldrd): New prototype.
187 * config/arm/arm.c (arm_check_ldrd_operands): New function.
188 (arm_legitimate_ldrd_p): New function.
189 (arm_output_ldrd): New function.
190
191 2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
192
193 PR middle-end/46500
194 * doc/tm.texi.in: Update Copyright date.
195 * doc/tm.texi: Regenerate.
196 * targhooks.c (default_setup_incoming_varargs): Replace
197 CUMULATIVE_ARGS* argument type with cumulative_args_t.
198 (default_pretend_outgoing_varargs_named): Likewise.
199 (hook_pass_by_reference_must_pass_in_stack): Likewise.
200 (hook_callee_copies_named): Likewise.
201 (default_function_arg_advance): Likewise.
202 (default_function_arg): Likewise.
203 (default_function_incoming_arg): Likewise.
204 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
205 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
206 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
207 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
208 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
209 * targhooks.h (default_setup_incoming_varargs): Likewise.
210 (default_pretend_outgoing_varargs_named): Likewise.
211 (hook_pass_by_reference_must_pass_in_stack): Likewise.
212 (hook_callee_copies_named): Likewise.
213 (default_function_arg_advance): Likewise.
214 (default_function_arg): Likewise.
215 (default_function_incoming_arg): Likewise.
216 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
217 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
218 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
219 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
220 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
221 * target.def (pass_by_reference): Likewise.
222 (setup_incoming_varargs, strict_argument_naming): Likewise.
223 (pretend_outgoing_varargs_named, callee_copies): Likewise.
224 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
225 (function_incoming_arg): Likewise.
226 * target.h: Don't include "tm.h" .
227 (cumulative_args_t): New typedef.
228 [GCC_TM_H] (get_cumulative_args): New static inline function.
229 [GCC_TM_H] (pack_cumulative_args): Likewise.
230 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
231 argument type with cumulative_args_t.
232 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
233 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
234 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
235 (frv_arg_partial_bytes, frv_function_arg): Likewise.
236 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
237 (frv_function_arg_1): Likewise.
238 * config/s390/s390.c (s390_pass_by_reference): Likewise.
239 (s390_function_arg_advance, s390_function_arg): Likewise.
240 * config/m32c/m32c.c (m32c_function_arg): Likewise.
241 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
242 (m32c_strict_argument_naming): Likewise.
243 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
244 (spu_function_arg_advance): Likewise.
245 (spu_setup_incoming_varargs): Likewise. Make static.
246 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
247 Remove prototype.
248 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
249 CUMULATIVE_ARGS* argument type with cumulative_args_t.
250 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
251 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
252 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
253 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
254 (mep_pass_by_reference, mep_function_arg): Likewise.
255 (mep_function_arg_advance): Likewise.
256 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
257 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
258 (m32r_function_arg, m32r_function_arg_advance): Likewise.
259 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
260 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
261 (ix86_function_arg, ix86_pass_by_reference): Likewise.
262 (ix86_setup_incoming_varargs): Likewise.
263 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
264 (sh_strict_argument_naming): Likewise.
265 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
266 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
267 (sh_function_arg_advance, sh_function_arg): Likewise.
268 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
269 (pdp11_function_arg_advance): Likewise.
270 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
271 Likewise.
272 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
273 * config/avr/avr.c (avr_function_arg): Likewise.
274 (avr_function_arg_advance): Likewise.
275 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
276 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
277 (xtensa_function_arg_1): Likewise.
278 * config/stormy16/stormy16.c (xstormy16_function_arg_advance): Likewise.
279 (xstormy16_function_arg): Likewise.
280 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
281 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
282 (fr30_function_arg_advance): Likewise.
283 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
284 (lm32_function_arg, lm32_function_arg_advance): Likewise.
285 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
286 (moxie_function_arg, moxie_function_arg_advance): Likewise.
287 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
288 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
289 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
290 (cris_function_arg, cris_function_incoming_arg): Likewise.
291 (cris_function_arg_advance, cris_function_arg_1): Likewise.
292 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
293 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
294 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
295 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
296 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
297 (mn10300_arg_partial_bytes): Likewise.
298 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
299 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
300 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
301 (ia64_function_arg_1): Likewise.
302 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
303 (m68k_function_arg): Likewise.
304 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
305 (rs6000_function_arg, setup_incoming_varargs): Likewise.
306 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
307 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
308 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
309 (picochip_arg_advance): Likewise.
310 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
311 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
312 (mcore_function_arg_advance): Likewise.
313 * config/score/score.c (score_pass_by_reference): Likewise.
314 (score_function_arg_advance): Likewise.
315 (score_arg_partial_bytes): Likewise. Make static.
316 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
317 * config/arm/arm.c (arm_arg_partial_bytes): Replace
318 CUMULATIVE_ARGS* argument type with cumulative_args_t.
319 (arm_function_arg, arm_function_arg_advance): Likewise.
320 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
321 * config/pa/pa.c (pa_pass_by_reference): Likewise.
322 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
323 (pa_function_arg): Likewise.
324 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
325 (mips_function_arg, mips_function_arg_advance): Likewise.
326 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
327 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
328 * config/vax/vax.c (vax_function_arg): Likewise.
329 (vax_function_arg_advance): Likewise.
330 * config/h8300/h8300.c (h8300_function_arg): Likewise.
331 (h8300_function_arg_advance): Likewise.
332 * config/v850/v850.c (v850_pass_by_reference): Likewise.
333 (v850_strict_argument_naming, v850_function_arg): Likewise.
334 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
335 (v850_setup_incoming_varargs): Likewise.
336 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
337 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
338 (mmix_function_arg, mmix_pass_by_reference): Likewise.
339 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
340 with const void *.
341 * config/bfin/bfin.c (setup_incoming_varargs): Replace
342 CUMULATIVE_ARGS* argument type with cumulative_args_t.
343 (bfin_function_arg_advance, bfin_function_arg): Likewise.
344 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
345 * calls.c (emit_call_1): Change type of args_so_far to
346 cumulative_args_t. Changed all callers.
347 (initialize_argument_information): Likewise.
348 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
349 * dse.c (get_call_args): Likewise.
350 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
351 * function.c (pass_by_reference, reference_callee_copied): Likewise.
352 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
353 New member args_so_far_v. Changed all users.
354 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
355 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
356 * config/mips/mips.c (mips_output_args_xfer): Likewise.
357 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
358 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
359 * config/microblaze/microblaze.c (microblaze_expand_prologue): Likewise.
360 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
361 m32r_pass_by_reference.
362
363 2011-06-16 Ira Rosen <ira.rosen@linaro.org>
364
365 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
366 argument to be a VEC of statements.
367 * tree-vect-loop.c (vect_determine_vectorization_factor):
368 Remove the assert that pattern statements have to have their
369 vector type set.
370 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
371 Change the first argument to be a VEC of statements. Update
372 documentation.
373 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
374 (vect_handle_widen_mult_by_const): New function.
375 (vect_recog_widen_mult_pattern): Change the first argument to
376 be a VEC of statements. Update documentation. Check that the
377 constant is INTEGER_CST. Support multiplication by a constant
378 that fits an intermediate type - call
379 vect_handle_widen_mult_by_const.
380 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
381 call. Handle additional pattern statements if necessary.
382
383 2011-06-16 Nick Clifton <nickc@redhat.com>
384
385 PR target/49427
386 * config.gcc: Set cpu_type to v850 for any V850 architecture.
387 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
388 md_file, extra_modes, out_file and extra_options are these are all
389 deduced from cpu_type.
390
391 2011-06-16 Georg-Johann Lay <avr@gjlay.de>
392
393 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
394 truncation mask to 63.
395
396 2011-06-16 Georg-Johann Lay <avr@gjlay.de>
397
398 PR target/49313
399 PR target/29524
400 * longlong.h: Add AVR support:
401 (count_leading_zeros): New macro.
402 (count_trailing_zeros): New macro.
403 (COUNT_LEADING_ZEROS_0): New macro.
404 * config/avr/t-avr (LIB1ASMFUNCS): Add
405 _ffssi2, _ffshi2, _loop_ffsqi2,
406 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2,
407 _paritydi2, _paritysi2, _parityhi2,
408 _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
409 _bswapsi2, _bswapdi2,
410 _ashldi3, _ashrdi3, _lshrdi3
411 (LIB2FUNCS_EXCLUDE): Add _clz.
412 * config/avr/libgcc.S (XCALL): Move up in file.
413 (XJMP): New C Macro.
414 (DEFUN): New asm macro.
415 (ENDF): New asm macro.
416 (__ffssi2): New function.
417 (__ffshi2): New function.
418 (__loop_ffsqi2): New function.
419 (__ctzsi2): New function.
420 (__ctzhi2): New function.
421 (__clzdi2): New function.
422 (__clzsi2): New function.
423 (__clzhi2): New function.
424 (__paritydi2): New function.
425 (__paritysi2): New function.
426 (__parityhi2): New function.
427 (__parityqi2): New function.
428 (__popcounthi2): New function.
429 (__popcountsi2): New function.
430 (__popcountdi2): New function.
431 (__popcountqi2): New function.
432 (__bswapsi2): New function.
433 (__bswapdi2): New function.
434 (__ashldi3): New function.
435 (__ashrdi3): New function.
436 (__lshrdi3): New function.
437 Fix suspicous lines.
438
439 2011-06-16 Richard Guenther <rguenther@suse.de>
440
441 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
442 the same as x != 0.
443 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0 to
444 (bool) X & 1.
445 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
446 equality compares against zero for the lower bit.
447
448 2011-06-16 Jakub Jelinek <jakub@redhat.com>
449
450 PR tree-optimization/49419
451 * tree-vrp.c (execute_vrp): Call init_range_assertions
452 before estimate_numbers_of_iterations, call
453 free_number_of_iterations_estimates before calling
454 remove_range_assertions.
455
456 2011-06-16 Revital Eres <revital.eres@linaro.org>
457
458 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
459 (struct partial_schedule): Add rows_length field.
460 (verify_partial_schedule): Check rows_length.
461 (ps_insert_empty_row): Handle rows_length.
462 (create_partial_schedule): Likewise.
463 (free_partial_schedule): Likewise.
464 (reset_partial_schedule): Likewise.
465 (create_ps_insn): Remove rest_count argument.
466 (remove_node_from_ps): Update rows_length.
467 (add_node_to_ps): Update rows_length and call create_ps_insn
468 without passing row_rest_count.
469 (rotate_partial_schedule): Update rows_length.
470
471 2011-06-16 Revital Eres <revital.eres@linaro.org>
472
473 * ddg.c (add_intra_loop_mem_dep): New function.
474 (build_intra_loop_deps): Call it.
475
476 2011-06-13 Jeff Law <law@redhat.com>
477
478 * df-problems.c (df_lr_local_compute): Manually CSE
479 PIC_OFFSET_TABLE_REGNUM.
480 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
481 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
482
483 2011-06-13 Jan Hubicka <jh@suse.cz>
484
485 * cgraphunit.c (handle_alias_pairs): New function.
486 (cgraph_finalize_compilation_unit): Use it.
487 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
488 as externally visible.
489
490 2011-06-15 Richard Guenther <rguenther@suse.de>
491
492 * expr.c (expand_expr_real_2): Reduce all integral types to
493 bitfield precision.
494 (expand_expr_real_1): Likewise.
495
496 2011-06-15 Martin Jambor <mjambor@suse.cz>
497
498 PR tree-optimization/48613
499 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
500 ipa_node_params_vector is NULL.
501
502 2011-06-15 Jakub Jelinek <jakub@redhat.com>
503
504 PR debug/49382
505 * dwarf2out.c (dw_loc_list_node): Add force field.
506 (add_var_loc_to_decl): For PARM_DECL, attempt to keep
507 the incoming location in the list, even if it is modified
508 before first real insn.
509 (output_loc_list): Emit empty ranges with force flag set.
510 (dw_loc_list): If first range of a PARM_DECL is empty,
511 set force flag.
512
513 2011-06-15 Alexander Monakov <amonakov@ispras.ru>
514
515 PR target/49349
516 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
517 (fence_to_rewind). Use it to notice when bookkeeping will be placed
518 above a fence. Update comments.
519 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
520 placed just above it. Do not allow NULL place_to_insert.
521
522 2011-06-15 Ira Rosen <ira.rosen@linaro.org>
523
524 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
525 (slpeel_tree_peel_loop_to_edge): Don't call
526 remove_dead_stmts_from_loop.
527 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
528 remove irrelevant pattern statements. For irrelevant statements
529 check if it is the last statement of a detected pattern, use
530 corresponding pattern statement instead.
531 (destroy_loop_vec_info): No need to remove pattern statements,
532 only free stmt_vec_info.
533 (vect_transform_loop): For irrelevant statements check if it is
534 the last statement of a detected pattern, use corresponding
535 pattern statement instead.
536 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
537 pattern statements. Set basic block for the new statement.
538 (vect_pattern_recog): Update documentation.
539 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
540 operands of pattern statements.
541 (vectorizable_call): Fix printing. In case of a pattern statement
542 use the lhs of the original statement when creating a dummy
543 statement to replace the original call.
544 (vect_analyze_stmt): For irrelevant statements check if it is
545 the last statement of a detected pattern, use corresponding
546 pattern statement instead.
547 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
548 statements use gsi of the original statement.
549
550 2011-06-14 Joseph Myers <joseph@codesourcery.com>
551
552 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
553 common/common-target-def.h.
554 * target.def (default_target_flags, handle_option,
555 supports_split_stack, optimization_table, init_struct,
556 except_unwind_info, unwind_tables_default, have_named_sections):
557 Move to common/common-target.def.
558 * target.h (enum opt_levels, struct default_options): Move to
559 common/common-target.h.
560 * targhooks.c (default_except_unwind_info,
561 dwarf2_except_unwind_info, sjlj_except_unwind_info,
562 default_target_handle_option, empty_optimization_table): Move to
563 common/common-targhooks.c.
564 * targhooks.h (default_except_unwind_info,
565 dwarf2_except_unwind_info, sjlj_except_unwind_info,
566 default_target_handle_option, empty_optimization_table): Move to
567 common/common-targhooks.h.
568 * common/common-target-def.h: Include common/common-targhooks.h.
569 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
570 defined.
571 * common/common-target.def (handle_option, option_init_struct,
572 option_optimization_table, default_target_flags,
573 except_unwind_info, supports_split_stack, unwind_tables_default,
574 have_named_sections): Move from target.def.
575 (HOOK_PREFIX): Undefine at end of file.
576 * common/common-target.h: Include input.h.
577 (enum opt_levels, struct default_options): Move from target.h.
578 * common/common-targhooks.c, common/common-targhooks.h: New.
579 * config.gcc (target_has_targetm_common): Default to yes.
580 (moxie*): Set target_has_targetm_common=no.
581 (hppa*-*-*): Don't set target_has_targetm_common=yes.
582 * doc/tm.texi: Regenerate.
583 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
584 (C_TARGET_DEF_H): Add common/common-targhooks.h.
585 (GCC_OBJS): Remove vec.o.
586 (OBJS): Remove hooks.o and vec.o.
587 (OBJS-libcommon-target): Add vec.o, hooks.o and
588 common/common-targhooks.o.
589 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
590 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
591 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
592 cfglayout.o, $(out_object_file), $(common_out_object_file)):
593 Update dependencies.
594 (common/common-targhooks.o): New.
595 * common/config/default-common.c: Include tm.h. Add FIXME
596 comment.
597 * common/config/pa/pa-common.c: Include more headers. Take
598 copyright dates from pa.c.
599 (pa_option_optimization_table, pa_handle_option,
600 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
601 TARGET_HANDLE_OPTION): Move from pa.c.
602 * common/config/alpha/alpha-common.c,
603 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
604 common/config/bfin/bfin-common.c,
605 common/config/cris/cris-common.c,
606 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
607 common/config/h8300/h8300-common.c,
608 common/config/i386/i386-common.c,
609 common/config/ia64/ia64-common.c,
610 common/config/iq2000/iq2000-common.c,
611 common/config/lm32/lm32-common.c,
612 common/config/m32c/m32c-common.c,
613 common/config/m32r/m32r-common.c,
614 common/config/m68k/m68k-common.c,
615 common/config/mcore/mcore-common.c,
616 common/config/mep/mep-common.c,
617 common/config/microblaze/microblaze-common.c,
618 common/config/mips/mips-common.c,
619 common/config/mmix/mmix-common.c,
620 common/config/mn10300/mn10300-common.c,
621 common/config/pdp11/pdp11-common.c,
622 common/config/picochip/picochip-common.c,
623 common/config/rs6000/rs6000-common.c,
624 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
625 common/config/score/score-common.c, common/config/sh/sh-common.c,
626 common/config/sparc/sparc-common.c,
627 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
628 common/config/vax/vax-common.c,
629 common/config/xstormy16/xstormy16-common.c,
630 common/config/xtensa/xtensa-common.c: New.
631 * config/alpha/alpha.c: Include common/common-target.h.
632 (alpha_option_optimization_table, alpha_handle_option,
633 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
634 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
635 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
636 * config/arm/arm.c (arm_option_optimization_table,
637 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
638 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
639 arm-common.c.
640 * config/avr/avr.c (avr_option_optimization_table,
641 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
642 to avr-common.c.
643 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
644 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
645 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
646 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
647 * config/cris/cris.c (cris_option_optimization_table,
648 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
649 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
650 cris-common.c.
651 * config/fr30/fr30.c (fr30_option_optimization_table,
652 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
653 to fr30-common.c.
654 * config/frv/frv.c (frv_option_optimization_table,
655 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
656 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
657 * config/h8300/h8300.c (h8300_option_optimization_table,
658 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
659 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
660 * config/i386/i386-protos.h (ix86_handle_option): Declare.
661 * config/i386/i386.c: Include common/common-target.h.
662 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
663 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
664 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
665 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
666 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
667 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
668 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
669 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
670 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
671 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
672 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
673 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
674 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
675 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
676 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
677 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
678 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
679 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
680 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
681 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
682 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
683 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
684 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
685 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
686 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
687 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
688 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
689 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
690 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
691 ix86_option_optimization_table, ix86_option_init_struct,
692 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
693 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
694 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
695 i386-common.c.
696 * config/i386/t-i386 (i386.o): Update dependencies.
697 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
698 * config/ia64/ia64.c (ia64_option_optimization_table,
699 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
700 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
701 ia64_handle_option): Move to ia64-common.c.
702 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
703 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
704 * config/lm32/lm32.c (lm32_option_optimization_table,
705 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
706 to lm32-common.c.
707 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
708 m32c-common.c.
709 * config/m32r/m32r.c (m32r_option_optimization_table,
710 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
711 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
712 m32r_handle_option): Move to m32r-common.c.
713 (m32r_memory_move_cost): Remove comment referring to
714 TARGET_HANDLE_OPTION.
715 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
716 Move to m68k-common.c.
717 * config/mcore/mcore.c (mcore_option_optimization_table,
718 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
719 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
720 * config/mep/mep.c (mep_option_optimization_table,
721 mep_handle_option, TARGET_HANDLE_OPTION,
722 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
723 Move to mep-common.c.
724 * config/microblaze/microblaze.c
725 (microblaze_option_optimization_table,
726 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
727 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
728 * config/mips/mips.c (mips_handle_option,
729 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
730 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
731 mips-common.c.
732 * config/mmix/mmix.c (mmix_option_optimization_table,
733 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
734 Move to mmix-common.c.
735 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
736 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
737 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
738 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
739 * config/pa/pa.c: Include common/common-target.h.
740 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
741 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
742 pa_handle_option): Move to pa-common.c.
743 (pa_option_override): Use targetm_common.except_unwind_info.
744 (pa_asm_output_mi_thunk, pa_function_section): Use
745 targetm_common.have_named_sections.
746 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
747 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
748 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
749 pdp11_handle_option, pdp11_option_init_struct): Move to
750 pdp11-common.c.
751 * config/picochip/picochip.c (picochip_option_optimization_table,
752 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
753 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
754 * config/rs6000/rs6000.c: Include common/common-target.h.
755 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
756 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
757 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
758 rs6000_handle_option): Move to rs6000-common.c.
759 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
760 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
761 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
762 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
763 * config/s390/s390.c (processor_flags_table,
764 s390_option_optimization_table, s390_option_init_struct,
765 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
766 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
767 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
768 * config/s390/s390.h (processor_flags_table): Declare.
769 * config/score/score.c (score_option_optimization_table,
770 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
771 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
772 score_handle_option): Move to score-common.c.
773 * config/sh/sh.c (sh_option_optimization_table,
774 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
775 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
776 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
777 * config/sparc/sparc.c: Include common/common-target.h.
778 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
779 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
780 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
781 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
782 spu_option_init_struct): Move to spu-common.c.
783 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
784 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
785 * config/v850/v850.c (small_memory_physical_max,
786 v850_handle_memory_optionn v850_handle_option,
787 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
788 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
789 v850-common.c.
790 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to
791 vax-common.c.
792 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
793 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
794 Move to xtensa-common.c.
795 * cfglayout.c: Include common/common-target.h.
796 (fixup_reorder_chain): Use targetm_common.have_named_sections.
797 * cfgrtl.c: Include common/common-target.h.
798 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
799 targetm_common.have_named_sections.
800 * dbxout.c: Include common/common-target.h.
801 (dbxout_function_end): Use targetm_common.have_named_sections.
802 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
803 targetm_common.except_unwind_info.
804 * dwarf2out.c: Include common/common-target.h.
805 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
806 dwarf2out_begin_prologue, dwarf2out_frame_init,
807 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
808 targetm_common.except_unwind_info.
809 * except.c: Include common/common-target.h.
810 (init_eh, finish_eh_generation,
811 output_one_function_exception_table): Use
812 targetm_common.except_unwind_info.
813 (switch_to_exception_section): Use
814 targetm_common.have_named_sections.
815 * explow.c: Include common/common-target.h.
816 * expr.c: Include common/common-target.h.
817 (build_personality_function): Use
818 targetm_common.except_unwind_info.
819 * function.c: Include common/common-target.h.
820 (expand_function_end): Use targetm_common.except_unwind_info.
821 * haifa-sched.c: Include common/common-target.h.
822 (sched_create_recovery_edges): Use
823 targetm_common.have_named_sections.
824 * lto-opts.c: Include common/common-target.h instead of target.h.
825 (lto_reissue_options): Use targetm_common.handle_option.
826 * opts.c: Include common/common-target.h.
827 (target_handle_option): Use targetm_common.handle_option.
828 (init_options_struct): Update comment referring to
829 targetm.target_option.optimization. Use
830 targetm_common.default_target_flags,
831 targetm_common.unwind_tables_default and
832 targetm_common.option_init_struct.
833 (default_options_optimization): Use
834 targetm_common.option_optimization_table.
835 (finish_options): Use targetm_common.except_unwind_info,
836 targetm_common.unwind_tables_default,
837 targetm_common.have_named_sections and
838 targetm_common.supports_split_stack.
839 * toplev.c: Include common/common-target.h.
840 (process_options): Use targetm_common.have_named_sections.
841 * tree-tailcall.c: Include common/common-target.h.
842 (suitable_for_tail_call_opt_p): Use
843 targetm_common.except_unwind_info.
844 * tree.c: Include common/common-target.h.
845 (build_common_builtin_nodes): Use
846 targetm_common.except_unwind_info.
847 * varasm.c: Include common/common-target.h.
848 (resolve_unique_section, hot_function_section,
849 default_function_section): Use targetm_common.have_named_sections.
850
851 2011-06-14 Easwaran Raman <eraman@google.com>
852
853 PR rtl-optimization/44194
854 * dse.c: Include tree-flow.h
855 (insn_info): Add new field non_frame_wild_read.
856 (group_info): Add new fields escaped_n and escaped_p.
857 (kill_on_calls): New variable.
858 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
859 (dse_step0): Initialize kill_on_calls.
860 (can_escape): New function.
861 (set_usage_bits): Add additional parameter; record information
862 about escaped locations.
863 (record_store): Pass EXPR corresponding to MEM to
864 set_usage_bits.
865 (dse_step2_nospill): Set kill_on_calls based on
866 group->escaped_n and group->escaped_n.
867 (add_wild_read): Refactor into...
868 (reset_active_stores): ... New function, and
869 (free_read_records): ... New function.
870 (add_non_frame_wild_read): New function.
871 (scan_insn): Call add_non_frame_wild_read on non-const calls.
872 (scan_reads_nospill): Handle instructions with
873 non_frame_wild_read.
874 (dse_step5_nospill): Call scan_reads_nospill for instructions
875 marked as non_frame_wild_read.
876 (dse_step7): Free escaped_n, escaped_p and kill_on_calls
877 bitmaps.
878
879 2011-06-14 Joseph Myers <joseph@codesourcery.com>
880
881 * common/common-target-def.h, common/common-target.def,
882 common/common-target.h, common/config/default-common.c,
883 common/config/pa/pa-common.c: New files.
884 * Makefile.in (common_out_file, common_out_object_file,
885 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
886 (OBJS-libcommon-target): Include $(common_out_object_file).
887 (prefix.o): Update dependencies.
888 ($(common_out_object_file), common/common-target-hooks-def.h,
889 s-common-target-hooks-def-h): New.
890 (s-tm-texi): Also check timestamp on common-target.def.
891 (build/genhooks.o): Update dependencies.
892 * config.gcc (common_out_file, target_has_targetm_common): Define.
893 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
894 TARGET_ALWAYS_STRIP_DOTDOT.
895 * configure.ac (common_out_object_file): Define.
896 (common_out_file, common_out_object_file): Substitute.
897 (common): Create directory.
898 * configure: Regenerate.
899 * doc/tm.texi.in (targetm_common): Document.
900 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
901 * doc/tm.texi: Regenerate.
902 * genhooks.c (hook_array): Also include common/common-target.def.
903 * prefix.c (tm.h): Don't include.
904 (common/common-target.h): Include.
905 (ALWAYS_STRIP_DOTDOT): Don't define.
906 (update_path): Use targetm_common.always_strip_dotdot instead of
907 ALWAYS_STRIP_DOTDOT.
908 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
909
910 2011-06-14 David Li <davidxl@google.com>
911
912 * passes.c (execute_function_todo): Remove TODO_dump_func.
913 (execute_one_pass): Remove TODO_dump_func.
914 (execute_function_dump): New function.
915 * tree-vrp.c: Remove TODO_dump_func.
916 * regrename.c: Remove TODO_dump_func.
917 * fwprop.c: Remove TODO_dump_func.
918 * tree-into-ssa.c: Remove TODO_dump_func.
919 * tree-complex.c: Remove TODO_dump_func.
920 * tracer.c: Remove TODO_dump_func.
921 * tree-loop-distribution.c: Remove TODO_dump_func.
922 * postreload-gcse.c: Remove TODO_dump_func.
923 * postreload.c: Remove TODO_dump_func.
924 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
925 * tree-tailcall.c: Remove TODO_dump_func.
926 * ipa-cp.c: Remove TODO_dump_func.
927 * final.c: Remove TODO_dump_func.
928 * tree-emutls.c: Remove TODO_dump_func.
929 * omp-low.c: Remove TODO_dump_func.
930 * tree-ssa-dse.c: Remove TODO_dump_func.
931 * tree-ssa-uncprop.c: Remove TODO_dump_func.
932 * auto-inc-dec.c: Remove TODO_dump_func.
933 * reorg.c: Remove TODO_dump_func.
934 * tree-ssa-copyrename.c: Remove TODO_dump_func.
935 * tree-ssa-ccp.c: Remove TODO_dump_func.
936 * compare-elim.c: Remove TODO_dump_func.
937 * mode-switching.c: Remove TODO_dump_func.
938 * modulo-sched.c: Remove TODO_dump_func.
939 * tree-call-cdce.c: Remove TODO_dump_func.
940 * cse.c: Remove TODO_dump_func.
941 * web.c: Remove TODO_dump_func.
942 * tree-stdarg.c: Remove TODO_dump_func.
943 * lto-streamer-out.c: Remove TODO_dump_func.
944 * tree-ssa-math-opts.c: Remove TODO_dump_func.
945 * tree-ssa-dom.c: Remove TODO_dump_func.
946 * tree-nrv.c: Remove TODO_dump_func.
947 * loop-init.c: Remove TODO_dump_func.
948 * gimple-low.c: Remove TODO_dump_func.
949 * ipa-inline.c: Remove TODO_dump_func.
950 * tree-ssa-sink.c: Remove TODO_dump_func.
951 * jump.c: Remove TODO_dump_func.
952 * ifcvt.c: Remove TODO_dump_func.
953 * tree-ssa-loop.c: Remove TODO_dump_func.
954 * recog.c: Remove TODO_dump_func.
955 * dse.c: Remove TODO_dump_func.
956 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
957 * matrix-reorg.c: Remove TODO_dump_func.
958 * tree-eh.c: Remove TODO_dump_func.
959 * regmove.c: Remove TODO_dump_func.
960 * function.c: Remove TODO_dump_func.
961 * tree-vectorizer.c: Remove TODO_dump_func.
962 * ipa-split.c: Remove TODO_dump_func.
963 * gcse.c: Remove TODO_dump_func.
964 * tree-if-conv.c: Remove TODO_dump_func.
965 * init-regs.c: Remove TODO_dump_func.
966 * tree-ssa-phiopt.c: Remove TODO_dump_func.
967 * implicit-zee.c: Remove TODO_dump_func.
968 * lower-subreg.c: Remove TODO_dump_func.
969 * bt-load.c: Remove TODO_dump_func.
970 * tree-dfa.c: Remove TODO_dump_func.
971 * except.c: Remove TODO_dump_func.
972 * emit-rtl.c: Remove TODO_dump_func.
973 * store-motion.c: Remove TODO_dump_func.
974 * cfgexpand.c: Remove TODO_dump_func.
975 * tree-cfgcleanup.c: Remove TODO_dump_func.
976 * cfgcleanup.c: Remove TODO_dump_func.
977 * tree-ssa-pre.c: Remove TODO_dump_func.
978 * tree-sra.c: Remove TODO_dump_func.
979 * tree-mudflap.c: Remove TODO_dump_func.
980 * tree-ssa-copy.c: Remove TODO_dump_func.
981 * cfglayout.c: Remove TODO_dump_func.
982 * tree-ssa-forwprop.c: Remove TODO_dump_func.
983 * tree-ssa-dce.c: Remove TODO_dump_func.
984 * ira.c: Remove TODO_dump_func.
985 * tree-ssa.c: Remove TODO_dump_func.
986 * integrate.c: Remove TODO_dump_func.
987 * tree-optimize.c: Remove TODO_dump_func.
988 * tree-ssa-phiprop.c: Remove TODO_dump_func.
989 * tree-object-size.c: Remove TODO_dump_func.
990 * combine.c: Remove TODO_dump_func.
991 * bb-reorder.c: Remove TODO_dump_func.
992 * cprop.c: Remove TODO_dump_func.
993 * var-tracking.c: Remove TODO_dump_func.
994 * tree-profile.c: Remove TODO_dump_func.
995 * tree-vect-generic.c: Remove TODO_dump_func.
996 * reg-stack.c: Remove TODO_dump_func.
997 * sched-rgn.c: Remove TODO_dump_func.
998 * tree-ssa-structalias.c: Remove TODO_dump_func.
999 * tree-switch-conversion.c: Remove TODO_dump_func.
1000 * tree-cfg.c: Remove TODO_dump_func.
1001 * tree-ssa-reassoc.c: Remove TODO_dump_func.
1002 * combine-stack-adj.c: Remove TODO_dump_func.
1003 * dce.c: Remove TODO_dump_func.
1004 * tree-ssanames.c: Remove TODO_dump_func.
1005 * regcprop.c: Remove TODO_dump_func.
1006
1007 2011-06-14 H.J. Lu <hongjiu.lu@intel.com>
1008
1009 PR middle-end/47364
1010 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
1011 and properly handle result not in Pmode.
1012
1013 2011-06-14 Robert Millan <rmh@gnu.org>
1014
1015 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
1016 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
1017 `config/linux.h'.
1018
1019 * config/i386/kfreebsd-gnu64.h: New file.
1020 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
1021 with `i386/kfreebsd-gnu64.h'.
1022
1023 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
1024 (GNU_USER_LINK_EMULATION64): New macros.
1025 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
1026 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
1027 of hardcoding `elf_i386' and `elf_x86_64'.
1028
1029 2011-06-14 Nick Clifton <nickc@redhat.com>
1030
1031 PR target/49403
1032 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
1033
1034 PR target/49402
1035 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
1036
1037 2011-06-14 Jakub Jelinek <jakub@redhat.com>
1038
1039 PR fortran/49103
1040 * tree.h (DECL_NONSHAREABLE): Define.
1041 (struct tree_decl_common): Change decl_common_unused to
1042 decl_nonshareable_flag.
1043 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
1044 Ignore vars with DECL_NONSHAREABLE bit set.
1045 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
1046 on stores to automatic aggregate vars.
1047
1048 PR rtl-optimization/49390
1049 Revert:
1050 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
1051
1052 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
1053 MEM_ALIAS_SET.
1054
1055 2011-06-14 Zdenek Dvorak <ook@ucw.cz>
1056 Tom de Vries <tom@codesourcery.com>
1057
1058 PR target/45098
1059 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
1060 Document changed semantics.
1061 (max_stmt_executions, max_stmt_executions_int): Declare.
1062 * tree-data-ref.c (estimated_loop_iterations)
1063 (estimated_loop_iterations_int): Move functions...
1064 * tree-ssa-loop-niter.c (estimated_loop_iterations)
1065 (estimated_loop_iterations_int): here.
1066 (record_estimate): Change nb_iterations_upper_bound and
1067 nb_iterations_estimate semantics.
1068 (max_stmt_executions, max_stmt_executions_int): New function.
1069 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
1070 (max_stmt_executions_tree): this.
1071 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
1072 estimated_loop_iterations_tree.
1073 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
1074 max_stmt_executions_int instead of estimated_loop_iterations_int.
1075 * predict.c (predict_loops): Idem.
1076 * tree-parloops.c (parallelize_loops): Idem.
1077 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
1078 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
1079 (init_omega_for_ddr_1): Idem.
1080 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
1081 (loop_prefetch_arrays): Idem
1082 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
1083 max_stmt_executions instead of estimated_loop_iterations.
1084 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
1085 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
1086 instead of nb_iterations_upper_bound.
1087
1088 2011-06-13 Jan Hubicka <jh@suse.cz>
1089
1090 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
1091
1092 2011-06-14 Richard Henderson <rth@redhat.com>
1093
1094 PR debug/48459
1095 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
1096 (based_loc_descr): Assert it's true.
1097 (compute_frame_pointer_to_fb_displacement): Set it, rather than
1098 aborting immediately.
1099
1100 2011-06-14 Sanjin Liu <scliu@faraday-tech.com>
1101 Mingfeng Wu <mingfeng@faraday-tech.com>
1102
1103 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
1104
1105 2011-06-13 Jan Hubicka <jh@suse.cz>
1106
1107 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
1108
1109 2011-06-13 Jan Hubicka <jh@suse.cz>
1110
1111 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
1112 similarly to DECL_COMDAT.
1113 * cgraphunit.c (cgraph_analyze_function): Likewise.
1114 * ipa.c (function_and_variable_visibility): Likewise.
1115
1116 2011-06-13 Jan Hubicka <jh@suse.cz>
1117
1118 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
1119 BINFO_VIRTUALS when streaming for ltrans unit.
1120
1121 2011-06-13 David Edelsohn <dje.gcc@gmail.com>
1122
1123 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
1124 (movdi_internal64): Same.
1125
1126 2011-06-13 Edmar Wienskoski <edmar@freescale.com>
1127
1128 PR target/44618
1129 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
1130 a set of similar patterns, where the MATCH_OPERAND for the function
1131 argument is replaced with individual references to hardware registers.
1132 (save_fpregs_<mode>): Ditto
1133 (restore_gpregs_<mode>): Ditto
1134 (return_and_restore_gpregs_<mode>): Ditto
1135 (return_and_restore_fpregs_<mode>): Ditto
1136 (return_and_restore_fpregs_aix_<mode>): Ditto
1137
1138 2011-06-13 Jan Hubicka <jh@suse.cz>
1139
1140 * ipa-utils.c (postorder_stack): New structure.
1141 (ipa_reverse_postorder): Handle aliases.
1142
1143 2011-06-13 Jan Hubicka <jh@suse.cz>
1144
1145 * ipa-inline.c (reset_edge_caches): Walk aliases.
1146 (update_caller_keys): Do not test inlinability of aliases.
1147 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
1148 (do_estimate_growth): Fix typo.
1149
1150 2011-06-13 Jan Hubicka <jh@suse.cz>
1151
1152 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
1153 (can_remove_node_now_p): ... here; handle same comdat groups.
1154 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
1155 (inline_call): Update use of can_remove_node_now_p.
1156
1157 2011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
1158
1159 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
1160 condition to disallow non-identical memory locations.
1161 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
1162 preference to bit manipulation instructions.
1163
1164 2011-06-13 Jan Hubicka <jh@suse.cz>
1165
1166 * cgraph.c (cgraph_for_node_thunks_and_aliases,
1167 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
1168 (nonremovable_p): New function.
1169 (cgraph_can_remove_if_no_direct_calls_p): New function.
1170 (used_from_object_file_p): New functoin.
1171 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
1172 references from aliases.
1173 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
1174 * ipa-inline.c (check_caller_edge): New function.
1175 (want_inline_function_called_once_p): Use it; accept aliases called
1176 once, too.
1177 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
1178
1179 2011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1180
1181 PR target/48454
1182 * config/arm/neon.md (vec_pack_trunc): Set the lengths
1183 correctly for the case with Quad vectors.
1184
1185 2011-06-13 Jakub Jelinek <jakub@redhat.com>
1186 Ira Rosen <ira.rosen@linaro.org>
1187
1188 PR tree-optimization/49352
1189 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
1190 all, make sure loop_use_stmt after the loop is a def stmt of a used
1191 SSA_NAME that is the only one defined inside of the loop. Don't
1192 check for COND_EXPR and GIMPLE_BINARY_RHS.
1193 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
1194 check_reduction is true.
1195
1196 2011-06-11 Jan Hubicka <jh@suse.cz>
1197
1198 PR middle-end/49373
1199 * ipa.c (cgraph_externally_visible_p): Check resolution info.
1200
1201 2011-06-11 Jan Hubicka <jh@suse.cz>
1202
1203 PR middle-end/48836
1204 * ipa-inline-transform.c: Include tree-pass.h
1205 (inline_transform): Set TODO_update_ssa_only_virtuals.
1206 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
1207
1208 2011-06-11 Jan Hubicka <jh@suse.cz>
1209
1210 PR middle-end/49378
1211 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
1212 aliases and thunks.
1213
1214 2011-06-12 Ira Rosen <ira.rosen@linaro.org>
1215
1216 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
1217 Take number of iterations to peel into account for equally frequent
1218 misalignment values.
1219
1220 2011-06-11 Jan Hubicka <jh@suse.cz>
1221
1222 * lto-streamer-out.c (produce_symtab): Stream out the newly represented
1223 aliases.
1224
1225 2011-06-11 Jan Hubicka <jh@suse.cz>
1226
1227 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting varying
1228 args.
1229 (ipa_update_after_lto_read): Likewise.
1230 (ipa_write_node_info): Do not sream call_with_var_arguments.
1231 (ipa_read_node_info): Likewise.
1232
1233 2011-06-11 Jan Hubicka <jh@suse.cz>
1234
1235 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
1236
1237 2011-06-11 Jan Hubicka <jh@suse.cz>
1238
1239 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
1240 (lto_symtab_resolve_can_prevail_p): Likewise.
1241 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
1242 * cgraph.c (same_body_aliases_done): New global var.
1243 (cgraph_same_body_alias_1): Rename to ...
1244 (cgraph_create_function_alias): ... this one; reorg to new
1245 representation.
1246 (cgraph_same_body_alias): Use cgraph_create_function_alias;
1247 record references when asked to.
1248 (cgraph_add_thunk): Fix formating.
1249 (cgraph_get_node): Kill same body alias code.
1250 (cgraph_node_for_asm): Likewise.
1251 (cgraph_remove_same_body_alias): Remove.
1252 (cgraph_remove_node): Kill same body alias code.
1253 (cgraph_mark_address_taken_node): Mark also the aliased function
1254 as having address taken.
1255 (dump_cgraph_node): Dump same body aliases.
1256 (cgraph_for_node_thunks_and_aliases): Update for new alias
1257 representation.
1258 (cgraph_for_node_and_aliases): Likewise.
1259 * cgraph.h (same_body): Kll pointer.
1260 (same_body_alias): Update comment.
1261 (same_body_aliases_done): Declare.
1262 (cgraph_remove_same_body_alias): Remove declaration.
1263 (cgraph_create_function_alias): Declare.
1264 (cgraph_process_same_body_aliases): Declare.
1265 (cgraph_function_with_gimple_body_p): Check for alias.
1266 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
1267 (cgraph_alias_aliased_node): New function.
1268 (cgraph_function_node): Update for new aliases.
1269 (cgraph_function_or_thunk_node): Likewise.
1270 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
1271 (inline_call): Remove dead aliases.
1272 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
1273 name hack for same body aliases.
1274 (clone_of_p): Look through aliases.
1275 (verify_cgraph_node): Verify aliases.
1276 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
1277 (cgraph_process_same_body_aliases): New function.
1278 (process_function_and_variable_attributes): Disable weakref warning on
1279 alias.
1280 (cgraph_analyze_functions): Handle aliases.
1281 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
1282 (assemble_thunks): Rename to ...
1283 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
1284 (cgraph_expand_function): Remove alias output code.
1285 (cgraph_output_in_order): Skip aliases.
1286 (cgraph_preserve_function_body_p): Aliases don't need preserving.
1287 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
1288 (ipa_record_reference): Do not assert on alias references.
1289 (ipa_ref_has_aliases_p): New function.
1290 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
1291 (ipa_ref_has_aliases_p): Declare.
1292 * lto-cgraph.c (lto_output_node): Handle aliases.
1293 (input_node): Likewise.
1294 * lto-streamer-out.c (lto_output): Skip aliases.
1295 (produce_symtab): Kill same_body_alias code.
1296 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
1297 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
1298 * ipa-inline.c (update_caller_keys): Walk aliases.
1299 (inline_small_functions): Fix thinko in previous patch.
1300 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
1301 (function_and_variable_visibility): Do not walk same body aliases.
1302 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
1303 (ipa_pta_execute): Use it.
1304
1305 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
1306
1307 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
1308 (*vec_dupv2df): Rename from vec_dupv2df.
1309 (vec_dupv2df): New expander.
1310
1311 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
1312
1313 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
1314
1315 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
1316
1317 * config/i386/i386.md: Use default value in "isa" attribute.
1318 * config/i386/sse.md: Ditto.
1319 * config/i386/mmx.md: Ditto.
1320
1321 2011-06-10 Wei Guozhi <carrot@google.com>
1322
1323 PR target/45335
1324 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
1325 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
1326 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
1327 related peephole2.
1328 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
1329 related peephole2.
1330 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
1331 (arm_legitimate_ldrd_p): New prototype.
1332 (arm_output_ldrd): New prototype.
1333 * config/arm/arm.c (arm_check_ldrd_operands): New function.
1334 (arm_legitimate_ldrd_p): New function.
1335 (arm_output_ldrd): New function.
1336
1337 2011-06-10 David Li <davidxl@google.com>
1338
1339 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
1340 * passes.c (passr_eq): New function.
1341 (create_pass_tab): New function.
1342 (pass_traverse): New function.
1343 (dump_one_pass): New function.
1344 (dump_pass_list): New function.
1345 (dump_passes): New function.
1346
1347 2011-06-10 Jan Hubicka <jh@suse.cz>
1348
1349 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
1350 setting the nothrow flag.
1351 * ipa-reference.c (propagate): Skip aliases.
1352 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
1353 (propagate_nothrow): Skip aliases; do not update cgraph.
1354 (local_pure_const): Do not update cgraph.
1355 * tree-profile.c (tree_profiling): Do fixup_cfg.
1356
1357 2011-06-10 Jan Hubicka <jh@suse.cz>
1358
1359 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
1360 (cgraph_local_node_p): ... here; handle aliases.
1361 (has_addr_references_p): Break out from ...;
1362 (cgraph_remove_unreachable_nodes) ... here.
1363
1364 2011-06-10 Jan Hubicka <jh@suse.cz>
1365
1366 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
1367 * common.opt (flag_inline_functions_called_once): Do not
1368 initialize to 1.
1369
1370 2011-06-10 Jan Hubicka <jh@suse.cz>
1371
1372 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
1373 (ipcp_initialize_node_lattices): Do not deal with aliases;
1374 Do not try to propagate through thunks.
1375 (ipcp_change_tops_to_bottom): Do not deal with aliases.
1376
1377 2011-06-10 Jan Hubicka <jh@suse.cz>
1378
1379 * ipa-prop.c (ipa_write_node_info): Stream jump functions
1380 for indirect calls.
1381 (ipa_read_node_info): Likewise.
1382
1383 2011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1384
1385 PR lto/49302
1386 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
1387 (build_and_insert_call): Likewise.
1388 (build_and_insert_ref): New.
1389 (gimple_expand_builtin_pow): Minor cleanup.
1390 (gimple_expand_builtin_cabs): New.
1391 (execute_cse_sincos): Add case for BUILT_IN_CABS.
1392
1393 2011-06-10 Jan Hubicka <jh@suse.cz>
1394
1395 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
1396 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
1397 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
1398 (ipcp_propagate_stage): Skip aliases when propagating.
1399 (ipcp_need_redirect_p): Skip aliases.
1400 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
1401 collect_callers_of_node.
1402 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
1403 for aliases.
1404 (ipa_compute_jump_functions): Look through aliases.
1405
1406 2011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1407
1408 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
1409
1410 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
1411
1412 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
1413 Adjust comments.
1414 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
1415
1416 2011-06-10 Jan Hubicka <jh@suse.cz>
1417
1418 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
1419 Update call of gimple_get_virt_method_for_binfo.
1420 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
1421 refuse_thunks parameter.
1422 (gimple_fold_call): Update.
1423 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
1424
1425 2011-06-10 Jan Hubicka <jh@suse.cz>
1426
1427 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
1428 (not_all_callers_have_enough_arguments_p): ... this one; turn into
1429 worker for cgraph_for_node_and_aliases.
1430 (convert_callers_for_node): Break out from ...
1431 (convert_callers): ... here.
1432 (modify_function): Use collect_callers_of_node.
1433 (ipa_early_sra): Use cgraph_for_node_and_aliases.
1434
1435 2011-06-10 Richard Guenther <rguenther@suse.de>
1436
1437 PR tree-optimization/49361
1438 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
1439 when not already in gimple form.
1440
1441 2011-06-10 Richard Guenther <rguenther@suse.de>
1442
1443 PR bootstrap/49344
1444 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
1445 FOR_EACH_PHI_OR_STMT_USE.
1446
1447 2011-06-10 Jan Hubicka <jh@suse.cz>
1448
1449 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
1450 (clone_inlined_nodes): ... here.
1451 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
1452 to real destination prior inlining.
1453 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
1454 can_early_inline_edge_p, want_early_inline_function_p,
1455 want_early_inline_function_p, want_inline_small_function_p,
1456 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
1457 edge_badness, update_all_callee_keys, lookup_recursive_calls,
1458 add_new_edges_to_heap, inline_small_functions, flatten_function,
1459 inline_always_inline_functions, early_inline_small_functions): Use
1460 cgraph_function_or_thunk_node.
1461 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
1462 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
1463 (do_estimate_edge_growth_1): Break out from ...
1464 (do_estimate_growth) ... here; walk aliases.
1465 (inline_generate_summary): Skip aliases.
1466
1467 2011-06-10 Richard Guenther <rguenther@suse.de>
1468
1469 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
1470 forward when combining, visit inserted stmts when a stmt was changed.
1471
1472 2011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
1473
1474 * tree.h (error_operand_p): Add.
1475 * dbxout.c (dbxout_type_fields): Use the latter.
1476 * c-decl.c (add_stmt): Likewise.
1477 * gimplify.c (omp_add_variable, omp_notice_variable,
1478 gimplify_scan_omp_clauses): Likewise.
1479
1480 2011-06-10 Georg-Johann Lay <avr@gjlay.de>
1481
1482 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
1483 when a value is actually passed in regs.
1484
1485 2011-06-10 Eric Botcazou <ebotcazou@adacore.com>
1486 Laurent Rougé <laurent.rouge@menta.fr>
1487
1488 * doc/invoke.texi (SPARC options): Add -mflat.
1489 * config/sparc/sparc.opt: Likewise.
1490 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
1491 (sparc_flat_expand_prologue): Declare.
1492 (sparc_flat_expand_epilogue): Likewise.
1493 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
1494 (CPP_ENDIAN_SPEC): Replace with...
1495 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
1496 (CPP_SPEC): Adjust to above change.
1497 (EXTRA_SPECS): Likewise.
1498 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
1499 (INCOMING_REGNO): Likewise.
1500 (OUTGOING_REGNO): Likewise.
1501 (LOCAL_REGNO): Likewise.
1502 (SETUP_FRAME_ADDRESSES): Likewise.
1503 (FIXED_REGISTERS): Set 0 for %fp.
1504 (CALL_USED_REGISTERS): Likewise.
1505 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
1506 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
1507 (RETURN_ADDR_REGNUM): Define.
1508 (RETURN_ADDR_RTX): Use it.
1509 (INCOMING_RETURN_ADDR_REGNUM): Define.
1510 (INCOMING_RETURN_ADDR_RTX): Use it.
1511 (DWARF_FRAME_RETURN_COLUMN): Likewise.
1512 (EH_RETURN_REGNUM): Define.
1513 (EH_RETURN_STACKADJ_RTX): Use it.
1514 (EH_RETURN_HANDLER_RTX): Delete.
1515 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
1516 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
1517 Delete.
1518 (struct machine_function): Add frame_size, apparent_frame_size,
1519 frame_base_reg, frame_base_offset, n_global_fp_regs and
1520 save_local_in_regs_p fields.
1521 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
1522 sparc_frame_base_offset, sparc_n_global_fp_regs,
1523 sparc_save_local_in_regs_p): New macros.
1524 (sparc_option_override): Error out if -fcall-saved-REG is specified
1525 for Out registers.
1526 (eligible_for_restore_insn): Fix formatting.
1527 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
1528 (eligible_for_sibcall_delay): Likewise.
1529 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
1530 (sparc_legitimate_address_p): Adjust to above change.
1531 (save_global_or_fp_reg_p): New predicate.
1532 (return_addr_reg_needed_p): Likewise.
1533 (save_local_or_in_reg_p): Likewise.
1534 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
1535 (SORR_SAVE, SORR_RESTORE): Delete.
1536 (sorr_pred_t): New typedef.
1537 (sorr_act_t): New enum.
1538 (save_or_restore_regs): Rename to...
1539 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
1540 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
1541 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
1542 mechanism. Add CFI information for double-word saves in 32-bit mode.
1543 (emit_adjust_base_to_offset): New function extracted from...
1544 (emit_save_or_restore_regs): ...this. Rename the rest to...
1545 (emit_save_or_restore_regs_global_fp_regs): ...this.
1546 (emit_save_or_restore_regs_local_in_regs): New function.
1547 (gen_create_flat_frame_[123]): New functions.
1548 (sparc_expand_prologue): Use SIZE local variable. Adjust.
1549 (sparc_flat_expand_prologue): New function.
1550 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
1551 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
1552 (sparc_flat_expand_epilogue): New function.
1553 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
1554 (output_return): Likewise.
1555 (output_sibcall): Likewise.
1556 (sparc_output_mi_thunk): Likewise.
1557 (sparc_frame_pointer_required): Likewise.
1558 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
1559 function optimization.
1560 * config/sparc/sparc.md (flat): New attribute.
1561 (prologue): Add TARGET_FLAT handling.
1562 (save_register_window): Disable if TARGET_FLAT.
1563 (create_flat_frame_[123]): New patterns.
1564 (epilogue): Add TARGET_FLAT handling.
1565 (sibcall_epilogue): Likewise.
1566 (eh_return): New expander.
1567 (eh_return_internal): New insn and splitter.
1568 (return_internal): Add TARGET_FLAT handling.
1569 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
1570 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
1571 (nonlocal_goto): Add TARGET_FLAT handling.
1572 * config/sparc/t-elf: Add -mflat multilib.
1573 * config/sparc/t-leon: Likewise.
1574
1575 2011-06-10 Jan Hubicka <jh@suse.cz>
1576
1577 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
1578 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
1579 (self_recursive_p): Use cgraph_function_node.
1580 (propagate_pure_const): Likewise.
1581 (propagate_nothrow): Likewise.
1582 * ipa-reference.c (ipa_reference_get_not_read_global): Use
1583 cgraph_function_node.
1584 (propagate_bits): Likewise.
1585 (propagate): Likewise.
1586
1587 2011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1588 Richard Earnshaw <rearnsha@arm.com>
1589
1590 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
1591 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
1592 (*thumb2_movdi_vfp): Delete.
1593 (*arm_movdi_vfp_cortexa8): Delete.
1594 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
1595 (*movdi_vfp_cortexa8): Likewise.
1596
1597 2011-06-10 Richard Guenther <rguenther@suse.de>
1598
1599 * stor-layout.c (initialize_sizetypes): Give names to all
1600 sizetype kinds.
1601
1602 2011-06-10 Ira Rosen <ira.rosen@linaro.org>
1603
1604 PR tree-optimization/49318
1605 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
1606 irrelevant pattern statements.
1607
1608 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
1609
1610 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
1611
1612 PR bootstrap/49354
1613 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
1614 to last assignment.
1615
1616 2011-06-09 Jan Hubicka <jh@suse.cz>
1617
1618 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
1619 do not recompute reachable flag.
1620 (cgraph_finalize_function, cgraph_analyze_functions): Set
1621 redefined_extern_inline here.
1622
1623 2011-06-09 Jan Hubicka <jh@suse.cz>
1624
1625 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
1626 (cgraph_only_called_directly_p): ... this one; bring offline.
1627 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
1628 varpool_used_from_object_file_p): Drop names from the declaratoin.
1629 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
1630 collect_callers_of_node): New.
1631 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
1632 (cgraph_edge_recursive_p): Use cgraph_function_node.
1633 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
1634 (cgraph_node_cannot_be_local_p_1): Break out from ...
1635 (cgraph_node_can_be_local_p): ... here; walk aliases.
1636 (cgraph_for_node_thunks_and_aliases): New function.
1637 (cgraph_for_node_and_aliases): New function.
1638 (cgraph_make_node_local_1): Break out from ...
1639 (cgraph_make_node_local) ... here; use
1640 cgraph_for_node_thunks_and_aliases.
1641 (cgraph_set_nothrow_flag_1): Break out from ...
1642 (cgraph_set_nothrow_flag) ... here;
1643 use cgraph_for_node_thunks_and_aliases.
1644 (cgraph_set_const_flag_1): Break out from ...
1645 (cgraph_set_const_flag) ... here;
1646 use cgraph_for_node_thunks_and_aliases.
1647 (cgraph_set_pure_flag_1): Break out from ...
1648 (cgraph_set_pure_flag) ... here;
1649 use cgraph_for_node_thunks_and_aliases.
1650 (cgraph_propagate_frequency_1): Break out from ...
1651 (cgraph_propagate_frequency) ... here; use
1652 cgraph_for_node_thunks_and_aliases.
1653 (cgraph_used_from_object_file_p): Do not care about aliases.
1654 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
1655 New functions.
1656 (collect_callers_of_node_1, collect_callers_of_node): New functions.
1657
1658 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
1659
1660 PR rtl-optimization/49154
1661 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
1662 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
1663 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
1664 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
1665 * config/cris/cris.h (cris_register_move_cost): Remove
1666 !TARGET_V32 code. Tweak comments.
1667
1668 2011-06-09 Jan Hubicka <jh@suse.cz>
1669
1670 * cgraphbuild.c (record_eh_tables): Mark personality function as having
1671 address taken.
1672
1673 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
1674
1675 PR rtl-optimization/49154
1676 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
1677 is a matching slot in the hashtable, assign it to classes_ptr.
1678
1679 PR rtl-optimization/49154
1680 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
1681 register classes.
1682 * doc/tm.texi: Regenerate.
1683
1684 2011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
1685
1686 PR target/49307
1687 * config/sh/sh.md (UNSPEC_CHKADD): New.
1688 (chk_guard_add): New define_insn_and_split.
1689 (symGOT_load): Use chk_guard_add instead of blockage.
1690
1691 2011-06-09 Kai Tietz <ktietz@redhat.com>
1692
1693 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
1694
1695 2011-06-09 Eric Botcazou <ebotcazou@adacore.com>
1696
1697 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
1698
1699 2011-06-09 Wei Guozhi <carrot@google.com>
1700
1701 PR target/46975
1702 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
1703 (peephole2 for conditional move): Generate 16 bit instructions.
1704
1705 2011-06-09 Uros Bizjak <ubizjak@gmail.com>
1706
1707 * config/i386/i386.md (*movdi_internal_rex64): Merge
1708 alternatives 6 and 8.
1709
1710 2011-06-09 David Li <davidxl@google.com>
1711
1712 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
1713 * passes.c (passr_eq): New function.
1714 (create_pass_tab): New function.
1715 (pass_traverse): New function.
1716 (dump_one_pass): New function.
1717 (dump_pass_list): New function.
1718 (dump_passes): New function.
1719
1720 2011-06-09 David Li <davidxl@google.com>
1721
1722 * tree-complex.c (tree_lower_complex): Gate cleanup.
1723 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
1724 (execute_optimize_stdarg): Ditto.
1725 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
1726 (execute_cleanup_eh_1): Ditto.
1727 (execute_cleanup_eh): Ditto.
1728 * gcse.c (gate_rtl_pre): Ditto.
1729 (execute_rtl_pre): Ditto.
1730 * except.c (finish_eh_generation): Ditto.
1731 (convert_to_eh_region_ranges): Ditto.
1732 * cprop.c (one_cprop_pass): Ditto.
1733
1734 2011-06-09 Bernd Schmidt <bernds@codesourcery.com>
1735
1736 PR target/48673
1737 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
1738 in all basic blocks.
1739
1740 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1741
1742 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
1743 (HAVE_ENABLE_EXECUTE_STACK): Define.
1744 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
1745 (HAVE_ENABLE_EXECUTE_STACK): Define.
1746 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
1747 (HAVE_ENABLE_EXECUTE_STACK): Define.
1748 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
1749 (ENABLE_EXECUTE_STACK): Remove.
1750 (HAVE_ENABLE_EXECUTE_STACK): Define.
1751 [IN_LIBGCC2]: Don't include <windows.h>.
1752 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
1753 (HAVE_ENABLE_EXECUTE_STACK): Define.
1754 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
1755 (HAVE_ENABLE_EXECUTE_STACK): Define.
1756 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
1757 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
1758 (HAVE_ENABLE_EXECUTE_STACK): Define.
1759 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
1760 (HAVE_ENABLE_EXECUTE_STACK): Define.
1761 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
1762 (HAVE_ENABLE_EXECUTE_STACK): Define.
1763 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
1764 (HAVE_ENABLE_EXECUTE_STACK): Define.
1765 * config/alpha/alpha.c (alpha_trampoline_init): Test
1766 HAVE_ENABLE_EXECUTE_STACK.
1767 * config/i386/i386.c (ix86_trampoline_init): Likewise.
1768 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
1769 (sparc64_initialize_trampoline): Likewise.
1770 * libgcc2.c [L_enable_execute_stack]: Remove.
1771 * system.h (ENABLE_EXECUTE_STACK): Poison.
1772 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
1773 * doc/tm.texi: Regenerate.
1774 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
1775
1776 2011-06-09 Jakub Jelinek <jakub@redhat.com>
1777
1778 PR middle-end/49308
1779 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
1780 variable. After resetting and rescanning insn continue with previous
1781 statement.
1782
1783 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1784
1785 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
1786 (gcc_cv_ld_hidden): Likewise.
1787 * configure: Regenerate.
1788 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
1789 (ix86_stack_protect_fail): Mark unused.
1790 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
1791 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
1792 [TARGET_MACHO]: Don't define.
1793 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
1794 (TARGET_STACK_PROTECT_FAIL): Likewise.
1795 (rs6000_stack_protect_fail): Mark unused.
1796 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
1797 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
1798
1799 2011-06-08 Andi Kleen <ak@linux.intel.com>
1800
1801 * varasm.c (get_section): Print location of other conflict
1802 for section conflicts.
1803
1804 2011-06-08 Andi Kleen <ak@linux.intel.com>
1805
1806 * config/i386/driver-i386.c (host_detect_local_cpu):
1807 Add model 0x2d Intel CPU.
1808
1809 2011-06-08 Andi Kleen <ak@linux.intel.com>
1810
1811 * reginfo.c (global_regs_decl): Add.
1812 (globalize_reg): Add decl parameter. Compute location. Pass location
1813 to warnings and add inform. Store decl in global_regs_decl.
1814 * rtl.h (globalize_reg): Update prototype.
1815 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
1816
1817 2011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
1818
1819 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
1820
1821 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1822
1823 PR target/49305
1824 * config/sh/predicates.md (general_movsrc_operand): Check
1825 mode for memory with indexed address for QI and HImode.
1826 (general_movdst_operand): Likewise.
1827
1828 2011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
1829
1830 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
1831
1832 2011-06-08 Alexandre Oliva <aoliva@redhat.com>
1833
1834 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
1835 (num_ssa_operands): Likewise.
1836 (op_iter_init_phiuse): Forward-declare.
1837 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
1838
1839 2011-06-08 Nick Clifton <nickc@redhat.com>
1840
1841 * doc/invoke.texi (ARM Options): Update description of
1842 -mthumb-interwork.
1843
1844 2011-06-08 H.J. Lu <hongjiu.lu@intel.com>
1845
1846 * config/i386/driver-i386.c (host_detect_local_cpu): Support
1847 unknown Intel family 0x6 CPUs.
1848
1849 2011-06-08 Martin Jambor <mjambor@suse.cz>
1850
1851 * tree-sra.c (mark_rw_status): Removed.
1852 (analyze_access_subtree): New parameter parent instead of
1853 mark_read and mark_write, propagate from that.
1854
1855 2011-06-08 Julian Brown <julian@codesourcery.com>
1856
1857 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
1858 for double-precision helper functions in hard-float mode if only
1859 single-precision arithmetic is supported in hardware.
1860
1861 2011-06-08 Alexander Monakov <amonakov@ispras.ru>
1862
1863 PR rtl-optimization/49303
1864 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
1865 code_motion_path_driver returned 0 or 1.
1866 (sel_region_finish): Clear h_d_i_d.
1867
1868 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1869
1870 * config/sh/sh.c (prepare_move_operands): Set pic register
1871 appropriately for global and local dynamic tls models even
1872 if flag_pic is unset.
1873
1874 2011-06-07 Jason Merrill <jason@redhat.com>
1875
1876 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
1877
1878 2011-06-07 Xinliang David Li <davidxl@google.com>
1879 * passes.c (enable_disable_pass): Handle assembler name.
1880 (is_pass_explicitly_enabled_or_disabled): Ditto.
1881
1882 2011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1883
1884 PR tree-optimization/48497
1885 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
1886
1887 2011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1888
1889 PR tree-optimization/46728
1890 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
1891 to use gimple_val_nonnegative_real_p.
1892 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
1893 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
1894
1895 2011-06-07 H.J. Lu <hongjiu.lu@intel.com>
1896
1897 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
1898
1899 2011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
1900
1901 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
1902 constant vectors.
1903
1904 2011-06-07 Richard Guenther <rguenther@suse.de>
1905
1906 * stor-layout.c (initialize_sizetypes): Initialize all
1907 sizetypes based on target definitions.
1908 (set_sizetype): Remove.
1909 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
1910 * tree.h (set_sizetype): Remove.
1911
1912 2011-06-07 Nick Clifton <nickc@redhat.com>
1913
1914 * config.gcc: Unify V850 architecture options and add support for
1915 newer V850 architectures.
1916 * config/v850/t-v850e: Delete.
1917
1918 2011-06-07 Richard Guenther <rguenther@suse.de>
1919
1920 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
1921 Call set_sizetype from here.
1922
1923 2011-06-07 Andrew Stubbs <ams@codesourcery.com>
1924
1925 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
1926 (*maddhisi4tb, *maddhisi4tt): New define_insns.
1927
1928 2011-06-07 Bernd Schmidt <bernds@codesourcery.com>
1929 Andrew Stubbs <ams@codesourcery.com>
1930
1931 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
1932 multiplies.
1933 * doc/md.texi (Canonicalization of Instructions): Document widening
1934 multiply canonicalization.
1935
1936 2011-06-07 Jakub Jelinek <jakub@redhat.com>
1937
1938 PR gcov-profile/49299
1939 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
1940
1941 2011-06-07 Ira Rosen <ira.rosen@linaro.org>
1942
1943 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
1944 a pointer.
1945 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
1946 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
1947 vect_recog_pow_pattern): Likewise.
1948 (vect_pattern_recog_1): Remove declaration.
1949 (widened_name_p): Remove declaration. Add new argument to specify
1950 whether to check that both types are either signed or unsigned.
1951 (vect_recog_widen_mult_pattern): Update documentation. Handle
1952 unsigned patterns and multiplication by constants.
1953 (vect_pattern_recog_1): Update vect_recog_func references. Use
1954 statement information from the statement returned from pattern
1955 detection functions.
1956 (vect_pattern_recog): Update vect_recog_func reference.
1957 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
1958 multiplication by a constant use the type of the other operand.
1959
1960 2011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
1961
1962 PR rtl-optimization/49145
1963 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
1964
1965 2011-06-06 Jakub Jelinek <jakub@redhat.com>
1966
1967 PR debug/49262
1968 * dwarf2out.c (native_encode_initializer): Decrement count in each
1969 iteration.
1970
1971 PR debug/49294
1972 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
1973 non-MODE_INT modes.
1974
1975 PR c++/49264
1976 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
1977 if stmt folded into nothing.
1978 * tree-inline.c (fold_marked_statements): If a builtin at the end of
1979 a bb folded into nothing, just update cgraph edges and move to next bb.
1980 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
1981 to be NULL. Don't compute count and frequency if new_call is NULL.
1982
1983 2011-06-04 Diego Novillo <dnovillo@google.com>
1984
1985 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
1986 (cgraph.o): Likewise.
1987 (cgraphunit.o): Likewise.
1988 * cgraphunit.c: Include lto-streamer.h
1989 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
1990 if LTO is enabled.
1991 * lto-streamer-in.c (unpack_value_fields): Call
1992 streamer_hooks.unpack_value_fields if set.
1993 (lto_materialize_tree): For unhandled nodes, first try to
1994 call lto_streamer_hooks.alloc_tree, if it exists.
1995 (lto_input_ts_decl_common_tree_pointers): Move reading of
1996 DECL_INITIAL to lto_streamer_read_tree.
1997 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
1998 (lto_streamer_read_tree): New.
1999 (lto_reader_init): Rename from lto_init_reader.
2000 Move initialization code to lto/lto.c.
2001 * lto-streamer-out.c (pack_value_fields): Call
2002 streamer_hooks.pack_value_fields if set.
2003 (lto_output_tree_ref): For tree nodes that are not normally indexable,
2004 call streamer_hooks.indexable_with_decls_p before giving up.
2005 (lto_output_ts_decl_common_tree_pointers): Move handling
2006 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
2007 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
2008 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
2009 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
2010 (lto_streamer_write_tree): New.
2011 (lto_output): Call lto_streamer_init directly.
2012 (lto_writer_init): Remove.
2013 * lto-streamer.c (streamer_hooks): New.
2014 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
2015 instead of lto_preload_common_nodes.
2016 (lto_is_streamable): Move from lto-streamer.h
2017 (lto_streamer_hooks_init): New.
2018 (streamer_hooks): New.
2019 (streamer_hooks_init): New.
2020 * lto-streamer.h (struct output_block): Forward declare.
2021 (struct lto_input_block): Likewise.
2022 (struct data_in): Likewise.
2023 (struct bitpack_d): Likewise.
2024 (struct streamer_hooks): Declare.
2025 (streamer_hooks): Declare.
2026 (lto_streamer_hooks_init): Declare.
2027 (lto_streamer_write_tree): Declare.
2028 (lto_streamer_read_tree): Declare.
2029 (streamer_hooks_init): Declare.
2030 (lto_is_streamable): Move to lto-streamer.c
2031
2032 2011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2033
2034 * longlong.h (smul_ppmm): The resulting register pair contains the
2035 higher order word first.
2036
2037 2011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2038
2039 PR tree-optimization/46728
2040 * builtins.c (powi_table): Remove.
2041 (powi_lookup_cost): Remove.
2042 (powi_cost): Remove.
2043 (expand_powi_1): Remove.
2044 (expand_powi): Remove.
2045 (expand_builtin_pow_root): Remove.
2046 (expand_builtin_pow): Remove.
2047 (expand_builtin_powi): Eliminate handling of constant exponent.
2048 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
2049
2050 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
2051
2052 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
2053
2054 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
2055
2056 * dce.c (reset_unmarked_insns_debug_uses): New.
2057 (delete_unmarked_insns): Skip debug insns.
2058 (prescan_insns_for_dce): Likewise.
2059 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
2060 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
2061 active reg can be found.
2062 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
2063 (convert_regs_1): Use it.
2064
2065 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
2066
2067 * tree-pretty-print.c (dump_function_header): Add flags.
2068 Don't dump decl_uid with nouid.
2069 * tree-pretty-print.h (dump_function_header): Adjust.
2070 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
2071 * passes.c (pass_init_dump_file): Pass dump_flags on.
2072 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
2073
2074 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
2075
2076 PR bootstrap/49270
2077 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
2078
2079 2011-06-06 Mikael Pettersson <mikpe@it.uu.se>
2080
2081 PR tree-optimization/49243
2082 * calls.c (setjmp_call_p): Also check if fndecl has the
2083 returns_twice attribute.
2084
2085 2011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2086
2087 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
2088 -ffast-math etc.
2089
2090 2011-06-06 Richard Henderson <rth@redhat.com>
2091 Georg-Johann Lay <avr@gjlay.de>
2092
2093 PR target/42210
2094 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
2095 New predicates.
2096 * config/avr/avr.md ("insv"): New insn expander.
2097 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
2098 "*insv.not.io", "*insv.reg"): New insns.
2099
2100 2011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
2101
2102 PR target/49285
2103 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
2104 to nonimmediate_operand from memory_operand for the operand that is to
2105 be forced to memory by the expander. Lose the constraints.
2106
2107 2011-06-05 Eric Botcazou <ebotcazou@adacore.com>
2108
2109 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
2110 EH return when delayed branches are disabled.
2111
2112 2011-06-05 Uros Bizjak <ubizjak@gmail.com>
2113
2114 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
2115 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
2116 calculation.
2117 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
2118 Simplify MODE_V1DF and MODE_V2SF handling.
2119 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
2120 Simplify MODE_SF handling.
2121
2122 2011-06-04 Jan Hubicka <jh@suse.cz>
2123
2124 PR tree-optimization/48893
2125 PR tree-optimization/49091
2126 PR tree-optimization/49179
2127 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
2128 Bounds check.
2129
2130 2011-06-04 Jan Hubicka <jh@suse.cz>
2131
2132 PR lto/48954
2133 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
2134 bitmaps.
2135
2136 2011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
2137
2138 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
2139
2140 2011-06-04 Jakub Jelinek <jakub@redhat.com>
2141
2142 PR target/49281
2143 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
2144 to be strictly smaller than 1 << shiftcount.
2145
2146 2011-06-04 Jan Hubicka <jh@suse.cz>
2147
2148 PR tree-optimize/48929
2149 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
2150 of empty predicate.
2151
2152 2011-06-04 Alexandre Oliva <aoliva@redhat.com>
2153
2154 PR debug/48333
2155 * calls.c (emit_call_1): Prefer the __builtin declaration of
2156 builtin functions.
2157
2158 2011-06-03 Diego Novillo <dnovillo@google.com>
2159
2160 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
2161 (lto_input_tree_pointers): Likewise.
2162 * lto-streamer-out.c (pack_value_fields): Likewise.
2163 (lto_output_tree_pointers): Likewise.
2164 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
2165 and OPTIMIZATION_NODE.
2166
2167 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2168
2169 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
2170 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
2171 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
2172 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
2173 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
2174 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
2175 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
2176 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
2177 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
2178 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
2179 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
2180 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
2181 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
2182 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
2183 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
2184 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
2185 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
2186 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
2187 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
2188 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
2189 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
2190 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
2191 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
2192 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
2193 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
2194 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
2195 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
2196 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
2197 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
2198 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
2199 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
2200 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
2201 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
2202 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
2203 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
2204 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
2205 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
2206 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
2207 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
2208 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
2209 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
2210 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
2211 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
2212 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
2213 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
2214 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
2215 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
2216 * system.h (MD_UNWIND_SUPPORT): Poison.
2217 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
2218 * doc/tm.texi: Regenerate.
2219 * unwind-dw2.c: Include md-unwind-support.h instead of
2220 MD_UNWIND_SUPPORT.
2221 * config/ia64/unwind-ia64.c: Likewise.
2222 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
2223
2224 2011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
2225
2226 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
2227
2228 2011-06-03 Richard Henderson <rth@redhat.com>
2229 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2230
2231 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
2232 (sigill_hdlr): Correct insn, insn size.
2233 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
2234
2235 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2236
2237 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
2238 t-slibgcc-dummy.
2239 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
2240 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
2241 * config/mips/t-iris: Remove.
2242 * config/mips/t-irix6: New file.
2243 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
2244
2245 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2246
2247 * Makefile.in (LIB2ADDEHDEP): Remove.
2248 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
2249 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
2250 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
2251 * config/t-darwin (LIB2ADDEHDEP): Remove.
2252 * config/t-freebsd (LIB2ADDEHDEP): Remove.
2253 * config/t-linux (LIB2ADDEHDEP): Remove.
2254
2255 2011-06-03 Diego Novillo <dnovillo@google.com>
2256
2257 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
2258 (lto_register_var_decl_in_symtab): Likewise.
2259 (lto_register_function_decl_in_symtab): Likewise.
2260 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
2261 logic to uniquify_nodes.
2262
2263 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2264
2265 * config/alpha/t-osf5: Remove.
2266 * config/alpha/t-osf-pthread: Remove.
2267 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
2268 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
2269
2270 2011-06-03 Julian Brown <julian@codesourcery.com>
2271
2272 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
2273 (strongarm1110): Use strongarm tuning.
2274 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
2275 * config/arm/arm.c (arm_strongarm_tune): New.
2276 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
2277 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
2278 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
2279 setting, using previous defaults or 1 for Cortex-A5.
2280 (arm_option_override): Set max_insns_skipped from current tuning.
2281
2282 2011-06-03 Nathan Sidwell <nathan@codesourcery.com>
2283
2284 * doc/install.texi (Options specification): Document --with-specs.
2285
2286 2011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2287
2288 * config/arm/neon.md (orndi3_neon): Actually split it.
2289
2290 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
2291
2292 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
2293 * var-tracking.c (reverse_op): Limite recurse depth to 5.
2294
2295 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
2296
2297 PR debug/47590
2298 * target.def (delay_sched2, delay_vartrack): New.
2299 * doc/tm.texi.in: Update.
2300 * doc/tm.texi: Rebuild.
2301 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
2302 * var-tracking.c (gate_handle_var_tracking): Likewise.
2303 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
2304 (bfin_flag_var_tracking): Drop.
2305 (output_file_start): Don't save and override flag_var_tracking.
2306 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
2307 (bfin_reorg): Test original variables.
2308 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
2309 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
2310 (ia64_flag_var_tracking): Drop.
2311 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
2312 (ia64_file_start): Don't save and override flag_var_tracking.
2313 (ia64_override_options_after_change): Ditto
2314 flag_schedule_insns_after_reload.
2315 (ia64_reorg): Test original variables.
2316 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
2317 (picochip_flag_var_tracking): Drop.
2318 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
2319 (picochip_option_override): Don't save and override
2320 flag_schedule_insns_after_reload.
2321 (picochip_asm_file_start): Ditto flag_var_tracking.
2322 (picochip_reorg): Test original variables.
2323 * config/spu/spu.c (spu_flag_var_tracking): Drop.
2324 (TARGET_DELAY_VARTRACK): Define.
2325 (spu_var_tracking): New.
2326 (spu_machine_dependent_reorg): Call it.
2327 (asm_file_start): Don't save and override flag_var_tracking.
2328
2329 2011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
2330
2331 PR target/49163
2332 * config/sh/predicates.md (general_movsrc_operand): Return 0
2333 for memory and memory subreg of which address is an invalid
2334 indexed address for QI and HImode.
2335 (general_movdst_operand): Likewise.
2336
2337 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
2338
2339 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
2340 edges only, when there is a non-local label in the function.
2341 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
2342
2343 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
2344
2345 * config/i386/constraints.md (Y3): New register constraint.
2346 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
2347 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
2348 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
2349 *sse2_interleave_lowv2df.
2350
2351 2011-06-02 Julian Brown <julian@codesourcery.com>
2352
2353 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
2354 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
2355 (arm_cortex_a5_tune): New.
2356
2357 2011-06-02 Julian Brown <julian@codesourcery.com>
2358
2359 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
2360 * config/arm/arm.c (arm_default_branch_cost): New.
2361 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
2362 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
2363 (arm_fa726_tune): Set branch_cost field using
2364 arm_default_branch_cost.
2365 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
2366 current_tune structure.
2367 * dojump.c (tm_p.h): Include file.
2368
2369 2011-06-02 Julian Brown <julian@codesourcery.com>
2370
2371 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
2372 tuning.
2373 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
2374 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
2375 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
2376 field.
2377 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
2378 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
2379 (arm_fa726te_tune): Add prefer_constant_pool setting.
2380 (arm_v6t2_tune, arm_cortex_tune): New.
2381 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
2382 prefer_constant_pool setting.
2383
2384 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
2385
2386 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
2387 switch statement.
2388 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
2389 (*movdf_internal) <case 6,7,8>: Ditto.
2390
2391 * config/i386/constraints.md (Y4): New register constraint.
2392 * config/i386/sse.md (vec_set<mode>_0): Merge with
2393 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
2394 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
2395 *vec_extractv2di_1_sse.
2396 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
2397 and *vec_concatv2di_rex64_sse.
2398
2399 2011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
2400
2401 PR target/48807
2402 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
2403 of cgraph_local_info for null before attempting to use it.
2404
2405 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
2406
2407 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
2408 (current_function_dynamic_alloc_count): Delete.
2409 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
2410 (expand_builtin_nonlocal_goto): Remove obsolete comment.
2411 (expand_builtin_update_setjmp_buf): Remove dead code.
2412 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
2413 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
2414 support.
2415 * function.c (instantiate_virtual_regs): Likewise.
2416 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
2417 for a block with a single abnormal incoming edge.
2418 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
2419 (SETJMP_VIA_SAVE_AREA): Delete.
2420 * config/sparc/sparc-protos.h (load_got_register): Declare.
2421 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
2422 (load_got_register): Make global.
2423 (sparc_frame_pointer_required): Add 'static'.
2424 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
2425 (sparc_builtin_setjmp_frame_value): New function.
2426 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
2427 (save_stack_nonlocal): New expander.
2428 (restore_stack_nonlocal): Likewise.
2429 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
2430 (nonlocal_goto_internal): New insn.
2431 (goto_handler_and_restore): Delete.
2432 (builtin_setjmp_setup): Likewise.
2433 (do_builtin_setjmp_setup): Likewise.
2434 (setjmp): Likewise.
2435 (builtin_setjmp_receiver): New expander.
2436
2437 2011-06-01 David Li <davidxl@google.com>
2438
2439 PR middle-end/49261
2440 * tree-pretty-print.c (dump_function_header): Format cleanup.
2441
2442 2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
2443
2444 PR target/49238
2445 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
2446 needed when original operands are used for msw_skip comparison.
2447
2448 2011-06-01 Jakub Jelinek <jakub@redhat.com>
2449
2450 PR debug/49250
2451 * var-tracking.c (add_uses, add_stores): Don't call
2452 cselib_subst_to_values on ENTRY_VALUE.
2453
2454 2011-06-01 Diego Novillo <dnovillo@google.com>
2455
2456 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
2457 output_record_start with LTO_null instead of output_zero.
2458 (lto_output_ts_binfo_tree_pointers): Likewise.
2459 (lto_output_tree): Likewise.
2460 (output_eh_try_list): Likewise.
2461 (output_eh_region): Likewise.
2462 (output_eh_lp): Likewise.
2463 (output_eh_regions): Likewise.
2464 (output_bb): Likewise.
2465 (output_function): Likewise.
2466 (output_unreferenced_globals): Likewise.
2467 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
2468 instead of NUM_TREE_CODES.
2469 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
2470 (lto_output_int_in_range): Change << to >> when shifting VAL.
2471
2472 2011-06-01 Diego Novillo <dnovillo@google.com>
2473
2474 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
2475 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
2476
2477 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
2478
2479 PR target/45074
2480 * optabs.h (valid_multiword_target_p): Declare.
2481 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
2482 doing multi-word operations.
2483 * optabs.c (expand_binop): Likewise.
2484 (expand_doubleword_bswap): Likewise.
2485 (expand_absneg_bit): Likewise.
2486 (expand_unop): Likewise.
2487 (expand_copysign_bit): Likewise.
2488 (multiword_target_p): New function.
2489
2490 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
2491
2492 PR rtl-optimization/48830
2493 PR rtl-optimization/48808
2494 PR rtl-optimization/48792
2495 * reload.c (push_reload): Check contains_reg_of_mode.
2496 * reload1.c (strip_paradoxical_subreg): New function.
2497 (gen_reload_chain_without_interm_reg_p): Use it to handle
2498 paradoxical subregs.
2499 (emit_output_reload_insns, gen_reload): Likewise.
2500
2501 2011-06-01 David Li <davidxl@google.com>
2502
2503 * predict.c : Change pass name
2504 * ipa.c: Ditto.
2505 * dce.c: Ditto.
2506 * tree-profile.c: Ditto.
2507 * except.c: Ditto.
2508
2509 2011-06-01 David Li <davidxl@google.com>
2510
2511 * tree-pretty-print.c (dump_function_header): New function.
2512 * final.c (rest_of_clean_state): Use header dumper.
2513 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
2514 * passes.c (pass_init_dump_file): Use header dumper.
2515
2516 2011-06-01 Jakub Jelinek <jakub@redhat.com>
2517
2518 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
2519 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
2520 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
2521 New functions.
2522 (mem_loc_descriptor): Use them.
2523
2524 * var-tracking.c (create_entry_value): New function.
2525 (vt_add_function_parameter): Use it.
2526
2527 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2528
2529 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
2530 Include <signal.h>, <ucontext.h>.
2531 (sigill_caught): Define.
2532 (sigill_hdlr): New function.
2533 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
2534 insns can be executed.
2535 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
2536 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
2537
2538 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2539
2540 * config/t-slibgcc-darwin: Move to ...
2541 * config/t-slibgcc-dummy: ... this. Clarify comments.
2542 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
2543 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
2544 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
2545 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
2546 Remove i386/t-crtstuff from tmake_file.
2547 (i[34567]86-*-solaris2*): Remove t-svr4,
2548 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
2549 t-slibgcc-dummy.
2550 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
2551 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
2552 sparc/t-crtfm from tmake_file.
2553 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
2554 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
2555 Remove extra_parts.
2556 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
2557 * config/i386/t-nwld (SHLIB_LINK): Remove.
2558 * config/i386/t-rtems-i386: Rename to ...
2559 * config/i386/t-rtems: ... this.
2560 ($(T)crti.o, $(T)crtn.o): Remove.
2561 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
2562 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
2563 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
2564 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
2565 EXTRA_MULTILIB_PARTS): Remove.
2566 * config/sparc/t-sol2-64: Likewise.
2567 * config/sparc/t-sol2: Remove.
2568 * config/sparc/t-crtin: Remove.
2569 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
2570 * config/i386/gmon-sol2.c: Remove.
2571 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
2572 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
2573 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
2574 * config/i386/sol2-gc1.asm: Remove.
2575 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
2576 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
2577 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
2578 * config/t-slibgcc-sld: Remove.
2579
2580 2011-06-01 Jakub Jelinek <jakub@redhat.com>
2581
2582 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
2583 base_type_for_mode with op_mode instead of mode.
2584
2585 2011-06-01 Paul Brook <paul@cpodesourcery.com>
2586
2587 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
2588 Cortex-A15.
2589 * config/arm/arm-tune.md: Regenerate.
2590 * config/arm/arm-tables.opt: Regenerate.
2591 * config/arm/arm.c (FL_DIV): Rename...
2592 (FL_THUMB_DIV): ... to this.
2593 (FL_ARM_DIV): Define.
2594 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
2595 (arm_arch_hwdiv): Remove.
2596 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
2597 (arm_issue_rate): Add cortexr5.
2598 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
2599 __ARM_ARCH_EXT_IDIV__.
2600 (TARGET_IDIV): Define.
2601 (arm_arch_hwdiv): Remove.
2602 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
2603 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
2604 (divsi3, udivsi3): New patterns.
2605 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
2606 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
2607
2608 2011-06-01 Martin Jambor <mjambor@suse.cz>
2609
2610 * ipa-utils.c (ipa_dfs_info): New field scc_no.
2611 * ipa-utils.c (searchc): Set scc_no.
2612
2613 2011-06-01 Martin Jambor <mjambor@suse.cz>
2614
2615 * ipa-utils.c (searchc_env): New field allow_overwritable.
2616 (searchc): do not ignore edges to overwritable nodes if indicated
2617 by env->allow_overwritable.
2618 (ipa_reduced_postorder): Set env.allow_overwritable.
2619
2620 2011-06-01 Richard Guenther <rguenther@suse.de>
2621
2622 * tree.c (free_lang_data): Do not reset boolean_type_node nor
2623 char_type_node.
2624 * lto-streamer.c (lto_record_common_node): Take node pointer,
2625 do not register types.
2626 (lto_preload_common_nodes): Explicitly skip preloading nodes
2627 that differ between frontends.
2628
2629 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
2630
2631 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
2632 NON_FLOAT_REGS.
2633
2634 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
2635
2636 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
2637 parameter value for dump. Dump cost on outermost call only.
2638 (rs6000_memory_move_cost): Dump cost on outermost call only.
2639
2640 2011-05-31 Jakub Jelinek <jakub@redhat.com>
2641
2642 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
2643 DW_OP_GNU_convert ops.
2644
2645 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
2646 cselib_preserve_constants.
2647 (cselib_lookup_1): If cselib_preserve_constants,
2648 a new VALUE is being created for REG and there is a VALUE for the
2649 same register in wider mode, add another loc with lowpart SUBREG of
2650 the wider VALUE.
2651 (cselib_subst_to_values): Handle ENTRY_VALUE.
2652 * var-tracking.c (replace_expr_with_values): Return NULL for
2653 ENTRY_VALUE too.
2654 * dwarf2out.c (convert_descriptor_to_signed): New function.
2655 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
2656 instead of two shifts.
2657 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
2658 the right mode if needed.
2659 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
2660 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
2661 convert_descriptor_to_signed.
2662 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
2663 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
2664
2665 PR target/48688
2666 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
2667
2668 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
2669
2670 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
2671 of X87MODEI12 and SWI48x instead of SSEMODEI24.
2672 (SWI248x): New mode iterator, rename from X87MODEI.
2673 (X87MODEI): Remove mode iterator.
2674 (X87MODEI12): Ditto.
2675 (SSEMODEI24): Ditto.
2676
2677 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
2678
2679 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
2680 * doc/invoke.texi: Document max-vartrack-expr-depth.
2681 * var-tracking.c (EXPR_DEPTH): New.
2682 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
2683
2684 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
2685
2686 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
2687 * config/i386/sse.md: Add n to negated FMA pattern names.
2688
2689 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
2690
2691 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
2692
2693 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
2694
2695 * gengtype-state.c (read_state_params_structs): Initialize previous.
2696
2697 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
2698
2699 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
2700 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
2701
2702 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
2703
2704 * config/i386/i386.md (*movtf_internal): Avoid allocating general
2705 registers. Penalize F*r->o alternative to prevent partial memory
2706 stalls. Slightly penalize *roF->*r alternative. Generate SSE
2707 CONST_DOUBLE immediates when optimizing function for size. Do not move
2708 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
2709 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
2710 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
2711 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
2712 alternatives.
2713 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
2714
2715 (fp_register_operand splitters): Use fp_register_operand
2716 constraint. Do not use FP_REG_P in insn condition.
2717 (any_fp_register_operand splitters): Use any_fp_register_operand
2718 constraint. Do not use ANY_FP_REG_P in insn condition.
2719
2720 2011-05-31 Jan Hubicka <jh@suse.cz>
2721
2722 * cgraph.h (cgraph_inline_failed_t): Give enum a name
2723 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
2724 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
2725 (lto_output_edge): Use output_enum and var_len_unsigned.
2726 (lto_output_varpool_node): Likewise.
2727 (input_overwrite_node): Do not take resolution parameter;
2728 extract it from a bitpack.
2729 (input_node): Do not read resolution; use input_enum and
2730 var_len_unsigned.
2731 (input_varpool_node): Likewise.
2732 (input_edge): Likewise.
2733 (input_cgraph_1): Likewise.
2734
2735 2011-05-31 Richard Guenther <rguenther@suse.de>
2736
2737 * gimple.c (gimple_register_canonical_type): Do not register
2738 any types via gimple_register_type.
2739
2740 2011-05-31 Jan Hubicka <jh@suse.cz>
2741
2742 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
2743 of thunks.
2744
2745 2011-05-31 Jakub Jelinek <jakub@redhat.com>
2746
2747 PR rtl-optimization/49235
2748 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
2749 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
2750
2751 2011-05-31 Ira Rosen <ira.rosen@linaro.org>
2752
2753 PR tree-optimization/49093
2754 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
2755 data references.
2756
2757 2011-05-31 Dodji Seketeli <dodji@redhat.com>
2758
2759 PR debug/49047
2760 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
2761 for concrete functions containing the code of cloned functions.
2762
2763 2011-05-31 Richard Guenther <rguenther@suse.de>
2764
2765 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
2766 to ...
2767 (forward_propagate_into_comparison_1): ... this.
2768 (forward_propagate_comparison): Rename to ...
2769 (forward_propagate_into_comparison): ... this. Split out
2770 real forward propagation code to ...
2771 (forward_propagate_comparison): ... this.
2772 (forward_propagate_into_gimple_cond): Remove looping.
2773 (forward_propagate_into_cond): Likewise.
2774 (simplify_not_neg_expr): Return whether we have done something.
2775 (simplify_gimple_switch): Likewise.
2776 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
2777 (ssa_forward_propagate_and_combine): ... this. Re-structure
2778 to do a forward forward-propagation walk on BBs and a backward
2779 stmt combining walk on BBs. Consistently re-scan changed statements.
2780 (pass_forwprop): Adjust.
2781
2782 2011-05-30 Ian Lance Taylor <iant@google.com>
2783
2784 * godump.c (go_format_type): Correct length of name added to
2785 obstack for anonymous field.
2786
2787 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
2788
2789 PR target/49186
2790 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
2791 part of the second operand is 0.
2792
2793 2011-05-30 Uros Bizjak <ubizjak@gmail.com>
2794
2795 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
2796 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
2797 to memory for !TARGET_MEMORY_MISMATCH_STALL.
2798 (*movdf_internal_rex64): Do not penalize F->r alternative.
2799 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
2800 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
2801 when optimizing function for size. Do not move CONST_DOUBLEs
2802 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
2803 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
2804 SUBREGs. Do not check for MEM_P operands in the insn condition,
2805 check for ANY_FP_REGNO_P instead.
2806 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
2807 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
2808 function for speed.
2809 * config/i386/i386.c (ix86_option_override_internal): Do not
2810 set TARGET_INTEGER_DFMODE_MOVES here.
2811
2812 2011-05-30 H.J. Lu <hongjiu.lu@intel.com>
2813
2814 PR target/49168
2815 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
2816
2817 2011-05-30 Jakub Jelinek <jakub@redhat.com>
2818
2819 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
2820 DW_TAG_rvalue_reference_type even for
2821 -gdwarf-4 -fno-debug-types-section.
2822
2823 2011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2824
2825 PR tree-optimization/46728
2826 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
2827 (build_and_insert_binop): New.
2828 (gimple_expand_builtin_pow): Reorder args for
2829 build_and_insert_call; use build_and_insert_binop; add more
2830 optimizations for fractional exponents.
2831
2832 2011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
2833
2834 PR bootstrap/49190
2835
2836 Revert:
2837 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
2838
2839 * tree.h (struct tree_identifier): Inherit from tree_typed, not
2840 tree_common.
2841 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
2842 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
2843 TS_BASE instead of TS_COMMON.
2844 * varasm.c (assemble_name): Remove assert.
2845
2846 2011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
2847
2848 * config.gcc: Keep obselete list sorted.
2849
2850 2011-05-30 Jakub Jelinek <jakub@redhat.com>
2851 Eric Botcazou <ebotcazou@adacore.com>
2852
2853 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
2854 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
2855 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
2856 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
2857 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
2858
2859 2011-05-30 Richard Guenther <rguenther@suse.de>
2860
2861 * gimple.c (gimple_types_compatible_p_1): Compare record
2862 and union type members properly.
2863
2864 2011-05-30 Richard Guenther <rguenther@suse.de>
2865
2866 PR tree-optimization/49210
2867 * ipa-split.c (split_function): Care for the case where the call
2868 result is not trivially convertible to the result holding variable.
2869
2870 2011-05-30 Richard Guenther <rguenther@suse.de>
2871
2872 PR tree-optimization/49218
2873 * tree-vrp.c (adjust_range_with_scev): Properly check whether
2874 overflow occured.
2875
2876 2011-05-30 Richard Guenther <rguenther@suse.de>
2877
2878 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
2879 New function split out from ...
2880 (forward_propagate_into_gimple_cond): ... here. Adjust.
2881 (forward_propagate_into_cond): Likewise.
2882 (forward_propagate_comparison): Also propagate into
2883 comparisons on assignment RHS. Change return value to
2884 behave similar to forward_propagate_into_cond.
2885 (tree_ssa_forward_propagate_single_use_vars): Handle
2886 strict-overflow warnings properly for forward_propagate_comparison.
2887
2888 2011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2889
2890 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
2891 from plugin linker.
2892 * configure: Regenerate.
2893
2894 2011-05-30 Ira Rosen <ira.rosen@linaro.org>
2895
2896 PR tree-optimization/49199
2897 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
2898 non-reduction operands are either defined in the loop or by induction.
2899
2900 2011-05-29 Xinliang David Li <davidxl@google.com>
2901
2902 * opts-global.c (handle_common_deferred_options): Handle new options.
2903 * passes.c (register_one_dump_file): Call register_pass_name.
2904 (execute_one_pass): Check explicit enable/disable flag.
2905 (passr_hash): New function.
2906 (passr_eq): Ditto.
2907 (register_pass_name): Ditto.
2908 (get_pass_by_name): Ditto.
2909 (pass_hash): Ditto.
2910 (pass_eq): Ditto.
2911 (enable_pass): Ditto.
2912 (disable_pass): Ditto.
2913 (is_pass_explicitly_enabled_or_disabled): Ditto.
2914
2915 2011-05-29 Uros Bizjak <ubizjak@gmail.com>
2916
2917 * config/i386/i386.md (*movoi_internal_avx): Use
2918 standard_sse_constant_opcode for alternative 0.
2919 (*movti_internal_sse): Ditto.
2920 (*movti_internal_rex64): Use standard_sse_constant_opcode for
2921 alternative 2.
2922 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
2923 sselog1 type moves.
2924 (*movsi_internal): Ditto.
2925 (*movdi_internal): Ditto. Add ssecvt type moves.
2926
2927 2011-05-29 Eric Botcazou <ebotcazou@adacore.com>
2928
2929 PR target/48830
2930 * rtlanal.c (simplify_subreg_regno): Adjust comment.
2931
2932 2011-05-29 Jakub Jelinek <jakub@redhat.com>
2933
2934 PR rtl-optimization/49095
2935 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
2936 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
2937
2938 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
2939
2940 PR target/43995
2941 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
2942 recurse_p argument. Only follow register copies if it is set,
2943 and prevent mips_find_pic_call_symbol from recursing.
2944 (mips_find_pic_call_symbol): Add a recurse_p argument.
2945 Pass it to mips_pic_call_symbol_from_set.
2946 (mips_annotate_pic_calls): Update accordingly.
2947
2948 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
2949
2950 * emit-rtl.c (try_split): Use a loop to search for
2951 NOTE_INSN_CALL_ARG_LOCATIONs.
2952
2953 2011-05-29 Richard Guenther <rguenther@suse.de>
2954
2955 PR tree-optimization/49217
2956 * ipa-pure-const.c (propagate_pure_const): Fix typos.
2957
2958 2011-05-28 Jan Hubicka <jh@suse.cz>
2959
2960 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
2961 length.
2962 (string_slot_free): Remove
2963 (create_output_block): Initialize obstack.
2964 (destroy_output_block): Free obstack.
2965 (lto_string_index): Add PERSISTENT parameter; do not duplicate
2966 the string unless it needs to be added into the hash.
2967 (lto_output_string_with_length): Add persistent attribute;
2968 handle NULL strings.
2969 (lto_output_string): Add PERSISTENT parameter.
2970 (output_string_cst, output_identifier): Simplify.
2971 (lto_output_location_bitpack): Update.
2972 (lto_output_builtin_tree): Update.
2973 * lto-streamer.h (struct output_block): Add obstack.
2974 (lto_output_string, lto_output_string_with_length): Remove
2975 declarations; functions are static now.
2976
2977 2011-05-28 Jan Hubicka <jh@suse.cz>
2978
2979 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
2980 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
2981 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
2982 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
2983 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
2984 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
2985 unpack_ts_decl_with_vis_value_fields,
2986 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
2987 lto_get_builtin_tree): Use enum and variable length i/o.
2988 * basic-block.h (profile_status_d): Add PROFILE_LAST.
2989 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
2990 New functions.
2991 (bp_pack_enum, bp_unpack_enum): New macros.
2992
2993 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
2994
2995 * genrecog.c: Remove redundant forward declarations.
2996
2997 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
2998
2999 * config.gcc: Deprecate mips*-*-openbsd*.
3000
3001 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
3002
3003 PR bootstrap/49195
3004 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
3005 for match_op_dup.
3006
3007 2011-05-27 Andrew Pinski <pinskia@gmail.com>
3008
3009 PR middle-end/48981
3010 * gengtype.c (vec_prefix_type): New function.
3011 (note_def_vec): Use vec_prefix_type and change the length
3012 attribute to be based on the prefix.
3013 * vec.c: Include coretypes.h before vec.h.
3014 (struct vec_prefix): Remove.
3015 (vec_gc_p_reserve): Change the offsetof to sizeof.
3016 (vec_gc_p_reserve_exact): Likewise.
3017 (vec_heap_p_reserve): Likewise.
3018 (vec_heap_p_reserve_exact): Likewise.
3019 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
3020 (vec_stack_p_reserve): Change the offsetof to sizeof.
3021 (vec_stack_p_reserve_exact): Likewise.
3022 * vec.h (struct vec_prefix): New struct definition.
3023 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
3024 (VEC_T_GTY(T,B)): Likewise.
3025 (DEF_VEC_FUNC_P(T)): Use prefix field.
3026 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
3027 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
3028
3029 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3030
3031 PR tree-optimization/46728
3032 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
3033 (powi_as_mults): Add gimple_set_location.
3034 (build_and_insert_call): New.
3035 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
3036 0.5, 0.25, 0.75, 1./3., or 1./6.
3037
3038 2011-05-27 Alexander Monakov <amonakov@ispras.ru>
3039
3040 * doc/contrib.texi: Update copyright years.
3041 (Contributors): Add Zdenek Sojka.
3042
3043 2011-05-27 Nathan Froyd <froydnj@codesourcery.com>
3044
3045 * c-decl.c (c_push_function_context): Copy the current statement
3046 list stack.
3047 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
3048 (finish_struct): Call building_stmt_list_p instead of checking
3049 cur_stmt_list.
3050 * c-parser.c (c_parser_postfix_expression): Likewise.
3051 * c-typeck.c (c_end_compound_stmt): Likewise.
3052 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
3053 * tree-iterator.c (stmt_list_cache): Change to a VEC.
3054 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
3055 (free_stmt_list): Likewise.
3056 * tree.h (struct tree_statement_list): Include typed_tree instead
3057 of tree_common.
3058 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
3059 as TS_TYPED instead of TS_COMMON.
3060
3061 2011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3062 Uros Bizjak <ubizjak@gmail.com>
3063
3064 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
3065 (HAVE_AS_IX86_TLSGDPTL): Define.
3066 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
3067 (HAVE_AS_IX86_TLSLDMPLT): Define.
3068 * configure: Regenerate.
3069 * config.in: Regenerate.
3070 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
3071 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
3072 TARGET_SUN_TLS, use @tlsgdplt or @plt.
3073 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
3074 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
3075 @tlsldmplt or @plt.
3076 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
3077
3078 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
3079
3080 * sched-int.h (struct _haifa_deps_insn_data): New members cond
3081 and reverse_cond.
3082 (INSN_COND, INSN_REVERSE_COND): New macros.
3083 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
3084 once.
3085 (sched_get_condition_with_rev): Cache the results, and look them up
3086 if possible.
3087 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
3088 are clobbered by the current insn.
3089 * target.def (exposed_pipline): New sched data hook.
3090 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
3091 * doc/tm.texi: Regenerate.
3092
3093 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3094
3095 PR tree-optimization/49170
3096 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
3097 sincos or cexp.
3098
3099 2011-05-27 Richard Guenther <rguenther@suse.de>
3100
3101 PR middle-end/49189
3102 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
3103 of comparisons.
3104
3105 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
3106
3107 * haifa-sched.c (sched_scan_info): Remove.
3108 (schedule_block): Call sched_extend_luids rather than sched_init_luids
3109 with NULL args.
3110 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
3111 Remove functions.
3112 (sched_scan): Remove.
3113 (sched_extend_luids): Renamed from luids_extend_insn and no longer
3114 static. All callers changed.
3115 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
3116 static. All callers changed.
3117 (sched_init_luids): Remove all arguments except the first. All
3118 callers changed. Don't use sched_scan.
3119 (haifa_init_h_i_d): Likewise.
3120 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
3121 manually rather than using sched_init_luids. Likewise with
3122 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
3123 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
3124 rather than sched_init_luids with NULL args.
3125 * sel-sched-ir.c (new_insns): Remove variable.
3126 (sched_scan): New static function, previously in haifa-sched.c. Remove
3127 all arguments but the first two; all callers changed.
3128 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
3129 rather than sched_init_luids.
3130 (sel_init_bbs): Remove second argument. All callers changed.
3131 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
3132 with NULL arguments.
3133 (create_insn_rtx_from_pattern): Likewise.
3134 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
3135 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
3136 (sched_init_insn_luid, sched_extend_luids): Declare.
3137 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
3138 declarations.
3139
3140 2011-05-27 Richard Guenther <rguenther@suse.de>
3141
3142 PR middle-end/49177
3143 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
3144 A CMP B ? (T) true : (T) false for non-integral types T again.
3145
3146 2011-05-27 Jan Hubicka <jh@suse.cz>
3147
3148 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
3149 so 0 means NULL string.
3150 (lto_output_string_with_length): ... here.
3151 (lto_output_string, output_string_cst, output_identifier): Update
3152 handling of NULL strings.
3153 (lto_output_location_bitpack): New function.
3154 (lto_output_location): Use it.
3155 (lto_output_tree_ref): Use output_record_start.
3156 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
3157 len values.
3158 * lto-streamer-in.c (string_for_index): Break out from ...; offset
3159 values by 1.
3160 (input_string_internal): ... here;
3161 (input_string_cst, input_identifier, lto_input_string): Update handling
3162 of NULL strings.
3163 (lto_input_location_bitpack): New function
3164 (lto_input_location): Use it.
3165 (unpack_ts_type_common_value_fields): Pack align & alias in var len
3166 values.
3167 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
3168 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
3169 (bp_pack_value): Sanity check the value range.
3170 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
3171 New functions.
3172 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
3173 New functions.
3174
3175 2011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
3176
3177 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
3178 call_arg_location instructions down the floor.
3179
3180 2011-05-26 Vladimir Makarov <vmakarov@redhat.com>
3181
3182 PR rtl-optimization/49154
3183 * ira.c (setup_pressure_classes): Process class without sublcasses
3184 as a candidate for pressure classes.
3185
3186 2011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
3187
3188 PR rtl-optimization/48575
3189 * genrecog.c (position_type): New enum.
3190 (position): New structure.
3191 (decision): Use position structure instead of a string.
3192 (root_pos, peep2_insn_pos_list): New variables.
3193 (next_position, compare_positions): New functions.
3194 (new_decision): Use position structures instead of strings.
3195 (maybe_both_true): Likewise.
3196 (change_state): Likewise.
3197 (write_tree): Likewise.
3198 (make_insn_sequence): Likewise.
3199
3200 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
3201
3202 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
3203 TS_BASE instead of TS_COMMON.
3204 (find_decls_types_r): Check for TS_TYPED structure before looking at
3205 TREE_TYPE.
3206 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
3207 Add chain field.
3208 (BLOCK_CHAIN): Use new chain field.
3209
3210 2011-05-26 Pat Haugen <pthaugen@us.ibm.com>
3211
3212 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
3213 moves expensive on Power7 also.
3214
3215 2011-05-26 Richard Guenther <rguenther@suse.de>
3216
3217 * fold-const.c (fold_unary_loc): Remove bogus code.
3218
3219 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
3220
3221 * tree.h (struct tree_identifier): Inherit from tree_typed, not
3222 tree_common.
3223 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
3224 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
3225 TS_BASE instead of TS_COMMON.
3226 * varasm.c (assemble_name): Remove assert.
3227
3228 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
3229
3230 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
3231 substituted first.
3232 * libgcc-std.ver: Delete file.
3233
3234 2011-05-26 Richard Guenther <rguenther@suse.de>
3235
3236 PR tree-optimization/48702
3237 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
3238 only when we know the base address is within bounds.
3239 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
3240 assume the base address of TARGET_MEM_REFs is in bounds.
3241
3242 2011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3243
3244 PR target/49099
3245 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
3246 declaration in TARGET_SOLARIS.
3247
3248 2011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
3249
3250 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
3251 The instruction is then expanded explicitly.
3252 (supported_compare): Callable instruction.
3253 (compare): Likewise.
3254
3255 2011-05-26 Jakub Jelinek <jakub@redhat.com>
3256
3257 PR c++/49165
3258 * gimplify.c (shortcut_cond_r): Don't special case
3259 COND_EXPRs if they have void type on one of their arms.
3260
3261 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
3262
3263 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
3264 to reduce duplication, and to achieve a slightly more logical order
3265 of operations.
3266
3267 2011-05-26 Jakub Jelinek <jakub@redhat.com>
3268
3269 PR tree-optimization/49161
3270 * tree-vrp.c (struct case_info): New type.
3271 (compare_case_labels): Sort case_info structs instead of
3272 trees, and not primarily by CASE_LABEL uids but by
3273 label_for_block indexes.
3274 (find_switch_asserts): Put case labels into struct case_info
3275 array instead of TREE_VEC, adjust sorting, compare label_for_block
3276 values instead of CASE_LABELs.
3277
3278 2011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3279
3280 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
3281 ("orndi3_neon"): Likewise.
3282 ("bic<mode>3_neon"): Likewise.
3283
3284 2011-05-26 Ira Rosen <ira.rosen@linaro.org>
3285
3286 PR tree-optimization/49038
3287 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
3288 Ensure at least one epilogue iteration if required by data
3289 accesses with gaps.
3290 * tree-vectorizer.h (struct _loop_vec_info): Add new field
3291 to mark loops that require peeling for gaps.
3292 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
3293 (vect_get_known_peeling_cost): Take peeling for gaps into
3294 account.
3295 (vect_transform_loop): Generate epilogue if required by data
3296 access with gaps.
3297 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
3298 loop as requiring an epilogue if there are gaps in the end of
3299 the strided group.
3300
3301 2011-05-25 Ian Lance Taylor <iant@google.com>
3302
3303 * godump.c (go_format_type): Output the first field with a usable
3304 Go type, if any.
3305
3306 2011-05-25 Ian Lance Taylor <iant@google.com>
3307
3308 * godump.c (go_format_type): Check for invalid type names, pointer
3309 target types, and struct field types.
3310
3311 2011-05-25 Jason Merrill <jason@redhat.com>
3312
3313 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
3314
3315 2011-05-25 Uros Bizjak <ubizjak@gmail.com>
3316
3317 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
3318
3319 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
3320
3321 * config/i386/i386.md (*movqi_extv_1)): Put back
3322 "register_operand" check in "type" calculation.
3323 (*movqi_extzv_2): Likewise.
3324
3325 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
3326
3327 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
3328
3329 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
3330
3331 PR bootstrap/49160
3332 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
3333 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
3334 __divxc3, __divtc3): Wrap definitions in #ifndef.
3335
3336 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
3337
3338 PR target/49142
3339 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
3340 "register_operand" check and replace q_regs_operand with
3341 QIreg_operand in "type" calculation.
3342 (*movqi_extv_1): Likewise.
3343 (*movqi_extzv_2_rex64): Likewise.
3344 (*movqi_extzv_2): Likewise.
3345
3346 * config/i386/predicates.md (QIreg_operand): New.
3347
3348 2011-05-25 Richard Guenther <rguenther@suse.de>
3349
3350 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
3351 type-based offset disambiguation, streamline MEM_REF and
3352 TARGET_MEM_REF handling.
3353
3354 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
3355
3356 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
3357 (bdesc_special_args): Add pause intrinsic.
3358
3359 * config/i386/i386.md (UNSPEC_PAUSE): New.
3360 (pause): Likewise.
3361 (*pause): Likewise.
3362 * config/i386/ia32intrin.h (__pause): Likewise.
3363
3364 * doc/extend.texi (X86 Built-in Functions): Add documentation for
3365 pause intrinsic.
3366
3367 2011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3368
3369 PR tree-optimization/46728
3370 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
3371 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
3372
3373 2011-05-25 Nathan Froyd <froydnj@codesourcery.com>
3374
3375 * tree.h (struct tree_exp): Inherit from struct tree_typed.
3376 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
3377 instead of TS_COMMON.
3378
3379 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
3380
3381 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
3382 LIBGCC2_GNU_PREFIX is defined.
3383 (__N): New macro.
3384 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
3385 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
3386 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
3387 __clz_tab): Define using __N.
3388 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
3389 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
3390 * target.def (libfunc_gnu_prefix): New hook.
3391 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
3392 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
3393 * doc/tm.texi: Regenerate.
3394 * system.h (LIBGCC2_GNU_PREFIX): Poison.
3395 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
3396 account.
3397 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
3398 (init_optabs): Likewise for the bswap libfuncs.
3399 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
3400 and divide.
3401 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
3402 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
3403 * libgcc-std.ver: Remove.
3404 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
3405 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
3406 libgcc-std.ver.
3407 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
3408 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
3409 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
3410 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
3411 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
3412 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
3413 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
3414 * config/fixed-bit.h (FIXED_OP): Define differently depending on
3415 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
3416 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
3417
3418 2011-05-25 Jan Hubicka <jh@suse.cz>
3419
3420 * lto-streamer-out.c (output_record_start): Use lto_output_enum
3421 (lto_output_tree): Use output_record_start.
3422 * lto-streamer-in.c (input_record_start): Use lto_input_enum
3423 (lto_get_pickled_tree): Use input_record_start.
3424 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
3425 (lto_value_range_error): New function.
3426 * lto-streamer.h (lto_value_range_error): Declare.
3427 (lto_output_int_in_range, lto_input_int_in_range): New functions.
3428 (lto_output_enum, lto_input_enum): New macros.
3429
3430 2011-05-25 Eric Botcazou <ebotcazou@adacore.com>
3431
3432 * common.opt (flag_stack_usage_info): New variable.
3433 (-Wstack-usage): New option.
3434 * doc/invoke.texi (Warning options): Document -Wstack-usage.
3435 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
3436 <OPT_fstack_usage>: Likewise.
3437 * toplev.c (output_stack_usage): Handle -Wstack-usage.
3438 * calls.c (expand_call): Test flag_stack_usage_info variable instead
3439 of flag_stack_usage.
3440 (emit_library_call_value_1): Likewise.
3441 * explow.c (allocate_dynamic_stack_space): Likewise.
3442 * function.c (instantiate_virtual_regs ): Likewise.
3443 (prepare_function_start): Likewise.
3444 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
3445 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
3446 * config/arm/arm.c (arm_expand_prologue): Likewise.
3447 (thumb1_expand_prologue): Likewise.
3448 * config/avr/avr.c (expand_prologue): Likewise.
3449 * config/i386/i386.c (ix86_expand_prologue): Likewise.
3450 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
3451 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
3452 * config/mips/mips.c (mips_expand_prologue): Likewise.
3453 * config/pa/pa.c (hppa_expand_prologue): Likewise.
3454 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
3455 * config/s390/s390.c (s390_emit_prologue): Likewise.
3456 * config/sh/sh.c (sh_expand_prologue): Likewise.
3457 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
3458 * config/spu/spu.c (spu_expand_prologue): Likewise.
3459
3460 2011-05-25 Richard Guenther <rguenther@suse.de>
3461
3462 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
3463 (gimple_canonical_types_compatible_p): Likewise.
3464
3465 2011-05-25 Jan Hubicka <jh@suse.cz>
3466
3467 PR middle-end/49062
3468 * ipa.c (function_and_variable_visibility): Only add to same
3469 comdat group list if DECL_ONE_ONLY.
3470
3471 2011-05-25 Andrey Belevantsev <abel@ispras.ru>
3472
3473 PR rtl-optimization/49014
3474 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
3475
3476 2011-05-25 Jakub Jelinek <jakub@redhat.com>
3477
3478 PR target/49128
3479 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
3480
3481 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
3482
3483 PR rtl-optimization/48757
3484 * ira-build.c (loop_with_eh_edge_p): Rename to
3485 loop_with_complex_edge_p, check edges on complexity, make function
3486 conditional.
3487 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
3488 conditional.
3489
3490 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
3491
3492 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
3493 force flag_ira_share_save_slots to 0.
3494
3495 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
3496
3497 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
3498 (vt_initialize): Set PROLOGUE_BB unconditionally.
3499 Add block comment about CFA_BASE_RTX machinery.
3500 Reset FP_CFA_OFFSET to -1 on all invalid paths.
3501 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
3502
3503 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
3504
3505 PR objc/48187
3506 * c-parser.c (c_parser_objc_class_instance_variables): More robust
3507 parsing of syntax error in ObjC instance variable lists. In
3508 particular, avoid an infinite loop if there is a stray ']'.
3509 Updated error message.
3510
3511 2011-05-24 Ian Lance Taylor <iant@google.com>
3512
3513 * godump.c (go_define): Don't accept a string immediately after
3514 another operand.
3515
3516 2011-05-24 Ian Lance Taylor <iant@google.com>
3517
3518 * godump.c (struct godump_container): Add invalid_hash field.
3519 (go_format_type): Return false if type is found in invalid_hash.
3520 (go_output_typedef): Add invalid type to invalid_hash.
3521 (go_finish): Create and delete invalid_hash.
3522
3523 2011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3524
3525 PR tree-optimization/46728
3526 * tree-ssa-math-opts.c (powi_table): New.
3527 (powi_lookup_cost): New.
3528 (powi_cost): New.
3529 (powi_as_mults_1): New.
3530 (powi_as_mults): New.
3531 (gimple_expand_builtin_powi): New.
3532 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
3533 (gate_cse_sincos): Remove sincos/cexp restriction.
3534
3535 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3536
3537 PR target/3746
3538 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
3539 mips-tdump native.
3540 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
3541 * mips-tdump.c: Likewise.
3542
3543 2011-05-24 H.J. Lu <hongjiu.lu@intel.com>
3544
3545 PR target/49128
3546 * config/i386/driver-i386.c (host_detect_local_cpu): Always
3547 add -mno-XXX. Handle FMA.
3548
3549 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
3550
3551 PR rtl-optimization/48633
3552 * ira-build.c (loop_with_eh_edge_p): New function.
3553 (mark_loops_for_removal): Use it.
3554
3555 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
3556
3557 PR rtl-optimization/48971
3558 * ira.c (setup_pressure_classes): Don't check register move cost
3559 for classes with one registers. Don't add pressure class if there
3560 is a pressure class with the same available hard registers.
3561 Check contains_reg_of_mode. Fix a typo in collecting
3562 temp_hard_regset. Ignore hard registers not belonging to a class.
3563
3564 2011-05-24 Uros Bizjak <ubizjak@gmail.com>
3565
3566 PR target/49133
3567 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
3568
3569 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
3570 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3571
3572 PR gcov-profile/48845
3573 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
3574
3575 2011-05-24 Richard Guenther <rguenther@suse.de>
3576
3577 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
3578 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
3579 (gimple_types_compatible_p_1): Adjust.
3580 (iterative_hash_canonical_type): Do not bother about complete vs.
3581 incomplete types.
3582 (gimple_canonical_types_compatible_p): Likewise.
3583
3584 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3585
3586 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
3587
3588 2011-05-24 Richard Guenther <rguenther@suse.de>
3589
3590 PR bootstrap/49078
3591 * gimple.c (gimple_register_canonical_type): Revert
3592 previous change.
3593 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
3594 does not for a tree for the case where it matters. Cache
3595 pointer-type alias-sets.
3596
3597 2011-05-24 Joseph Myers <joseph@codesourcery.com>
3598
3599 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
3600 (OBJS): Remove options.o, opts-common.o and prefix.o.
3601 (OBJS-libcommon-target): New.
3602 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
3603 (BACKEND): Include libcommon-target.a.
3604 (MOSTLYCLEANFILES): Include libcommon-target.a.
3605 (libcommon-target.a): New.
3606 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
3607 prefix.o.
3608
3609 2011-05-23 Joseph Myers <joseph@codesourcery.com>
3610
3611 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
3612 parts of output shared with the driver.
3613 * optc-gen.awk: Don't generate parts of output not shared with the
3614 driver.
3615 * opth-gen.awk: Remove GCC_DRIVER conditionals.
3616 * doc/options.texi (SourcerInclude): Mention options-save.c.
3617 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
3618 (OBJS): Add options-save.o.
3619 (options-save.c, options-save.o): New.
3620 (options.o): Update dependencies.
3621 (gcc-options.o): Remove.
3622 (mostlyclean): Remove options-save.c.
3623
3624 2011-05-23 Jakub Jelinek <jakub@redhat.com>
3625
3626 PR debug/49032
3627 * dbxout.c: Include cgraph.h.
3628 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
3629 and without value expr, return NULL if no varpool node exists for
3630 it or if it is not needed.
3631 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
3632
3633 PR c/49120
3634 * c-decl.c (start_decl): Convert expr to void_type_node.
3635
3636 2011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
3637
3638 PR rtl-optimization/48826
3639 * emit-rtl.c (try_split): When splitting a call that is followed
3640 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
3641
3642 2011-05-23 Jakub Jelinek <jakub@redhat.com>
3643
3644 * cfgexpand.c (expand_debug_expr): For unused non-addressable
3645 parameters passed in memory prefer using DECL_INCOMING_RTL over
3646 the pseudos it will be copied into.
3647
3648 2011-05-23 H.J. Lu <hongjiu.lu@intel.com>
3649
3650 PR target/47315
3651 * config/i386/i386.c (ix86_option_override_internal): Save the
3652 initial options after checking vzeroupper.
3653
3654 2011-05-23 David Li <davidxl@google.com>
3655
3656 PR tree-optimization/48988
3657 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
3658 Initialize has_valid_pred for each pred chain.
3659
3660 2011-05-23 Richard Guenther <rguenther@suse.de>
3661
3662 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
3663 (iterative_hash_gimple_type): Always hash type names.
3664
3665 2011-05-23 Nathan Froyd <froydnj@codesourcery.com>
3666
3667 * c-typeck.c (build_function_call_vec): Tweak call to
3668 check_function_arguments.
3669
3670 2011-05-23 Richard Guenther <rguenther@suse.de>
3671
3672 PR tree-optimization/49115
3673 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
3674 is not necessarily carried out, do not claim it kills the ref.
3675 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
3676
3677 2011-05-23 Richard Guenther <rguenther@suse.de>
3678
3679 PR middle-end/15419
3680 * builtins.c (fold_builtin_memory_op): Be less restrictive about
3681 what pointer types we accept for folding.
3682
3683 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3684
3685 * gthr-gnat.c: Remove.
3686 * gthr-gnat.h: Remove.
3687 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
3688 * config/t-freebsd (LIB2ADDEH): Likewise.
3689 * config/t-linux (LIB2ADDEH): Likewise.
3690 * config/t-sol2 (LIB2ADDEH): Likewise.
3691 * config/ia64/t-vms (LIB2ADDEH): Likewise.
3692 * configure.ac (target_thread_file): Remove gnat handling.
3693 * configure: Regenerate.
3694 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
3695
3696 2011-05-23 Tristan Gingold <gingold@adacore.com>
3697 Eric Botcazou <ebotcazou@adacore.com>
3698
3699 * gcov.c (create_file_names): If no object directory is specified,
3700 keep the directory of the file.
3701
3702 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3703
3704 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
3705 * configure: Regenerate.
3706
3707 2011-05-23 Jakub Jelinek <jakub@redhat.com>
3708
3709 PR middle-end/48973
3710 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
3711 failed and the comparison has a single bit signed type, use
3712 constm1_rtx instead of const1_rtx for true value.
3713 (do_store_flag): If ops->type is single bit signed type, disable
3714 signel bit test optimization and pass -1 instead of 1 as last
3715 parameter to emit_store_flag_force.
3716
3717 2011-05-23 Tom de Vries <tom@codesourcery.com>
3718
3719 PR target/45098
3720 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
3721 function.
3722 (infer_loop_bounds_from_undefined): Use new function.
3723
3724 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
3725
3726 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
3727 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
3728 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
3729 and -O0 otherwise.
3730 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
3731
3732 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
3733
3734 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
3735 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
3736 returns true.
3737
3738 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
3739
3740 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
3741
3742 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
3743
3744 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
3745 UNSPEC_MOVE_PIC pattern.
3746
3747 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
3748
3749 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
3750 (sparc-*-rtems*): Likewise.
3751 (sparc64-*-elf*): Likewise.
3752 (sparc64-*-rtems*): Likewise.
3753 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
3754 * config/sparc/t-crtin: New file.
3755 * config/sparc/t-sol2 (crti.o): Delete rule.
3756 (crtn.o): Likewise.
3757 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
3758 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
3759 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
3760 (ENDFILE_SPEC): Add crtn.o.
3761
3762 2011-05-22 Tom de Vries <tom@codesourcery.com>
3763
3764 PR middle-end/48689
3765 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
3766 CODE_CONTAINS_STRUCT (TS_COMMON).
3767
3768 2011-05-22 Jakub Jelinek <jakub@redhat.com>
3769
3770 PR middle-end/49029
3771 * expmed.c (extract_fixed_bit_field): Test whether target can be used
3772 only after deciding which mode to use.
3773
3774 2011-05-22 Tom de Vries <tom@codesourcery.com>
3775
3776 PR target/45098
3777 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
3778 for call to get_shiftadd_cost.
3779
3780 2011-05-22 Uros Bizjak <ubizjak@gmail.com>
3781
3782 PR target/49104
3783 * config/i386/cpuid.h (bit_MMXEXT): New define.
3784
3785 2011-05-22 Nick Clifton <nickc@redhat.com>
3786
3787 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
3788 initialisation of non-existant args[2] element. Use args[] array
3789 not arg[] array to pass arguments to build_function_type_list.
3790
3791 2011-05-22 Ira Rosen <ira.rosen@linaro.org>
3792
3793 PR tree-optimization/49087
3794 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
3795
3796 2011-05-21 Jason Merrill <jason@redhat.com>
3797
3798 PR c++/49092
3799 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
3800 static storage duration.
3801
3802 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
3803
3804 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
3805 frame pointer.
3806
3807 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
3808
3809 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
3810 false if there are call-saved registers here...
3811 (sparc_can_use_return_insn_p): ...but here instead.
3812 (save_or_restore_regs): Fix thinko.
3813 (sparc_expand_prologue): Use current_function_is_leaf.
3814 (sparc_frame_pointer_required): Likewise.
3815
3816 2011-05-21 Nick Clifton <nickc@redhat.com>
3817
3818 PR target/49098
3819 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
3820
3821 2011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
3822
3823 * gengtype.c (walk_type): Implemented "atomic" GTY option.
3824 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
3825
3826 2011-05-21 Joseph Myers <joseph@codesourcery.com>
3827
3828 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
3829 * optc-gen.awk: Move common code to opt-read.awk.
3830 * opth-gen.awk: Likewise.
3831 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
3832
3833 2011-05-20 Nathan Froyd <froydnj@codesourcery.com>
3834
3835 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
3836
3837 2011-05-20 Tom de Vries <tom@codesourcery.com>
3838
3839 PR target/45098
3840 * tree-ssa-loop-ivopts.c: Include expmed.h.
3841 (get_shiftadd_cost): New function.
3842 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
3843
3844 2011-05-20 Jakub Jelinek <jakub@redhat.com>
3845
3846 PR bootstrap/49086
3847 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
3848 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
3849
3850 2011-05-20 Joseph Myers <joseph@codesourcery.com>
3851
3852 * Makefile.in: Update comment referring to $(OBJS-common).
3853
3854 2011-05-20 Ian Lance Taylor <iant@google.com>
3855
3856 * godump.c (go_output_typedef): Put enum constants in the macro
3857 hash table to avoid duplicate Go const definitions.
3858
3859 2011-05-20 Joseph Myers <joseph@codesourcery.com>
3860
3861 * Makefile.in (LIBDEPS): Add libcommon.a.
3862 (LIBS): Likewise.
3863 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
3864 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
3865 pretty-print.o and version.o.
3866 (OBJS-libcommon): New.
3867 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
3868 (BACKEND): Add libcommon.a.
3869 (MOSTLYCLEANFILES): Likewise.
3870 (libcommon.a): New.
3871 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
3872 (cpp$(exeext)): Likewise.
3873 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
3874 pretty-print.o and input.o.
3875 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
3876 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
3877 (errors.o): Remove.
3878 (mips-tfile): Don't explicitly use version.o.
3879 (mips-tdump): Likewise.
3880 (gcov.o): Depend on $(DIAGNOSTIC_H).
3881 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
3882 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
3883 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
3884 * gcov-dump.c: Include intl.h and diagnostic.h.
3885 (main): Initialize diagnostics.
3886 * gcov.c: Include diagnostic.h.
3887 (fnotice): Remove.
3888 (main): Initialize diagnostics.
3889 * lto-wrapper.c: Include diagnostic.h.
3890 (main): Initialize diagnostics.
3891
3892 2011-05-20 Michael Matz <matz@suse.de>
3893
3894 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
3895
3896 2011-05-20 Michael Matz <matz@suse.de>
3897 Richard Guenther <rguenther@suse.de>
3898
3899 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
3900 use lto_streamer_cache_append directly instead of returning a VEC.
3901 (preload_common_node): Remove.
3902 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
3903 track seen nodes.
3904 (lto_streamer_cache_create): Call lto_preload_common_nodes.
3905
3906 2011-05-20 Richard Guenther <rguenther@suse.de>
3907
3908 PR tree-optimization/49079
3909 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
3910 MEM_REFs correctly for the trailing array access detection.
3911 Special case constants the same way as decls for overall size
3912 constraining.
3913
3914 2011-05-20 Uros Bizjak <ubizjak@gmail.com>
3915
3916 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
3917 argument expansion.
3918
3919 2011-05-20 Jakub Jelinek <jakub@redhat.com>
3920
3921 PR tree-optimization/49073
3922 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
3923 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
3924 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
3925
3926 2011-05-20 Richard Guenther <rguenther@suse.de>
3927
3928 PR middle-end/48849
3929 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
3930 of pointer types the same way the middle-end does.
3931
3932 2011-05-20 Richard Guenther <rguenther@suse.de>
3933
3934 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
3935 or pointer-to chains. Delay all fixup to uniquify_nodes.
3936
3937 2011-05-19 Quentin Neill <quentin.neill@amd.com>
3938
3939 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
3940 (fma4_fmaddsub): Likewise
3941
3942 2011-05-19 Jan Hubicka <jh@suse.cz>
3943
3944 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
3945 (GIMPLE_TYPE_PAIR_SIZE): New macro.
3946 (type_pair_cache): New static var.
3947 (lookup_type_pair): Use fixed sized custom hash; make inline.
3948 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
3949 calls of lookup_type_pair.
3950 (print_gimple_types_stats): Remove cache stats.
3951 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
3952 and gtc_ob.
3953
3954 2011-05-19 Uros Bizjak <ubizjak@gmail.com>
3955
3956 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
3957 when TARGET_RDRND is active.
3958 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
3959 Generate dummy SImode target register when target is NULL.
3960
3961 2011-05-19 Joseph Myers <joseph@codesourcery.com>
3962
3963 * config/arm/arm-fpus.def: New.
3964 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
3965 arm-fpus.def.
3966 * config/arm/arm-tables.opt: Regenerate.
3967 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
3968 (arm_option_override): Don't decode FPU name to string here.
3969 * config/arm/arm.opt (mfpu=): Use Enum.
3970 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
3971 Update dependencies.
3972
3973 2011-05-19 Joseph Myers <joseph@codesourcery.com>
3974
3975 * collect2.c: Include diagnostic.h.
3976 (fatal_perror, fatal, error, fancy_abort): Remove.
3977 (main): Set progname. Call xmalloc_set_program_name and
3978 diagnostic_initialize.
3979 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
3980 scan_libraries, resolve_lib_name): Call fatal_error instead of
3981 fatal and fatal_perror.
3982 * collect2.h (error, fatal, fatal_perror): Don't declare.
3983 * tlink.c: Include diagnostic-core.h.
3984 (recompile_files): Call fatal_error instead of fatal_perror.
3985 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
3986 pretty-print.o and input.o.
3987 (collect2.o, tlink.o): Update dependencies.
3988
3989 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3990
3991 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
3992
3993 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3994
3995 PR target/40483
3996 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
3997 COMDAT group syntax, both SPARC and x86 variants.
3998 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
3999 * configure: Regenerate.
4000 * config/sol2.h (TARGET_SOLARIS): Define.
4001 (PUSHSECTION_FORMAT): Remove.
4002 (SECTION_NAME_FORMAT): Define.
4003 * config/sol2.c: Include hashtab.h.
4004 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
4005 expansion, using SECTION_NAME_FORMAT.
4006 (solaris_comdat_htab): New variable.
4007 (struct comdat_entry): Define.
4008 (comdat_hash): New function.
4009 (comdat_eq): New function.
4010 (solaris_elf_asm_comdat_section): New function.
4011 (solaris_define_comdat_signature): New function.
4012 (solaris_code_end): New function.
4013 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
4014 (solaris_code_end): Declare.
4015 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
4016 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
4017 solaris_code_end.
4018 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
4019 Remove ATTRIBUTE_UNUSED.
4020 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
4021 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
4022 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
4023 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
4024 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
4025 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
4026 (PUSHSECTION_FORMAT): Remove.
4027 (SECTION_NAME_FORMAT): Redefine.
4028
4029 2011-05-19 Kai Tietz <ktietz@redhat.com>
4030
4031 * tree-cfg.c (verify_gimple_assign_binary): Barf on
4032 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
4033 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
4034
4035 2011-05-19 Anatoly Sokolov <aesok@post.ru>
4036 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4037
4038 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
4039
4040 2011-05-19 Richard Guenther <rguenther@suse.de>
4041
4042 PR middle-end/48985
4043 * tree-object-size.c (addr_object_size): If the pointed-to
4044 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
4045
4046 2011-05-19 Richard Guenther <rguenther@suse.de>
4047
4048 * gimple.c (gimple_types_compatible_p_1): Compare names of
4049 the types themselves.
4050 (iterative_hash_gimple_type): And hash them that way.
4051 (gimple_register_type_1): If we register a main variant properly
4052 initialize the leader to ourselves.
4053
4054 2011-05-19 Tom de Vries <tom@codesourcery.com>
4055
4056 PR target/45098
4057 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
4058 get_loop_invariant_expr_id.
4059 (get_loop_invariant_expr_id): Use get_expr_id.
4060 (parm_decl_cost): New function.
4061 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
4062 Improve bound cost estimation. Use different inv_expr_id for elim and
4063 express cases.
4064
4065 2011-05-19 Tom de Vries <tom@codesourcery.com>
4066
4067 PR target/45098
4068 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
4069 cost_base.cost == 0.
4070
4071 2011-05-18 H.J. Lu <hongjiu.lu@intel.com>
4072
4073 PR target/49002
4074 * config/i386/sse.md
4075 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
4076 load cast.
4077
4078 2011-05-18 Jakub Jelinek <jakub@redhat.com>
4079
4080 PR tree-optimization/49039
4081 * tree-vrp.c (extract_range_from_binary_expr): For
4082 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
4083 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
4084
4085 2011-05-18 Tom de Vries <tom@codesourcery.com>
4086
4087 PR target/45098
4088 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
4089
4090 2011-05-18 Uros Bizjak <ubizjak@gmail.com>
4091
4092 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
4093 (*tls_global_dynamic_64): Ditto.
4094 (*tls_local_dynamic_base_32_gnu): Ditto.
4095 (*tls_local_dynamic_base_64): Ditto.
4096 (tls_initial_exec_64_sun): Ditto.
4097
4098 2011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
4099
4100 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
4101 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
4102 bf592-none.
4103 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
4104 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
4105 * config/bfin/bfin.c (bfin_cpus): Add bf592.
4106 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
4107 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
4108 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
4109 * config/bfin/elf.h (LIB_SPEC): Add bf592.
4110
4111 2011-05-18 Joseph Myers <joseph@codesourcery.com>
4112
4113 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
4114 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
4115 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
4116 target_thread_pointer, arm_structure_size_boundary, struct
4117 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
4118 struct abi_name, arm_all_abis): Remove.
4119 (arm_option_override) Don't process most enumerated option values here.
4120 Don't process target_fpe_name here. Work with integer not string for
4121 structure size boundary; use separate diagnostics for each case.
4122 * config/arm/arm.h (enum float_abi_type, enum
4123 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
4124 to arm-opts.h.
4125 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
4126 arm_structure_size_boundary): Remove.
4127 * config/arm/arm.opt (mabi=): Use Enum and Init.
4128 (arm_abi_type): New Enum and EnumValue entries.
4129 (mfloat-abi=): Use Enum and Init.
4130 (float_abi_type): New Enum and EnumValue entries.
4131 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
4132 (mfp16-format=): Use Enum and Init.
4133 (arm_fp16_format_type): New Enum and EnumValue entries.
4134 (mstructure-size-boundary=): Use UInteger and Init.
4135 (mtp=): Use Enum and Init.
4136 (arm_tp_type): New Enum and EnumValue entries.
4137
4138 2011-05-18 Richard Guenther <rguenther@suse.de>
4139
4140 PR tree-optimization/49018
4141 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
4142 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
4143 gimple_has_side_effects.
4144
4145 2011-05-18 Richard Guenther <rguenther@suse.de>
4146
4147 * gimple.c (gimple_register_type_1): New function, split out from ...
4148 (gimple_register_type): ... here. Avoid infinite recursion.
4149
4150 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
4151
4152 PR tree-optimization/41881
4153 * tree-vectorizer.h (struct _loop_vec_info): Add new field
4154 reduction_chains along with a macro for its access.
4155 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
4156 (destroy_loop_vec_info): Free reduction chains.
4157 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
4158 (vect_is_slp_reduction): New function.
4159 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
4160 (vect_create_epilog_for_reduction): Support SLP reduction chains.
4161 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
4162 definition types for reduction chains.
4163 (vect_supported_load_permutation_p): Don't allow permutations for
4164 reduction chains.
4165 (vect_analyze_slp_instance): Support reduction chains.
4166 (vect_analyze_slp): Try to build SLP instance from reduction chains.
4167 (vect_get_constant_vectors): Handle reduction chains.
4168 (vect_schedule_slp_instance): Mark the first statement of the
4169 reduction chain as reduction.
4170
4171 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
4172
4173 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
4174 names for group elements access.
4175 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
4176 reduction chains as well. Remove data reference and interleaving
4177 related words from the fields names.
4178 * tree-vect-loop.c (vect_transform_loop): Use new names for group
4179 elements access.
4180 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
4181 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
4182 vect_update_interleaving_chain, vect_same_range_drs,
4183 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
4184 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
4185 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
4186 vect_analyze_group_access, vect_analyze_data_ref_access,
4187 vect_create_data_ref_ptr, vect_transform_strided_load,
4188 vect_record_strided_load_vectors): Likewise.
4189 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
4190 vect_model_load_cost, vectorizable_store, vectorizable_load,
4191 vect_remove_stores, new_stmt_vec_info): Likewise.
4192 * tree-vect-slp.c (vect_build_slp_tree,
4193 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
4194
4195 2011-05-18 Richard Guenther <rguenther@suse.de>
4196
4197 PR middle-end/48989
4198 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
4199 operand verification.
4200 (verify_gimple_assign_binary): Likewise.
4201 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
4202 to non-1-precision BOOLEAN_TYPEs.
4203
4204 2011-05-18 Tom de Vries <tom@codesourcery.com>
4205
4206 PR target/45098
4207 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
4208
4209 2011-05-18 Jakub Jelinek <jakub@redhat.com>
4210
4211 PR tree-optimization/49000
4212 * tree-ssa.c (execute_update_addresses_taken): Call
4213 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
4214 be rewritten and decl has been marked for renaming, reset
4215 the debug stmt.
4216
4217 2011-05-17 Joseph Myers <joseph@codesourcery.com>
4218
4219 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
4220 enum_opts_set when testing if attributes have set -mfpmath=.
4221
4222 2011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
4223
4224 * config/mips/mips.c (mips_handle_option): Remove unused variable.
4225
4226 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
4227
4228 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
4229 info->entry with 0
4230 * tree-inline.c (maybe_inline_call_in_expr): Initialize
4231 id.transform_lang_insert_block with NULL.
4232
4233 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
4234
4235 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
4236 (output_fp_compare): Change args 3 and 4 to bool.
4237 (ix86_expand_call): Change arg 6 to bool.
4238 (ix86_attr_length_immediate_default): Change arg 2 to bool.
4239 (ix86_attr_length_vex_default): Change arg 3 to bool.
4240 * config/i386/i386.md: Update all uses.
4241 * config/i386/i386.c: Ditto.
4242 (ix86_flags_dependent): Change return type to bool.
4243
4244 2011-05-17 Richard Guenther <rguenther@suse.de>
4245
4246 * gimple.c (type_hash_pair_compare): Fix comparison.
4247
4248 2011-05-17 Richard Guenther <rguenther@suse.de>
4249
4250 * gimple.c (iterative_hash_gimple_type): Simplify singleton
4251 case some more, fix final hash value of the non-singleton case.
4252
4253 2011-05-17 Richard Guenther <rguenther@suse.de>
4254
4255 PR bootstrap/49013
4256 Revert
4257 2011-05-16 Richard Guenther <rguenther@suse.de>
4258
4259 * gimple.c (gimple_types_compatible_p_1): Use names of the
4260 type itself, not its main variant.
4261 (iterative_hash_gimple_type): Likewise.
4262
4263 2011-05-17 Richard Guenther <rguenther@suse.de>
4264
4265 * gimple.c (gimple_register_canonical_type): Use the main-variant
4266 leader for computing the canonical type.
4267
4268 2011-05-17 Nick Clifton <nickc@redhat.com>
4269
4270 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
4271 moves.
4272
4273 * config/rx/rx.md: Add peephole to remove redundant extensions
4274 after loads.
4275 (bitset_in_memory): Use rx_restricted_mem_operand.
4276 (bitinvert_in_memory): Likewise.
4277 (bitclr_in_memory): Likewise.
4278
4279 2011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
4280 Nick Clifton <nickc@redhat.com>
4281
4282 * config/rx/rx.md: Add peepholes to match a register move followed
4283 by a comparison of the moved register. Replace these with an
4284 addition of zero that does both actions in one instruction.
4285
4286 2011-05-17 Jakub Jelinek <jakub@redhat.com>
4287
4288 PR target/48986
4289 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
4290 predicate to allow CONST_INT.
4291 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
4292
4293 2011-05-16 Joseph Myers <joseph@codesourcery.com>
4294
4295 * opts-common.c (opt_enum_arg_to_value): New.
4296 * opts.h (opt_enum_arg_to_value): Declare.
4297 * config/i386/i386.opt (fpmath): Remove.
4298 (mfpmath=): Use Enum, Init and Save.
4299 (fpmath_unit): New Enum and EnumValue entries.
4300 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
4301 name for function fpmath state.
4302 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
4303 * config/i386/i386.c: Include diagnostic.h.
4304 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
4305 (ix86_target_string): Take enum fpmath_unit value instead of string.
4306 (ix86_debug_options): Update call to ix86_target_string.
4307 (ix86_option_override_internal): Don't process fpmath strings here.
4308 (x86_function_specific_save, ix86_function_specific_restore):
4309 Don't handle fpmath state specially.
4310 (ix86_function_specific_print): Pass fpmath state to
4311 ix86_target_string instead of printing in this function.
4312 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
4313 Handle enum attributes.
4314 (IX86_ATTR_ENUM, ix86_opt_enum): New.
4315 (ix86_valid_target_attribute_tree): Update option_strings
4316 handling. Handle fpmath as enum option.
4317 (ix86_can_inline_p): Update field names for function fpmath state.
4318 (ix86_expand_builtin): Update call to ix86_target_string.
4319 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
4320 (ix86_fpmath): Remove.
4321 * config/i386/t-i386 (i386.o): Update dependencies.
4322
4323 2011-05-16 Joseph Myers <joseph@codesourcery.com>
4324
4325 PR preprocessor/48677
4326 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
4327 from decoded_options[0], not from itself.
4328
4329 2011-05-16 Uros Bizjak <ubizjak@gmail.com>
4330
4331 * config/i386/constraints.md (z): New constraint.
4332 * config/i386/i386.c (c): New mode attribute.
4333 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
4334 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
4335 constraint for operand 0.
4336 (*call_vzeroupper): Ditto.
4337 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
4338 (*call_rex64_ms_sysv_vzeroupper): Ditto.
4339 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
4340 Use "lzm" constraint for operand 0.
4341 (*call_pop_vzeroupper): Ditto.
4342 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
4343 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
4344 constraint for operand 0.
4345 (*sibcall_vzeroupper): Ditto.
4346 (*sibcall_rex64_ms_sysv): Ditto.
4347 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
4348 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
4349 *sibcall_pop_1. Use "Uz" constraint for operand 0.
4350 (*sibcall_pop_vzeroupper): Ditto.
4351 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
4352 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
4353 mode iterator. Use "<c>zm" constraint for operand 1.
4354 (*call_value_vzeroupper): Ditto.
4355 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
4356 for operand 1.
4357 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
4358 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
4359 *call_value_pop_1. Use "lzm" constraint for operand 1.
4360 (*call_value_pop_vzeroupper): Ditto.
4361 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
4362 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
4363 mode iterator. Use "Uz" constraint for operand 1.
4364 (*sibcall_value_vzeroupper): Ditto.
4365 (*sibcall_value_rex64_ms_sysv): Ditto.
4366 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
4367 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
4368 constraint for operand 1.
4369 (*sibcall_value_pop_vzeroupper): Ditto.
4370 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
4371 and "z" constraint for operand 2.
4372 (*tls_global_dynamic_32_gnu): Ditto.
4373 (*tls_local_dynamic_base_32_gnu): Ditto.
4374 (*tls_local_dynamic_base_64): Ditto.
4375 (*tls_local_dynamic_32_once): Ditto.
4376 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
4377 Update all callers.
4378 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
4379
4380 2011-05-16 Richard Guenther <rguenther@suse.de>
4381
4382 * gimple.c (gimple_types_compatible_p_1): Use names of the
4383 type itself, not its main variant.
4384 (iterative_hash_gimple_type): Likewise.
4385
4386 2011-05-16 Richard Guenther <rguenther@suse.de>
4387
4388 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
4389 always visit pointer target and function result and argument types.
4390
4391 2011-05-16 Jason Merrill <jason@redhat.com>
4392
4393 PR c++/48999
4394 * tree-inline.c (copy_statement_list): Put back recursion.
4395
4396 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
4397
4398 PR target/27663
4399 PR target/41076
4400 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
4401 * config/avr/avr.md ("*ior<mode>qi.byte0",
4402 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
4403
4404 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
4405
4406 PR target/45099
4407 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
4408 register is needed for a function argument.
4409
4410 2011-05-16 Richard Guenther <rguenther@suse.de>
4411
4412 * gimple.c (struct type_hash_pair): New type.
4413 (type_hash_pair_compare): New function.
4414 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
4415
4416 2011-05-16 Revital Eres <revital.eres@linaro.org>
4417
4418 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
4419
4420 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
4421
4422 * config/i386/i386.md (floating point move splitters): Fix
4423 usage of standard_80387_constant_p.
4424 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
4425
4426 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
4427
4428 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
4429
4430 2011-05-14 Eric Botcazou <ebotcazou@adacore.com>
4431
4432 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
4433 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
4434 (tree_ssa_lim_finalize): Likewise.
4435
4436 2011-05-14 Uros Bizjak <ubizjak@gmail.com>
4437
4438 * config/i386/constraint.md (Yd, Yx): New register constraints.
4439 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
4440 Yd conditional register constraint.
4441 (*movtf_internal): Use standard_sse_constant_opcode.
4442 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
4443 Yx conditional register constraint.
4444 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
4445 Yd conditional register constraint. Use standard_sse_constant_p to
4446 check for valid SSE constants and call standard_sse_constant_opcode to
4447 output SSE insn.
4448 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
4449 constants and call standard_sse_constant_opcode to output SSE insn.
4450 * config/i386/i386.c (ix86_option_ovverride_internal): Set
4451 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
4452 optimize_size is set.
4453 (standard_sse_constant_opcode): Output conditional AVX insn templates.
4454
4455 2011-05-14 Tobias Burnus <burnus@net-b.de>
4456
4457 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
4458
4459 2011-05-13 Martin Jambor <mjambor@suse.cz>
4460
4461 * ipa-prop.c (ipa_cst_from_jfunc): New function.
4462 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
4463 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
4464 (evaluate_conditions_for_ipcp_clone): Removed.
4465 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
4466 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
4467 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
4468
4469 2011-05-13 Eric Botcazou <ebotcazou@adacore.com>
4470
4471 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
4472 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
4473 lieu of MAY_HAVE_DEBUG_STMTS.
4474 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
4475 debug statements if !MAY_HAVE_DEBUG_STMTS.
4476
4477 2011-05-13 Martin Thuresson <martint@google.com>
4478
4479 PR gcov-profile/47793
4480 * libgcov.c (gcov_exit): Support relative profile paths.
4481 * doc/invoke.texi (-fprofile-dir): Update for above change.
4482
4483 2011-05-13 Richard Guenther <rguenther@suse.de>
4484
4485 * gimple.c (gimple_canonical_types_compatible_p): Do not use
4486 type-pair caching, do not compare hashes.
4487
4488 2011-05-13 Nathan Froyd <froydnj@codesourcery.com>
4489
4490 PR middle-end/48965
4491 * tree-cfg.c (edge_to_cases_cleanup): Return true.
4492 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
4493
4494 2011-05-13 Kai Tietz <ktietz@redhat.com>
4495
4496 * gimplify.c (gimplify_expr): Make sure operand is boolified.
4497 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
4498 compatible type for TRUTH_NOT_EXPR.
4499
4500 2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
4501
4502 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
4503 (ix86_hard_regno_mode_ok): Change return value to bool. Use
4504 can_create_pseudo_p ().
4505
4506 2011-05-13 Richard Guenther <rguenther@suse.de>
4507
4508 PR lto/48978
4509 * gimple.c (iterative_hash_gimple_type): Revert change in
4510 pointer target and function result and argument hashing.
4511
4512 2011-05-13 Uros Bizjak <ubizjak@gmail.com>
4513
4514 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
4515 (*movxf_internal_nointeger): Ditto.
4516 (*movdf_internal_rex64): Ditto.
4517 (*movdf_internal): Ditto.
4518 (*movdf_internal_nointeger): Ditto.
4519 (*movsf_internal): Ditto.
4520 (sincos splitters): Use can_create_pseudo ().
4521
4522 2011-05-13 Joseph Myers <joseph@codesourcery.com>
4523
4524 * config/i386/i386-opts.h: New.
4525 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
4526 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
4527 ix86_section_threshold): Remove.
4528 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
4529 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
4530 OPT_mbranch_cost_.
4531 (ix86_option_override_internal): Don't decode strings for options
4532 other than -march=, -mtune= and -mfpmath=. Don't allow for
4533 __attribute__ uses in remaining diagnostics for options with
4534 string arguments. Don't check for integer arguments being negative.
4535 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
4536 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
4537 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
4538 ix86_branch_cost, ix86_section_threshold): Remove.
4539 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
4540 HeaderInclude.
4541 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
4542 but not Var.
4543 (masm=): Use Enum and Init.
4544 (asm_dialect): New Enum and EnumValue entries.
4545 (mbranch-cost=): Use UInteger.
4546 (mlarge-data-threshold=): Use UInteger and Init.
4547 (mcmodel=): Use Enum and Init.
4548 (cmodel): New Enum and EnumValue entries.
4549 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
4550 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
4551 mregparm=): Use UInteger.
4552 (mstringop-strategy=): Use Enum and Init.
4553 (stringop_alg): New Enum and EnumValue entries.
4554 (mtls-dialect=): Use Enum and Init.
4555 (tls_dialect): New Enum and EnumValue entries.
4556 (mabi=): Use Enum and Init.
4557 (calling_abi): New Enum and EnumValue entries.
4558 (mveclibabi=): Use Enum and Init.
4559 (ix86_veclibabi): New Enum and EnumValue entries.
4560
4561 2011-05-13 Nick Clifton <nickc@redhat.com>
4562
4563 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
4564 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
4565
4566 2011-05-13 Kai Tietz <ktietz@redhat.com>
4567
4568 PR middle-end/48984
4569 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
4570 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
4571 (gimple_boolify): Check for cast for boolean_type_node instead for
4572 BOOLEAN_TYPE.
4573
4574 2011-05-13 Richard Guenther <rguenther@suse.de>
4575
4576 PR tree-optimization/48172
4577 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
4578 multiplying by number of iterations for equal step.
4579 (vect_create_cond_for_alias_checks): Likewise.
4580
4581 2011-05-13 Andreas Schwab <schwab@redhat.com>
4582
4583 * configure.ac: Use AS_HELP_STRING throughout.
4584 * configure: Regenerate.
4585
4586 2011-05-12 H.J. Lu <hongjiu.lu@intel.com>
4587
4588 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
4589 (ix86_emit_restore_regs_using_mov): Likewise.
4590 (ix86_emit_restore_sse_regs_using_mov): Likewise.
4591
4592 2011-05-12 Anatoly Sokolov <aesok@post.ru>
4593
4594 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
4595 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
4596 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
4597 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
4598 RTX_OK_FOR_OLO10_P): ...here.
4599 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
4600 SYMBOLIC_CONST.
4601
4602 2011-05-12 Kai Tietz <ktietz@redhat.com>
4603
4604 * gimplify.c (gimple_boolify): Re-boolify expression
4605 arguments even if expression type is of kind BOOLEAN_TYPE.
4606 (gimplify_boolean_expr): Removed.
4607 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
4608 and XOR. Additional take care that we keep expression's type.
4609 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
4610 of TRUTH_AND|OR|XOR_EXPR.
4611
4612 2011-05-12 Jakub Jelinek <jakub@redhat.com>
4613
4614 PR tree-optimization/48975
4615 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
4616 on all bbs here and free and clear ifc_bbs at the end.
4617
4618 2011-05-12 Richard Guenther <rguenther@suse.de>
4619
4620 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
4621 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
4622 until after simple checks.
4623 (gimple_types_compatible_p): Likewise.
4624 (iterative_hash_gimple_type): Always hash pointer targets
4625 and function return and argument types.
4626 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
4627 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
4628 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
4629 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
4630 completely in the simple compare section.
4631 (gimple_register_canonical_type): Query the cache again after
4632 registering.
4633
4634 2011-05-12 Richard Guenther <rguenther@suse.de>
4635
4636 PR tree-optimization/48172
4637 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
4638 the number of iterations from the segment size calculation.
4639 (vect_create_cond_for_alias_checks): Adjust.
4640
4641 2011-05-12 Jakub Jelinek <jakub@redhat.com>
4642
4643 PR debug/48967
4644 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
4645 if validate_subreg fails.
4646
4647 2011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
4648
4649 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
4650 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
4651 early.
4652
4653 2011-05-12 DJ Delorie <dj@redhat.com>
4654
4655 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
4656 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
4657 created builtin into rx_builtins array.
4658 (rx_builtin_decl): New function.
4659 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
4660
4661 2011-05-12 DJ Delorie <dj@redhat.com>
4662 Nick Clifton <nickc@redhat.com>
4663
4664 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
4665 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
4666 (rx_is_legitimate_address): Add pre-decrement and post-increment
4667 addressing in HImode and QImode. Fix test for out of range
4668 REG+INT addressing.
4669 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
4670 (rx_align_for_label): Test label before extracting its usage count.
4671 (rx_adjust_insn_lengths): Fix selection of insn codes.
4672 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
4673
4674 2011-05-11 Jason Merrill <jason@redhat.com>
4675
4676 * tree.c (type_hash_canon): Use struct tree_type_non_common.
4677
4678 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
4679
4680 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
4681 reindent the subsequent block.
4682
4683 2011-05-11 Satoru Takabayashi <satorux@google.com>
4684 Paul Pluzhnikov <ppluzhnikov@google.com>
4685
4686 * doc/install.texi (Configuration): Document --with-linker-hash-style.
4687 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
4688 * config.in: Add LINKER_HASH_STYLE.
4689 * configure.ac: Add --with-linker-hash-style.
4690 * configure: Regenerate.
4691
4692 2011-05-11 Richard Guenther <rguenther@suse.de>
4693
4694 PR middle-end/48964
4695 * gimple.c (iterative_hash_canonical_type): Fix typo.
4696
4697 2011-05-11 Uros Bizjak <ubizjak@gmail.com>
4698
4699 * config/i386/i386.c (legitimize_tls_address)
4700 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
4701 expanders directly for TARGET_GNU2_TLS. Determine pic and
4702 __tls_get_addr symbol reference here. Update call to
4703 gen_tls_global_dynamic_{32,64} for added arguments.
4704 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
4705 expanders directly for TARGET_GNU2_TLS. Determine
4706 __tls_get_addr symbol reference here. Update call to
4707 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
4708 unique UNSPEC REG_EQUIV to libcall block.
4709 (ix86_tls_get_addr): Declare static.
4710 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
4711 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
4712 Do not determine pic and __tls_get_addr symbol reference here. Do not
4713 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
4714 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
4715 (tls_global_dynamic_64): Add operand 2. Do not determine
4716 __tls_get_addr symbol reference here. Do not call
4717 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
4718 (tls_local_dynamic_base64): Ditto for operand 1.
4719
4720 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
4721
4722 * function.c (expand_function_start): Initialize stack_check_probe_note
4723 only if the generic stack checking mechanism is used.
4724
4725 2011-05-11 Richard Guenther <rguenther@suse.de>
4726
4727 PR tree-optimization/15256
4728 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
4729 (A & B) | C, combine (A op CST1) op CST2.
4730 (tree_ssa_forward_propagate_single_use_vars): Only bother to
4731 visit assigns that have uses.
4732
4733 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
4734
4735 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
4736 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
4737 (unpack_ts_type_common_value_fields): ...this. Update comment.
4738 (unpack_value_fields): Adjust for renaming.
4739 (lto_input_ts_type_tree_pointers): Split into...
4740 (lto_input_ts_type_common_tree_pointer): ...this and...
4741 (lto_input_ts_type_non_common_tree_pointers): ...this.
4742 (lto_input_tree_pointers): Adjust for above split.
4743 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
4744 (pack_ts_type_common_value_fields): ...this. Update comment.
4745 (lto_output_ts_type_tree_pointers): Split into...
4746 (lto_output_ts_type_common_tree_pointers): ...this and...
4747 (lto_output_ts_type_non_common_tree_pointers): ...this.
4748 (lto_output_tree_pointers): Adjust for above split.
4749 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
4750 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
4751 * stor-layout.c (vector_type_mode): Adjust location of mode field.
4752 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
4753 Define.
4754 (struct tree_type): Split into...
4755 (struct tree_type_common: ...this and...
4756 (struct tree_type_with_lang_specific): ...this and...
4757 (struct tree_type_non_common): ...this. Adjust accessor macros
4758 accordingly.
4759 (TYPE_VALUES_RAW): Define.
4760 (union tree_node): Update for above changes.
4761 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
4762 TS_TYPE_NON_COMMON.
4763 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
4764 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
4765 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
4766 * treestructu.def (TS_TYPE): Remove.
4767 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
4768 Define.
4769
4770 2011-05-11 Jakub Jelinek <jakub@redhat.com>
4771
4772 PR debug/48159
4773 * tree-ssa.c (reset_debug_uses): New function.
4774 * tree-flow.h (reset_debug_uses): New prototype.
4775 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
4776 * tree-loop-distribution.c (generate_loops_for_partition): Call
4777 reset_debug_uses on the stmts that will be removed. Keep around
4778 all debug stmts, don't count them as bits in partition bitmap.
4779 (generate_builtin): Don't count debug stmts or labels as bits in
4780 partition bitmap.
4781
4782 2011-05-11 Richard Guenther <rguenther@suse.de>
4783
4784 * gimple.c (gimple_type_hash_1): Merge with ...
4785 (gimple_type_hash): ... this.
4786 (gtc_visit): Remove mode parameter and simplify accordingly.
4787 (gimple_types_compatible_p_1): Likewise.
4788 (gimple_types_compatible_p): Likewise.
4789 (iterative_hash_gimple_type): Likewise.
4790 (visit): Likewise.
4791 (gimple_type_eq): Adjust.
4792
4793 2011-05-11 Revital Eres <revital.eres@linaro.org>
4794
4795 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
4796 enters the branch create an anti edge in the opposite direction
4797 to prevent the creation of reg-moves.
4798 * modulo-sched.c: Adjust comment to reflect the fact we are
4799 scheduling closing branch.
4800 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
4801 (stage_count): New field in struct partial_schedule.
4802 (calculate_stage_count): New function.
4803 (normalize_sched_times): Rename to reset_sched_times and handle
4804 incrementing the sched time of the nodes by a constant value
4805 passed as parameter.
4806 (duplicate_insns_of_cycles): Skip closing branch.
4807 (sms_schedule_by_order): Schedule closing branch.
4808 (ps_insn_find_column): Handle closing branch.
4809 (sms_schedule): Call reset_sched_times and adjust the code to
4810 support scheduling of the closing branch.
4811 (ps_insert_empty_row): Update calls to normalize_sched_times
4812 and rotate_partial_schedule functions.
4813
4814 2011-05-11 Richard Guenther <rguenther@suse.de>
4815
4816 PR middle-end/48953
4817 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
4818
4819 2011-05-11 Joseph Myers <joseph@codesourcery.com>
4820
4821 * opts.c (finish_options): Move warning settings from process_options.
4822 * toplev.c (process_options): Move warning settings to finish_options.
4823
4824 2011-05-11 Richard Guenther <rguenther@suse.de>
4825
4826 PR tree-optimization/18041
4827 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
4828 (simplify_bitwise_binary): ... this. Handle operand conversions
4829 by applying them to the result instead.
4830 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
4831
4832 2011-05-11 Richard Guenther <rguenther@suse.de>
4833
4834 * gimple.c (gimple_canonical_types_compatible_p): Split out
4835 from gimple_types_compatible_p and friends. Do not recurse
4836 to pointed-to types.
4837 (gimple_canonical_type_eq): Use it.
4838 (iterative_hash_canonical_type): Split out from
4839 iterative_hash_gimple_type and friends. Do not recurse
4840 to pointed-to types.
4841 (gimple_canonical_type_hash): Use it, allocate the hash here.
4842
4843 2011-05-11 Revital Eres <revital.eres@linaro.org>
4844
4845 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
4846 recognizing doloop.
4847
4848 2011-05-11 Revital Eres <revital.eres@linaro.org>
4849
4850 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
4851 instead of PREV_INSN.
4852
4853 2011-05-11 Revital Eres <revital.eres@linaro.org>
4854
4855 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
4856 * loop-doloop.c (doloop_condition_get): Likewise.
4857 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
4858 (doloop_end): New.
4859 * config/arm/arm.md (*addsi3_compare0): Remove "*".
4860
4861 2011-05-10 Nathan Froyd <froydnj@codesourcery.com>
4862
4863 * tree.def (CASE_LABEL_EXPR): Add an operand.
4864 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
4865
4866 2011-05-10 Joseph Myers <joseph@codesourcery.com>
4867
4868 * c-decl.c (c_override_global_bindings_to_false): Remove.
4869 (global_bindings_p): Don't check
4870 c_override_global_bindings_to_false.
4871 * c-tree.h (c_override_global_bindings_to_false): Remove.
4872 * c-typeck.c (composite_type): Don't set
4873 c_override_global_bindings_to_false.
4874
4875 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
4876
4877 PR target/48857, 48495
4878 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
4879 (VSX_MODE): Ditto.
4880 (VSX_MOVE_MODE): Ditto.
4881 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
4882 VSX vector types. Add V2DImode.
4883 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
4884 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
4885 (MODES_TIEABLE_P): Ditto.
4886
4887 * config/rs6000/rs6000.c (rs6000_emit_move): Use
4888 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
4889 VSX_VECTOR_MODE.
4890 (init_cumulative_args): Ditto.
4891 (rs6000_function_arg_boundary): Ditto.
4892 (rs6000_function_arg_advance_1): Ditto.
4893 (rs6000_function_arg): Ditto.
4894 (rs6000_function_ok_for_sibcall): Ditto.
4895 (emit_frame_save): Ditto.
4896 (rs6000_function_value): Ditto.
4897 (rs6000_libcall_value): Ditto.
4898
4899 2011-05-10 Joseph Myers <joseph@codesourcery.com>
4900
4901 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
4902 i386/darwin-lib.h to $libgcc_tm_file.
4903 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
4904
4905 2011-05-10 Joseph Myers <joseph@codesourcery.com>
4906
4907 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
4908
4909 2011-05-10 Joseph Myers <joseph@codesourcery.com>
4910
4911 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
4912 * config/rs6000/rs6000-tables.opt: New file (generated).
4913 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
4914 rs6000/rs6000-tables.opt to extra_options.
4915 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
4916 * config/rs6000/rs6000.c (rs6000_select): Remove.
4917 (processor_target_table): Move contents to rs6000-cpus.def.
4918 (darwin_rs6000_override_options): Check
4919 global_options_set.x_rs6000_cpu_index instead of
4920 rs6000_select[1].string.
4921 (rs6000_option_override_internal): Likewise.
4922 (rs6000_handle_option): Don't assert that global structures are in
4923 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
4924 (rs6000_default_cpu): New variable.
4925 (rs6000_file_start): Set it instead of local default_cpu. Check
4926 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
4927 global_options_set.x_rs6000_tune_index instead of rs6000_select.
4928 (rs6000_darwin_file_start): Check rs6000_default_cpu and
4929 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
4930 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
4931 rs6000_select): Remove.
4932 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
4933 Remove.
4934 (mcpu=, mtune=): Use Var, Init, Enum and Save.
4935 * config/rs6000/t-rs6000
4936 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
4937 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
4938 global_options_set.x_rs6000_cpu_index instead of
4939 rs6000_select[1].string.
4940 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
4941 global_options_set.x_rs6000_cpu_index instead of
4942 rs6000_select[1].string.
4943
4944 2011-05-10 Joseph Myers <joseph@codesourcery.com>
4945
4946 * config.gcc (libgcc_tm_file): Define instead of including files
4947 from ../../libgcc/config/ in tm_file.
4948 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
4949 * configure: Regenerate.
4950 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
4951 libgcc_tm.h, cs-libgcc_tm.h): New.
4952 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
4953 (clean): Remove libgcc_tm.h.
4954 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
4955 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
4956 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
4957
4958 2011-05-10 Georg-Johann Lay <avr@gjlay.de>
4959
4960 PR target/48896
4961 * config/avr/avr.c (avr_ret_register): Return unsigned int
4962 instead of int.
4963 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
4964 it to avr_libcall_value.
4965 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
4966 expand_expr.
4967 (avr_expand_binop_builtin): Ditto.
4968 (avr_expand_unop_builtin): Ditto.
4969
4970 2011-05-10 DJ Delorie <dj@redhat.com>
4971
4972 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
4973 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
4974 * config/rx/rx.c (rx_align_for_label): Add label and
4975 uses_threshold parameters. Do not align when the label is not
4976 used enough.
4977 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
4978
4979 2011-05-10 Richard Guenther <rguenther@suse.de>
4980
4981 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
4982 a series of conversions and apply foldings similar to what
4983 fold-const does.
4984 (tree_ssa_forward_propagate_single_use_vars): Call it.
4985
4986 2011-05-10 Jakub Jelinek <jakub@redhat.com>
4987
4988 PR tree-optimization/48611
4989 PR tree-optimization/48794
4990 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
4991 referenced from RESX or EH_DISPATCH arguments.
4992
4993 PR debug/48928
4994 * dfp.c (decimal_to_decnumber): Handle conversion from
4995 dconst{1,2,m1,half}.
4996
4997 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
4998
4999 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
5000 for !flag_prefer_avx128.
5001 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
5002
5003 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
5004
5005 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
5006 (fold_ternary_loc): Use expr_location_or.
5007
5008 2011-05-09 H.J. Lu <hongjiu.lu@intel.com>
5009
5010 PR debug/48853
5011 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
5012 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
5013 Pmode and mem_mode is not VOIDmode.
5014
5015 2011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
5016
5017 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
5018 TYPE_QUAL_RESTRICT): Convert to enum.
5019
5020 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
5021
5022 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
5023 (const_pow2_1_to_8_operand): Ditto.
5024 (const_pow2_1_to_128_operand): Ditto.
5025 (const_pow2_1_to_32768_operand): Ditto.
5026 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
5027 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
5028 in insn constraint to check integer value of operand 3.
5029 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
5030
5031 (PINSR_MODE): New mode iterator.
5032 (sse2p4_1): New mode attribute.
5033 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
5034 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
5035 iterator. Use const_int_operand instead of
5036 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
5037 exact_log2 in insn constraint to check integer value of operand 3.
5038
5039 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
5040
5041 * config/i386/sse.md (blendbits): Remove mode attribute.
5042 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
5043 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
5044 Check integer value of operand 3 in insn constraint.
5045
5046 2011-05-09 Richard Guenther <rguenther@suse.de>
5047
5048 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
5049 for diagnostics.
5050 (lto_symtab_merge): Likewise. Do not register types here.
5051 (lto_symtab_merge_decls_2): Likewise.
5052 (lto_symtab_merge_decls_1): Likewise.
5053 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
5054 * gimple.c (enum gtc_mode): Declare.
5055 (gimple_types_compatible_p): Make static.
5056
5057 2011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5058
5059 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
5060 temporary register to match Pmode.
5061
5062 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
5063
5064 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
5065 and *vec_concatv4si_1_avx.
5066
5067 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
5068
5069 PR rtl-optimization/48927
5070 * ira-conflicts.c (commutative_constraint_p): Use
5071 recog_data.alternative_enabled_p to disable alternatives where
5072 "enabled" attribute is false.
5073 (get_dup_num): Ditto.
5074 * ira-lives.c (single_reg_class): Ditto.
5075 (ira_implicitly_set_insn_hard_regs): Ditto.
5076
5077 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
5078
5079 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
5080 (dataflow_set_preserve_mem_locs): Likewise.
5081
5082 2011-05-09 Philipp Thomas <pth@suse.de>
5083
5084 * config/mep/mep.c (mep_validate_vliw): Syntax description
5085 should not be translated.
5086
5087 2011-05-09 Joseph Myers <joseph@codesourcery.com>
5088
5089 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
5090 * config/mips/mips-tables.opt: New file (generated).
5091 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
5092 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
5093 MIPS_ARCH_OPTION_NATIVE): Define.
5094 * config/mips/mips.c (mips_cpu_info_table): Move contents to
5095 mips-cpus.def.
5096 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
5097 mips_parse_cpu): Remove.
5098 (mips_cpu_info_from_opt, mips_default_arch): New.
5099 (mips_handle_option): Don't assert that global structures are in
5100 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
5101 (mips_option_override): Use new variables and functions to set
5102 state of these options. Use strcmp to check for individual CPU names.
5103 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
5104 definition.
5105 * config/mips/mips.opt (march=): Use ToLower and Enum.
5106 (mips): Use ToLower, Enum and Var.
5107 (mtune=): Use ToLower and Enum.
5108 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
5109
5110 2011-05-08 Jan Hubicka <jh@suse.cz>
5111
5112 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
5113 Arrange type pairs to be UID ordered.
5114 (gimple_lookup_type_leader): Make inline.
5115
5116 2011-05-09 Nick Clifton <nickc@redhat.com>
5117
5118 PR target/48899
5119 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
5120 PROCESSOR_DEFAULT.
5121
5122 PR target/48897
5123 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
5124 variable 's'.
5125
5126 2011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
5127
5128 * combine.c (simplify_comparison): Abstract out parts into...
5129 (simplify_compare_const): ... new function.
5130 (try_combine): Generalize parallel arithmetic/compare combining
5131 to call simplify_compare_const() and CANONICALIZE_COMPARE().
5132
5133 2011-05-08 Jan Hubicka <jh@suse.cz>
5134
5135 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
5136 (cgraph_create_virtual_clone): Call hooks once virtual clone
5137 is finished.
5138 * cgraph.h (cgraph_clone_node): Update prototype.
5139 * ipa-cp.c (ipcp_estimate_growth): Use
5140 estimate_ipcp_clone_size_and_time.
5141 * ipa-inline-transform.c (clone_inlined_nodes): Update.
5142 * lto-cgraph.c (input_node): Update.
5143 * ipa-inline.c (recursive_inlining): Update.
5144 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
5145 (evaluate_conditions_for_known_args): Break out from ...
5146 (evaluate_conditions_for_edge): ... here.
5147 (evaluate_conditions_for_ipcp_clone): New function.
5148 (inline_node_duplication_hook): Update clone summary based
5149 on parameter map.
5150 (estimate_callee_size_and_time): Rename to ...
5151 (estimate_node_size_and_time): take NODE instead of EDGE;
5152 take POSSIBLE_TRUTHS as argument.
5153 (estimate_callee_size_and_time): Update.
5154 (estimate_ipcp_clone_size_and_time): New function.
5155 (do_estimate_edge_time): Update.
5156
5157 2011-05-08 Richard Guenther <rguenther@suse.de>
5158
5159 PR middle-end/48908
5160 PR middle-end/48905
5161 * expmed.c (expand_shift_1): Compute adjusted constant shift
5162 amount manually.
5163
5164 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
5165
5166 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
5167
5168 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
5169
5170 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
5171
5172 2011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
5173
5174 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
5175
5176 2011-05-07 Jan Hubicka <jh@suse.cz>
5177
5178 * ipa-inline-transform.c (inline_call): Account when program size
5179 decreases.
5180 * ipa-inline.c (relative_time_benefit): New function.
5181 (edge_badness): Reorganize to be power 2 based; fix thinko when
5182 computing badness for negative growth; update comments to match
5183 reality; better dumps.
5184
5185 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
5186
5187 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
5188 type to bool and adjust comment.
5189 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
5190 (fold_mathfn_compare): Remove calls to global_bindings_p.
5191 (fold_inf_compare): Likewise.
5192 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
5193 * c-tree.h (global_bindings_p): Adjust prototype.
5194 * c-decl.c (global_bindings_p): Return bool and simplify.
5195
5196 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
5197
5198 PR tree-optimization/48837
5199 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
5200 when accumulator transformation is performed.
5201
5202 2011-05-06 Jan Hubicka <jh@suse.cz>
5203
5204 * i386.h (ix86_tune_indices): Add
5205 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
5206 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
5207 * i386.c (initial_ix86_tune_features): Add
5208 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5209 (software_prefetching_beneficial_p): Remove predicate.
5210 (ix86_option_override_internal): Use new macro.
5211
5212 2011-05-06 Jan Hubicka <jh@suse.cz>
5213
5214 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
5215
5216 2011-05-06 Jan Hubicka <jh@suse.cz>
5217
5218 * cgraph.c (cgraph_add_thunk): Create real function node instead
5219 of alias node; finalize it and mark needed/reachale; arrange visibility
5220 to be right and add it into the corresponding same comdat group list.
5221 (dump_cgraph_node): Dump thunks.
5222 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
5223 cgraph_function_with_gimple_body_p,
5224 cgraph_first_function_with_gimple_body,
5225 cgraph_next_function_with_gimple_body): New functions.
5226 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
5227 New macros.
5228 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
5229 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
5230 * cgraphunit.c (cgraph_finalize_function): Only look into possible
5231 devirtualization when optimizing.
5232 (verify_cgraph_node): Verify thunks.
5233 (cgraph_analyze_function): Analyze thunks.
5234 (cgraph_mark_functions_to_output): Output thunks only in combination
5235 with function they are assigned to.
5236 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
5237 alias into normal node.
5238 (assemble_thunks): New functoin.
5239 (cgraph_expand_function): Use it.
5240 * lto-cgraph.c (lto_output_node): Stream thunks.
5241 (input_overwrite_node): Stream in thunks.
5242 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
5243 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
5244 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
5245 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
5246 (inline_analyze_function): Do not care about thunk jump functions.
5247 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
5248 * ipa-prop.c (ipa_prop_write_jump_functions): Use
5249 cgraph_function_with_gimple_body_p.
5250 * passes.c (do_per_function_toporder): Use
5251 cgraph_function_with_gimple_body_p.
5252 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
5253 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
5254 (function_called_by_processed_nodes_p): Likewise.
5255
5256 2011-05-06 Joseph Myers <joseph@codesourcery.com>
5257
5258 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
5259 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
5260 entries.
5261 (mabi=): Replace with separate entries for mabi=altivec,
5262 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
5263 mabi=ieeelongdouble and mabi=ibmlongdouble.
5264 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
5265 check for -mabi=spe without SPE ABI support here.
5266 (rs6000_handle_option): Replace OPT_mabi_ handling with
5267 OPT_mabi_altivec and OPT_mabi_spe handling.
5268
5269 2011-05-06 Cary Coutant <ccoutant@google.com>
5270
5271 * dwarf2out.c (contains_subprogram_definition): New function.
5272 (should_move_die_to_comdat): Call it.
5273
5274 2011-05-06 Jeff Law <law@redhat.com>
5275
5276 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
5277 remove_ctrl_stmt_and_useless_edges.
5278 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
5279 (fixup_template_block, thread_single_edge): Likewise.
5280 (mark_threaded_blocks): Use THREAD_TARGET.
5281
5282 2011-05-06 Alan Modra <amodra@gmail.com>
5283
5284 PR target/48900
5285 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
5286 const0_rtx as the arg to the dummy __tls_get_addr libcall.
5287
5288 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
5289
5290 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
5291 constraint modifier to "r".
5292
5293 2011-05-06 Joseph Myers <joseph@codesourcery.com>
5294
5295 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
5296 fall through for OPT_mcmodel_.
5297
5298 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5299
5300 * config/s390/s390.c (s390_asm_trampoline_template): Comment
5301 instruction sizes.
5302 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
5303
5304 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5305
5306 PR target/47930
5307 * config/arm/arm.opt (marm): Document it.
5308 (mthumb): Reject negative variant.
5309
5310 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
5311
5312 PR target/48898
5313 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
5314 Fix typo in "ccvt" variable name.
5315
5316 2011-05-06 Tristan Gingold <gingold@adacore.com>
5317
5318 PR target/48895
5319 * config/vms/vms-ar.c (main): Remove cwd variable.
5320
5321 2011-05-06 Jakub Jelinek <jakub@redhat.com>
5322
5323 PR debug/48902
5324 * var-tracking.c (prepare_call_arguments): Move else before #endif.
5325
5326 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
5327
5328 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
5329 * gimplify.c (gimplify_switch_expr): Likewise.
5330 * omp-low.c (expand_omp_sections): Likewise.
5331 * tree-eh.c (lower_try_finally_switch): Likewise.
5332 (lower_eh_dispatch): Likewise.
5333 * tree.h (build_case_label): Declare.
5334 * tree.c (build_case_label): Define.
5335
5336 2011-05-05 Jason Merrill <jason@redhat.com>
5337
5338 PR c++/40975
5339 * tree-inline.c (copy_tree_r): Use copy_statement_list.
5340 (copy_statement_list): Don't recurse.
5341 * stor-layout.c (copy_self_referential_tree_r): Don't allow
5342 STATEMENT_LIST.
5343
5344 2011-05-05 Joseph Myers <joseph@codesourcery.com>
5345
5346 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
5347 through from -mfpu= handling.
5348 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
5349
5350 2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
5351
5352 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
5353 POST_MODIFY.
5354
5355 2011-05-05 Steve Ellcey <sje@cup.hp.com>
5356
5357 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
5358 for 11.31.
5359 (hppa[12]*-*-hpux11*): Ditto.
5360 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
5361 * config/ia64/hpux-unix2003.h: New.
5362 * config/pa/pa-hpux1131.opt: New.
5363 * config/pa/pa-hpux1131.h: New.
5364 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
5365 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
5366 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
5367
5368 2011-05-05 Jakub Jelinek <jakub@redhat.com>
5369
5370 PR debug/48853
5371 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
5372 instead of mode as 3rd argument to recursive call.
5373 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
5374 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
5375 VOIDmode.
5376 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
5377 don't give up if mode is Pmode and mem_mode is not VOIDmode.
5378 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
5379 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
5380
5381 2011-05-05 Julian Brown <julian@codesourcery.com>
5382
5383 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
5384 parenthesis in D-register case.
5385
5386 2011-05-05 Joseph Myers <joseph@codesourcery.com>
5387
5388 * opt-functions.awk (var_type_struct): Handle Enum options.
5389 * optc-gen.awk: Don't check range of variables of character type.
5390 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
5391 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
5392 rs6000_sdata_name, rs6000_explicit_options): Remove.
5393 (rs6000_option_override_internal): Check for -malign-power here.
5394 Use global_options_set instead of rs6000_explicit_options.
5395 (rs6000_parse_fpu_option): Remove.
5396 (rs6000_handle_option): Access variables via opts and opts_set
5397 pointers. Use error_at and warning_at. Add fall-through
5398 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
5399 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
5400 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
5401 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
5402 here. Don't use rs6000_parse_fpu_option.
5403 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
5404 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
5405 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
5406 (mrecip=): Use Var.
5407 (mspe): Use Var and Save.
5408 (mtraceback=): Use Enum and Var.
5409 (rs6000_traceback_type): New Enum and EnumValue entries.
5410 (mfloat-gprs=): Use Enum, Var and Save.
5411 (rs6000_float_gprs): New Enum and EnumValue entries.
5412 (mlong-double-): use Var and Save.
5413 (msched-costly-dep=, minsert-sched-nops=): Use Var.
5414 (malign-): Use Enum and Var.
5415 (rs6000_alignment_flags): New Enum and EnumValue entries.
5416 (mfpu=): Use Enum.
5417 (fpu_type_t): New Enum and EnumValue entries.
5418 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
5419 global_options_set instead of rs6000_explicit_options.
5420 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
5421 global_options_set instead of rs6000_explicit_options.
5422 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
5423 global_options_set instead of rs6000_explicit_options.
5424 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
5425 global_options_set instead of rs6000_explicit_options.
5426 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
5427 global_options_set instead of rs6000_explicit_options.
5428 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
5429 global_options_set instead of rs6000_explicit_options.
5430 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
5431 definition.
5432 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
5433 global_options_set instead of rs6000_explicit_options.
5434 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
5435 (rs6000_cmodel): New Enum and EnumValue entries.
5436 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
5437 global_options_set instead of rs6000_explicit_options.
5438 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
5439 (mtls-size=): Use Enum and Var.
5440 (rs6000_tls_size): New Enum and EnumValue entries.
5441
5442 2011-05-05 Michael Matz <matz@suse.de>
5443
5444 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
5445 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
5446 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
5447 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
5448 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
5449 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
5450 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
5451 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
5452 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
5453 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
5454 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
5455 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
5456 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
5457 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
5458 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
5459 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
5460
5461 2011-05-05 Richard Guenther <rguenther@suse.de>
5462
5463 * expmed.c (expand_variable_shift): Rename to ...
5464 (expand_shift_1): ... this. Take an expanded shift amount.
5465 For rotates recurse directly not building trees for the shift amount.
5466 (expand_variable_shift): Wrap around expand_shift_1.
5467 (expand_shift): Adjust.
5468
5469 2011-05-05 Jakub Jelinek <jakub@redhat.com>
5470
5471 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
5472
5473 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
5474
5475 * tree.h (get_pending_sizes): Remove prototype.
5476 (put_pending_size): Likewise.
5477 (put_pending_sizes): Likewise.
5478 * stor-layout.c (pending_sizes): Delete.
5479 (get_pending_sizes): Likewise.
5480 (put_pending_size): Likewise.
5481 (put_pending_sizes): Likewise.
5482 (variable_size): Do not call put_pending_size and tidy up.
5483 * function.h (struct function): Remove dont_save_pending_sizes_p.
5484 * lto-streamer-in.c (input_function): Do not stream it.
5485 * lto-streamer-out.c (output_function): Likewise.
5486 * tree-inline.c (initialize_cfun): Do not copy it.
5487 * c-decl.c (store_parm_decls): Do not set it.
5488 * omp-low.c (create_task_copyfn): Likewise.
5489 * tree-optimize.c (tree_rest_of_compilation): Likewise.
5490
5491 2011-05-05 Uros Bizjak <ubizjak@gmail.com>
5492
5493 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
5494 conditions.
5495 (*movdf_internal): Ditto.
5496 (*movdf_internal_nointeger): Ditto.
5497 (*movsf_internal): Ditto.
5498
5499 2011-05-05 Joseph Myers <joseph@codesourcery.com>
5500
5501 * c-decl.c (finish_decl): Don't call get_pending_sizes.
5502 (grokparm): Add parameter expr. Pass it to grokdeclarator.
5503 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
5504 (c_variable_size): Remove.
5505 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
5506 call put_pending_sizes.
5507 (get_parm_info): Add parameter expr. Use it to set
5508 arg_info->pending_sizes.
5509 (store_parm_decls): Use arg_info->pending_sizes instead or calling
5510 get_pending_sizes.
5511 * c-parser.c (c_parser_parms_declarator): Update call to
5512 c_parser_parms_list_declarator.
5513 (c_parser_parms_list_declarator): Take parameter expr. Update
5514 call to push_parm_decl. Update recursive call. Don't call
5515 get_pending_sizes. Update calls to get_parm_info.
5516 (c_parser_objc_method_definition): Update calls to
5517 c_parser_objc_method_decl and objc_start_method_definition.
5518 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
5519 (c_parser_objc_method_decl): Add parameter expr. Update call to
5520 grokparm.
5521 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
5522 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
5523 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
5524
5525 2011-05-05 Michael Hope <michael.hope@linaro.org>
5526
5527 PR pch/45979
5528 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
5529 __ARM_EABI__ hosts.
5530
5531 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5532
5533 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
5534 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
5535 (spu_output_mi_thunk): New function.
5536
5537 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5538
5539 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
5540 targetm.asm_out.print_operand.
5541 * config/sol2.c: Include target.h.
5542
5543 2011-05-04 Jan Hubicka <jh@suse.cz>
5544
5545 * ipa-inline.c (reset_edge_caches): New function.
5546 (update_caller_keys): Add check_inlinablity_for; do not
5547 reset edge caches; remove now unnecesary loop.
5548 (update_callee_keys): Add comments; reset node_growth_cache of callee.
5549 (update_all_callee_keys): Likewise.
5550 (inline_small_functions): Sanity check cache; update code
5551 recomputing it.
5552
5553 2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
5554
5555 PR rtl-optimization/47612
5556 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
5557 as the last insn of the sequence to be moved.
5558
5559 2011-05-04 Tobias Burnus <burnus@net-b.de>
5560
5561 PR fortran/48864
5562 * doc/invoke.texi (Ofast): Document that it
5563 enables Fortran's -fno-protect-parens.
5564
5565 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
5566
5567 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
5568
5569 2011-05-04 Eric Botcazou <ebotcazou@adacore.com>
5570
5571 * stor-layout.c (variable_size): Do not issue errors.
5572
5573 2011-05-04 Richard Guenther <rguenther@suse.de>
5574
5575 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
5576 for array-ref indices.
5577 (tree_coverage_counter_addr): Likewise.
5578 (build_fn_info_type): Use size_int for index types.
5579 (build_gcov_info): Likewise.
5580
5581 2011-05-04 Richard Guenther <rguenther@suse.de>
5582
5583 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
5584 to build_int_cst.
5585 * c-typeck.c (really_start_incremental_init): Use bitsize_int
5586 for constructor indices.
5587 (push_init_level): Likewise.
5588
5589 2011-05-04 Richard Guenther <rguenther@suse.de>
5590
5591 * explow.c (promote_mode): Move variable declarations before code.
5592
5593 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
5594
5595 * tree.h (build_function_type_array): Declare.
5596 (build_varargs_function_type_array): Declare.
5597 (build_function_type_vec, build_varargs_function_type_vec): Define.
5598 * tree.c (build_function_type_array_1): New function.
5599 (build_function_type_array): New function.
5600 (build_varargs_function_type_array): New function.
5601
5602 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
5603
5604 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
5605 before setting STMT_VINFO_TYPE.
5606
5607 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5608
5609 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
5610 instead of spu_pass_by_reference.
5611
5612 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5613
5614 * calls.c (emit_library_call_value_1): Invoke
5615 promote_function_mode hook on libcall arguments.
5616 * explow.c (promote_function_mode, promote_mode): Handle TYPE
5617 argument being NULL.
5618 * targhooks.c (default_promote_function_mode): Lisewise.
5619 * config/s390/s390.c (s390_promote_function_mode): Likewise.
5620 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
5621
5622 * doc/tm.texi: Document that TYPE argument might be NULL.
5623
5624 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5625
5626 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
5627
5628 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5629
5630 From Bernd Schmidt
5631 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
5632
5633 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5634
5635 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
5636 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
5637 Move ...
5638 * mips-tfile.c: ... here.
5639 Don't include coretypes.h, tm.h, filenames.h.
5640 (saber_stop): Remove definition and all calls.
5641 [__SABER__]: Remove.
5642 (__LINE__): Remove default.
5643 (Size_t, Ptrdiff_t): Remove definitions.
5644 Replace by size_t, ptrdiff_t.
5645 [!MIPS_DEBUGGING_INFO]: Remove.
5646 (SHASH_SIZE, THASH_SIZE): Remove defaults.
5647 (progname): Add const.
5648 (STATIC): Remove.
5649 Replace all uses by static.
5650 (ALIGN_SYMTABLE_OFFSET): Remove default.
5651 * mips-tdump.c: Don't include coretypes.h, tm.h.
5652 Remove !MIPS_IS_STAB guard.
5653 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
5654 $(TM_H), filenames.h dependencies.
5655 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
5656
5657 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5658
5659 From Jie Zhang
5660 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
5661 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
5662
5663 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5664
5665 From Bernd Schmidt
5666 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
5667 account and save/restore RETS.
5668 (PROFILE_BEFORE_PROLOGUE): Define.
5669 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
5670 the push insn to use predecrement.
5671
5672 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
5673
5674 From Jie Zhang
5675 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
5676
5677 2011-05-04 Nick Clifton <nickc@redhat.com>
5678
5679 * config/mn10300/mn10300.c: Include cfgloop.h.
5680 (DUMP): New macro.
5681 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
5682 Lcc or a FLcc insn into the instruction stream.
5683 (mn10300_block_contains_call): New function. Returns true if the
5684 given basic block contains a CALL insn.
5685 (mn10300_loop_contains_call_insn): New function. Returns true if
5686 the given loop contains a CALL insn.
5687 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
5688 to use the SETLB and Lcc or FLcc insns.
5689 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
5690 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
5691 * config/mn10300/mn10300.opt (msetlb): New option. Used to
5692 disable the SETLB optimization.
5693 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
5694 __SETLB__ or __NO_SETLB__.
5695 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
5696 (movsf_internal): Handle MDR register.
5697 (cmpsi): Make visible.
5698 (setlb): New pattern.
5699 (Lcc): New pattern.
5700 (FLcc): New pattern.
5701
5702 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
5703
5704 PR target/48860
5705 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
5706 for reg<->xmm moves.
5707 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
5708 (vec_concatv2di_rex64_sse): Ditto.
5709 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
5710 (*vec_extractv2di_1_rex64): Ditto.
5711
5712 Revert:
5713 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
5714
5715 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
5716 reg<->xmm moves.
5717 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
5718
5719 2011-05-04 Richard Guenther <rguenther@suse.de>
5720
5721 * tree.h (int_const_binop): Remove notrunc argument.
5722 * fold-const.c (int_const_binop): Remove notrunc argument. Always
5723 create integer constants that are properly truncated.
5724 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
5725 (const_binop): Remove zero notrunc argument to int_const_binop.
5726 (size_binop_loc): Likewise.
5727 (fold_div_compare): Likewise.
5728 (maybe_canonicalize_comparison_1): Likewise.
5729 (fold_comparison): Likewise.
5730 (fold_binary_loc): Likewise.
5731 (multiple_of_p): Likewise.
5732 * expr.c (store_constructor): Likewise.
5733 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5734 (maybe_fold_stmt_addition): Likewise.
5735 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
5736 * stor-layout.c (layout_type): Likewise.
5737 * tree-data-ref.c (tree_fold_divides_p): Likewise.
5738 * tree-sra.c (build_ref_for_offset): Likewise.
5739 (build_user_friendly_ref_for_offset): Likewise.
5740 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
5741 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
5742 * tree-ssa-loop-niter.c (inverse): Likewise.
5743 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
5744 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
5745 * tree-switch-conversion.c (check_range): Likewise.
5746 (build_constructors): Likewise.
5747 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
5748 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
5749 (extract_range_from_assert): Likewise.
5750 (vrp_int_const_binop): Likewise.
5751 (extract_range_from_binary_expr): Likewise.
5752 (extract_range_from_unary_expr): Likewise.
5753 (check_array_ref): Likewise.
5754 (find_case_label_range): Likewise.
5755 (simplify_div_or_mod_using_ranges): Likewise.
5756 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
5757 comparing case labels for merging.
5758
5759 2011-05-03 Mark Wielaard <mjw@redhat.com>
5760
5761 * dwarf2out.c (debug_str_hash_forced): Removed.
5762 (gen_label_for_indirect_string): Removed.
5763 (get_debug_string_label): Removed.
5764 (AT_string_form): Generate label directly.
5765 (output_indirect_string): Test indirect_string_node for
5766 DW_FORM_strp instead of checking label and refcount.
5767 (prune_indirect_string): Removed.
5768 (prune_unused_types): Don't check debug_str_hash_forced or
5769 call prune_indirect_string.
5770
5771 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
5772
5773 PR other/48093
5774 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
5775
5776 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
5777
5778 PR debug/47994
5779 PR debug/47919
5780 * combine.c (try_combine): Skip debug insns at m_split tests.
5781
5782 2011-04-26 Mark Wielaard <mjw@redhat.com>
5783
5784 PR42288
5785 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
5786 when info_section_emitted.
5787
5788 2011-05-03 Joseph Myers <joseph@codesourcery.com>
5789
5790 * config/mips/mips-opts.h: New.
5791 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
5792 to mips-opts.h.
5793 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
5794 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
5795 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
5796 via opts pointer.
5797 * config/mips/mips.h (enum mips_code_readable_setting): Move to
5798 mips-opts.h.
5799 (mips_abi, mips_code_readable): Don't declare.
5800 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
5801 (mabi=): Use Enum and Var.
5802 (mips_abi): New Enum and EnumValue entries.
5803 (mcode-readable=): Use Enum and Var.
5804 (mips_code_readable_setting): New Enum and EnumValue entries.
5805 (mr10k-cache-barrier=): Use Enum and Var.
5806 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
5807
5808 2011-05-03 Jan Hubicka <jh@suse.cz>
5809
5810 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
5811 replace hash by pointer map.
5812 (cgraph_node_set_element_def, cgraph_node_set_element,
5813 const_cgraph_node_set_element, varpool_node_set_element_def,
5814 varpool_node_set_element, const_varpool_node_set_element): Remove.
5815 (free_cgraph_node_set, free_varpool_node_set): New function.
5816 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
5817 * tree-emutls.c: Free varpool node set.
5818 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
5819 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
5820 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
5821 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
5822 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
5823 Move here from ipa.c; implement using pointer_map
5824 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
5825 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
5826 debug_cgraph_node_set, varpool_node_set_new,
5827 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
5828 dump_varpool_node_set, debug_varpool_node_set):
5829 Move to ipa-uitls.c.
5830 * passes.c (ipa_write_summaries): Update.
5831
5832 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5833
5834 From Mike Frysinger:
5835 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
5836 bf542/bf544/bf547/bf548/bf549.
5837
5838 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
5839
5840 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
5841
5842 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5843
5844 From Bernd Schmidt:
5845 * config/bfin/bfin.md (MOVCC): New mode_macro.
5846 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
5847 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
5848 comments from generated assembly.
5849
5850 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5851
5852 From Bernd Schmidt
5853 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
5854 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
5855 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
5856 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
5857 * config/bfin/lib1funcs.asm (___muldi3): New function.
5858
5859 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5860
5861 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
5862 build_function_type_list instead of build_function_type.
5863 Rearrange initialization of `args' to do so.
5864
5865 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5866
5867 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
5868 instead of build_function_type.
5869
5870 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5871
5872 * config/rs6000/rs6000.c (spe_init_builtins): Call
5873 build_function_type_list instead of build_function_type.
5874 (paired_init_builtins, altivec_init_builtins): Likewise.
5875 (builtin_function_type): Likewise.
5876
5877 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5878
5879 * config/sh/sh.c (sh_media_init_builtins): Call
5880 build_function_type_list instead of build_function_type.
5881
5882 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5883
5884 * config/sparc/sparc.c (sparc_file_end): Call
5885 build_function_type_list instead of build_function_type.
5886
5887 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5888
5889 * config/alpha/alpha.c (alpha_init_builtins): Call
5890 build_function_type_list instead of build_function_type.
5891
5892 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5893
5894 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
5895 build_function_type_list instead of build_function_type.
5896
5897 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5898
5899 * config/iq2000/i2000.c (iq2000_init_builtins): Call
5900 build_function_type_list instead of build_function_type.
5901 Delete `endlink' variable.
5902
5903 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5904
5905 * config/avr/avr.c (avr_init_builtins): Call
5906 build_function_type_list instead of build_function_type.
5907
5908 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5909
5910 * config/picochip/picochip.c (picochip_init_builtins): Call
5911 build_function_type_list instead of build_function_type.
5912 Delete `endlink' variable.
5913
5914 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
5915
5916 * config/bfin/bfin.c (bfin_init_builtins): Call
5917 build_function_type_list instead of build_function_type.
5918
5919 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5920
5921 From Bernd Schmidt
5922 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
5923 that's not CONST_INT. Seemingly redundant check is due to PR39768.
5924
5925 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5926
5927 From Jie Zhang:
5928 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
5929 libbffastfp overrides libgcc when -mfast-fp.
5930
5931 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5932
5933 Originally from Bernd Schmidt
5934 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
5935 * config/bfin/bfin.c (override_options): Test it and error if
5936 TARGET_FDPIC.
5937
5938 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
5939
5940 Originally From Bernd Schmidt
5941 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
5942 FD-PIC.
5943
5944 2011-05-03 Jeff Law <law@redhat.com>
5945
5946 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
5947 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
5948 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
5949 than accessing AUX field directly. Free the AUX field before
5950 clearing it.
5951 (thread_block, thread_through_loop_header): Likewise.
5952 (thread_single_edge, mark_threaded_blocks): Likewise.
5953 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
5954 (register_jump_thread): Do not attempt to thread to a NULL edge.
5955
5956 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
5957
5958 * function.c (init_function_start): Call decide_function_section.
5959 * varasm.c (decide_function_section): New function.
5960 (assemble_start_function): When not using
5961 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
5962 or first_function_block_is_cold.
5963 * rtl.h (decide_function_section): Declare.
5964
5965 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
5966 Jakub Jelinek <jakub@redhat.com>
5967
5968 PR target/48774
5969 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
5970 only succeed if req_mode is the same as set_mode.
5971
5972 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
5973
5974 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
5975 * genemit.c (gen_exp): Handle RETURN.
5976 * emit-rtl.c (verify_rtx_sharing): Likewise.
5977 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
5978 * rtl.c (copy_rtx): RETURN is shared.
5979 * rtl.h (enum global_rtl_index): Add GR_RETURN.
5980 (ret_rtx): New.
5981 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
5982 * config/s390/s390.c (s390_emit_epilogue): Likewise.
5983 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
5984 * config/cris/cris.c (cris_expand_return): Likewise.
5985 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
5986 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
5987 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
5988 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
5989 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
5990 Likewise.
5991 * config/v850/v850.c (expand_epilogue): Likewise.
5992 * config/bfin/bfin.c (bfin_expand_call): Likewise.
5993 * config/arm/arm.md (epilogue): Likewise.
5994 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
5995 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
5996 variable to ret_reg.
5997
5998 2011-05-03 Richard Guenther <rguenther@suse.de>
5999
6000 PR lto/48846
6001 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
6002 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
6003 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
6004
6005 2011-05-03 Richard Guenther <rguenther@suse.de>
6006
6007 * c-decl.c (grokdeclarator): Instead of looking at
6008 TREE_OVERFLOW check if the constant fits in the index type.
6009
6010 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
6011
6012 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
6013 (vec_store_lanes<mode><mode>): Likewise.
6014
6015 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
6016
6017 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
6018 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
6019 convert_optab_index values.
6020 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
6021 * genopinit.c (optabs): Initialize the new optabs.
6022 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
6023 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
6024 (expand_STORE_LANES): New functions.
6025 * tree.h (build_array_type_nelts): Declare.
6026 * tree.c (build_array_type_nelts): New function.
6027 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
6028 (vect_model_load_cost): Likewise.
6029 (vect_store_lanes_supported, vect_load_lanes_supported)
6030 (vect_record_strided_load_vectors): Declare.
6031 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
6032 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
6033 (vect_transform_strided_load): Split out statement recording into...
6034 (vect_record_strided_load_vectors): ...this new function.
6035 * tree-vect-stmts.c (create_vector_array, read_vector_array)
6036 (write_vector_array, create_array_ref): New functions.
6037 (vect_model_store_cost): Add store_lanes_p argument.
6038 (vect_model_load_cost): Add load_lanes_p argument.
6039 (vectorizable_store): Try to use store-lanes functions for
6040 interleaved stores.
6041 (vectorizable_load): Likewise load-lanes and loads.
6042 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
6043 to vect_model_store_cost.
6044 (vect_build_slp_tree): Likewise vect_model_load_cost.
6045
6046 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
6047
6048 * hooks.h (hook_bool_mode_uhwi_false): Declare.
6049 * hooks.c (hook_bool_mode_uhwi_false): New function.
6050 * target.def (array_mode_supported_p): New hook.
6051 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
6052 * doc/tm.texi: Regenerate.
6053 * stor-layout.c (mode_for_array): New function.
6054 (layout_type): Use it.
6055 * config/arm/arm.c (arm_array_mode_supported_p): New function.
6056 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
6057
6058 2011-05-03 Eric Botcazou <ebotcazou@adacore.com>
6059
6060 PR target/48723
6061 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
6062 for -fstack-check if the size to allocate is negative.
6063
6064 2011-05-02 Lawrence Crowl <crowl@google.com>
6065
6066 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
6067 (timevar_cond_start): New for starting a timer only when it is not
6068 already running.
6069 (timevar_cond_stop): New for stopping a timer when it was not already
6070 running.
6071
6072 * timevar.c (timevar_stop): Enable start/stop timers to start again.
6073 (timevar_cond_start): New as above.
6074 (timevar_cond_stop): New as above.
6075
6076 * timevar.def: Add start/stop timers for compiler phases,
6077 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
6078 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
6079 and TV_PHASE_FINALIZE.
6080 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
6081 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
6082 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
6083 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
6084 Make unused TV_OVERLOAD into a start/stop timer.
6085
6086 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
6087 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
6088 to indicate that they are start/stop timers.
6089
6090 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
6091 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
6092 Move initialization to do_compile.
6093 (do_compile): Add initialization from above.
6094 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
6095
6096 * c-decl.c (c_write_global_declarations): Add start/stop of
6097 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
6098
6099 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
6100 or TV_PARSE_INLINE, as appropriate.
6101 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
6102 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
6103
6104 2011-05-02 Jason Merrill <jason@redhat.com>
6105
6106 PR c++/40975
6107 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
6108
6109 2011-05-02 Simon Martin <simartin@users.sourceforge.net>
6110
6111 PR c/35445
6112 * c-decl.c (finish_decl): Only create a composite if the types are
6113 compatible.
6114
6115 2011-05-02 Joseph Myers <joseph@codesourcery.com>
6116
6117 * config/fr30/fr30-protos.h (Mmode): Don't define.
6118 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
6119 definition where used.
6120 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
6121 define. Expand definitions where used.
6122 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
6123 Expand definitions where used.
6124 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
6125 rx_function_arg, rx_function_arg_advance,
6126 rx_function_arg_boundary): Expand definitions of those macros.
6127 * config/v850/v850-protos.h (Mmode): Don't define. Expand
6128 definition where used.
6129
6130 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
6131
6132 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
6133 reg<->xmm moves.
6134 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
6135 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
6136 with *movv2sf_internal_rex64_avx.
6137 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
6138 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
6139 Use %v prefix in insn mnemonic to handle TARGET_AVX.
6140 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
6141 "vex" in "prefix" attribute calculation.
6142 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
6143
6144 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
6145
6146 PR target/47951
6147 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
6148 inputs match the output.
6149
6150 2011-05-02 Andreas Schwab <schwab@linux-m68k.org>
6151
6152 PR target/47955
6153 * config/m68k/m68k.c (m68k_expand_prologue): Set
6154 current_function_static_stack_size.
6155
6156 2011-05-02 Jan Hubicka <jh@suse.cz>
6157
6158 * lto-streamer.c (lto_streamer_cache_insert_1,
6159 lto_streamer_cache_lookup, lto_streamer_cache_create,
6160 lto_streamer_cache_delete): Use pointer map instead of hashtable.
6161 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
6162
6163 2011-05-02 Joseph Myers <joseph@codesourcery.com>
6164
6165 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
6166 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
6167 config/m68k/t-opts: New files.
6168 * config/m68k/m68k-tables.opt: New file (generated).
6169 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
6170 extra_options and m68k/t-opts to tmake_file.
6171 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
6172 (all_isas): Initialize using m68k-isas.def.
6173 (all_microarchs): Initialize using m68k-microarchs.def.
6174 (m68k_find_selection): Remove.
6175 (m68k_handle_option): Don't assert that global structures are in
6176 use. Use error_at. Access variables via opts pointer. Don't
6177 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
6178 directly for -m68020-40 and -m68020-60.
6179 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
6180 m68k_tune_entry here.
6181 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
6182 to m68k-opts.h.
6183 (m68k_library_id_string): Remove declaration.
6184 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
6185 (m68k_library_id_string): New Variable.
6186 (march=, mcpu=, mtune=): Use Enum and Var.
6187
6188 2011-05-02 Richard Guenther <rguenther@suse.de>
6189
6190 * varasm.c (output_constructor_regular_field): Compute zero-based
6191 index with double-ints. Make sure to ICE instead of producing
6192 wrong code.
6193 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
6194 in asserts. Properly use a signed type.
6195
6196 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
6197
6198 * config/i386/sse.md (V): New mode iterator.
6199 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
6200 TARGET_SSE2.
6201 (V_256): Rename from AVX256MODE.
6202 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
6203 condition to all users.
6204 (VF1): Ditto.
6205 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
6206 condition to all users.
6207 (VF_128): Make V4SF mode unconditional.
6208 (VF_256): Rename from AVX256MODEF2P.
6209 (VI4F_128): Rename from SSEMODE4S.
6210 (VI8F_128): Rename from SSEMODE2D.
6211 (VI4F_256): Rename from AVX256MODE8P.
6212 (VI8F_256): Rename from AVX256MODE4P.
6213 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
6214 (ssescalarmodesuffix): Remove SF and DF modes.
6215 (SSEMODE124): Remove.
6216 (SSEMODE1248): Ditto.
6217 (SSEMODEF2P): Ditto.
6218 (AVXMODEF2P): Ditto.
6219 (AVXMODEFDP): Ditto.
6220 (AVXMODEFSP): Ditto.
6221 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
6222 unconditional.
6223 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
6224 unconditional.
6225 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
6226 xop_pcmov_<mode>256. Use V mode iterator.
6227
6228 Adjust RTX patterns globally for renamed mode attributes.
6229
6230 2011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6231
6232 * haifa-sched.c (sched_emit_insn): Emit insn before first
6233 non-scheduled insn. Inform back-end about new insn. Add
6234 new insn to scheduled_insns list.
6235
6236 2011-05-02 Richard Guenther <rguenther@suse.de>
6237
6238 PR tree-optimization/48822
6239 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
6240 (process_scc): Indicate which iteration we start.
6241
6242 2011-05-02 Jan Hubicka <jh@suse.cz>
6243
6244 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
6245 (lto_section_overrun): New.
6246 * lto-section-out.c (append_block): Rename to ...
6247 (lto_append_block): ... this one; export.
6248 (lto_output_1_stream): Move lto lto-streamer.h
6249 (lto_output_data_stream): Update.
6250 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
6251 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
6252 functions.
6253
6254 2011-05-02 Richard Guenther <rguenther@suse.de>
6255
6256 * tree.c (tree_code_counts): New global array.
6257 (record_node_allocation_statistics): Count individual tree codes.
6258 (dump_tree_statistics): Dump individual code stats.
6259
6260 2011-05-01 Jan Hubicka <jh@suse.cz>
6261
6262 * ipa-inline.c (caller_growth_limits): Fix thinko when
6263 looking for largest stack frame.
6264 * ipa-inline.h (dump_inline_summary): Declare.
6265 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
6266 on stack usage.
6267 (dump_inline_summary): Export.
6268 (debug_inline_summary): Declare as DEBUG_FUNCTION.
6269
6270 2011-05-01 Anatoly Sokolov <aesok@post.ru>
6271
6272 * reginfo.c (memory_move_cost): Change rclass argument type form
6273 'enum reg_class' to reg_class_t.
6274 * reload.h (memory_move_cost): Update prototype.
6275 * postreload.c reload_cse_simplify_set): Change type dclass var to
6276 reg_class_t.
6277 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
6278 Update prototype.
6279 (ira_allocate_and_set_costs): Change aclass argument type form
6280 'enum reg_class' to reg_class_t.
6281 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6282 Change aclass argument type to reg_class_t.
6283 (update_conflict_hard_reg_costs): Change type aclass and pref vars
6284 to reg_class_t.
6285 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
6286 memory_move_cost call.
6287
6288 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
6289 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
6290 Change type tmp var to reg_class_t.
6291
6292 2011-04-30 Jan Hubicka <jh@suse.cz>
6293
6294 * ipa-inline.c (can_inline_edge_p): Disregard limits when
6295 inlining into function with flatten attribute.
6296 (want_inline_small_function_p): Be more realistic about inlining
6297 cold calls where callee size grows.
6298
6299 2011-04-30 Jan Hubicka <jh@suse.cz>
6300
6301 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
6302 flags.
6303
6304 2011-04-30 Anatoly Sokolov <aesok@post.ru>
6305
6306 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
6307 PRINT_OPERAND_PUNCT_VALID_P): Remove.
6308 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
6309 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
6310 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
6311 (print_operand): Rename to...
6312 (sparc_print_operand): ...this. Make static. Adjust
6313 sparc_print_operand function call.
6314 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
6315 functions.
6316
6317 2011-04-30 Jan Hubicka <jh@suse.cz>
6318
6319 PR middle-end/48752
6320 * ipa-inline.c (early_inliner): Disable when doing late
6321 addition of function.
6322
6323 2011-04-30 Jakub Jelinek <jakub@redhat.com>
6324
6325 * dwarf2out.c (get_address_mode): New inline.
6326 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
6327 if not dwarf_strict emit
6328 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
6329 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
6330 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
6331 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
6332 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
6333 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
6334 mem_loc_descriptor callers.
6335 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
6336 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
6337 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
6338 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
6339 (base_types): New variable.
6340 (get_base_type_offset, calc_base_type_die_sizes,
6341 base_type_for_mode, mark_base_types, base_type_cmp,
6342 move_marked_base_types): New functions.
6343 (calc_die_sizes): Assert that die_offset is 0 or equal to
6344 next_die_offset.
6345 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
6346 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
6347 callers. If not dwarf_strict, call mem_loc_descriptor even for
6348 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
6349 (gen_subprogram_die): Don't give up on call site parameters
6350 with non-integral or large integral modes. Adjust
6351 mem_loc_descriptor callers.
6352 (prune_unused_types): Call prune_unused_types_mark on base_types
6353 vector entries.
6354 (resolve_addr): Call mark_base_types.
6355 (dwarf2out_finish): Call move_marked_base_types.
6356
6357 PR tree-optimization/48809
6358 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
6359 type.
6360 (gen_inbound_check): Don't compute index_expr - range_min in utype
6361 again, instead reuse SSA_NAME initialized in build_arrays.
6362 Remove two useless gsi_for_stmt calls.
6363
6364 2011-04-29 Jeff Law <law@redhat.com>
6365
6366 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
6367
6368 2011-04-29 Martin Jambor <mjambor@suse.cz>
6369
6370 * cgraph.h (cgraph_postorder): Remove declaration.
6371 * ipa-utils.h (ipa_free_postorder_info): Declare.
6372 (ipa_reverse_postorder): Likewise.
6373 * cgraphunit.c: Include ipa-utils.h.
6374 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
6375 * ipa-inline.c: Include ipa-utils.h.
6376 (ipa_inline): Update call to ipa_reverse_postorder.
6377 * ipa-pure-const.c (propagate_pure_const): Update call to
6378 ipa_reduced_postorder and ipa_print_order. Call
6379 ipa_free_postorder_info to clean up.
6380 (propagate_nothrow): Likewise.
6381 * ipa-reference.c (propagate): Removed a useless call to
6382 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
6383 and ipa_print_order. Call ipa_free_postorder_info to clean up.
6384 * ipa.c: Include ipa-utils.h.
6385 (ipa_profile): Update call to ipa_reverse_postorder.
6386 (cgraph_postorder): Moved to...
6387 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
6388 (ipa_utils_print_order): Renamed to ipa_print_order.
6389 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
6390 comments.
6391 (ipa_free_postorder_info): New function.
6392 * passes.c: Include ipa-utils.h.
6393 (do_per_function_toporder): Update call to ipa_reverse_postorder.
6394 (ipa_write_summaries): Likewise.
6395 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
6396 (cgraphunit.o): Likewise.
6397 (ipa.o): Likewise.
6398 (ipa-inline.o): Likewise.
6399
6400 2011-04-29 Jan Hubicka <jh@suse.cz>
6401
6402 * gcc.dg/tree-ssa/inline-10.c: New testcase.
6403 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
6404 * ipa-inline.h (clause_t): Turn into unsigned int.
6405 * ipa-inline-analysis.c (add_clause): Do more simplification.
6406 (and_predicates): Shortcut more cases.
6407 (predicates_equal_p): Move forward; check that clauses are properly
6408 ordered.
6409 (or_predicates): Shortcut more cases.
6410 (edge_execution_predicate): Rewrite as...
6411 (set_cond_stmt_execution_predicate): ... this function; handle
6412 __builtin_constant_p.
6413 (set_switch_stmt_execution_predicate): New .
6414 (compute_bb_predicates): New.
6415 (will_be_nonconstant_predicate): Update TODO.
6416 (estimate_function_body_sizes): Use compute_bb_predicates
6417 and free them later, always try to estimate if stmt is constant.
6418 (estimate_time_after_inlining, estimate_size_after_inlining):
6419 Gracefully handle optimized out edges.
6420 (read_predicate): Fix off by one error.
6421
6422 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
6423
6424 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
6425
6426 2011-04-27 Xinliang David Li <davidxl@google.com>
6427
6428 * tree-profile.c (init_ic_make_global_vars): Set
6429 tls attribute on ic vars.
6430 * coverage.c (coverage_end_function): Initialize
6431 function_list with zero.
6432
6433 2011-04-29 Richard Guenther <rguenther@suse.de>
6434
6435 * builtins.c (fold_builtin_classify_type): Use integer_type_node
6436 for the type of the result.
6437 (fold_builtin_isascii): Likewise.
6438 (fold_builtin_toascii): Use integer_type_node where appropriate.
6439 (fold_builtin_logb): Likewise.
6440 (fold_builtin_frexp): Likewise.
6441 (fold_builtin_strstr): Likewise.
6442 (fold_builtin_strpbrk): Likewise.
6443 (fold_builtin_fputs): Likewise.
6444 (fold_builtin_sprintf): Likewise.
6445 (fold_builtin_snprintf): Likewise.
6446 (fold_builtin_printf): Likewise.
6447 (do_mpfr_remquo): Use a proper type for the assigned constant.
6448 (do_mpfr_lgamma_r): Likewise.
6449 * dwarf2out.c (resolve_one_addr): Use size_int.
6450 * except.c (init_eh): Likewise.
6451 (assign_filter_values): Use integer_type_node for filter values.
6452 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
6453 indices.
6454 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
6455 for EH region numbers.
6456 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
6457 for the shift amount.
6458
6459 2011-04-29 Richard Guenther <rguenther@suse.de>
6460
6461 * expr.h (expand_shift): Rename to ...
6462 (expand_variable_shift): ... this.
6463 (expand_shift): Take a constant shift amount.
6464 * expmed.c (expand_shift): Rename to ...
6465 (expand_variable_shift): ... this.
6466 (expand_shift): New wrapper around expand_variable_shift.
6467 * expr.c (convert_move, emit_group_load_1, emit_group_store,
6468 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
6469 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
6470 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
6471 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
6472 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
6473 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
6474 emit_store_flag_1, emit_store_flag): Likewise.
6475 * builtins.c (expand_builtin_signbit): Likewise.
6476 * calls.c (load_register_parameters): Likewise.
6477 * function.c (assign_parm_setup_block): Likewise.
6478 * lower-subreg.c (resolve_shift_zext): Likewise.
6479 * optabs.c (widen_bswap, expand_abs_nojump,
6480 expand_one_cmpl_abs_nojump, expand_float): Likewise.
6481 * spu/spu.c (spu_expand_extv): Likewise.
6482 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
6483
6484 2011-04-29 Richard Guenther <rguenther@suse.de>
6485
6486 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
6487 for the remapped region number.
6488 * predict.c (build_predict_expr): Use integer_type_node for the
6489 predict kind.
6490 * fold-const.c (fold_binary_loc): Use integer_type_node for
6491 the shift amount. Use a proper type for the PLUS_EXPR operand.
6492
6493 2011-04-29 Michael Matz <matz@suse.de>
6494
6495 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
6496 other trees that just builtins.
6497 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
6498
6499 2011-04-29 Richard Guenther <rguenther@suse.de>
6500
6501 * tree-nested.c (get_trampoline_type): Use size_int.
6502 (get_nl_goto_field): Likewise.
6503 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
6504 for all indexes.
6505 (lower_eh_constructs_2): Likewise.
6506 (lower_resx): Likewise.
6507 (lower_eh_dispatch): Likewise.
6508 * tree-mudflap.c (mf_build_string): Use size_int.
6509 (mudflap_register_call): Use integer_type_node for the flag.
6510 (mudflap_enqueue_constant): Use size_int.
6511 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
6512 instead of rebuilding it.
6513
6514 2011-04-29 Richard Guenther <rguenther@suse.de>
6515
6516 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
6517 Handle OBJ_TYPE_REF.
6518 (find_func_aliases_for_call): Use it more consistently.
6519
6520 2011-04-29 Alexandre Oliva <aoliva@redhat.com>
6521
6522 * haifa-sched.c (last_nondebug_scheduled_insn): New.
6523 (rank_for_schedule): Use it.
6524 (schedule_block): Set it.
6525
6526 2011-04-28 David Li <davidxl@google.com>
6527
6528 * tree.c (crc32_string): Use crc32_byte.
6529 (crc32_byte): New function.
6530 * tree.h (crc32_byte): New function.
6531 * gcov.c (read_graph_file): Handle new cfg_cksum.
6532 (read_count_file): Ditto.
6533 * profile.c (instrument_values): Ditto.
6534 (get_exec_counts): Ditto.
6535 (read_profile_edge_counts): Ditto.
6536 (compute_branch_probabilities): Ditto.
6537 (compute_value_histograms): Ditto.
6538 (branch_prob): Ditto.
6539 (end_branch_prob): Ditto.
6540 * coverage.c (read_counts_file): Ditto.
6541 (get_coverage_counts): Ditto.
6542 (tree_coverage_counter_addr): Ditto.
6543 (coverage_checksum_string): Ditto.
6544 (coverage_begin_output): Ditto.
6545 (coverage_end_function): Ditto.
6546 (build_fn_info_type): Ditto.
6547 (build_fn_info_value): Ditto.
6548 * libgcov.c (gcov_exit): Ditto.
6549 * gcov-dump.c (tag_function): Ditto.
6550 (compute_checksum): Remove.
6551
6552 2011-04-29 Alan Modra <amodra@gmail.com>
6553
6554 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
6555 unspec plus offset. Tidy macho code.
6556
6557 2011-04-29 Martin Jambor <mjambor@suse.cz>
6558
6559 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
6560 node instead of a decl. Update all callers.
6561 * cgraph.h: Update declaration.
6562
6563 2011-04-28 Ira Rosen <ira.rosen@linaro.org>
6564
6565 PR tree-optimization/48765
6566 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
6567 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
6568 to indicate if loop aware SLP is being used. Scan the statements
6569 and update the vectorization factor according to the type of
6570 vectorization before statement analysis.
6571 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
6572 pass it to vect_analyze_loop_operations.
6573 (vectorizable_reduction): Set number of copies to 1 in case of pure
6574 SLP statement.
6575 * tree-vect-stmts.c (vectorizable_conversion,
6576 vectorizable_assignment, vectorizable_shift,
6577 vectorizable_operation, vectorizable_type_demotion,
6578 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
6579 Likewise.
6580 (vectorizable_condition): Move the check that it is not SLP
6581 vectorization before the number of copies check.
6582 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
6583 to vectorize the loop using SLP.
6584
6585 2011-04-28 Jakub Jelinek <jakub@redhat.com>
6586
6587 PR middle-end/48597
6588 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
6589 inline asm.
6590
6591 2011-04-28 Joseph Myers <joseph@codesourcery.com>
6592
6593 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
6594 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
6595 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
6596 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
6597 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
6598 linux*.h headers.
6599 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6600 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6601 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6602 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6603 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6604 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
6605 REG_NAME.
6606 * config/i386/linux.h (REG_NAME): Don't define.
6607 * config/i386/linux64.h (REG_NAME): Don't define.
6608 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
6609 Undefine before defining.
6610
6611 2011-04-28 Jan Hubicka <jh@suse.cz>
6612
6613 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
6614 nonconstant_names array.
6615 (estimate_function_body_sizes): Build nonconstant_names array; handle
6616 BUILT_IN_CONSTANT_P.
6617
6618 2011-04-28 Richard Guenther <rguenther@suse.de>
6619
6620 PR bootstrap/48804
6621 Revert
6622 2011-04-28 Richard Guenther <rguenther@suse.de>
6623
6624 * tree-ssa-structalias.c (solve_constraints): Build succ graph
6625 as late as possible.
6626
6627 2011-04-28 Richard Guenther <rguenther@suse.de>
6628
6629 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
6630 (debug_constraint): Do it here.
6631 (dump_constraints): And here.
6632 (rewrite_constraints): And here.
6633 (dump_constraint_edge): Remove.
6634 (dump_constraint_graph): Rewrite to produce DOT output.
6635 (solve_constraints): Build succ graph as late as possible.
6636 Dump constraint graphs before and after solving.
6637
6638 2011-04-28 Richard Guenther <rguenther@suse.de>
6639
6640 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6641 New function split out from ...
6642 (find_func_aliases): ... here. Call it.
6643 (find_func_aliases_for_call): Likewise.
6644
6645 2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
6646
6647 * internal-fn.h (internal_fn_name_array): Declare.
6648 (internal_fn_flags_array): Likewise.
6649
6650 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
6651
6652 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
6653 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
6654 Move from sse.md.
6655 (ssemodefsuffix): Remove.
6656 (ssevecmodesuffix): New mode attribute.
6657 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
6658 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
6659 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
6660 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
6661 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
6662 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
6663 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
6664 ssemodesuffix mode attribute.
6665 (float splitters): Use ssevecmodesuffix mode attribute.
6666 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
6667 (sseinsmode): Rename from avxvecmode.
6668 (avxsizesuffix): Rename from avxmodesuffix.
6669 (sseintvecmode): Rename from avxpermvecmode.
6670 (ssedoublevecmode): Rename from ssedoublesizemode.
6671 (ssehalfvecmode): Rename from avxhalfvecmode.
6672 (ssescalarmode): Rename from avxscalarmode.
6673 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
6674 templates for ssemodesuffix mode attribute.
6675 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
6676 mode attribute.
6677
6678 Adjust RTX patterns globally for renamed mode attributes.
6679
6680 2011-04-27 Jan Hubcika <jh@suse.cz>
6681
6682 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
6683 * ipa-inline-analysis.c: Include alloc-pool.h.
6684 (edge_predicate_pool): New.
6685 (trye_predicate_p): New function
6686 (false_predicate_p): New function.
6687 (add_clause): Sanity check that false clauses are "optimized";
6688 never add clauses to predicate that is already known to be false.
6689 (and_predicate): Use flase_predicate_p.
6690 (evaulate_predicate): Rename to ...
6691 (evaluate_predicate): ... this one; update all callers; assert
6692 that false is not listed among possible truths.
6693 (dump_predicate): Use true_predicate_p.
6694 (account_size_time): Use false_predicate_p.
6695 (evaulate_conditions_for_edge): Rename to ...
6696 (evaluate_conditions_for_edge) ... this one.
6697 (edge_set_predicate): New function.
6698 (inline_edge_duplication_hook): Duplicate edge predicates.
6699 (inline_edge_removal_hook): Free edge predicates.
6700 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
6701 (dump_inline_summary): Update.
6702 (estimate_function_body_sizes): Set edge predicates.
6703 (estimate_calls_size_and_time): Handle predicates.
6704 (estimate_callee_size_and_time): Update.
6705 (remap_predicate): Add toplev_predicate; update comment.
6706 (remap_edge_predicates): New function.
6707 (inline_merge_summary): Compute toplev predicate; update.
6708 (read_predicate): New function.
6709 (read_inline_edge_summary): Use it.
6710 (inline_read_section): Likewise.
6711 (write_predicate): New function.
6712 (write_inline_edge_summary): Use it.
6713 (inline_write_summary): Likewise.
6714 (inline_free_summary): Free alloc pool and edge summary vec.
6715
6716 2011-04-27 Richard Guenther <rguenther@suse.de>
6717
6718 * tree-ssa-structalias.c (changed_count): Remove.
6719 (changed): Use a bitmap.
6720 (unify_nodes): Adjust.
6721 (do_sd_constraint): Likewise.
6722 (do_ds_constraint): Likewise.
6723 (do_complex_constraint): Likewise.
6724 (solve_graph): Likewise.
6725
6726 2011-04-27 Jan Hubicka <jh@suse.cz>
6727
6728 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
6729
6730 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
6731
6732 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
6733 (avx_vperm2f128_*_operand): Ditto.
6734 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
6735 Use avx_vpermilp_parallel in insn condition.
6736 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
6737 Use avx_vperm2f128_parallel in insn condition.
6738
6739 2011-04-27 Richard Guenther <rguenther@suse.de>
6740
6741 * Makefile.in (tree-ssa-structalias.o): Remove
6742 gt-tree-ssa-structalias.h dependency.
6743 (GTFILES): Remove tree-ssa-structalias.c.
6744 * tree.c (allocate_decl_uid): New function.
6745 (make_node_stat): Use it.
6746 (copy_node_stat): Likewise.
6747 * tree.h (allocate_decl_uid): Declare.
6748 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
6749 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
6750 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
6751 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
6752 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
6753 (struct heapvar_map): Likewise.
6754 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
6755 heapvar_insert): Likewise.
6756 (make_heapvar_for): Rename to ...
6757 (make_heapvar): ... this. Simplify.
6758 (fake_var_decl_obstack): New global var.
6759 (build_fake_var_decl): New function.
6760 (make_constraint_from_heapvar): Adjust.
6761 (handle_lhs_call): Likewise.
6762 (create_function_info_for): Likewise.
6763 (intra_create_variable_infos): Likewise.
6764 (init_alias_vars): Allocate fake_var_decl_obstack.
6765 (init_alias_heapvars, delete_alias_heapvars): Remove.
6766 (compute_points_to_sets): Do not call init_alias_heapvars.
6767 (ipa_pta_execute): Likewise.
6768 (delete_points_to_sets): Free fake_var_decl_obstack.
6769
6770 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6771
6772 * config/spu/divmovti4.c (union qword_UTItype): New data type.
6773 (si_from_UTItype, si_to_UTItype): New functions.
6774 (__udivmodti4): Use them to implement type-punning.
6775 * config/spu/multi3.c (union qword_TItype): New data type.
6776 (si_from_TItype, si_to_TItype): New functions.
6777 (__multi3): Use them to implement type-punning.
6778
6779 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6780
6781 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
6782
6783 2011-04-27 Jan Hubicka <jh@suse.cz>
6784
6785 * ipa-prop.c (function_insertion_hook_holder): New holder.
6786 (ipa_add_new_function): New function.
6787 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
6788 Register/deregister holder.
6789
6790 2011-04-27 Richard Guenther <rguenther@suse.de>
6791
6792 PR tree-optimization/48772
6793 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
6794
6795 2011-04-27 Richard Guenther <rguenther@suse.de>
6796
6797 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
6798 TARGET_MEM_REF handling.
6799
6800 2011-04-27 Nick Clifton <nickc@redhat.com>
6801
6802 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
6803 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
6804 (REG_CLASS_NAMES): Likewise.
6805 (REG_CLASS_CONTENTS): Likewise.
6806 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
6807 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
6808 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
6809 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
6810 (EVEN_REGS): New macro. Alias for QUAD_REGS.
6811 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
6812 duplicate register classes.
6813 (frv_class_likely_spilled_p): Likewise.
6814 (frv_register_move_cost): Likewise.
6815
6816 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
6817 end of the regno_reg_class array.
6818
6819 2011-04-27 Jakub Jelinek <jakub@redhat.com>
6820
6821 PR c/48742
6822 * c-typeck.c (build_binary_op): Don't wrap arguments if
6823 int_operands is true.
6824
6825 2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
6826
6827 PR target/48767
6828 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
6829 targetm.calls.must_pass_in_stack for void type.
6830
6831 2011-04-26 Jan Hubicka <jh@suse.cz>
6832
6833 * cgraphbuild.c (build_cgraph_edges): Update call
6834 of cgraph_create_edge and cgraph_create_indirect_edge.
6835 * cgraph.c (cgraph_create_edge_including_clones,
6836 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
6837 cgraph_update_edges_for_call_stmt_node): Do not take nest
6838 argument; do not initialize call_stmt_size/time.
6839 (dump_cgraph_node): Do not dump nest.
6840 (cgraph_clone_edge): Do not take loop_nest argument;
6841 do not propagate it; do not clone call_stmt_size/time.
6842 (cgraph_clone_node): Likewise.
6843 (cgraph_create_virtual_clone): Update.
6844 * cgraph.h (struct cgraph_edge): Remove
6845 call_stmt_size/call_stmt_time/loop_nest.
6846 (cgraph_create_edge, cgraph_create_indirect_edge,
6847 cgraph_create_edge_including_clones, cgraph_clone_node): Update
6848 prototype.
6849 * tree-emutls.c (gen_emutls_addr): Update.
6850 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
6851 loop_nest; handle indirect calls, too.
6852 (clone_inlined_nodes): Do not care about updating inline summaries.
6853 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
6854 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
6855 stream call_stmt_size/call_stmt_time/loop_nest.
6856 * ipa-inline.c (edge_badness): Update.
6857 (ipa_inline): dump summaries after inlining.
6858 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
6859 New.
6860 (inline_edge_summary): New function.
6861 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
6862 (inline_edge_removal_hook): Handle edge summaries.
6863 (inline_edge_duplication_hook): New hook.
6864 (inline_summary_alloc): Alloc hooks.
6865 (initialize_growth_caches): Do not register removal hooks.
6866 (free_growth_caches); Do not free removal hook.
6867 (dump_inline_edge_summary): New function.
6868 (dump_inline_summary): Use it.
6869 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
6870 (inline_update_callee_summaries): New function.
6871 (inline_merge_summary): Use it.
6872 (do_estimate_edge_time, do_estimate_edge_growth): Update.
6873 (read_inline_edge_summary): New function.
6874 (inline_read_section): Use it.
6875 (write_inline_edge_summary): New function.
6876 (inline_write_summary): Use it.
6877 (inline_free_summary): Free edge new holders.
6878 * tree-inline.c (copy_bb): Update.
6879
6880 2011-04-26 Jason Merrill <jason@redhat.com>
6881
6882 * tree-eh.c (lower_try_finally_switch): Create the label along with
6883 the CASE_LABEL_EXPR.
6884
6885 2011-04-26 David S. Miller <davem@davemloft.net>
6886 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6887
6888 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
6889 * configure: Regenerate.
6890
6891 2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
6892
6893 PR target/48258
6894 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
6895 reduction.
6896 (VEC_reduc): New code iterator and splitters for vector reduction.
6897 (VEC_reduc_name): Ditto.
6898 (VEC_reduc_rtx): Ditto.
6899 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
6900 (reduc_<VEC_reduc_name>_v4sf): Ditto.
6901
6902 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
6903 support for extracting SF on VSX.
6904
6905 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
6906 generating xscvspdp.
6907 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
6908 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
6909 double add, minimum, maximum vector reduction.
6910 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
6911 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
6912 optimize double vector reduction.
6913 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
6914
6915 2011-04-26 Joseph Myers <joseph@codesourcery.com>
6916
6917 * config/fr30/fr30.h (inhibit_libc): Don't define.
6918 * config/m32r/m32r-protos.h: Correct comment.
6919 * config/v850/v850.h (GHS_default_section_names,
6920 GHS_current_section_names): Use tree, not union tree_node *.
6921
6922 2011-04-26 Xinliang David Li <davidxl@google.com>
6923
6924 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
6925 * c-family/c-opts.c (c_common_handle_option): Set
6926 warn_maybe_uninitialized.
6927 * opts.c (common_handle_option): Ditto.
6928 * common.opt: New option.
6929 * tree-ssa.c (warn_uninit): Add one more parameter.
6930 (warn_uninitialized_var): Pass warning code.
6931 * tree-flow.h: Interface change.
6932
6933 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6934
6935 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
6936 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
6937 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
6938
6939 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6940
6941 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
6942 * config/mips/mips.opt (mmips-tfile): Remove.
6943
6944 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
6945 mips-tdump reference to ...
6946 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
6947 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
6948 reference by Tru64 UNIX.
6949
6950 2011-04-26 Jakub Jelinek <jakub@redhat.com>
6951
6952 PR debug/48768
6953 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
6954 is error_mark_node, set value to NULL.
6955
6956 PR tree-optimization/48734
6957 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
6958 if return value from maybe_fold_*_comparsions isn't something
6959 the code is prepared to handle.
6960
6961 2011-04-26 Uros Bizjak <ubizjak@gmail.com>
6962
6963 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
6964 mode check.
6965 (ext_QIreg_nomode_operands): Remove.
6966 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
6967 (*andsi_1): Ditto.
6968 (*andhi_1): Ditto.
6969
6970 2011-04-26 Andrew Stubbs <ams@codesourcery.com>
6971
6972 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
6973
6974 2011-04-26 Richard Guenther <rguenther@suse.de>
6975
6976 * c-typeck.c (build_unary_op): Do not expand array-refs via
6977 pointer arithmetic. Only adjust qualifiers for function types.
6978
6979 2011-04-26 Richard Guenther <rguenther@suse.de>
6980
6981 PR middle-end/48694
6982 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
6983 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
6984 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
6985 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
6986
6987 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
6988
6989 * doc/extend.texi: Document __underlying_type.
6990
6991 2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
6992
6993 * config/rs6000/titan.md (automata_option "progress"): Remove.
6994
6995 2011-04-25 Jeff Law <law@redhat.com>
6996
6997 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
6998
6999 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
7000
7001 * system.h (ENUM_BITFIELD): Remove.
7002
7003 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
7004 Eric Botcazou <ebotcazou@adacore.com>
7005
7006 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
7007 for STORE_FLAG_VALUE==-1 case.
7008
7009 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
7010
7011 PR target/43804
7012 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
7013 LEGITIMATE_PIC_OPERAND_P.
7014
7015 2011-04-24 Jan Hubicka <jh@suse.cz>
7016
7017 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
7018 WPA hack.
7019 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
7020 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
7021 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
7022 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
7023 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
7024 Sanity check predicate length.
7025 (remap_predicate): Likewise; sanity check jump functions.
7026 (inline_read_section, inline_write_summary): Sanity check
7027 predicate length.
7028
7029 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
7030
7031 PR other/48748
7032 * doc/extend.texi (Type Traits): Document __is_standard_layout,
7033 __is_literal_type, and __is_trivial; update throughout about
7034 possibly cv-qualified void types.
7035
7036 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
7037
7038 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
7039 testsuite and make it version agnostic.
7040
7041 2011-04-22 Jan Hubicka <jh@suse.cz>
7042
7043 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
7044
7045 2011-04-23 Jakub Jelinek <jakub@redhat.com>
7046
7047 PR c/48685
7048 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
7049 to VOID_TYPE even around MODIFY_EXPR.
7050
7051 2011-04-22 Mike Stump <mikestump@comcast.net>
7052
7053 * gensupport.c (read_md_rtx): Fix typo in comment.
7054 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
7055 comment.
7056
7057 2011-04-22 Jan Hubicka <jh@suse.cz>
7058
7059 * gengtype.c (open_base_files): Add ipa-inline.h include.
7060 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
7061 ipa-prop.c; update all uses.
7062 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
7063 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
7064 merge summary of inlined function into former caller.
7065 * ipa-inline.c (max_benefit): Remove.
7066 (edge_badness): Compensate for removal of benefits.
7067 (update_caller_keys): Use
7068 reset_node_growth_cache/reset_edge_growth_cache.
7069 (update_callee_keys): Likewise.
7070 (update_all_callee_keys): Likewise.
7071 (inline_small_functions): Do not collect max_benefit; do not reset
7072 estimated_growth; call free_growth_caches and initialize_growth_caches.
7073 * ipa-inline.h (struct condition, type clause_t, struct predicate,
7074 struct size_time_entry): New structures.
7075 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
7076 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
7077 and estimated_growth.
7078 (edge_growth_cache_entry): New structure.
7079 (node_growth_cache, edge_growth_cache): New global vars.
7080 (estimate_growth): Turn into inline.
7081 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
7082 initialize_growth_caches, free_growth_caches): Declare.
7083 (estimate_edge_growth): Rewrite.
7084 (estimate_edge_time): Implement as inline cache lookup.
7085 (reset_node_growth_cache, reset_edge_growth_cache): New inline
7086 functions.
7087 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
7088 (NUM_CONDITIONS): New constant.
7089 (predicate_conditions): New enum.
7090 (IS_NOT_CONSTANT): New constant.
7091 (edge_removal_hook_holder): New var.
7092 (node_growth_cache, edge_growth_cache): New global vars.
7093 (true_predicate, single_cond_predicate, false_predicate,
7094 not_inlined_predicate, add_condition, add_clause, and_predicates,
7095 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
7096 dump_clause, dump_predicate, account_size_time,
7097 evaulate_conditions_for_edge): New functions.
7098 (inline_summary_alloc): Move to heap.
7099 (inline_node_removal_hook): Clear condition and entry vectors.
7100 (inline_edge_removal_hook): New function.
7101 (initialize_growth_caches, free_growth_caches): New function.
7102 (dump_inline_summary): Update.
7103 (edge_execution_predicate): New function.
7104 (will_be_nonconstant_predicate): New function.
7105 (estimate_function_body_sizes): Compute BB and constantness predicates.
7106 (compute_inline_parameters): Do not clear estimated_growth.
7107 (estimate_edge_size_and_time): New function.
7108 (estimate_calls_size_and_time): New function.
7109 (estimate_callee_size_and_time): New function.
7110 (remap_predicate): New function.
7111 (inline_merge_summary): New function.
7112 (do_estimate_edge_time): New function based on...
7113 (estimate_edge_time): ... this one.
7114 (do_estimate_edge_growth): New function.
7115 (do_estimate_growth): New function based on....
7116 (estimate_growth): ... this one.
7117 (inline_analyze_function): Analyze after deciding on jump functions.
7118 (inline_read_section): New function.
7119 (inline_read_summary): Use it.
7120 (inline_write_summary): Write all the new data.
7121 * ipa-prop.c (ipa_get_param_decl_index): Export.
7122 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
7123 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
7124 Declare.
7125 (ipa_get_lattice): Move here from ipa-cp.c
7126 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
7127 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
7128 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
7129 cgraph_edge_inlinable_p): Remove.
7130 * cgraphunit.c: Include ipainline.h
7131 (cgraph_process_new_functions): Update call of
7132 compute_inline_parameters.
7133
7134 2011-04-22 Richard Guenther <rguenther@suse.de>
7135
7136 * tree.c (build_int_cst): Properly create canonicalized integer
7137 constants.
7138 (build_int_cst_type): Remove scary comments.
7139
7140 2011-04-22 Xinliang David Li <davidxl@google.com>
7141
7142 * toplev.c (process_options): Enable -Werror=coverage-mismatch
7143 by default when -Wno-error is not specified.
7144 * opts-global.c (decode_options): Remove call to
7145 control_warning_options.
7146
7147 2011-04-22 Jakub Jelinek <jakub@redhat.com>
7148
7149 PR tree-optimization/48717
7150 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
7151 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
7152
7153 2011-04-22 Joseph Myers <joseph@codesourcery.com>
7154
7155 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
7156 definition where used.
7157
7158 2011-04-22 Jakub Jelinek <jakub@redhat.com>
7159
7160 PR c/48716
7161 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
7162 TREE_STATIC variables declared inside of some OpenMP construct.
7163
7164 2011-04-22 Martin Jambor <mjambor@suse.cz>
7165
7166 PR middle-end/48585
7167 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
7168
7169 2011-04-22 Alexander Monakov <amonakov@ispras.ru>
7170
7171 PR c/36750
7172 * c-typeck.c (pop_init_level): Do not warn about initializing
7173 with ` = {0}'.
7174
7175 2011-04-22 Alan Modra <amodra@gmail.com>
7176
7177 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
7178 when returning call_cookie.
7179 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
7180 pointers, to functions with no more vector args than the current
7181 function, and some non-local calls for ABI_V4.
7182 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
7183 sibcall_nonlocal_aix64): Combine to ..
7184 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
7185 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
7186 (sibcall_value_nonlocal_aix<mode>): ..likewise.
7187 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
7188 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
7189 operand.
7190 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
7191 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
7192 sibcall_value_symbolic_64): Delete.
7193
7194 2011-04-21 Xinliang David Li <davidxl@google.com>
7195
7196 * cgraph.h: Remove pid.
7197 * cgraph.c: Remove pid.
7198 * value-prof.c (init_node_map): New function.
7199 (del_node_map): New function.
7200 (find_func_by_funcdef_no): New function.
7201 (gimple_ic_transform): Call new function.
7202 * cgraphunit.c (cgraph_finalize_function): Remove pid.
7203 * function.c (get_last_funcdef_no): New function.
7204 * function.h (get_last_funcdef_no): New function.
7205 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
7206 to libgcov function.
7207 (tree-profiling): Call node map init and delete function.
7208
7209 2011-04-21 Ian Lance Taylor <iant@google.com>
7210
7211 * godump.c (go_format_type): Use exported Go name for anonymous
7212 field name.
7213
7214 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
7215
7216 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
7217 Call builtin_function_type_list instead of builtin_function_type.
7218 (UNARY, BINARY, TRINARY, QUAD): Likewise.
7219
7220 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
7221
7222 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
7223 build_function_type_list instead of build_function_type.
7224 Delete variable `endlink'.
7225
7226 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
7227
7228 * config/s390/s390.c (s390_init_builtins): Call
7229 build_function_type_list instead of build_function_type.
7230
7231 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
7232
7233 * config/ia64/ia64.c (ia64_init_builtins): Call
7234 build_function_type_list instead of builtin_function_type.
7235
7236 2011-04-21 Easwaran Raman <eraman@google.com>
7237
7238 * cfgexpand.c (stack_var): Remove OFFSET...
7239 (add_stack_var): ...and its reference here...
7240 (expand_stack_vars): ...and here.
7241 (stack_var_cmp): Sort by descending order of size.
7242 (partition_stack_vars): Change heuristic.
7243 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
7244 (dump_stack_var_partition): Add newline after each partition.
7245
7246 2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
7247 Jeff Law <law@redhat.com>
7248
7249 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
7250 * gengtype.c (matching_file_name_substitute): Likewise.
7251
7252 2011-04-21 Richard Guenther <rguenther@suse.de>
7253
7254 PR lto/48703
7255 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
7256
7257 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
7258
7259 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
7260
7261 2011-04-21 Richard Guenther <rguenther@suse.de>
7262
7263 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
7264 file name.
7265
7266 2011-04-21 Richard Guenther <rguenther@suse.de>
7267
7268 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
7269 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
7270 Use DECL_P, not SSA_VAR_P.
7271 (ptr_derefs_may_alias_p): Likewise.
7272 (ptr_deref_may_alias_ref_p_1): Likewise.
7273 (decl_refs_may_alias_p): Likewise.
7274 (refs_may_alias_p_1): Likewise.
7275 (ref_maybe_used_by_call_p_1): Likewise.
7276 (call_may_clobber_ref_p_1): Likewise.
7277 (indirect_ref_may_alias_decl_p): Assume indirect refrences
7278 are either MEM_REF or TARGET_MEM_REF.
7279 (indirect_refs_may_alias_p): Likewise.
7280 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
7281 for MEM_EXPR of indirect calls.
7282
7283 2011-04-21 Tristan Gingold <gingold@adacore.com>
7284
7285 * vmsdbgout.c (write_srccorr): Compute file length from the string.
7286 (dst_file_info_struct): Remove flen field.
7287 (lookup_filename): Remove code that set flen field.
7288
7289 2011-04-21 Tristan Gingold <gingold@adacore.com>
7290
7291 * config/ia64/ia64.c (ia64_start_function): Add a guard.
7292
7293 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
7294
7295 PR target/48708
7296 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
7297 vec_extract and vec_concat for non-SSE4_1 targets.
7298
7299 2011-04-21 Richard Guenther <rguenther@suse.de>
7300
7301 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
7302 return statements.
7303
7304 2011-04-21 Joseph Myers <joseph@codesourcery.com>
7305
7306 * config/i386/cygming.h (union tree_node, TREE): Don't define or
7307 undefine.
7308 (FILE): Don't undefine.
7309
7310 2011-04-21 Joseph Myers <joseph@codesourcery.com>
7311
7312 * config/alpha/alpha.c (struct machine_function): Use rtx, not
7313 struct rtx_def *.
7314 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
7315 struct rtx_def *.
7316 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
7317 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
7318 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
7319 rtx_def *.
7320 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
7321 definitions where used.
7322 * config/microblaze/microblaze.h (struct microblaze_args): Use
7323 rtx, not struct rtx_def *.
7324 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
7325 rtx_def *.
7326 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
7327 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
7328 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
7329 not struct rtx_def *.
7330 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
7331 struct rtx_def *.
7332 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
7333 rtx_def *.
7334 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
7335
7336 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
7337
7338 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
7339 operand_equal_p to compare DR_BASE_ADDRESSes.
7340 (vect_check_interleaving): Likewise.
7341
7342 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
7343
7344 PR target/46329
7345 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
7346 for all Neon struct constants.
7347
7348 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
7349
7350 * target.def (legitimate_constant_p): New hook.
7351 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
7352 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
7353 * doc/tm.texi: Regenerate.
7354 * hooks.h (hook_bool_mode_rtx_true): Declare.
7355 * hooks.c (hook_bool_mode_rtx_true): Define.
7356 * system.h (LEGITIMATE_CONSTANT_P): Poison.
7357 * calls.c (precompute_register_parameters): Replace uses of
7358 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
7359 (emit_library_call_value_1): Likewise.
7360 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
7361 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
7362 * ira-costs.c (scan_one_insn): Likewise.
7363 * recog.c (general_operand, immediate_operand): Likewise.
7364 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
7365 * reload1.c (init_eliminable_invariants): Likewise.
7366
7367 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
7368 mode argument.
7369 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
7370 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
7371 argument.
7372 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7373 * config/alpha/predicates.md (input_operand): Update call to
7374 alpha_legitimate_constant_p.
7375
7376 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
7377 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
7378 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
7379 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7380 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
7381 (arm_legitimate_constant_p): New functions.
7382 (arm_cannot_force_const_mem): Make static.
7383
7384 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
7385
7386 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
7387 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
7388 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
7389 instead of bfin_legitimate_constant_p.
7390 (bfin_legitimate_constant_p): Make static. Add a mode argument.
7391 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7392
7393 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
7394
7395 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
7396
7397 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
7398 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
7399 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7400 (frv_legitimate_constant_p): Make static. Add a mode argument.
7401
7402 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
7403 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
7404 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
7405
7406 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
7407 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
7408 * config/i386/i386.c (legitimate_constant_p): Rename to...
7409 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
7410 argument.
7411 (ix86_cannot_force_const_mem): Update accordingly.
7412 (ix86_legitimate_address_p): Likewise.
7413 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7414 * config/i386/i386.md: Update commentary.
7415
7416 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
7417 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
7418 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7419 (ia64_legitimate_constant_p): Make static. Add a mode argument.
7420
7421 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
7422
7423 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
7424 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
7425 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7426 (lm32_legitimate_constant_p): Make static. Add a mode argument.
7427
7428 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
7429 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
7430 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
7431
7432 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
7433 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7434 (m32r_legitimate_constant_p): New function.
7435
7436 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
7437 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
7438 LEGITIMATE_CONSTANT_P.
7439 (LEGITIMATE_CONSTANT_P): Delete.
7440 * config/m68k/m68k.c (m68k_expand_prologue): Call
7441 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
7442 (m68k_legitimate_constant_p): New function.
7443 * config/m68k/m68k.md: Update comments.
7444
7445 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
7446 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7447 (mcore_legitimate_constant_p): New function.
7448
7449 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
7450 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
7451 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
7452 Add a mode argument.
7453 (mep_legitimate_address): Update accordingly.
7454 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7455
7456 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
7457 Delete.
7458 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
7459 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
7460 static. Check OP's mode for VOIDmode.
7461 (microblaze_legitimate_constant_p): New function.
7462 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7463
7464 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
7465 * config/mips/mips.c (mips_legitimate_constant_p): New function.
7466 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
7467 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7468 * config/mips/predicates.md: Update comments.
7469
7470 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
7471 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
7472 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7473 (mmix_legitimate_constant_p): Make static, return a bool, and take
7474 a mode argument.
7475 (mmix_print_operand_address): Update accordingly.
7476
7477 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
7478 Delete.
7479 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
7480 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
7481 static. Add a mode argument.
7482 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7483
7484 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
7485
7486 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
7487 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7488 (pa_legitimate_constant_p): New function.
7489
7490 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
7491
7492 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
7493 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7494 (pdp11_legitimate_constant_p): New function.
7495
7496 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
7497 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7498 (rs6000_legitimate_constant_p): New function.
7499
7500 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
7501 (rx_legitimate_constant_p): ...this.
7502 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
7503 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
7504 (rx_legitimate_constant_p): ...this.
7505 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7506 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
7507
7508 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
7509 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
7510 * config/s390/s390.c (legitimate_constant_p): Rename to...
7511 (s390_legitimate_constant_p): ...this. Make static, return a bool,
7512 and add a mode argument.
7513 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7514
7515 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
7516
7517 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
7518 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7519 (sh_legitimate_constant_p): New function.
7520
7521 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
7522 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
7523 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7524 (legitimate_constant_p): Rename to...
7525 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
7526 argument.
7527 (constant_address_p): Update accordingly.
7528
7529 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
7530 argument and return a bool.
7531 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
7532 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7533 (spu_legitimate_constant_p): Add a mode argument and return a bool.
7534 (spu_rtx_costs): Update accordingly.
7535 * config/spu/predicates.md (vec_imm_operand): Likewise.
7536
7537 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
7538
7539 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
7540 * config/v850/v850.c (v850_legitimate_constant_p): New function.
7541 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7542
7543 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
7544 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
7545 * config/vax/vax.c (legitimate_constant_p): Likewise.
7546
7547 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
7548 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7549 (xtensa_legitimate_constant_p): New function.
7550
7551 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
7552
7553 * target.def (cannot_force_const_mem): Add a mode argument.
7554 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
7555 * doc/tm.texi: Regenerate.
7556 * hooks.h (hook_bool_mode_rtx_false): Declare.
7557 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
7558 (hook_bool_mode_const_rtx_true): Likewise.
7559 (hook_bool_mode_rtx_false): New function.
7560 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
7561 to be non-VOID. Update call to cannot_force_const_mem.
7562 (find_reloads): Update accordingly.
7563 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
7564 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
7565 argument.
7566 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
7567 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
7568 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
7569 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
7570 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
7571 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
7572 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
7573 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
7574 (m68k_cannot_force_const_mem): ...this new function.
7575 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
7576 argument.
7577 (mips_const_insns, mips_legitimize_const_move): Update calls.
7578 (mips_secondary_reload_class): Likewise.
7579 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
7580 (pa_cannot_force_const_mem): ...this new function.
7581 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
7582 (rs6000_cannot_force_const_mem): ...this new function.
7583 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
7584 argument.
7585 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
7586 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
7587 to...
7588 (xtensa_cannot_force_const_mem): ...this new function.
7589
7590 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
7591
7592 * config/mips/mips.c (mips16_build_function_stub): Call
7593 build_function_type_list instead of build_function_type.
7594 (mips16_build_call_stub): Likewise.
7595
7596 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
7597
7598 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
7599 instead of build_function_type.
7600
7601 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
7602
7603 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
7604 instead of build_function_type.
7605
7606 2011-04-20 Uros Bizjak <ubizjak@gmail.com>
7607
7608 PR target/48678
7609 * config/i386/i386.md (insv): Change operand 0 constraint to
7610 "register_operand". Change operand 1 and 2 constraint to
7611 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
7612 * config/i386/sse.md (sse4_1_pinsrb): Export.
7613 (sse2_pinsrw): Ditto.
7614 (sse4_1_pinsrd): Ditto.
7615 (sse4_1_pinsrq): Ditto.
7616 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
7617 * config/i386/i386.c (ix86_expand_pinsr): New.
7618
7619 2011-04-20 Easwaran Raman <eraman@google.com>
7620
7621 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
7622 containing union type only with -fstrict-aliasing.
7623
7624 2011-04-20 Jim Meyering <meyering@redhat.com>
7625
7626 Remove useless if-before-free tests.
7627 * calls.c (expand_call, save_area): Likewise.
7628 * cfgcleanup.c (try_forward_edges): Likewise.
7629 * collect2.c (collect_execute): Likewise.
7630 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
7631 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
7632 * coverage.c (coverage_checksum_string): Likewise.
7633 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
7634 * cselib.c (cselib_init): Likewise.
7635 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
7636 (df_set_clean_cfg): Likewise.
7637 * function.c (free_after_compilation): Likewise.
7638 * gcc.c (do_spec_1, main): Likewise.
7639 * gcov.c (create_file_names): Likewise.
7640 * gensupport.c (identify_predicable_attribute): Likewise.
7641 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
7642 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
7643 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
7644 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
7645 * ipa-pure-const.c (local_pure_const): Likewise.
7646 * ipa-reference.c (propagate): Likewise.
7647 * ira-costs.c (free_ira_costs): Likewise.
7648 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
7649 * matrix-reorg.c (mat_free): Likewise.
7650 * prefix.c (get_key_value): Likewise.
7651 * profile.c (compute_value_histograms): Likewise.
7652 * reload1.c (free_reg_equiv): Likewise.
7653 * sched-deps.c (free_deps): Likewise.
7654 * sel-sched-ir.c (fence_clear): Likewise.
7655 * sese.c (set_rename, if_region_set_false_region): Likewise.
7656 * tree-data-ref.c (free_rdg): Likewise.
7657 * tree-eh.c (lower_try_finally): Likewise.
7658 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
7659 * tree-ssa-live.c (delete_var_map): Likewise.
7660 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
7661 * tree-ssa-pre.c (phi_trans_add): Likewise.
7662
7663 2011-04-20 Jakub Jelinek <jakub@redhat.com>
7664
7665 PR tree-optimization/48611
7666 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
7667 beyond ERT_MUST_NOT_THROW region.
7668
7669 2011-04-20 Catherine Moore <clm@codesourcery.com>
7670
7671 * config/mips/mips.opt (mfix-24k): New.
7672 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
7673 * config/mips/mips.md (length): Increase by 4 for stores if
7674 fixing 24K errata.
7675 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
7676 all noreorder if fixing 24K errata.
7677 * doc/invoke.texi: Document mfix-24k.
7678
7679 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
7680
7681 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
7682 quad-word modes, reduce to 9-bit index range when above 1016 limit.
7683
7684 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
7685
7686 * config/arm/arm.c (arm_gen_constant): Move movw support ....
7687 (const_ok_for_op): ... to here.
7688
7689 2011-04-20 Kai Tietz <ktietz@redhat.com>
7690
7691 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
7692 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
7693
7694 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
7695
7696 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
7697
7698 2011-04-20 Richard Guenther <rguenther@suse.de>
7699
7700 PR tree-optimization/47892
7701 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
7702 are if-convertible.
7703
7704 2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
7705
7706 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
7707
7708 2011-04-20 Tristan Gingold <gingold@adacore.com>
7709
7710 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
7711
7712 2011-04-20 Georg-Johann Lay <avr@gjlay.de>
7713
7714 PR target/18145
7715
7716 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
7717 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
7718 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
7719 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
7720 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
7721
7722 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
7723 New prototype.
7724
7725 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
7726 (avr_asm_named_section, avr_asm_output_aligned_common,
7727 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
7728 New functions to update...
7729 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
7730 (avr_asm_init_sections): Overwrite section callbacks for
7731 data_section, bss_section.
7732 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
7733 from here to...
7734 (avr_file_end): ...here.
7735
7736 2011-04-20 Richard Guenther <rguenther@suse.de>
7737
7738 PR middle-end/48695
7739 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
7740 objects and types here. Adjust for their offset before comparing.
7741
7742 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
7743
7744 * tree-vect-stmts.c (vectorizable_store): Only chain one related
7745 statement per copy.
7746
7747 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
7748
7749 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
7750 (GIMPLE_H): Include $(INTERNAL_FN_H).
7751 (OBJS-common): Add internal-fn.o.
7752 (internal-fn.o): New rule.
7753 * internal-fn.def: New file.
7754 * internal-fn.h: Likewise.
7755 * internal-fn.c: Likewise.
7756 * gimple.h: Include internal-fn.h.
7757 (GF_CALL_INTERNAL): New gf_mask.
7758 (gimple_statement_call): Put fntype into a union with a new
7759 internal_fn field.
7760 (gimple_build_call_internal): Declare.
7761 (gimple_build_call_internal_vec): Likewise.
7762 (gimple_call_same_target_p): Likewise.
7763 (gimple_call_internal_p): New function.
7764 (gimple_call_internal_fn): Likewise.
7765 (gimple_call_fntype): Return null for internal calls.
7766 (gimple_call_set_fntype): Assert that the function is not internal.
7767 (gimple_call_set_fn): Likewise.
7768 (gimple_call_set_fndecl): Likewise.
7769 (gimple_call_set_internal_fn): New function.
7770 (gimple_call_addr_fndecl): Handle null functions.
7771 (gimple_call_return_type): Likewise null types.
7772 * gimple.c (gimple_build_call_internal_1): New function.
7773 (gimple_build_call_internal): Likewise.
7774 (gimple_build_call_internal_vec): Likewise.
7775 (gimple_call_same_target_p): Likewise.
7776 (gimple_call_flags): Handle calls to internal functions.
7777 (gimple_call_fnspec): New function.
7778 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
7779 (gimple_has_side_effects): Handle null functions.
7780 (gimple_rhs_has_side_effects): Likewise.
7781 (gimple_call_copy_skip_args): Handle calls to internal functions.
7782 * cfgexpand.c (expand_call_stmt): Likewise.
7783 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
7784 * gimple-fold.c (gimple_fold_call): Handle null functions.
7785 (gimple_fold_stmt_to_constant_1): Don't fold
7786 calls to internal functions.
7787 * gimple-low.c (gimple_check_call_args): Handle calls to internal
7788 functions.
7789 * gimple-pretty-print.c (dump_gimple_call): Likewise.
7790 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
7791 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
7792 (do_warn_unused_result): Likewise.
7793 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
7794 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
7795 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
7796 the target of a call.
7797 (initialize_hash_element): Update accordingly.
7798 (hashable_expr_equal_p): Use gimple_call_same_target_p.
7799 (iterative_hash_hashable_expr): Handle calls to internal functions.
7800 (print_expr_hash_elt): Likewise.
7801 * tree-ssa-pre.c (can_value_number_call): Likewise.
7802 (eliminate): Handle null functions.
7803 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
7804 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
7805 (find_func_aliases): Likewise.
7806 * value-prof.c (gimple_ic_transform): Likewise.
7807 (gimple_indirect_call_to_profile): Likewise.
7808 * lto-streamer-in.c (input_gimple_stmt): Likewise.
7809 * lto-streamer-out.c (output_gimple_stmt): Likewise.
7810
7811 2011-04-19 Jan Hubicka <jh@suse.cz>
7812
7813 * ipa-inline-transform.c (save_inline_function_body): Add comments.
7814 * ipa-inline.c (inline_small_functions): Compute summaries first,
7815 populate heap later.
7816
7817 2011-04-19 Jan Hubicka <jh@suse.cz>
7818
7819 * cgraph.h (save_inline_function_body): Remove.
7820 * ipa-inline-transform.c: New file, broke out of...
7821 * ipa-inline.c: ... this one; Update toplevel comment.
7822 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
7823 make global.
7824 (update_noncloned_frequencies): Move to ipa-inline-transform.c
7825 (cgraph_mark_inline_edge): Rename to inline_call; move to
7826 ipa-inline-transform.c.
7827 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
7828 move to ipa-inline-transform.c
7829 (recursive_inlining, inline_small_functions, flatten_function,
7830 ipa_inline, inline_always_inline_functions,
7831 early_inline_small_functions): Update.
7832 (inline_transform): Move to ipa-inline-transform.c.
7833 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
7834 Declare.
7835 * Makefile.in (ipa-inline-transform.o): New file.
7836 * cgraphunit.c (save_inline_function_body): Move to
7837 ipa-inline-transform.c
7838
7839 2011-04-19 DJ Delorie <dj@redhat.com>
7840
7841 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
7842 registers if we already know there aren't any.
7843 (m32c_emit_epilogue): Don't emit a barrier here.
7844 (m32c_emit_eh_epilogue): Likewise.
7845 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
7846 operands at expand time.
7847 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
7848 int" wchar type.
7849 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
7850 duplicates. Provide aliases instead.
7851 * config/m32c/prologue.md (eh_return): Emit a barrier here.
7852 (eh_epilogue): Add a "(return)" here as a hint to other parts of
7853 the compiler.
7854
7855 2011-04-19 Anatoly Sokolov <aesok@post.ru>
7856
7857 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
7858 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
7859 (general_or_i64_p, sparc_register_move_cost): New function.
7860
7861 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7862
7863 * doc/install.texi (Configuration, --enable-threads): Remove mach.
7864 Add lynx, mipssde. Sort table.
7865
7866 2011-04-19 Xinliang David Li <davidxl@google.com>
7867
7868 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
7869 not negative.
7870
7871 2011-04-19 Jakub Jelinek <jakub@redhat.com>
7872
7873 PR target/48678
7874 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
7875 is a SUBREG with non-MODE_INT mode inside of it.
7876
7877 2011-04-19 Martin Jambor <mjambor@suse.cz>
7878
7879 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
7880 also according to actual contants.
7881 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
7882 (gimple_fold_call): Use it.
7883 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
7884
7885 2011-04-19 Martin Jambor <mjambor@suse.cz>
7886
7887 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
7888 non-pointer assignments.
7889
7890 2011-04-19 Martin Jambor <mjambor@suse.cz>
7891
7892 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
7893 account anc_offset and otr_type from the indirect edge info.
7894 * ipa-prop.c (get_ancestor_addr_info): New function.
7895 (compute_complex_ancestor_jump_func): Assignment analysis moved to
7896 get_ancestor_addr_info, call it.
7897 (ipa_note_param_call): Do not initialize information about polymorphic
7898 calls, return the indirect call graph edge. Remove the last
7899 parameter, adjust all callers.
7900 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
7901 parameters. Initialize polymorphic information in the indirect edge.
7902
7903 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
7904
7905 PR lto/48148
7906 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
7907 the types if they have different enumeration identifiers.
7908
7909 2011-04-19 Jan Hubicka <jh@suse.cz>
7910
7911 * cgraph.h (cgraph_optimize_for_size_p): Declare.
7912 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
7913 * predict.c (cgraph_optimize_for_size_p): Break out from ...
7914 (optimize_function_for_size_p) ... here.
7915
7916 2011-04-19 Richard Guenther <rguenther@suse.de>
7917
7918 PR lto/48207
7919 * tree.c (free_lang_data): Do not reset the decl-assembler-name
7920 langhook.
7921
7922 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
7923
7924 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
7925 if DECL_NO_INLINE_WARNING_P is set on the function.
7926
7927 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
7928
7929 PR fortran/47976
7930 * reload1.c (inc_for_reload): Return void. All callers changed.
7931 (emit_input_reload_insns): Don't try to delete previous output
7932 reloads to a register, or record spill_reg_store for autoincs.
7933
7934 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
7935
7936 * gengtype.h: Updated copyright year.
7937 (struct input_file_st): Add inpisplugin field.
7938 (type_fileloc): New function.
7939 * gengtype.c
7940 (write_typed_struct_alloc_def): Add gcc_assert.
7941 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
7942 (write_typed_alloc_defns): Don't output for plugin files.
7943 (input_file_by_name): Clear inpisplugin field.
7944 (main): Set inpisplugin field for plugin files.
7945
7946 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
7947
7948 * gengtype-state.c (string_eq): New.
7949 (read_state): Use string_eq instead of strcmp when creating the
7950 state_ident_tab.
7951
7952 2011-04-19 Wei Guozhi <carrot@google.com>
7953
7954 PR target/47855
7955 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
7956 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
7957 linkage.
7958 * config/arm/constraints.md (Uu): New constraint.
7959 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
7960
7961 2011-04-19 Tristan Gingold <gingold@adacore.com>
7962
7963 * config.gcc (-*-*-*vms): Added.
7964 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
7965 definitions moved.
7966 * config/vms/vms-ld.c: New file.
7967 * config/vms/vms-ar.c: New file.
7968 * config/vms/t-vmsnative: New file.
7969
7970 2011-04-18 Xinliang David Li <davidxl@google.com>
7971
7972 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
7973
7974 2011-04-18 Jakub Jelinek <jakub@redhat.com>
7975
7976 PR middle-end/48661
7977 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
7978 if TREE_TYPE (v) is non-NULL.
7979
7980 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
7981 gimple_get_virt_mehtod_for_binfo.
7982 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
7983 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
7984 callers.
7985 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
7986
7987 2011-04-18 Michael Matz <matz@suse.de>
7988 Steve Ellcey <sje@cup.hp.com>
7989
7990 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
7991 use its mode as source mode if it isn't VOIDmode.
7992
7993 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
7994
7995 * doc/passes.texi: Fill crossref nodes.
7996
7997 2011-04-18 Jim Meyering <meyering@redhat.com>
7998
7999 Fix doubled-word typos in comments and strings
8000 * config/alpha/vms-unwind.h: s/for for/for/
8001 * config/arm/unwind-arm.h: Likewise.
8002 * config/microblaze/microblaze.c: Likewise.
8003 * config/sh/constraints.md: s/in in/in/
8004 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
8005
8006 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
8007
8008 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
8009 (AVX_FLOAT_MODE_P): Ditto.
8010 (AVX128_VEC_FLOAT_MODE_P): Ditto.
8011 (AVX256_VEC_FLOAT_MODE_P): Ditto.
8012 (AVX_VEC_FLOAT_MODE_P): Ditto.
8013 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
8014 (UNSPEC_MASKSTORE): Ditto.
8015 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
8016 Merge from <sse>_movmsk<ssemodesuffix> and
8017 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
8018 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
8019 iterator.
8020 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
8021 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
8022 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
8023
8024 2011-04-18 Jan Hubicka <jh@suse.cz>
8025
8026 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
8027
8028 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
8029 (want_inline_function_called_once_p): Break out the logic from
8030 ipa_inline.
8031 (edge_badness): Ensure that profile is not misupdated.
8032 (lookup_recursive_calls): Prioritize by call frequencies.
8033 (inline_small_functions): Move program size estimates here;
8034 actually process whole queue even when unit growth has been
8035 met. (to properly compute inline_failed reasons and for the
8036 case unit size decrease.) Revisit comments on recursive inlining.
8037 (ipa_inline): Remove unit summary code; first inline hot calls
8038 of functions called once, cold calls next.
8039 (order, nnodes): Remove unused variables.
8040 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
8041 (GTFILES): Remove ipa-inline.c
8042 * sel-sched.c (fill_insns): Silence uninitialized var warning.
8043
8044 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
8045
8046 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
8047
8048 2011-04-18 Jie Zhang <jie@codesourcery.com>
8049 Richard Earnshaw <rearnsha@arm.com>
8050
8051 * arm.c (neon_builtin_type_bits): Remove.
8052 (typedef enum neon_builtin_mode): New.
8053 (T_MAX): Don't define.
8054 (typedef enum neon_builtin_datum): Remove bits, codes[],
8055 num_vars and base_fcode. Add mode, code and fcode.
8056 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
8057 VAR10): Change accordingly.
8058 (neon_builtin_data[]): Change accordingly
8059 (arm_init_neon_builtins): Change accordingly.
8060 (neon_builtin_compare): Remove.
8061 (locate_neon_builtin_icode): Remove.
8062 (arm_expand_neon_builtin): Change accordingly.
8063
8064 * arm.h (enum arm_builtins): Move to ...
8065 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
8066
8067 * arm.c (arm_builtin_decl): Declare.
8068 (TARGET_BUILTIN_DECL): Define.
8069 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
8070 (arm_builtin_decls[]): New.
8071 (arm_init_neon_builtins): Store builtin declarations in
8072 arm_builtin_decls[].
8073 (arm_init_tls_builtins): Likewise.
8074 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
8075 (arm_builtin_decl): New.
8076
8077 2011-04-18 Richard Guenther <rguenther@suse.de>
8078
8079 * tree.c (upper_bound_in_type): Build properly canonicalized
8080 INTEGER_CSTs.
8081 (lower_bound_in_type): Likewise.
8082
8083 2011-04-18 Richard Guenther <rguenther@suse.de>
8084
8085 * gimple.h (gimple_call_addr_fndecl): New function.
8086 (gimple_call_fndecl): Use it.
8087 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
8088 for direct calls.
8089 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
8090 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
8091
8092 2011-04-18 Richard Guenther <rguenther@suse.de>
8093
8094 PR middle-end/48650
8095 * tree.c (build_string): STRING_CST is now derived from tree_typed.
8096
8097 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
8098
8099 PR lto/48492
8100 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
8101 DECL_IN_CONSTANT_POOL without RTL.
8102
8103 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
8104 Ira Rosen <ira.rosen@linaro.org>
8105
8106 PR target/48252
8107 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
8108 to match neon_vzip/vuzp/vtrn_internal.
8109 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
8110 outputs explicitly dependent on both inputs.
8111 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
8112
8113 2011-04-18 Jakub Jelinek <jakub@redhat.com>
8114
8115 PR tree-optimization/48616
8116 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
8117 whether the shift is by scalar or vector based on whether all SLP
8118 scalar stmts have the same rhs.
8119
8120 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
8121
8122 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
8123 memory operands.
8124
8125 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
8126
8127 PR target/43700
8128 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
8129 registers.
8130
8131 2011-04-17 Jan Hubicka <jh@suse.cz>
8132
8133 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
8134 * cgrpahunit.c (cgraph_finalize_function): Do not set
8135 finalized_by_frontend.
8136 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
8137 finalized_by_frontend.
8138
8139 2011-04-17 Jan Hubicka <jh@suse.cz>
8140
8141 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
8142 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
8143 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
8144 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
8145 method.
8146 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
8147 gimple-fold.c
8148 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
8149
8150 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
8151
8152 PR lto/48538
8153 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
8154 is non-null before accessing it.
8155 (input_cgraph): Remove trailing spaces.
8156
8157 2011-04-17 Revital Eres <revital.eres@linaro.org>
8158
8159 * params.def (sms-min-sc): New param flag.
8160 * modulo-sched.c (sms_schedule): Use it.
8161 * doc/invoke.texi (sms-min-sc): Document it.
8162
8163 2011-04-17 Jan Hubicka <jh@suse.cz>
8164
8165 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
8166 present, also set gimple_call_set_cannot_inline.
8167 * ipa-inline.c: Update toplevel comment.
8168 (MAX_TIME): Remove.
8169 (cgraph_clone_inlined_nodes): Fix linebreaks.
8170 (cgraph_check_inline_limits): Restructure to ...
8171 (caller_growth_limits): ... this one; be more tolerant
8172 on growth in nested inline chains; add explanatory comment;
8173 fix stack accounting thinko introduced by previous patch.
8174 (cgraph_default_inline_p): Remove.
8175 (report_inline_failed_reason): New function.
8176 (can_inline_edge_p): New function.
8177 (can_early_inline_edge_p): New function.
8178 (leaf_node_p): Move upwards in file.
8179 (want_early_inline_function_p): New function.
8180 (want_inline_small_function_p): New function.
8181 (want_inline_self_recursive_call_p): New function.
8182 (cgraph_edge_badness): Rename to ...
8183 (edge_badness) ... this one; fix linebreaks.
8184 (update_edge_key): Update call of edge_baddness; add
8185 detailed dump about queue updates.
8186 (update_caller_keys): Use can_inline_edge_p and
8187 want_inline_small_function_p.
8188 (cgraph_decide_recursive_inlining): Rename to...
8189 (recursive_inlining): Use can_inline_edge_p and
8190 want_inline_self_recursive_call_p; simplify and remove no longer
8191 valid FIXME.
8192 (cgraph_set_inline_failed): Remove.
8193 (add_new_edges_to_heap): Use can_inline_edge_p and
8194 want_inline_small_function_p.
8195 (cgraph_decide_inlining_of_small_functions): Rename to ...
8196 (inline_small_functions): ... this one; cleanup; use
8197 can/want predicates; cleanup debug ouput; work edges till fibheap
8198 is exhausted and do not stop once unit growth is reached; remove
8199 later loop processing remaining edges.
8200 (cgraph_flatten): Rename to ...
8201 (flatten_function): ... this one; use can_inline_edge_p
8202 and can_early_inline_edge_p predicates.
8203 (cgraph_decide_inlining): Rename to ...
8204 (ipa_inline): ... this one; remove unreachable nodes before
8205 inlining functions called once; simplify the pass.
8206 (cgraph_perform_always_inlining): Rename to ...
8207 (inline_always_inline_functions): ... this one; use
8208 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
8209 (cgraph_decide_inlining_incrementally): Rename to ...
8210 (early_inline_small_functions): ... this one; simplify
8211 using new predicates; cleanup; make dumps prettier.
8212 (cgraph_early_inlining): Rename to ...
8213 (early_inliner): newer inline regular functions into always-inlines;
8214 fix updating of call stmt summaries.
8215 (pass_early_inline): Update for new names.
8216 (inline_transform): Fix formating.
8217 (gate_cgraph_decide_inlining): Rename to ...
8218 (pass_ipa_inline): ... this one.
8219 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
8220 * ipa-inline-analysis.c (dump_inline_summary): Update.
8221 (compute_inline_parameters): Do not compute disregard_inline_limits;
8222 look for mismatching arguments.
8223 (estimate_growth): Fix handlig of non-trivial self recursion.
8224 (inline_read_summary): Do not read info->disregard_inline_limits.
8225 (inline_write_summary): Do not write info->disregard_inline_limits.
8226 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
8227 and move all checks into can_inline_edge_p predicate; re-enable code
8228 comparing optimization levels.
8229 (expand_call_inline): Do not test inline_forbidden_into_p.
8230 * Makefile.in (ipa-inline.o): Update arguments.
8231
8232 2011-04-17 Revital Eres <revital.eres@linaro.org>
8233
8234 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
8235
8236 2011-04-17 Revital Eres <revital.eres@linaro.org>
8237
8238 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
8239
8240 2011-04-17 Michael Matz <matz@suse.de>
8241
8242 PR tree-optimization/48622
8243 PR lto/48645
8244 * ipa-inline-analysis.c (inline_read_summary): Read size/time
8245 in same order as they're written.
8246
8247 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8248
8249 * config/pa/predicates.md: Reorganize and simplify predicates.
8250 Eliminate duplicate code checks.
8251 (arith_operand): Rename to arith14_operand
8252 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
8253 * config/pa/pa.md: Use renamed operands.
8254 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
8255 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
8256 arith11_operand, adddi3_operand, indexed_memory_operand,
8257 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
8258 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
8259 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
8260 move_dest_operand, move_src_operand, prefetch_cc_operand,
8261 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
8262 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
8263 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
8264 div_operand, int5_operand, movb_comparison_operator,
8265 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
8266 arith_double_operand, ireg_operand, lhs_lshift_operand,
8267 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
8268 integer_store_memory_operand): Likewise.
8269 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
8270 (integer_store_memory_operand, read_only_operand,
8271 function_label_operand, borx_reg_operand,
8272 non_hard_reg_operand): Likewise.
8273 (eq_neq_comparison_operator): Delete unused operator.
8274 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
8275 function_label_operand.
8276 (emit_move_sequence): Likewise.
8277
8278 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
8279
8280 * config/i386/sse.md (sseunpackmode): New mode attribute.
8281 (ssepackmode): Ditto.
8282 (vec_pack_trunc_<mode>): Macroize expander from
8283 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
8284 (vec_unpacks_lo_<mode>): Macroize expander from
8285 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
8286 (vec_unpacks_hi_<mode>): Macroize expander from
8287 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
8288 (vec_unpacku_lo_<mode>): Macroize expander from
8289 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
8290 (vec_unpacku_hi_<mode>): Macroize expander from
8291 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
8292 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
8293 ix86_expand_sse4_unpack.
8294 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
8295
8296 2011-04-16 Jan Hubicka <jh@suse.cz>
8297
8298 * cgraphbuild.c: Include ipa-inline.h.
8299 (reset_inline_failed): Use initialize_inline_failed.
8300 * cgraph.c: Include ipa-inline.h.
8301 (cgraph_create_node_1): Do not initialize estimated_growth.
8302 (initialize_inline_failed): More to ipa-inline-analysis.c
8303 (dump_cgraph_node): Do not dump inline flags.
8304 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
8305 and disregard_inline_limits flags.
8306 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
8307 time, size, estimated_growth.
8308 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
8309 Update.
8310 * cgraphunit.c (cgraph_decide_is_function_needed): Use
8311 DECL_DISREGARD_INLINE_LIMITS.
8312 (cgraph_analyze_function): Do not initialize
8313 node->local.disregard_inline_limits.
8314 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
8315 inlinable, versionable and disregard_inline_limits.
8316 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8317 cgraph_check_inline_limits, cgraph_default_inline_p,
8318 cgraph_edge_badness, update_caller_keys, update_callee_keys,
8319 add_new_edges_to_heap): Update.
8320 (cgraph_decide_inlining_of_small_function): Update; set
8321 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
8322 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
8323 cgraph_decide_inlining_incrementally): Update.
8324 * ipa-inline.h (inline_summary): Add inlinable, versionable,
8325 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
8326 time, size and estimated_growth parameters.
8327 (estimate_edge_growth): Update.
8328 (initialize_inline_failed): Declare.
8329 * ipa-split.c: Include ipa-inline.h
8330 (execute_split_functions): Update.
8331 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
8332 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
8333 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
8334 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
8335 estimated_growth to INT_MIN.
8336 (inline_node_duplication_hook): Likewise.
8337 (dump_inline_summary): Dump new fields.
8338 (compute_inline_parameters): Update.
8339 (estimate_edge_time, estimate_time_after_inlining,
8340 estimate_size_after_inlining, estimate_growth, inline_read_summary,
8341 inline_write_summary):
8342 (initialize_inline_failed): Move here from cgraph.c.
8343 * tree-sra.c: Include ipa-inline.h.
8344 (ipa_sra_preliminary_function_checks): Update.
8345 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
8346 ipa-inline.h.
8347
8348 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
8349
8350 * config/i386/sse.md (V16): New mode iterator.
8351 (VI1, VI8): Ditto.
8352 (AVXMODEQI, AVXMODEDI): Remove.
8353 (sse2, sse3): New mode attribute.
8354 (mov<mode>): Use V16 mode iterator.
8355 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
8356 (push<mode>1): Use V16 mode iterator.
8357 (movmisalign<mode>): Ditto.
8358 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
8359 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
8360 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
8361 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
8362 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
8363 avx_movdqu<avxmodesuffix>.
8364 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
8365 *avx_movdqu<avxmodesuffix>.
8366 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
8367 avx_lddqu<avxmodesuffix>.
8368 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
8369 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
8370 avx_movnt<AVXMODEDI:mode>.
8371 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
8372 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
8373
8374 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
8375
8376 PR target/48629
8377 * haifa-sched.c (prune_ready_list, schedule_block): Use
8378 sched_pressure_p rather than flag_sched_pressure.
8379
8380 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
8381
8382 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
8383 cgraph_get_node instead of cgraph_get_create_node.
8384
8385 2011-04-15 Jakub Jelinek <jakub@redhat.com>
8386
8387 * cfgexpand.c (expand_debug_expr): Use
8388 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
8389
8390 2011-04-15 Michael Matz <matz@suse.de>
8391
8392 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
8393 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
8394 * function.c (gimplify_parameters): Ditto.
8395 * gimplify.c (gimplify_vla_decl): Ditto.
8396
8397 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
8398 (gimple_call_set_alloca_for_var): New inline function.
8399 (gimple_call_alloca_for_var_p): Ditto.
8400 * gimple.c (gimple_build_call_from_tree): Remember
8401 CALL_ALLOCA_FOR_VAR_P state.
8402 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
8403
8404 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
8405 calls if they were for VLA objects.
8406
8407 2011-04-15 Martin Jambor <mjambor@suse.cz>
8408
8409 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
8410 of ADR_EXPRs.
8411
8412 2011-04-15 Martin Jambor <mjambor@suse.cz>
8413
8414 PR middle-end/48601
8415 * tree-emutls.c (lower_emutls_function_body): Call
8416 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
8417 result is non-NULL.
8418
8419 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
8420
8421 * c-decl.c (detect_field_duplicates): Call
8422 objc_detect_field_duplicates instead of objc_get_interface_ivars.
8423
8424 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
8425
8426 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
8427 * gimple.c (gimple_asm_clobbers_memory_p): Define.
8428 * ipa-pure-const.c (check_stmt): Call it.
8429 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
8430
8431 2011-04-15 Richard Guenther <rguenther@suse.de>
8432
8433 PR tree-optimization/48290
8434 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
8435 Properly decide inhibiting propagation based on the valueized
8436 operand. Do loop-closed SSA form preserving here ...
8437 (init_copy_prop): ... not here.
8438
8439 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
8440
8441 PR target/48612
8442 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
8443 (*ieee_smax<mode>3): Likewise.
8444
8445 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8446
8447 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
8448 Replace match_operand with match_dup for the third operand in
8449 these expanders.
8450
8451 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
8452
8453 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
8454 to track processing of conditionals. Update all callers.
8455 (try_combine, simplify_if_then_else): Update.
8456
8457 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
8458
8459 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
8460 -fsched-pressure.
8461
8462 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
8463
8464 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
8465 instead of match_operand for operand 3.
8466
8467 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
8468
8469 * recog.h (insn_operand_data): Add an "allows_mem" field.
8470 * genoutput.c (output_operand_data): Initialize it.
8471 * optabs.c (maybe_legitimize_operand_same_code): New function.
8472 (maybe_legitimize_operand): Use it when matching the original
8473 op->value.
8474
8475 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
8476
8477 * gimplify.c: Fix issues in comments throughout.
8478 (voidify_wrapper_expr): Fix long line.
8479 (build_stack_save_restore): Likewise.
8480 (gimplify_loop_expr): Likewise.
8481 (gimplify_compound_lval): Likewise.
8482 (gimplify_init_ctor_eval): Likewise.
8483 (gimplify_modify_expr_rhs): Likewise.
8484 (omp_notice_threadprivate_variable): Likewise.
8485
8486 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
8487
8488 * cfgexpand.c (expand_call_stmt): Convert the function type to the
8489 original one if this is not a builtin function.
8490
8491 2011-04-14 Jakub Jelinek <jakub@redhat.com>
8492
8493 PR target/48605
8494 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
8495 offset it as needed based on top 2 bits in operands[3], change
8496 MEM mode to SFmode and mask those 2 bits away from operands[3].
8497
8498 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
8499
8500 * c-parser.c (c_parser_objc_protocol_definition): Updated for
8501 change from objc_declare_protocols() to objc_declare_protocol().
8502
8503 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
8504
8505 * config/i386/sse.md (sse4_1): New mode attribute.
8506 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
8507 avx_blend<ssemodesuffix><avxmodesuffix> and
8508 sse4_1_blend<ssemodesuffix> using VF mode iterator.
8509 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
8510 avx_blendv<ssemodesuffix><avxmodesuffix> and
8511 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
8512 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
8513 avx_dp<ssemodesuffix><avxmodesuffix> and
8514 sse4_1_dp<ssemodesuffix> using VF mode iterator.
8515 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
8516 (sse4_1_packusdw): Merge with *avx_packusdw.
8517 (sse4_1_pblendvb): Merge with *avx_pblendvb.
8518 (sse4_1_pblendw): Merge with *avx_pblendw.
8519 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
8520 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
8521 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
8522 VF mode iterator.
8523 (sse4_1_round<ssescalarmodesuffix>): Merge with
8524 *avx_round<ssescalarmodesuffix>.
8525 (aesenc): Merge with *avx_aesenc.
8526 (aesenclast): Merge with *avx_aesenclast.
8527 (aesdec): Merge with *avx_aesdec.
8528 (aesdeclast): Merge with *avx_aesdeclast.
8529 (pclmulqdq): Merge with *pclmulqdq.
8530 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
8531 New predicate.
8532 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
8533
8534 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
8535
8536 PR middle-end/48608
8537 * cfgexpand.c (get_decl_align_unit): Renamed to ...
8538 (align_local_variable): This. Update DECL_ALIGN.
8539 (add_stack_var): Updated.
8540 (expand_one_stack_var): Likewise.
8541
8542 2011-04-14 Richard Guenther <rguenther@suse.de>
8543
8544 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
8545 Remove.
8546 (dse_initialize_block_local_data, dse_leave_block,
8547 record_voperand_set, get_stmt_uid): Likewise.
8548 (dse_possible_dead_store_p): Allow any kind of killing stmt.
8549 (dse_optimize_stmt): Remove voperand set handling code.
8550 Simplify and improve to handle any kind of killing stmt.
8551 (dse_record_phi): Remove.
8552 (dse_enter_block): Simplify.
8553 (tree_ssa_dse): Likewise.
8554 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
8555
8556 2011-04-14 Jan Hubicka <jh@suse.cz>
8557
8558 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
8559 * cgraph.h (struct inline_summary): Move to ipa-inline.h
8560 (cgraph_local_info): Remove inline_summary.
8561 * ipa-cp.c: Include ipa-inline.h.
8562 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
8563 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
8564 accesor.
8565 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
8566 (input_overwrite_node): Do not set inline summary.
8567 (input_node): Do not stream inline summary.
8568 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
8569 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
8570 growth; we do not have inline parameters computed for that anyway.
8571 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
8572 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
8573 (inline_summary_t): New type and VECtor.
8574 (debug_inline_summary, dump_inline_summaries): Declare.
8575 (inline_summary): Use VOCtor.
8576 (estimate_edge_growth): Kill hack computing call stmt size directly.
8577 * lto-section-in.c (lto_section_name): Add inline section.
8578 * ipa-inline-analysis.c: Include lto-streamer.h
8579 (node_removal_hook_holder, node_duplication_hook_holder): New holders
8580 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
8581 (inline_summary_vec): Define.
8582 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
8583 dump_inline_summaries): New functions.
8584 (estimate_function_body_sizes): Properly compute size/time of outgoing
8585 calls.
8586 (compute_inline_parameters): Alloc inline_summary; do not compute
8587 size/time of incomming calls.
8588 (estimate_edge_time): Avoid missing time summary hack.
8589 (inline_read_summary): Read inline summary info.
8590 (inline_write_summary): Write inline summary info.
8591 (inline_free_summary): Free all hooks and inline summary vector.
8592 * lto-streamer.h: Add LTO_section_inline_summary section.
8593 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
8594 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
8595
8596 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8597
8598 * tree-vectorizer.h (vect_strided_store_supported): Add a
8599 HOST_WIDE_INT argument.
8600 (vect_strided_load_supported): Likewise.
8601 (vect_permute_store_chain): Return void.
8602 (vect_transform_strided_load): Likewise.
8603 (vect_permute_load_chain): Delete.
8604 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
8605 count argument. Check that the count is a power of two.
8606 (vect_strided_load_supported): Likewise.
8607 (vect_permute_store_chain): Return void. Update after above changes.
8608 Assert that the access is supported.
8609 (vect_permute_load_chain): Likewise.
8610 (vect_transform_strided_load): Return void.
8611 * tree-vect-stmts.c (vectorizable_store): Update calls after
8612 above interface changes.
8613 (vectorizable_load): Likewise.
8614 (vect_analyze_stmt): Don't check for strided powers of two here.
8615
8616 2011-04-14 Richard Guenther <rguenther@suse.de>
8617
8618 PR tree-optimization/48590
8619 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
8620 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
8621 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
8622 BUILT_IN_STACK_SAVE.
8623 * tree-ssa-dce.c (propagate_necessity): Handle
8624 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
8625
8626 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
8627
8628 * c-parser.c (c_parser_objc_class_declaration): Updated call to
8629 objc_declare_class.
8630
8631 2011-04-14 Richard Guenther <rguenther@suse.de>
8632
8633 * tree.h (get_object_alignment_1): Declare.
8634 * builtins.c (get_object_alignment_1): Split out worker from ...
8635 (get_object_alignment): ... here.
8636 * fold-const.c (get_pointer_modulus_and_residue): Use
8637 get_object_alignment_1.
8638
8639 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8640
8641 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
8642 type parameter.
8643 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
8644 parameter. Generalise code to handle arrays as well as vectors.
8645 (vect_setup_realignment): Update accordingly.
8646 * tree-vect-stmts.c (vectorizable_store): Likewise.
8647 (vectorizable_load): Likewise.
8648
8649 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8650
8651 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
8652 within the per-copy loop.
8653
8654 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8655
8656 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
8657 in the dump file.
8658
8659 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
8660
8661 * doc/options.texi (Negative): Explicitly mention that the
8662 Negative chain must be circular.
8663
8664 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
8665
8666 * function.h (block_chainon): Declare.
8667 * function.c (block_chainon): Define.
8668
8669 2011-04-14 Anatoly Sokolov <aesok@post.ru>
8670 Eric Weddington <eric.weddington@atmel.com>
8671 Georg-Johann Lay <avr@gjlay.de>
8672
8673 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
8674 New Includes
8675 (avr_init_builtins, avr_expand_builtin,
8676 avr_expand_delay_cycles, avr_expand_unop_builtin,
8677 avr_expand_binop_builtin ): New functions.
8678 (avr_builtin_id): New enum
8679 (struct avr_builtin_description): New struct
8680 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
8681 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
8682
8683 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
8684 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
8685 UNSPECV_DELAY_CYCLES): new enumeration values
8686 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
8687 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
8688 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
8689 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
8690 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
8691 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
8692 "fmulsu"): New insns
8693
8694 * config/avr/avr-c.c: fix line endings
8695 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
8696 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
8697 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
8698 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
8699 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
8700
8701 * doc/extend.texi (AVR Built-in Functions): New node
8702 (Target Builtins): Add documentation of AVR
8703 built-in functions.
8704
8705 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
8706
8707 PR target/44643
8708 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
8709 alone. Error if non-const data has attribute progmem.
8710
8711 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8712
8713 * tree.h (struct tree_constructor): Include tree_typed instead of
8714 tree_common.
8715 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
8716 TS_TYPED instead of TS_COMMON.
8717
8718 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
8719
8720 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
8721 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
8722 (sse2_psadbw): Merge with *avx_psadbw.
8723 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
8724 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
8725 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
8726 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
8727 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
8728 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
8729 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
8730 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
8731 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
8732 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
8733 (ssse3_palignrti): Merge with *avx_palignrti.
8734
8735 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8736
8737 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
8738 * tree-ssanames.c (fini_ssanames): VEC_free it.
8739 (make_ssa_name_fn): Update for VECness of free_ssanames.
8740 (release_ssa_name, release_dead_ssa_names): Likewise.
8741 * tree.h (struct tree_ssa_name): Include tree_typed instead of
8742 tree_common.
8743 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
8744 TS_TYPED instead of TS_COMMON.
8745
8746 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8747
8748 * postreload-gcse.c (gcse_after_reload_main): Add calls to
8749 statistics_counter_event.
8750 * tree-ssa-copyrename.c (stats): Define.
8751 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
8752 statistics_counter_event.
8753 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
8754 (bswap_stats, widen_mul_stats): Define.
8755 (insert_reciprocals): Increment rdivs_inserted.
8756 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
8757 rfuncs_inserted. Add calls to statistics_counter_event.
8758 (execute_cse_sincos_1): Increment inserted.
8759 (execute_cse_sincos): Zeroize sincos_stats. Add call to
8760 statistics_counter_event.
8761 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
8762 of bswap_stats. Add calls to statistics_counter_event.
8763 (convert_mult_to_widen): Increment widen_mults_inserted.
8764 (convert_plusminus_to_widen): Increment maccs_inserted.
8765 (convert_mult_to_fma): Increment fmas_inserted.
8766 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
8767 calls to statistics_counter_event.
8768
8769 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
8770
8771 PR rtl-optimization/48455
8772 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
8773 `temp_costs->mem_cost'.
8774
8775 2011-04-13 Jan Hubicka <jh@suse.cz>
8776
8777 * ipa-inline.h: New file.
8778 * ipa-inline-analysis.c: New file. Broken out of ...
8779 * ipa-inline.c: ... this file; update toplevel comment;
8780 include ipa-inline.h
8781 (inline_summary): Move to ipa-inline.h
8782 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
8783 ipa-inline-analysis.c.
8784 (cgraph_estimate_time_after_inlining): Rename to
8785 estiamte_time_after_inlining; move to ipa-inline-analysis.c
8786 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
8787 to estimate_edge_growth.
8788 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
8789 rename to estimate_size_after_inlining.
8790 (cgraph_mark_inline_edge): Update for new naming convention.
8791 (cgraph_check_inline_limits): Likewise.
8792 (cgraph_edge_badness): Likewise.
8793 (cgraph_decide_recursive_inlining): Likewise.
8794 (cgraph_decide_inlining_of_small_functions): Likewise.
8795 (cgraph_decide_inlining_incrementally): Likewise.
8796 (cgraph_estimate_growth): Rename to estimate_growth; move to
8797 ipa-inline-analysis.c.
8798 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
8799 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
8800 (compute_inline_parameters): Likewise.
8801 (compute_inline_parameters_for_current): Likewise.
8802 (pass_inline_parameters): Likewise.
8803 (inline_indirect_intraprocedural_analysis): Likewise.
8804 (analyze_function): Rename to inline_analyze_function; likewise.
8805 (add_new_function): Move to ipa-inline-analysis.c.
8806 (inline_generate_summary): Likewise.
8807 (inline_read_summary): Likewise.
8808 (inline_write_summary): Likewise.
8809 * Makefile.in (ipa-inline-analysis.c): New file.
8810
8811 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8812
8813 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
8814 * configure: Regenerate.
8815
8816 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
8817
8818 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
8819 instead of tree_common.
8820 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
8821 Likewise.
8822 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
8823 TS_TYPED rather than TS_COMMON.
8824 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
8825
8826 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
8827
8828 PR target/45263
8829 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
8830 r20 around calls of __tablejump_elpm__
8831
8832 2011-04-13 Jakub Jelinek <jakub@redhat.com>
8833
8834 PR middle-end/48591
8835 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
8836 NULL.
8837 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
8838
8839 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
8840
8841 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
8842 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
8843 (cfi_vec): New typedef.
8844 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
8845 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
8846 (cie_cfi_vec): New static variable.
8847 (cie_cfi_head): Delete.
8848 (add_cfi): Accept a cfi_vec * as first argument. All callers and
8849 declaration changed. Use vector rather than list operations.
8850 (new_cfi): Don't initialize the dw_cfi_next field.
8851 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
8852 rather than list operations.
8853 (lookup_cfa): Use vector rather than list operations.
8854 (output_cfis): New argument upto. Accept a cfi_vec rather than
8855 a dw_cfi_ref list head as argument. All callers changed.
8856 Iterate over the vector using upto as a maximum index.
8857 (output_all_cfis): New static function.
8858 (output_fde): Use vector rather than list operations. Use the
8859 new upto argument for output_cfis rather than manipulating a
8860 list.
8861 (dwarf2out_begin_prologue): Change initializations to match
8862 new struct members.
8863 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
8864 from the vector length rather than searching for the end of a list.
8865 Use output_all_cfis.
8866 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
8867
8868 2011-04-13 Nick Clifton <nickc@redhat.com>
8869
8870 * config/rx/rx.md (movmemsi): Do not use this pattern when
8871 volatile pointers are involved.
8872
8873 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
8874
8875 * config/i386/sse.md (pinsrbits): Remove.
8876 (sse2_packsswb): Merge with *avx_packsswb.
8877 (sse2_packssdw): Merge with *avx_packssdw.
8878 (sse2_packuswb): Merge with *avx_packuswb.
8879 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
8880 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
8881 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
8882 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
8883 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
8884 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
8885 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
8886 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
8887 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
8888 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
8889 (sse2_loadld): Merge with *avx_loadld.
8890 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
8891 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
8892 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
8893 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
8894 (vec_concatv2di): Merge with *vec_concatv2di_avx.
8895
8896 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
8897
8898 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
8899 calling TREE_CHAIN.
8900 * print-tree.c (print_node): Likewise.
8901 * tree-inline.c (copy_tree_r): Likewise.
8902 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
8903 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
8904 instead of TS_COMMON.
8905 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
8906 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
8907 (copy_node_stat): Zero TREE_CHAIN only if necessary.
8908 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
8909 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
8910 ...and these...
8911 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
8912 * tree.h: ...here.
8913 (TREE_CHAIN): Check for a TS_COMMON structure.
8914 (TREE_TYPE): Check for a TS_TYPED structure.
8915
8916 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
8917
8918 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
8919 cgraph_get_create_node instead of cgraph_node.
8920
8921 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
8922
8923 * c-parser.c (c_parser_initelt): Updated call to
8924 objc_build_message_expr.
8925 (c_parser_postfix_expression): Likewise.
8926
8927 2011-04-12 Kai Tietz <ktietz@redhat.com>
8928
8929 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
8930 MASK_MS_BITFIELD_LAYOUT bit.
8931
8932 2011-04-12 Jakub Jelinek <jakub@redhat.com>
8933
8934 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
8935 assert it is always true.
8936 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
8937 moves.
8938
8939 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
8940
8941 * c-parser.c (c_lex_one_token): Rewritten conditional used when
8942 compiling Objective-C to be more efficient.
8943
8944 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
8945
8946 * opts-common.c (decode_cmdline_options_to_array): Remove variable
8947 argv_copied.
8948
8949 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8950
8951 * recog.h, genoutput.c, optabs.c: Revert last patch.
8952
8953 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8954
8955 PR target/48090
8956 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
8957
8958 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8959
8960 * recog.h (insn_operand_data): Add an "allows_mem" field.
8961 * genoutput.c (output_operand_data): Initialize it.
8962 * optabs.c (maybe_legitimize_operand_same_code): New function.
8963 (maybe_legitimize_operand): Use it when matching the original
8964 op->value.
8965
8966 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8967
8968 * genpreds.c (process_define_predicate): Move most processing
8969 to gensupport.c. Continue to validate the expression.
8970 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
8971 (process_define_predicate): Move processing to gensupport.c.
8972 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
8973 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
8974 (compute_predicate_codes): Moved from genrecog.c. Add lineno
8975 argument.
8976 (valid_predicate_name_p): New function, split out from old
8977 genpreds.c:process_define_predicate.
8978 (process_define_predicate): New function, combining code from
8979 old genpreds.c and genrecog.c functions.
8980 (process_rtx): Call it for DEFINE_PREDICATE and
8981 DEFINE_SPECIAL_PREDICATE.
8982
8983 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
8984
8985 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
8986 size of a '%A' memory reference.
8987 (T_DREG, T_QREG): New neon_builtin_type_bits.
8988 (arm_init_neon_builtins): Assert that the load and store operands
8989 are neon_struct_operands.
8990 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
8991 (NEON_ARG_MEMORY): New builtin_arg.
8992 (neon_dereference_pointer): New function.
8993 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
8994 Handle NEON_ARG_MEMORY.
8995 (arm_expand_neon_builtin): Update after above interface changes.
8996 Use NEON_ARG_MEMORY for loads and stores.
8997 * config/arm/predicates.md (neon_struct_operand): New predicate.
8998 * config/arm/iterators.md (V_two_elem): Tweak formatting.
8999 (V_three_elem): Use BLKmode for accesses that have no associated mode.
9000 (V_four_elem): Tweak formatting.
9001 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
9002 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
9003 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
9004 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
9005 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
9006 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
9007 (neon_vst4<mode>): Replace pointer operand with a memory operand.
9008 Use %A in the output template.
9009 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
9010 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
9011 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
9012 the width of the memory access. Remove post-increment.
9013 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
9014
9015 2011-04-12 Nick Clifton <nickc@redhat.com>
9016
9017 * config/v850/v850.c (expand_prologue): Do not use the CALLT
9018 instruction for interrupt handlers if the target is the basic V850
9019 architecture.
9020 (expand_epilogue): Likewise.
9021
9022 2011-04-12 Jakub Jelinek <jakub@redhat.com>
9023
9024 PR rtl-optimization/48549
9025 * combine.c (propagate_for_debug): Also stop after BB_END of
9026 this_basic_block. Process LAST and just stop processing after it.
9027 (combine_instructions): If last_combined_insn has been deleted,
9028 set last_combined_insn to its PREV_INSN.
9029
9030 2011-04-12 Richard Guenther <rguenther@suse.de>
9031
9032 PR tree-optimization/46076
9033 * gimple.h (struct gimple_statement_call): Add fntype field.
9034 (gimple_call_fntype): Adjust.
9035 (gimple_call_set_fntype): New function.
9036 * gimple.c (gimple_build_call_1): Set the call function type.
9037 * gimplify.c (gimplify_call_expr): Preserve the function
9038 type the frontend used for the call.
9039 (gimplify_modify_expr): Likewise.
9040 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
9041 function type.
9042 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
9043 function type.
9044 * tree-ssa.c (useless_type_conversion_p): Function pointer
9045 conversions are useless.
9046
9047 2011-04-12 Martin Jambor <mjambor@suse.cz>
9048
9049 * cgraph.h (cgraph_node): Remove function declaration.
9050 (cgraph_create_node): Declare.
9051 (cgraph_get_create_node): Likewise.
9052 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
9053 Updated all callers.
9054 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
9055 the decl does not already exist. Call cgraph_get_create_node instead
9056 of cgraph_node.
9057 (cgraph_get_create_node): New function.
9058 (cgraph_same_body_alias): Update comment.
9059 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
9060 assert it does not return NULL.
9061 (cgraph_update_edges_for_call_stmt): Likewise.
9062 (cgraph_clone_edge): Likewise.
9063 (cgraph_create_virtual_clone): Likewise.
9064 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
9065 instead of cgraph_node.
9066 (cgraph_add_new_function): Call cgraph_create_node or
9067 cgraph_get_create_node instead of cgraph_node.
9068 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
9069 instead of cgraph_node.
9070 (record_eh_tables): Likewise.
9071 (mark_address): Likewise.
9072 (mark_load): Likewise.
9073 (build_cgraph_edges): Call cgraph_get_create_node instead
9074 of cgraph_node.
9075 (rebuild_cgraph_edges): Likewise.
9076 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
9077 instead of cgraph_node.
9078 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
9079 cgraph_node.
9080 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
9081 cgraph_create_node instead of cgraph_node.
9082 * c-decl.c (finish_function): Call cgraph_get_create_node instead
9083 of cgraph_node.
9084 * lto-cgraph.c (input_node): Likewise.
9085 * lto-streamer-in.c (input_function): Likewise.
9086 * varasm.c (mark_decl_referenced): Likewise.
9087 (assemble_alias): Likewise.
9088
9089 2011-04-12 Martin Jambor <mjambor@suse.cz>
9090
9091 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
9092 instead of cgraph_node and assert it does not return NULL.
9093 * lto-streamer-in.c (lto_read_body): Likewise.
9094 * omp-low.c (new_omp_context): Likewise.
9095 (create_task_copyfn): Likewise.
9096 * tree-emutls.c (lower_emutls_function_body): Likewise.
9097 * matrix-reorg.c (transform_allocation_sites): Likewise.
9098
9099 2011-04-12 Jakub Jelinek <jakub@redhat.com>
9100
9101 PR c/48552
9102 * c-typeck.c (build_asm_expr): Error out on attempts to use
9103 void type outputs or inputs for constraints that allow reg or
9104 don't allow memory.
9105
9106 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
9107 Richard Earnshaw <rearnsha@arm.com>
9108
9109 PR target/48250
9110 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
9111 to use sign-magnitude offsets. Reject unsupported unaligned
9112 cases. Add detailed description in comments.
9113 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
9114 condition from TARGET_32BIT to TARGET_ARM.
9115
9116 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
9117
9118 * tree.h (struct typed_tree): New.
9119 (struct tree_common): Include it instead of tree_base.
9120 (TREE_TYPE): Update for new location of type field.
9121 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
9122 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
9123 (union tree_node): Add typed field.
9124 * treestruct.def (TS_TYPED): New.
9125 * lto-streamer.c (check_handled_ts_structures): Handle it.
9126 * tree.c (MARK_TS_TYPED): New macro.
9127 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
9128
9129 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
9130
9131 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
9132 (force_nonfallthru): Do not alter the loop nest if no basic block
9133 was created.
9134
9135 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
9136
9137 * config/i386/sse.md (VI): New mode iterator.
9138 (SSEMODEI): Remove.
9139 (AVX256MODEI): Ditto.
9140 (AVXMODEF4P): Ditto.
9141 (avxvecpsmode): Ditto.
9142 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
9143 (sse2_andnot<mode>3): New expander.
9144 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
9145 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
9146 (<any_logic:code><mode>3): Use VI mode iterator.
9147 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
9148 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
9149 (*andnottf3): Handle AVX three-operand constraints.
9150 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
9151
9152 2011-04-11 Joseph Myers <joseph@codesourcery.com>
9153 Robert Millan <rmh@gnu.org>
9154
9155 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
9156 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
9157 GNU_USER_DYNAMIC_LINKER64): Define.
9158 (REG_NAME): Don't undefine.
9159 (MD_UNWIND_SUPPORT): Undefine.
9160 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
9161 (REG_NAME): Don't undefine.
9162 (MD_UNWIND_SUPPORT): Undefine.
9163 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
9164
9165 2011-04-11 Joseph Myers <joseph@codesourcery.com>
9166
9167 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
9168 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
9169
9170 2011-04-11 Xinliang David Li <davidxl@google.com>
9171
9172 * value-profile.c (check_ic_target): New function.
9173 (gimple_ic_transform): Sanity check indirect call target.
9174 * gimple-low.c (gimple_check_call_args): Interface change.
9175 (gimple_check_call_matching_types): New function.
9176 * tree-inline.c (tree_can_inline_p): Call new function.
9177
9178 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
9179
9180 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
9181 tree-pretty-print.h & realmpfr.h.
9182
9183 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
9184
9185 PR middle-end/48464
9186 * ira.c (setup_pressure_classes): Fix typo in loop condition.
9187 (setup_allocno_and_important_classes): Ditto.
9188
9189 2011-04-11 Joseph Myers <joseph@codesourcery.com>
9190
9191 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
9192 GNU_USER_DYNAMIC_LINKER.
9193 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
9194 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9195 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
9196 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
9197 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
9198 GNU_USER_TARGET_OS_CPP_BUILTINS.
9199 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
9200 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9201 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
9202 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9203 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
9204 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
9205 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
9206 GNU_USER_TARGET_OS_CPP_BUILTINS.
9207 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9208 GNU_USER_DYNAMIC_LINKER.
9209 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
9210 GNU_USER_TARGET_OS_CPP_BUILTINS.
9211 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
9212 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9213 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
9214 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9215 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
9216 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
9217 GNU_USER_DYNAMIC_LINKER64): Remove.
9218 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
9219 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9220 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9221 GNU_USER_DYNAMIC_LINKER.
9222 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
9223 GNU_USER_TARGET_OS_CPP_BUILTINS.
9224 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
9225 GNU_USER_TARGET_OS_CPP_BUILTINS.
9226 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
9227 to GNU_USER_TARGET_OS_CPP_BUILTINS.
9228 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
9229 GNU_USER_TARGET_OS_CPP_BUILTINS.
9230 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
9231 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
9232 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
9233 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
9234 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9235 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9236 GNU_USER_DYNAMIC_LINKER.
9237 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
9238 GNU_USER_TARGET_OS_CPP_BUILTINS.
9239 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
9240 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9241 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9242 GNU_USER_DYNAMIC_LINKER.
9243 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
9244 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9245 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
9246 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9247 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9248 GNU_USER_DYNAMIC_LINKER.
9249 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
9250 GNU_USER_DYNAMIC_LINKERN32.
9251 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
9252 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
9253 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
9254 GNU_USER_DYNAMIC_LINKER32.
9255 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
9256 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9257 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9258 GNU_USER_DYNAMIC_LINKER.
9259 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
9260 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9261 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
9262 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9263 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
9264 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
9265 GNU_USER_DYNAMIC_LINKER32.
9266 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
9267 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
9268 GNU_USER_DYNAMIC_LINKER.
9269 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
9270 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9271 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
9272 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
9273 GNU_USER_DYNAMIC_LINKER64.
9274 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
9275 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9276 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9277 GNU_USER_DYNAMIC_LINKER.
9278 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
9279 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9280 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9281 GNU_USER_DYNAMIC_LINKER.
9282 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
9283 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9284 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
9285 GNU_USER_DYNAMIC_LINKER32.
9286 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
9287 GNU_USER_DYNAMIC_LINKER64.
9288 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
9289 GNU_USER_DYNAMIC_LINKER64.
9290 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
9291 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9292 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
9293 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9294 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
9295
9296 2011-04-11 Joseph Myers <joseph@codesourcery.com>
9297
9298 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
9299 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
9300 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
9301 GNU_USER_DYNAMIC_LINKER.
9302 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
9303 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
9304 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
9305 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
9306 GNU_USER_DYNAMIC_LINKER64.
9307 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
9308 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
9309 GNU_USER_LINK_EMULATION.
9310 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
9311 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
9312 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
9313 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
9314 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
9315 CPP_SPEC, CC1_SPEC): Remove.
9316 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
9317 (GNU_USER_DYNAMIC_LINKER): Define.
9318 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
9319 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
9320 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
9321 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
9322 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
9323 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
9324 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
9325 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
9326 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
9327 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
9328 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
9329 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
9330 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
9331 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
9332 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
9333 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
9334 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
9335 GNU_USER_DYNAMIC_LINKER.
9336 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
9337 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
9338 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
9339 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
9340 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
9341 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
9342 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
9343 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
9344 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
9345 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
9346
9347 2011-04-11 Kai Tietz <ktietz@redhat.com>
9348
9349 PR target/9601
9350 PR target/11772
9351 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
9352 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
9353 comment.
9354 (ix86_is_msabi_thiscall): Removed.
9355 (ix86_is_type_thiscall): Likewise.
9356 (ix86_get_callcvt): New function.
9357 (ix86_comp_type_attributes): Simplify check.
9358 (ix86_function_regparm): Use ix86_get_callcvt for calling
9359 convention attribute checks.
9360 (ix86_return_pops_args): Likewise.
9361 (ix86_static_chain): Likewise.
9362 (x86_this_parameter): Likewise.
9363 (x86_output_mi_thunk): Likewise.
9364 (ix86_function_type_abi): Optimize check for types without attributes.
9365 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
9366 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
9367 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
9368 by flag-values.
9369 (IX86_BASE_CALLCVT): Helper macro.
9370 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
9371 Use ix86_get_callcvt for calling convention attribute checks and avoid
9372 symbol-decoration for stdcall in TARGET_RTD case.
9373 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
9374 Likewise.
9375 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
9376 for declaration.
9377
9378 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
9379
9380 * config/i386/sse.md (VI_128): New mode iterator.
9381 (VI12_128): Rename from SSEMODE12.
9382 (VI14_128): Rename from SSEMODE14.
9383 (VI124_128): New mode iterator.
9384 (VI24_128): Rename from SSEMODE248.
9385 (VI248_128): Rename from SSEMODE248.
9386 (SSEMODE124C8): Remove.
9387 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
9388 (*sse2_<plusminus_insn><mode>3): Merge with
9389 *avx_<plusminus_insn><mode>3.
9390 (*mulv8hi3): Merge with *avx_mulv8hi3.
9391 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
9392 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
9393 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
9394 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
9395 (ashr<mode>3): Merge with *avx_ashr<mode>3.
9396 (lshr<mode>3): Merge with *avx_lshr<mode>3.
9397 (ashl<mode>3): Merge with *avx_ashl<mode>3.
9398 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
9399 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
9400 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
9401 (*<smaxmin:code>v8hi3): Ditto.
9402 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
9403 (*<smaxmin:code>v16qi3): Ditto.
9404 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
9405 (*sse2_eq<mode>3): Ditto.
9406 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
9407 (*sse2_gt<mode>3): Ditto.
9408 (vcondv2di): Split out of vcond<mode>.
9409 (vconduv2di): Split out of vcondu<mode>.
9410
9411 2011-04-11 Richard Guenther <rguenther@suse.de>
9412
9413 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
9414 before calling tree_low_cst.
9415
9416 2011-04-11 Richard Guenther <rguenther@suse.de>
9417
9418 * stor-layout.c (layout_type): Compute all array index size operations
9419 in the original type.
9420 (initialize_sizetypes): Add comment.
9421 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
9422
9423 2011-04-11 Joseph Myers <joseph@codesourcery.com>
9424
9425 * common.opt (Tbss=, Tdata=, Ttext=): New options.
9426
9427 2011-04-11 Martin Jambor <mjambor@suse.cz>
9428
9429 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
9430 of cgraph_node, handle NULL return value.
9431 (cgraph_global_info): Likewise.
9432 (cgraph_rtl_info): Likewise.
9433 * tree-inline.c (estimate_num_insns): Likewise.
9434 * gimplify.c (unshare_body): Likewise.
9435 (unvisit_body): Likewise.
9436 (gimplify_body): Likewise.
9437 * predict.c (optimize_function_for_size_p): Likewise.
9438 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
9439 (call_may_clobber_ref_p_1): Likewise.
9440 * varasm.c (function_section_1): Likewise.
9441 (assemble_start_function): Likewise.
9442
9443 2011-04-11 Martin Jambor <mjambor@suse.cz>
9444
9445 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
9446 of cgraph_node.
9447 * final.c (rest_of_clean_state): Likewise.
9448 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
9449 * passes.c (pass_init_dump_file): Likewise.
9450 (execute_all_ipa_transforms): Likewise.
9451 (function_called_by_processed_nodes_p): Likewise.
9452 * predict.c (maybe_hot_frequency_p): Likewise.
9453 (probably_never_executed_bb_p): Likewise.
9454 (compute_function_frequency): Likewise.
9455 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
9456 (unnest_nesting_tree_1): Likewise.
9457 (lower_nested_functions): Likewise.
9458 * tree-optimize.c (execute_fixup_cfg): Likewise.
9459 (tree_rest_of_compilation): Likewise.
9460 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
9461 * tree-sra.c (ipa_early_sra): Likewise.
9462 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
9463 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
9464 * ipa.c (record_cdtor_fn): Likewise.
9465 * ipa-inline.c (cgraph_early_inlining): Likewise.
9466 (compute_inline_parameters_for_current): Likewise.
9467 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
9468 * ipa-pure-const.c (local_pure_const): Likewise.
9469 * ipa-split.c (split_function): Likewise.
9470 (execute_split_functions): Likewise.
9471 * cgraphbuild.c (build_cgraph_edges): Likewise.
9472 (rebuild_cgraph_edges): Likewise.
9473 (cgraph_rebuild_references): Likewise.
9474 (remove_cgraph_callee_edges): Likewise.
9475 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
9476 (verify_cgraph_node): Likewise.
9477 (cgraph_analyze_functions): Likewise.
9478 (cgraph_preserve_function_body_p): Likewise.
9479 (save_inline_function_body): Likewise.
9480 (save_inline_function_body): Likewise.
9481 * tree-inline.c (copy_bb): Likewise.
9482 (optimize_inline_calls): Likewise.
9483
9484 2011-04-11 Martin Jambor <mjambor@suse.cz>
9485
9486 PR tree-optimization/48195
9487 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
9488 ipa_check_create_edge_args.
9489 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
9490 ipa_check_create_edge_args.
9491 * ipa-inline.c (inline_generate_summary): Do not call
9492 ipa_check_create_node_params and ipa_check_create_edge_args.
9493 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
9494 ipa_check_create_edge_args.
9495
9496 2011-04-09 Anatoly Sokolov <aesok@post.ru>
9497
9498 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
9499 instead of loop.
9500 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
9501 * function.c (record_hard_reg_sets): Likewise.
9502 * ira.c (compute_regs_asm_clobbered): Likewise.
9503 * sched-deps.c (sched_analyze_1): Likewise.
9504 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
9505
9506 2011-04-09 Xinliang David Li <davidxl@google.com>
9507
9508 PR tree-optimization/PR48484
9509 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
9510 has_valid_pred lazily
9511
9512 2011-04-09 Duncan Sands <baldrick@free.fr>
9513
9514 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
9515
9516 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
9517
9518 * combine.c (combine_validate_cost): Adjust comments. Set registered
9519 cost of I0 to zero at the end, if any.
9520
9521 2011-04-08 Xinliang David Li <davidxl@google.com>
9522
9523 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
9524 to insane profile data.
9525
9526 2011-04-08 Xinliang David Li <davidxl@google.com>
9527
9528 * ipa-cp.c (ipcp_update_profiling): Correct
9529 negative scale factor due to insane profile data.
9530
9531 2011-04-08 Xinliang David Li <davidxl@google.com>
9532
9533 * final.c (dump_basic_block_info): New function.
9534 (final): Dump basic block.
9535 (final_scan_insn): Remove old dump.
9536
9537 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
9538
9539 PR target/47829
9540 * config.gcc (i386-*-freebsd): Disable unwind table generation for
9541 crtbegin/crtend.
9542
9543 2011-04-08 Michael Matz <matz@suse.de>
9544
9545 PR middle-end/48389
9546 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
9547 functions.
9548 (rebuild_jump_labels): Call rebuild_jump_labels_1.
9549 * rtl.h (rebuild_jump_labels_chain): Declare.
9550 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
9551 insns inserted on edges.
9552
9553 2011-04-08 Joseph Myers <joseph@codesourcery.com>
9554
9555 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
9556 * config/arm/arm-arches.def: New.
9557 * config/arm/arm-opts.h: New.
9558 * config/arm/genopt.sh: New.
9559 * config/arm/arm-tables.opt: New (generated).
9560 * config/arm/arm.c (arm_handle_option, arm_target_help,
9561 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
9562 (all_architectures): Get most table contents from arm-arches.def.
9563 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
9564 arm_selected_tune here.
9565 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
9566 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
9567 (march=, mcpu=, mtune=): Use Enum and Var.
9568 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
9569 (arm.o): Update dependencies.
9570
9571 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
9572
9573 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
9574 of header_file.
9575 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
9576 (write_typed_alloc_defns): Likewise.
9577 (main): Calls write_typed_alloc_defns with output_header.
9578
9579 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
9580
9581 PR inline-asm/48435
9582 * ira-color.c (setup_profitable_hard_regs): Add comments.
9583 Don't take prohibited hard regs into account.
9584 (setup_conflict_profitable_regs): Rename to
9585 get_conflict_profitable_regs.
9586 (check_hard_reg_p): Check prohibited hard regs.
9587
9588 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
9589
9590 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
9591 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
9592 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
9593
9594 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9595
9596 PR target/48366
9597 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
9598 move from floating point to shift amount register.
9599 (emit_move_sequence): Remove secondary reload support for floating
9600 point to shift amount amount register copies.
9601 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
9602 amount register copies.
9603 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
9604 register, return false if mode isn't a scalar integer mode.
9605 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
9606
9607 2011-04-08 Richard Guenther <rguenther@suse.de>
9608
9609 * gimple.c (gimple_call_flags): Remove kludge.
9610
9611 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
9612
9613 * sel-sched.c (sel_region_init): Move call to
9614 sel_setup_region_sched_flags after setup_current_loop_nest.
9615
9616 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
9617
9618 PR rtl-optimization/48272
9619 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
9620 init_insn_reg_pressure_info. Adjust a caller.
9621 * sched-int.h (init_insn_reg_pressure_info): Declare.
9622 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
9623 when sched-pressure is enabled.
9624
9625 2011-04-08 Richard Guenther <rguenther@suse.de>
9626
9627 * gimple.c (gimple_set_modified): Do not queue calls to
9628 MODIFIED_NORETURN_CALLS here ...
9629 * tree-ssa-operands.c (update_stmt_operands): ... but here.
9630
9631 2011-04-08 Richard Guenther <rguenther@suse.de>
9632
9633 PR lto/48467
9634 * toplev.c (lang_dependent_init): Do not open asm_out_file
9635 in WPA mode, nor perform debug machinery initialization.
9636 (finalize): Do not unlink asm_out_file in WPA mode.
9637
9638 2011-04-08 Richard Guenther <rguenther@suse.de>
9639
9640 * gimple.h (gimple_call_fntype): New function.
9641 (gimple_call_return_type): Use it.
9642 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
9643 * gimple-low.c (gimple_check_call_args): Likewise.
9644 * gimple.c (gimple_call_flags): Likewise.
9645 (gimple_call_arg_flags): Likewise.
9646 (gimple_call_return_flags): Likewise.
9647 * tree-cfg.c (verify_gimple_call): Likewise.
9648 (do_warn_unused_result): Likewise.
9649 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
9650 * value-prof.c (gimple_ic_transform): Fix fndecl check.
9651
9652 2011-04-08 Dmitry Melnik <dm@ispras.ru>
9653
9654 PR rtl-optimization/48235
9655 * sel-sched.c (code_motion_process_successors): Recompute the last
9656 insn in basic block if control flow changed.
9657 (code_motion_path_driver): Ditto. Recompute the first insn as well.
9658 Update condition for ilist_remove.
9659
9660 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
9661
9662 PR rtl-optimization/48302
9663 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
9664 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
9665 it to record added preheader blocks.
9666 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
9667 on to sel_add_loop_preheaders.
9668 (sel_region_init): Move call to setup_current_loop_nest after
9669 sel_init_bbs.
9670
9671 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
9672
9673 PR target/48273
9674 * cfgloop.h (loop_has_exit_edges): New helper.
9675 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
9676 non-clonable.
9677 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
9678 that have no exit edges.
9679
9680 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
9681
9682 PR rtl-optimization/48442
9683 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
9684 all callers. Adjust assert.
9685
9686 2011-04-08 Jakub Jelinek <jakub@redhat.com>
9687
9688 PR tree-optimization/48377
9689 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
9690 is_packed to true even for types with smaller TYPE_ALIGN than
9691 TYPE_SIZE.
9692
9693 2011-04-08 Richard Guenther <rguenther@suse.de>
9694
9695 PR bootstrap/48513
9696 * doc/tm.texi: Re-generate.
9697
9698 2011-04-08 Wei Guozhi <carrot@google.com>
9699
9700 PR target/47855
9701 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
9702 * config/arm/arm.c (arm_attr_length_push_multi): New function.
9703 * config/arm/arm.md (*push_multi): Change the length computation to
9704 call a C function.
9705
9706 2011-04-08 Anatoly Sokolov <aesok@post.ru>
9707
9708 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
9709 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
9710 * doc/tm.texi: Regenerate.
9711 * system.h (ASM_OUTPUT_BSS): Poison.
9712 * varasm.c (asm_output_bss): Remove function.
9713 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
9714
9715 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
9716 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
9717 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
9718 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9719 Likewise.
9720 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9721 Likewise.
9722 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9723 Likewise.
9724 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
9725
9726 2011-04-07 Joseph Myers <joseph@codesourcery.com>
9727
9728 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
9729 EnumValue lines.
9730
9731 2011-04-07 Joseph Myers <joseph@codesourcery.com>
9732
9733 * config/m68k/m68k.c (m68k_handle_option): Don't handle
9734 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
9735 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
9736 OPT_mcpu32.
9737 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
9738 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
9739 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
9740 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
9741 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
9742 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
9743 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
9744 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
9745 options. Don't map other m68k options manually. Don't handle
9746 old-style options as canonical.
9747 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
9748 * doc/install.texi (m68k-*-*): Document binutils version requirement.
9749
9750 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
9751
9752 * basic-block.h (force_nonfallthru): Move to...
9753 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
9754 (force_nonfallthru): ...here.
9755 * cfghooks.c (force_nonfallthru): New function.
9756 * cfgrtl.c (force_nonfallthru): Rename into...
9757 (rtl_force_nonfallthru): ...this.
9758 (commit_one_edge_insertion): Do not set AUX field.
9759 (commit_edge_insertions): Do not discover new basic blocks.
9760 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
9761 (cfg_layout_rtl_cfg_hooks): Likewise.
9762 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
9763 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
9764 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
9765
9766 2011-04-07 Anatoly Sokolov <aesok@post.ru>
9767
9768 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
9769 Remove macros.
9770
9771 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
9772
9773 * config/i386/sse.md: Update copyright year.
9774 (avxcvtvecmode): Remove.
9775 (sse_movhlps): Merge with *avx_movhlps.
9776 (sse_movlhps): Merge with *avx_movlhps.
9777 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
9778 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
9779 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
9780 (sse_loadhps): Merge with *avx_loadhps.
9781 (sse_storelps): Merge with *avx_storelps.
9782 (sse_loadlps): Merge with *avx_loadlps.
9783 (sse_movss): Merge with *avx_movss.
9784 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
9785 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
9786 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
9787 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
9788 (vec_set<mode>_0): Ditto.
9789 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
9790 (sse4_1_insertps): Merge with *avx_insertps.
9791 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
9792 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
9793 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
9794 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
9795 (sse2_storehpd): Merge with *avx_storehpd.
9796 (sse2_loadhpd): Merge with *avx_loadhpd.
9797 (sse2_loadlpd): Merge with *avx_loadlpd.
9798 (sse2_movsd): Merge with *avx_movsd.
9799 (*vec_concatv2df): Merge with *vec_concatv2df.
9800
9801 2011-04-07 Jakub Jelinek <jakub@redhat.com>
9802
9803 PR debug/48343
9804 * combine.c (combine_instructions): Add last_combined_insn,
9805 update it if insn is after it, pass it to all try_combine calls.
9806 (try_combine): Add last_combined_insn parameter, pass it instead of
9807 i3 to propagate_for_debug.
9808
9809 2011-04-07 Nick Clifton <nickc@redhat.com>
9810
9811 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
9812 to handle MDR <-> data register transfers.
9813 (movhi_internal): Likewise.
9814
9815 2011-04-07 Alan Modra <amodra@gmail.com>
9816
9817 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
9818 previous stack info.
9819
9820 2011-04-07 Tom de Vries <tom@codesourcery.com>
9821
9822 PR target/43920
9823 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
9824 flow_find_cross_jump. Swap variables to implement backward replacement.
9825 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
9826
9827 2011-04-07 Tom de Vries <tom@codesourcery.com>
9828
9829 PR target/43920
9830 * cfgcleanup.c (walk_to_nondebug_insn): New function.
9831 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
9832 and bb2.
9833 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
9834 src1 or src2. Redirect edges to the last basic block. Update
9835 frequency and count on multiple basic blocks in case of fallthru.
9836
9837 2011-04-07 Tom de Vries <tom@codesourcery.com>
9838
9839 PR target/43920
9840 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
9841 function.
9842 (old_insns_match_p): Change return type. Replace return false/true
9843 with return dir_none/dir_both. Use can_replace_by.
9844 (flow_find_cross_jump): Add dir_p parameter. Init replacement
9845 direction from dir_p. Register replacement direction in dir, last_dir
9846 and afterlast_dir. Handle new return type of old_insns_match_p using
9847 merge_dir. Return replacement direction in dir_p.
9848 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
9849 return type of old_insns_match_p.
9850 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
9851 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
9852 flow_find_cross_jump.
9853 * basic-block.h (enum replace_direction): New type.
9854 (flow_find_cross_jump): Add parameter to declaration.
9855
9856 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
9857
9858 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
9859 (AVXMODEDCVTPS2DQ): Ditto.
9860 (VEC_FLOAT_MODE): Ditto.
9861 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
9862 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
9863 (<any_logic:code><mode>3): Use VF mode iterator.
9864 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
9865 Use VF mode iterator.
9866 (copysign<mode>3): Use VF mode iterator.
9867 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
9868 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
9869 (*<any_logic:code><MODEF:mode>3): Merge with
9870 *avx_<any_logic:code><MODEF:mode>3.
9871 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
9872 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
9873 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
9874 (avx_cvtdq2ps<avxmodesuffix>): Remove.
9875 (sse2_cvtdq2ps): Use %v modifier.
9876 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
9877 (avx_cvtps2dq<avxmodesuffix>): Remove.
9878 (sse2_cvtps2dq): Use %v modifier.
9879 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
9880 (avx_cvttps2dq<avxmodesuffix>): Remove.
9881 (sse2_cvttps2dq): Use %v modifier.
9882 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
9883 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
9884 (sse2_cvtsd2siq): Fix insn template.
9885 (sse2_cvtsd2siq_2): Ditto.
9886 (sse2_cvttsd2siq): Ditto.
9887 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
9888 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
9889
9890 2011-04-06 Joseph Myers <joseph@codesourcery.com>
9891
9892 * gcov-io.c: Use GCC Runtime Library Exception.
9893
9894 2011-04-06 Jakub Jelinek <jakub@redhat.com>
9895
9896 PR debug/48466
9897 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
9898 as base_reg whatever register reg has been eliminated to, instead
9899 of hardcoding STACK_POINTER_REGNUM.
9900
9901 2011-04-06 Joseph Myers <joseph@codesourcery.com>
9902
9903 * doc/tm.texi.in: Document C target hooks as separate from general
9904 target hooks.
9905 * doc/tm.texi: Regenerate.
9906 * genhooks.c (struct hook_desc): Add docname field.
9907 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
9908 docname field.
9909 (hook_array): Include c-target.def.
9910 (emit_documentation): Use docname field in output.
9911 (emit_init_macros): Take docname argument. Only emit definitions
9912 for hooks matching docname.
9913 (main): Expect additional arguments in all cases. Pass argument
9914 to emit_init_macros.
9915 * target.def: Move initial macro definitions and comments to
9916 target-hooks-macros.h.
9917 (gcc_targetcm): Move to c-family/c-target.def.
9918 * target.h (targetcm): Move declaration to c-family/c-target.h.
9919 * targhooks.c (default_handle_c_option): Move to
9920 c-family/c-opts.c.
9921 * targhooks.h (default_handle_c_option): Move declaration to
9922 c-family/c-common.h.
9923 * target-hooks-macros.h: New file.
9924 * config.gcc (target_has_targetcm): Define and use to add to
9925 c_target_objs and cxx_target_objs.
9926 * config/default-c.c: New file.
9927 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
9928 of target.h and target-def.h.
9929 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
9930 (darwin_objc_construct_string, darwin_cfstring_ref_p,
9931 darwin_check_cfstring_format_arg): Make static.
9932 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
9933 TARGET_STRING_OBJECT_REF_TYPE_P,
9934 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
9935 * config/darwin-protos.h (darwin_objc_construct_string,
9936 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
9937 declare.
9938 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
9939 TARGET_STRING_OBJECT_REF_TYPE_P,
9940 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
9941 * config/t-darwin (darwin-c.o): Update dependencies.
9942 * system.h (TARGET_HAS_TARGETCM): Poison.
9943 * Makefile.in (TARGET_H): Update.
9944 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
9945 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
9946 (default-c.o): New target.
9947 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
9948 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
9949 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
9950 c-target.def.
9951 (build/genhooks.o): Update dependencies.
9952
9953 2011-04-06 Richard Guenther <rguenther@suse.de>
9954
9955 * ipa-inline.c (enum inlining_mode): Remove.
9956 (cgraph_flatten): Use some other token.
9957 (cgraph_edge_early_inlinable_p): New function, split out from ...
9958 (cgraph_perform_always_inlining): New function, split out from ...
9959 (cgraph_decide_inlining_incrementally): ... here.
9960 (cgraph_mark_inline_edge): Adjust.
9961 (cgraph_early_inlining): Re-structure.
9962 (pass_early_inline): Require SSA form.
9963
9964 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
9965 Julian Brown <julian@codesourcery.com>
9966 Mark Shinwell <shinwell@codesourcery.com>
9967
9968 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
9969 LO_REGS only for Thumb-1.
9970 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
9971 be used in short instructions when optimising for size on Thumb-2.
9972
9973 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
9974
9975 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
9976 associated with user returns to be preserved.
9977
9978 2011-04-06 Tristan Gingold <gingold@adacore.com>
9979
9980 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
9981 symbol_queue_size, DBXOUT_DECR_NESTING,
9982 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
9983 if XCOFF_DEBUGGING_INFO.
9984
9985 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
9986
9987 * config/i386/i386.md (attribute isa): New.
9988 (attribute enabled): New.
9989 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
9990 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
9991 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
9992 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
9993 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
9994 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
9995 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
9996 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
9997
9998 * config/i386/sse.md (VF): New mode iterator.
9999 (VF1): Ditto.
10000 (VF2): Ditto.
10001 (VF_128): Ditto.
10002 (SSEMODEF4): Remove.
10003 (attribute sse): Handle V8SF and V4DF modes.
10004 (<absneg:code><mode>2): Use VF mode iterator.
10005 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
10006 mode iterator.
10007 (<plusminus_insn><mode>3): Use VF mode iterator.
10008 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
10009 Use VF mode iterator.
10010 (<sse>_vm<plusminus_insn><mode>3): Merge with
10011 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
10012 (mul<mode>3): Use VF mode iterator.
10013 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
10014 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
10015 mode iterator.
10016 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
10017 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
10018 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
10019 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
10020 mode iterator.
10021 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
10022 Use VF1 mode iterator.
10023 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
10024 (sqrt<VF2:mode>2): New expander.
10025 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
10026 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
10027 and sqrtv2df2. Use VF mode iterator.
10028 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
10029 mode iterator.
10030 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
10031 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
10032 Use VF1 mode iterator.
10033 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
10034 (<smaxmin:code><mode>3): Use VF mode iterator.
10035 (*<smaxmin:code><mode>3_finite): Merge with
10036 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
10037 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
10038 (<sse>_vm<smaxmin:code><mode>2): Merge with
10039 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
10040 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
10041 mode iterator.
10042 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
10043 mode iterator.
10044 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
10045 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
10046 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
10047 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
10048 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
10049 VF mode iterator.
10050 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
10051 Use VF_128 mode iterator.
10052 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
10053 mode iterator.
10054 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
10055 VF_128 mode iterator.
10056 (vcond<mode>): Use VF mode iterator.
10057 * config/i386/predicates.md (sse_comparison_operator): Merge with
10058 avx_comparison_float_operator. Do not declare as special_predicate.
10059 * config/i386/i386.c (struct builtin_description): Update for renamed
10060 compare patterns.
10061 (ix86_expand_args_builtin): Ditto.
10062 (ix86_expand_sse_compare_mask): Ditto.
10063
10064 2011-04-06 Richard Guenther <rguenther@suse.de>
10065
10066 * tree-inline.c (estimate_num_insns): For calls simply account
10067 for all passed arguments and a used return value.
10068
10069 2011-04-06 Richard Guenther <rguenther@suse.de>
10070
10071 PR tree-optimization/47663
10072 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
10073 call_stmt_time fields.
10074 (cgraph_edge_inlinable_p): Declare.
10075 (cgraph_edge_recursive_p): New inline function.
10076 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
10077 (cgraph_clone_edge): Copy it.
10078 * ipa-inline.c (cgraph_estimate_edge_time): New function.
10079 Account for call stmt time.
10080 (cgraph_estimate_time_after_inlining): Take edge argument.
10081 (cgraph_estimate_edge_growth): Account call stmt size.
10082 (cgraph_estimate_size_after_inlining): Take edge argument.
10083 (cgraph_mark_inline_edge): Adjust.
10084 (cgraph_check_inline_limits): Likewise.
10085 (cgraph_recursive_inlining_p): Remove.
10086 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
10087 (cgraph_decide_recursive_inlining): Take edge argument and
10088 adjust.
10089 (cgraph_decide_inlining_of_small_functions): Do not avoid
10090 diags for recursive inlining here.
10091 (cgraph_flatten): Adjust.
10092 (cgraph_decide_inlining_incrementally): Likewise.
10093 (estimate_function_body_sizes): Remove call cost handling.
10094 (compute_inline_parameters): Initialize caller edge call costs.
10095 (cgraph_estimate_edge_growth): New function.
10096 (cgraph_estimate_growth): Use it.
10097 (cgraph_edge_badness): Likewise.
10098 (cgraph_check_inline_limits): Take an edge argument.
10099 (cgraph_decide_inlining_of_small_functions): Adjust.
10100 (cgraph_decide_inlining): Likewise.
10101 * tree-inline.c (estimate_num_insns): Only account for call
10102 return value if it is used.
10103 (expand_call_inline): Avoid diagnostics on recursive inline
10104 functions here.
10105 * lto-cgraph.c (lto_output_edge): Output edge call costs.
10106 (input_edge): Input edge call costs.
10107
10108 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10109
10110 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
10111
10112 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
10113
10114 * doc/invoke.texi (Spec Files): Fix typo.
10115
10116 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
10117
10118 * profile.c (branch_prob): Move declaration of local variable. Remove
10119 obsolete ??? comment. Expand the location explicitly instead of using
10120 the LOCATION_FILE and LOCATION_LINE macros.
10121
10122 2011-04-06 Wei Guozhi <carrot@google.com>
10123
10124 PR target/47855
10125 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
10126 (arm_cond_branch): Likewise.
10127 (arm_cond_branch_reversed): Likewise.
10128 (arm_jump): Likewise.
10129 (push_multi): Likewise.
10130 * config/arm/constraints.md (Py): New constraint.
10131
10132 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10133
10134 PR bootstrap/48471
10135 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
10136 Move these...
10137 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
10138 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
10139 #ifdef DBX_DEBUGGING_INFO.
10140
10141 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
10142
10143 PR bootstrap/48403
10144 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
10145 if old and new states differ.
10146
10147 2011-04-05 Joseph Myers <joseph@codesourcery.com>
10148
10149 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
10150 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
10151 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
10152 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
10153 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
10154 mcfv4e): Use Alias.
10155 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
10156 ColdFire options to -mcpu= options.
10157
10158 2011-04-05 Jeff Law <law@redhat.com>
10159
10160 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
10161 check if BB is a successor of LOOP->header and return
10162 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
10163
10164 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
10165
10166 * cprop.c (struct reg_use): Remove.
10167 (reg_use_table): Make an array of RTX.
10168 (find_used_regs, constprop_register, local_cprop_pass,
10169 bypass_block): Simplify users of reg_use_table.
10170 (cprop_insn): Likewise. Iterate if copy propagation succeeded
10171 on one of the uses found by find_used_regs.
10172
10173 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10174
10175 PR bootstrap/48469
10176 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
10177 declaration.
10178
10179 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10180
10181 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
10182 as an rtx.
10183 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
10184
10185 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
10186
10187 PR middle-end/48441
10188 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
10189
10190 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10191
10192 * combine.c: Include obstack.h.
10193 (struct insn_link): Define.
10194 (uid_log_links): Adjust type.
10195 (FOR_EACH_LOG_LINK): New macro.
10196 (insn_link_obstack): Declare.
10197 (alloc_insn_link): Define.
10198 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
10199 type of link variables.
10200 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
10201 (try_combine, record_promoted_values, distribute_notes): Likewise.
10202 (distribute_links): Likewise. Tweak prototype.
10203 (clear_log_links): Delete.
10204 (adjust_for_new_dest): Call alloc_insn_link.
10205 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
10206
10207 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10208
10209 * gcse.c (modify_mem_list): Convert to an array of VECs.
10210 (canon_modify_mem_list, compute_transp): Tweak formatting.
10211 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
10212 (load_killed_in_block_p): Likewise.
10213 (record_last_mem_set_info): Likewise.
10214 (clear_modify_mem_tables): Likewise.
10215
10216 2011-04-05 Tom de Vries <tom@codesourcery.com>
10217
10218 PR middle-end/48461
10219 * function.c (emit_use_return_register_into_block): Only define if
10220 HAVE_return.
10221
10222 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
10223
10224 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
10225
10226 2011-04-05 Joseph Myers <joseph@codesourcery.com>
10227
10228 * config/rx/rx-opts.h: New.
10229 * config/rx/rx.c (rx_cpu_type): Remove.
10230 (rx_handle_option): Don't assert that global structures are in
10231 use. Access variables via opts pointer. Defer most handling of
10232 OPT_mint_register_. Use error_at.
10233 (rx_option_override): Handle deferred OPT_mint_register_ here.
10234 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
10235 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
10236 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
10237 (rx_cpu_types): New Enum and EnumValue entries.
10238 (mint-register=): Use Defer and use Var accordingly.
10239
10240 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10241
10242 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
10243 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
10244 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
10245 Move these...
10246 (debug_free_queue, debug_nesting, symbol_queue_index):
10247 ...and these...
10248 * dbxout.c: ...to here. Make static.
10249
10250 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10251
10252 * gcse.c (modify_pair): Define. Define a VEC of it.
10253 (canon_modify_mem_list): Convert to an array of VECs.
10254 (free_insn_expr_list_list): Delete.
10255 (clear_modify_mem_tables): Call VEC_free instead.
10256 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
10257 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
10258 (canon_list_insert, compute_transp): Likewise.
10259
10260 2011-04-05 Tom de Vries <tom@codesourcery.com>
10261
10262 PR target/43920
10263 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
10264 for size.
10265
10266 2011-04-05 Tom de Vries <tom@codesourcery.com>
10267
10268 PR target/43920
10269 * function.c (emit_use_return_register_into_block): New function.
10270 (thread_prologue_and_epilogue_insns): Use
10271 emit_use_return_register_into_block.
10272
10273 2011-04-05 Tom de Vries <tom@codesourcery.com>
10274
10275 PR target/43920
10276 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
10277 insn.
10278
10279 2011-04-05 Tom de Vries <tom@codesourcery.com>
10280
10281 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
10282
10283 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
10284
10285 * config/arm/arm.md (define_constants for unspec): Replace with
10286 define_c_enum.
10287 (define_constants for unspecv): Replace with define_c_enum.
10288 * config/arm/neon.md (define_constants for unspec): Replace with
10289 define_c_enum.
10290
10291 2011-04-04 Richard Henderson <rth@redhat.com>
10292
10293 PR bootstrap/48400
10294 * dwarf2out.c (output_line_info): Always emit line info from
10295 at least one section.
10296 (dwarf2out_init): Create text_section_line_info here ...
10297 (set_cur_line_info_table): ... not here.
10298
10299 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
10300
10301 PR target/48380
10302 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
10303 not called.
10304
10305 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
10306
10307 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
10308
10309 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
10310 (expr_equiv_p): Remove.
10311 (insert_set_in_table): Look at <dest, src> pair instead of expr.
10312 (hash_scan_set): Update call to insert_set_in_table.
10313 (dump_hash_table): Dump <dest, src> pair.
10314 (lookup_set): Simplify. Lookup <dest, src> pair.
10315 (compute_transp): Remove, fold heavily simplified code into...
10316 (compute_local_properties): ...here. Expect COMP and TRANSP
10317 unconditionally.
10318 (find_avail_set): Take set directly from struct expr.
10319 (find_bypass-set): Likewise.
10320 (bypass_block): Likewise.
10321 (cprop_insn): Likewise. Remove redundant INSN_P test.
10322
10323 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
10324 checks on form of COND from find_implicit_sets to here.
10325 (find_implicit_sets): Cleanup control flow. Split critical edges
10326 if it exposes implicit sets. Allocate/resize implicit_sets as
10327 necessary.
10328 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
10329 changed something. Run df_analyze after find_implicit_sets if any
10330 edges were split. Do not allocate implicit_sets here.
10331
10332 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
10333 (gcse_obstack): Renamed to cprop_obstack.
10334 (GNEW, GNEWVEC, GNEWVAR): Remove.
10335 (gmalloc): Remove.
10336 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
10337 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
10338 (gcse_alloc): Likewise, and rename to cprop_alloc.
10339 (alloc_gcse_men, free_gcse_mem): Remove.
10340 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
10341 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
10342 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
10343
10344 * cprop.c (oprs_not_set_p): Remove.
10345 (mark_set, mark_clobber): Remove.
10346 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
10347 (reg_not_set_p): New function.
10348 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
10349 (cprop_insn): Likewise.
10350 (cprop_jump): Use FOR_EACH_EDGE.
10351
10352 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
10353
10354 PR bootstrap/48403
10355 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
10356 (rank_for_schedule): Use scheduled_insns vector instead of
10357 last_scheduled_insn.
10358 (ok_for_early_queue_removal): Likewise.
10359 (queue_to_ready): Search forward in nonscheduled_insns_begin if
10360 we have a dbg_cnt.
10361 (choose_ready): Likewise.
10362 (commit_schedule): Use VEC_iterate.
10363 (schedule_block): Initialize nonscheduled_insns_begin. If we have
10364 a dbg_cnt, use it and ensure the first insn is in the ready list.
10365 (haifa_sched_init): Allocate scheduled_insns.
10366 (sched_extend_ready_list): Don't allocate it; reserve space.
10367 (haifa_sched_finish): Free it.
10368
10369 2011-04-04 Joseph Myers <joseph@codesourcery.com>
10370
10371 * optc-gen.awk: Always remove type from Variable entry before
10372 recording in var_seen.
10373
10374 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
10375
10376 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
10377 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
10378 call to tidy_fallthru_edges.
10379
10380 2011-04-04 Joseph Myers <joseph@codesourcery.com>
10381
10382 * doc/options.texi (ToLower): Document.
10383 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
10384 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
10385 * opts.h (cl_option): Add cl_tolower field.
10386 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
10387 arguments with lowercase strings.
10388 * config/rx/rx.opt (mcpu=): Add ToLower.
10389 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
10390 argument.
10391
10392 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
10393
10394 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
10395
10396 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
10397
10398 * config/vax/vax.c: Include reload.h.
10399
10400 2011-04-04 Anatoly Sokolov <aesok@post.ru>
10401
10402 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
10403 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
10404 (sparc_preferred_reload_class): New function.
10405
10406 2011-04-04 Jakub Jelinek <jakub@redhat.com>
10407
10408 PR debug/48401
10409 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
10410 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
10411
10412 2011-04-03 Nathan Froyd <froydnj@codesourcery.com>
10413
10414 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
10415 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
10416
10417 2011-04-03 Anatoly Sokolov <aesok@post.ru>
10418
10419 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
10420 (ASM_OUTPUT_ALIGNED_BSS): Define.
10421
10422 2011-04-03 Michael Matz <matz@suse.de>
10423
10424 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
10425 and next_slot members.
10426 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
10427 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
10428 (lto_streamer_cache_append): Declare.
10429 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
10430 unsigned index, remove offset parameter, ensure that we append
10431 or update existing entries.
10432 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
10433 parameter, update next_slot for append.
10434 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
10435 parameter.
10436 (lto_streamer_cache_insert_at): Likewise.
10437 (lto_streamer_cache_append): New function.
10438 (lto_streamer_cache_lookup): Use unsigned index.
10439 (lto_streamer_cache_get): Likewise.
10440 (lto_record_common_node): Don't test tree_node_can_be_shared.
10441 (preload_common_node): Adjust call to lto_streamer_cache_insert.
10442 (lto_streamer_cache_delete): Don't free offsets member.
10443 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
10444 (lto_output_string_with_length): Use lto_output_data_stream.
10445 (lto_output_tree_header): Remove ix parameter, don't write it.
10446 (lto_output_builtin_tree): Likewise.
10447 (lto_write_tree): Adjust callers to above, don't track and write
10448 offset, write unsigned index.
10449 (output_unreferenced_globals): Don't emit all global vars.
10450 (write_global_references): Use unsigned indices.
10451 (lto_output_decl_state_refs): Likewise.
10452 (write_symbol): Likewise.
10453 * lto-streamer-in.c (lto_input_chain): Move earlier.
10454 (input_function): Use unsigned index.
10455 (input_alias_pairs): Don't read and then ignore all global vars.
10456 (lto_materialize_tree): Remove ix_p parameter, don't read index,
10457 don't pass it back, use lto_streamer_cache_append.
10458 (lto_register_var_decl_in_symtab): Use unsigned index.
10459 (lto_register_function_decl_in_symtab): Likewise.
10460 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
10461 index.
10462 (lto_get_builtin_tree): Don't read index, use
10463 lto_streamer_cache_append.
10464 (lto_read_tree): Adjust call to lto_materialize_tree.
10465
10466 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
10467 don't use function calls in arguments to MIN.
10468
10469 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
10470 twice.
10471
10472 * gimple.c (gimple_type_leader_entry): Mark deletable.
10473
10474 2011-04-03 Alan Modra <amodra@gmail.com>
10475
10476 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
10477
10478 2011-04-03 Michael Matz <matz@suse.de>
10479
10480 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
10481 an integer.
10482 * tree.h (tree_decl_non_common.vindex): Adjust comment.
10483
10484 2011-04-03 Michael Matz <matz@suse.de>
10485
10486 * cgraphbuild.c (record_reference): Canonicalize constructor values.
10487 * gimple-fold.c (canonicalize_constructor_val): Accept being called
10488 without function context.
10489 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
10490 current_function_decl and cfun.
10491
10492 2011-04-03 Michael Matz <matz@suse.de>
10493
10494 * tree.c (decl_init_priority_insert): Don't create entry for
10495 default priority.
10496 (decl_fini_priority_insert): Ditto.
10497 (fields_compatible_p, find_compatible_field): Remove.
10498 * tree.h (fields_compatible_p, find_compatible_field): Remove.
10499 * gimple.c (gimple_compare_field_offset): Adjust block comment.
10500
10501 2011-04-03 Eric Botcazou <ebotcazou@adacore.com>
10502
10503 * combine.c (try_combine): Remove useless local variable.
10504
10505 2011-04-03 Richard Guenther <rguenther@suse.de>
10506 Ira Rosen <ira.rosen@linaro.org>
10507
10508 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
10509 non-variable offsets and compare the remaining bases of the two
10510 accesses instead of looking for exact same data-ref.
10511
10512 2011-04-02 Kai Tietz <ktietz@redhat.com>
10513
10514 PR target/48416
10515 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
10516
10517 * i386.c (ix86_is_msabi_thiscall): New helper function.
10518 (ix86_is_type_thiscall): New helper function.
10519 (ix86_comp_type_attributes): Handle thiscall for method-functions
10520 special.
10521 (init_cumulative_args): Likewise.
10522 (find_drap_reg): Likewise.
10523 (ix86_static_chain): Likewise.
10524 (x86_this_parameter): Likewise.
10525 (x86_output_mi_thunk): Likewise.
10526
10527 2011-04-01 Olivier Hainque <hainque@adacore.com>
10528 Nicolas Setton <setton@adacore.com>
10529 Eric Botcazou <ebotcazou@adacore.com>
10530
10531 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
10532 (add_gnat_descriptive_type_attribute): New function.
10533 (gen_array_type_die): Call it.
10534 (gen_enumeration_type_die): Likewise.
10535 (gen_struct_or_union_type_die): Likewise.
10536 (modified_type_die): Likewise.
10537 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
10538 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
10539 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
10540
10541 2011-04-01 Jakub Jelinek <jakub@redhat.com>
10542
10543 PR bootstrap/48148
10544 * dwarf2out.c (resolve_addr): Don't call force_decl_die
10545 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
10546
10547 Revert:
10548 2011-03-17 Richard Guenther <rguenther@suse.de>
10549
10550 PR bootstrap/48148
10551 * lto-cgraph.c (input_overwrite_node): Clear the abstract
10552 origin for decls in other ltrans units.
10553 (input_varpool_node): Likewise.
10554
10555 2011-04-01 Jakub Jelinek <jakub@redhat.com>
10556
10557 PR middle-end/48335
10558 * expr.c (expand_assignment): Handle all possibilities
10559 if TO_RTX is CONCAT.
10560 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
10561 (store_split_bit_field): If SUBREG_REG (op0) or
10562 op0 itself has smaller mode than word, return it
10563 for offset 0 and const0_rtx for out-of-bounds stores.
10564 If word is const0_rtx, skip it.
10565
10566 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
10567
10568 * config/h8300/h8300.c (print_operand_address): Rename to...
10569 (h8300_print_operand_address): ...this. Make static. Adjust comments.
10570 Call h8300_print_operand and h8300_print_operand_address instead of
10571 print_operand and print_operand_address. Declare.
10572 (print_operand): Renake to...
10573 (h8300_print_operand): ...this. Make static. Adjust comments.
10574 Call h8300_print_operand instead of print_operand. Declare.
10575 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
10576 (h8300_register_move_cost): Likewise.
10577 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
10578 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
10579 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
10580 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
10581 * config/h8300/h8300-protos.h (print_operand): Delete.
10582 (print_operand_address): Delete.
10583
10584 2011-04-01 Richard Henderson <rth@redhat.com>
10585
10586 PR 48400
10587 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
10588 in strict mode before dwarf4. Re-order tests to early out
10589 before switching sections.
10590
10591 2011-04-01 Nathan Froyd <froydnj@codesourcery.com>
10592
10593 * config/h8300/constraints.md: New file.
10594 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
10595 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
10596 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
10597 * config/h8300/predicates.md (bit_operand): Likewise.
10598 (incdec_operand): Use satisfies_constraint_M and
10599 satisfies_constraint_O. Don't use C code block.
10600 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
10601 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
10602 (compute_mov_length): Use satisfies_constraint_G.
10603 (fix_bit_operand): Use satisfies_constraint_U.
10604 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
10605 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
10606 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
10607 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
10608 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
10609 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
10610 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10611 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
10612 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
10613 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
10614 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
10615 (EXTRA_MEMORY_CONSTRAINT): Delete.
10616
10617 2011-04-01 Andrew Pinski <pinskia@gmail.com>
10618 Michael Meissner <meissner@linux.vnet.ibm.com>
10619
10620 PR target/48262
10621 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
10622 operands, as per the specifications.
10623
10624 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
10625 (vec_extract_evenv4sf): Ditto.
10626 (vec_extract_evenv8hi): Ditto.
10627 (vec_extract_evenv16qi): Ditto.
10628 (vec_extract_oddv4si): Ditto.
10629
10630 2011-03-31 Mark Wielaard <mjw@redhat.com>
10631
10632 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
10633 high_pc attribute if the CU has no associated code. Only output
10634 DW_AT_entry_pc for CU if not generating strict dwarf and
10635 dwarf_version < 4.
10636
10637 2011-04-01 Bernd Schmidt <bernds@codesourcery.com>
10638
10639 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
10640 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
10641 out of ...
10642 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
10643 * final.c (final_start_function): Call the new function rather
10644 than using a NULL argument for dwarf2out_frame_debug.
10645
10646 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
10647 that contains the prologue.
10648
10649 * haifa-sched.c (queue_insn): New arg REASON. All callers
10650 changed. Print it in debugging output.
10651
10652 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
10653
10654 * sched-ebb.c (begin_schedule_ready): Remove second argument.
10655 Split most of the code into...
10656 (begin_move_insn): ... here. New function.
10657 (ebb_sched_info): Add a pointer to it.
10658 * haifa-sched.c (scheduled_insns): New static variable.
10659 (sched_extend_ready_list): Allocate it.
10660 (schedule_block): Use it to record the order of scheduled insns.
10661 Perform RTL changes to move insns only after all scheduling
10662 decisions have been made.
10663 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
10664 begin_move_insn field.
10665 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
10666 * sched-int.h (struct haifa_sched_info): Remove second argument
10667 from begin_schedule_ready hook. Add new member begin_move_insn.
10668 * sched-rgn.c (begin_schedule_ready): Remove second argument.
10669 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
10670
10671 * haifa-sched.c (prune_ready_list): New function, broken out of
10672 schedule_block.
10673 (schedule_block): Use it.
10674
10675 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10676
10677 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
10678
10679 2011-04-01 Kai Tietz <ktietz@redhat.com>
10680
10681 * config.gcc (*-*-mingw*): Allow as option the
10682 posix threading model.
10683 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
10684 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
10685 definition.
10686 (CPP_SPEC): Add pthread/no-pthread handling.
10687 (LIB_SPEC): Likewise.
10688 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
10689 (LIB_SPEC): Likewise.
10690 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
10691 flag to pass -pthread option for shared libgcc build.
10692 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
10693 for shared libgcc build.
10694 * config/i386/t-mingw-pthread: New file.
10695 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
10696 New define to enable use of library pthread by default.
10697 * config/i386/mingw.opt (pthread): New driver option.
10698 (no-pthread): New driver option.
10699 * config/i386/cygming.opt: Make sure trailing empty line is retained.
10700 * config/i386/mingw-w64.opt: Likewise.
10701
10702 2011-04-01 Gary Funck <gary@intrepid.com>
10703
10704 * c-decl.c (grokdeclarator): Fix formatting.
10705
10706 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
10707
10708 * expr.c (emit_block_move_via_movmem): Use n_generator_args
10709 instead of n_operands.
10710 (set_storage_via_setmem): Likewise.
10711 * optabs.c (maybe_gen_insn): Likewise.
10712 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
10713 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
10714 (mips_expand_builtin_direct): Likewise.
10715 * config/spu/spu.c (expand_builtin_args): Likewise.
10716
10717 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
10718
10719 * recog.h (insn_data_d): Add n_generator_args.
10720 * genoutput.c (data): Likewise.
10721 (output_insn_data): Print it.
10722 (max_opno, num_dups): Delete.
10723 (scan_operands): Just fill in "d->operand[...]".
10724 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
10725
10726 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
10727
10728 * gensupport.h (pattern_stats): New structure.
10729 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
10730 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
10731 (max_operand_1, max_operand_vec): Delete.
10732 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
10733
10734 2011-03-31 Nathan Froyd <froydnj@codesourcery.com>
10735
10736 * emit-rtl.c (emit_pattern_after_setloc): New function.
10737 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
10738 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
10739 (emit_pattern_after): New function.
10740 (emit_insn_after, emit_jump_insn_after): Call it.
10741 (emit_call_insn_after, emit_debug_insn_after): Likewise.
10742 (emit_pattern_before_setloc): New function.
10743 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
10744 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
10745 Likewise.
10746 (emit_pattern_before): New function.
10747 (emit_insn_before, emit_jump_insn_before): Call it.
10748 (emit_call_insn_before, emit_debug_insn_before): Likewise.
10749
10750 2011-03-31 Richard Henderson <rth@redhat.com>
10751
10752 * dwarf2out.c (dw_separate_line_info_ref): Remove.
10753 (dw_separate_line_info_entry): Remove.
10754 (enum dw_line_info_opcode): New.
10755 (dw_line_info_entry): Use it.
10756 (dw_line_info_table, dw_line_info_table_p): New.
10757 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
10758 (line_info_table, line_info_label_num): Remove.
10759 (line_info_table_in_use): Remove.
10760 (separate_line_info_table): Remove.
10761 (separate_line_info_table_allocated): Remove.
10762 (separate_line_info_table_in_use): Remove.
10763 (LINE_INFO_TABLE_INCREMENT): Remove.
10764 (line_info_label_num): New.
10765 (cur_line_info_table): New.
10766 (text_section_line_info, cold_text_section_line_info): New.
10767 (separate_line_info): New.
10768 (SEPARATE_LINE_CODE_LABEL): Remove.
10769 (print_dwarf_line_table): Remove.
10770 (debug_dwarf): Don't dump it.
10771 (output_one_line_info_table): New.
10772 (output_line_info): Use it.
10773 (new_line_info_table): New.
10774 (set_cur_line_info_table): New.
10775 (dwarf2out_switch_text_section): Use it.
10776 (dwarf2out_begin_function): Likewise.
10777 (push_dw_line_info_entry): New.
10778 (dwarf2out_source_line): Rewrite for new line info tables.
10779 (dwarf2out_init): Remove dead initailizations.
10780
10781 2011-03-31 Joseph Myers <joseph@codesourcery.com>
10782
10783 * opts.h (cl_option): Add comments to fields. Add bit-fields for
10784 various flags.
10785 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
10786 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
10787 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
10788 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
10789 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
10790 * opt-functions.awk (flag_init, switch_bit_fields): New.
10791 (switch_flags): Don't handle flags moved to bit-fields. Don't
10792 generate CL_MISSING_OK or CL_SAVE.
10793 * optc-gen.awk: Update to generate bit-field output as well as
10794 flags field.
10795 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
10796 bit-field instead of CL_REJECT_DRIVER flag.
10797 * opts-common.c (generate_canonical_option,
10798 decode_cmdline_option): Use bit-fields instead of CL_* flags.
10799 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
10800 instead of CL_REJECT_NEGATIVE flag.
10801 * toplev.c (print_switch_values): Use cl_report bit-field instead
10802 of CL_REPORT flag.
10803
10804 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
10805
10806 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
10807 a zero minimum index only if it is redundant.
10808
10809 2011-03-31 Vladimir Makarov <vmakarov@redhat.com>
10810
10811 PR rtl-optimization/48381
10812 * ira-color.c (assign_hard_reg): Use hard reg set intersection
10813 instead of ira_class_hard_reg_index for calculating conflicting
10814 hard registers.
10815
10816 2011-03-31 Steven Bosscher <steven@gcc.gnu.org>
10817
10818 * cprop.c: Clean up hash table building.
10819 (reg_avail_info): Remove.
10820 (oprs_available_p): Remove.
10821 (record_last_reg_set_info): Remove.
10822 (record_last_set_info): Remove.
10823 (reg_available_p): New function.
10824 (gcse_constant_p): Do not treat unfolded conditions as constants.
10825 (make_set_regs_unavailable): New function.
10826 (hash_scan_set): Simplify with new reg_available_p.
10827 (compute_hash_table_work): Traverse insns stream only once.
10828 Do not compute reg_avail_info. Traverse insns in reverse order.
10829 Record implicit sets after recording explicit sets from the block.
10830
10831 2011-03-31 Michael Matz <matz@suse.de>
10832
10833 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
10834
10835 2011-03-31 Anatoly Sokolov <aesok@post.ru>
10836
10837 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
10838 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
10839 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10840 (h8300_mode_dependent_address_p): New function.
10841 (h8300_get_index): Make static.
10842
10843 2011-03-31 Jeff Law <law@redhat.com>
10844
10845 * reload1.c (elimination_effects): Fix typo in recent change.
10846
10847 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
10848 typo potentially leading to null pointer dereference.
10849
10850 * caller-save.c (new_saved_hard_reg): Eliminate return value.
10851 (setup_save_areas): Corresponding changes to avoid useless
10852 assignments.
10853
10854 * jump.c (reversed_comparison_code_parts): Avoid successive return
10855 statements when REVERSE_CONDITION is defined.
10856
10857 * expr.c (expand_assignment): Avoid useless assignments.
10858 (expand_expr_real_1): Likewise.
10859 (expand_expr_real_2): Avoid useless statements.
10860
10861 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
10862
10863 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
10864
10865 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
10866 statements.
10867
10868 * stmt.c (expand_expr_stmt): Avoid useless assignment.
10869
10870 2011-03-31 Joseph Myers <joseph@codesourcery.com>
10871
10872 PR target/47109
10873 * doc/tm.texi.in (TARGET_VERSION): Remove.
10874 * doc/tm.texi: Regenerate.
10875 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
10876 * collect2.c (main): Don't use TARGET_VERSION.
10877 * mips-tdump.c (main): Don't use TARGET_VERSION.
10878 * mips-tfile.c (main): Don't use TARGET_VERSION.
10879 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
10880 * config/rs6000/vxworksae.h: Remove.
10881 * config/alpha/alpha.h (TARGET_VERSION): Remove.
10882 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
10883 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
10884 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
10885 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
10886 * config/arm/arm.h (TARGET_VERSION): Remove.
10887 * config/arm/coff.h (TARGET_VERSION): Remove.
10888 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
10889 * config/arm/elf.h (TARGET_VERSION): Remove.
10890 * config/arm/freebsd.h (TARGET_VERSION): Remove.
10891 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
10892 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
10893 * config/arm/pe.h (TARGET_VERSION): Remove.
10894 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
10895 * config/arm/semi.h (TARGET_VERSION): Remove.
10896 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
10897 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
10898 * config/arm/vxworks.h (TARGET_VERSION): Remove.
10899 * config/avr/avr.h (TARGET_VERSION): Remove.
10900 * config/bfin/bfin.h (TARGET_VERSION): Remove.
10901 * config/fr30/fr30.h (TARGET_VERSION): Remove.
10902 * config/frv/frv.h (TARGET_VERSION): Remove.
10903 * config/h8300/h8300.h (TARGET_VERSION): Remove.
10904 * config/i386/cygwin.h (TARGET_VERSION): Remove.
10905 * config/i386/darwin.h (TARGET_VERSION): Remove.
10906 * config/i386/darwin64.h (TARGET_VERSION): Remove.
10907 * config/i386/djgpp.h (TARGET_VERSION): Remove.
10908 * config/i386/freebsd.h (TARGET_VERSION): Remove.
10909 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
10910 * config/i386/gnu.h (TARGET_VERSION): Remove.
10911 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
10912 * config/i386/i386elf.h (TARGET_VERSION): Remove.
10913 * config/i386/linux.h (TARGET_VERSION): Remove.
10914 * config/i386/linux64.h (TARGET_VERSION): Remove.
10915 * config/i386/lynx.h (TARGET_VERSION): Remove.
10916 * config/i386/mingw32.h (TARGET_VERSION): Remove.
10917 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
10918 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
10919 * config/i386/netware.h (TARGET_VERSION): Remove.
10920 * config/i386/nto.h (TARGET_VERSION): Remove.
10921 * config/i386/openbsd.h (TARGET_VERSION): Remove.
10922 * config/i386/vxworks.h (TARGET_VERSION): Remove.
10923 * config/ia64/elf.h (TARGET_VERSION): Remove.
10924 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
10925 * config/ia64/hpux.h (TARGET_VERSION): Remove.
10926 * config/ia64/linux.h (TARGET_VERSION): Remove.
10927 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
10928 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
10929 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
10930 * config/lm32/lm32.h (TARGET_VERSION): Remove.
10931 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
10932 * config/m32c/m32c.h (TARGET_VERSION): Remove.
10933 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
10934 * config/m32r/m32r.h (TARGET_VERSION): Remove.
10935 * config/m68k/linux.h (TARGET_VERSION): Remove.
10936 * config/m68k/m68k.h (TARGET_VERSION): Remove.
10937 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
10938 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
10939 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
10940 * config/mep/mep.h (TARGET_VERSION): Remove.
10941 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
10942 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
10943 * config/mips/iris6.h (MACHINE_TYPE): Remove.
10944 * config/mips/linux.h (TARGET_VERSION): Remove.
10945 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
10946 * config/mips/vxworks.h (TARGET_VERSION): Remove.
10947 * config/mmix/mmix.h (TARGET_VERSION): Remove.
10948 * config/mn10300/linux.h (TARGET_VERSION): Remove.
10949 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
10950 * config/pa/pa.h (TARGET_VERSION): Remove.
10951 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
10952 * config/picochip/picochip.h (TARGET_VERSION): Remove.
10953 * config/rs6000/aix.h (TARGET_VERSION): Remove.
10954 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
10955 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
10956 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
10957 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
10958 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
10959 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
10960 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
10961 * config/rs6000/linux.h (TARGET_VERSION): Remove.
10962 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
10963 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
10964 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
10965 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
10966 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
10967 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
10968 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
10969 * config/s390/linux.h (TARGET_VERSION): Remove.
10970 * config/s390/s390.h (TARGET_VERSION): Remove.
10971 * config/s390/tpf.h (TARGET_VERSION): Remove.
10972 * config/score/score.h (TARGET_VERSION): Remove.
10973 * config/sh/linux.h (TARGET_VERSION): Remove.
10974 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
10975 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
10976 * config/sh/sh.h (TARGET_VERSION): Remove.
10977 * config/sh/sh64.h (TARGET_VERSION): Remove.
10978 * config/sh/superh.h (TARGET_VERSION): Remove.
10979 * config/sh/vxworks.h (TARGET_VERSION): Remove.
10980 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
10981 * config/sparc/linux.h (TARGET_VERSION): Remove.
10982 * config/sparc/linux64.h (TARGET_VERSION): Remove.
10983 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
10984 TARGET_NAME32, TARGET_NAME): Remove.
10985 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
10986 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
10987 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
10988 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
10989 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
10990 * config/spu/spu.h (TARGET_VERSION): Remove.
10991 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
10992 * config/v850/v850.h (TARGET_VERSION): Remove.
10993 * config/vax/linux.h (TARGET_VERSION): Remove.
10994 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
10995 * config/xtensa/elf.h (TARGET_VERSION): Remove.
10996 * config/xtensa/linux.h (TARGET_VERSION): Remove.
10997
10998 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
10999
11000 PR target/48142
11001 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
11002 frame-related from frame-unrelated adjustments to the stack pointer.
11003
11004 2011-03-31 Jakub Jelinek <jakub@redhat.com>
11005
11006 * common.opt (fdebug-types-section): Move earlier.
11007 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
11008
11009 2011-03-31 Andreas Tobler <andreast@fgznet.ch>
11010
11011 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
11012 var.
11013
11014 2011-03-30 Nathan Froyd <froydnj@codesourcery.com>
11015
11016 * tree.h (CASE_CHAIN): Define.
11017 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
11018 (gimple_redirect_edge_and_branch): Likewise.
11019
11020 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
11021
11022 PR middle-end/48367
11023 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
11024 calculation.
11025
11026 2011-03-30 Jeff Law <law@redhat.com>
11027
11028 * PR bootstrap/48371
11029 * reload1.c (reload): Fix botch in last change.
11030
11031 * reload.h (struct reload): Fix typo introduced in last change.
11032
11033 2011-03-30 Joseph Myers <joseph@codesourcery.com>
11034
11035 * config/arm/arm.opt (mhard-float, msoft-float): Mark
11036 Undocumented. Remove help text.
11037 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
11038 -mhard-float.
11039
11040 2011-03-30 Joseph Myers <joseph@codesourcery.com>
11041
11042 * doc/options.texi (NegativeAlias): Document.
11043 (Alias): Mention NegativeAlias.
11044 * opt-functions.awk: Handle NegativeAlias.
11045 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
11046 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
11047 * opts.h (CL_NEGATIVE_ALIAS): Define.
11048 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
11049 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
11050 OPT_mspe_.
11051 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
11052 Alias entries.
11053 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
11054 mno-spe and mno-isel instead of mspe=no and -misel=no.
11055
11056 2011-03-29 Mark Wielaard <mjw@redhat.com>
11057
11058 * common.opt (fdebug-types-section): New flag.
11059 * doc/invoke.texi: Document new -fno-debug-types-section flag.
11060 * dwarf2out.c (use_debug_types): New define.
11061 (struct die_struct): Mark die_id with GTY desc use_debug_types.
11062 (print_die): Guard output of type unit signatures using
11063 use_debug_types.
11064 (build_abbrev_table): Replace assert of dwarf_version >= 4
11065 with assert on use_debug_types.
11066 (size_of_die): Likewise.
11067 (unmark_dies): Likewise.
11068 (value_format): Decide AT_ref_external form on use_debug_types.
11069 (output_die): Replace dwarf_version version check guard with
11070 use_debug_types where appropriate.
11071 (modified_type_die): Likewise.
11072 (gen_reference_type_die): Likewise.
11073 (dwarf2out_start_source_file): Likewise.
11074 (dwarf2out_end_source_file): Likewise.
11075 (prune_unused_types_walk_attribs): Likewise.
11076 (dwarf2out_finish): Likewise.
11077
11078 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
11079
11080 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
11081
11082 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
11083
11084 PR rtl-optimization/48332
11085 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
11086 mode of input operand N and modeN to its actual mode.
11087
11088 2011-03-30 Jeff Law <law@redhat.com>
11089
11090 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
11091 define accessor macro.
11092 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
11093 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
11094 (reg_equiv_init): Likewise.
11095 (reg_equivs_size): New variable.
11096 (reg_equiv_init_size): Remove.
11097 (allocate_initial_values): Move prototype to here from....
11098 * integrate.h (allocate_initial_values): Remove prototype.
11099 * integrate.c: Include reload.h.
11100 (allocate_initial_values): Corresponding changes.
11101 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
11102 (fix_reg_equiv_init, no_equiv): Corresponding changes.
11103 (update_equiv_regs): Corresponding changes.
11104 (ira): Corresponding changes.
11105 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
11106 (push_secondary_reload): Corresponding changes.
11107 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
11108 (make_memloc, find_reloads_address): Corresponding changes.
11109 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
11110 (find_reloads_address_1): Corresponding changes.
11111 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
11112 (refers_to_regno_for_reload_p): Corresponding changes.
11113 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
11114 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
11115 * reload1.c: Include ggc.h.
11116 (grow_reg_equivs): New function.
11117 (replace_pseudos_in, reload): Corresponding changes.
11118 (calculate_needs_all_insns, alter_regs): Corresponding changes.
11119 (eliminate_regs_1, elimination_effects): Corresponding changes.
11120 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
11121 (delete_output_reload): Likewise.
11122 * caller-save.c (mark_referenced_regs): Corresponding changes.
11123 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
11124 * frv/predicates.md (frv_load_operand): Corresponding changes.
11125 * microblaze/microblaze.c (double_memory_operand): Corresponding
11126 changes.
11127 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
11128 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
11129 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
11130 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
11131 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
11132 changes.
11133 * pa/pa.c (emit_move_sequence): Corresponding changes.
11134 * vax/vax.c (nonindexed_address_p): Corresponding changes.
11135
11136 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
11137
11138 PR target/47551
11139 * config/arm/arm.c (coproc_secondary_reload_class): Handle
11140 structure modes. Don't check neon_vector_mem_operand for
11141 vector or structure modes.
11142
11143 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
11144 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11145
11146 PR target/43590
11147 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
11148 operand 1 and reshuffle the operands to match.
11149 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
11150
11151 2011-03-30 Christian Schüler <cschueler@gmx.de>
11152
11153 PR driver/48208
11154 * config/c.opt (F): Added 'Driver' to -F option.
11155
11156 PR driver/48260
11157 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
11158 handler function.
11159 * config/darwin.opt: Added '-arch' option.
11160
11161 2011-03-30 Nick Clifton <nickc@redhat.com>
11162
11163 * config/rx/rx.md: Add peepholes and patterns to combine
11164 extending loads and simple arithmetic instructions.
11165 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
11166 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
11167 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
11168 modes to use pre-decrement and post-increment addressing.
11169 (rx_is_restricted_memory_address): Add range checking of REG+INT
11170 addresses.
11171 (rx_print_operand): Add support for %Q. Fix handling of %Q.
11172 (rx_memory_move_cost): Adjust cost of stores.
11173 (rx_adjust_insn_length): New function.
11174
11175 2011-03-30 Jakub Jelinek <jakub@redhat.com>
11176
11177 PR c/48305
11178 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
11179 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
11180 matching arg00/arg01 types.
11181
11182 2011-03-30 Eric Botcazou <ebotcazou@adacore.com>
11183
11184 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
11185 last_location to UNKNOWN_LOCATION.
11186
11187 2011-03-30 H.J. Lu <hongjiu.lu@intel.com>
11188
11189 PR target/48349
11190 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
11191 FLOAT_SSE_REGS.
11192
11193 2011-03-30 Joseph Myers <joseph@codesourcery.com>
11194 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11195
11196 PR bootstrap/48337
11197 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
11198 Init(PROCESSOR_V7).
11199 (sparc_cpu): Likewise.
11200 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
11201 PROCESSOR_V7.
11202
11203 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
11204
11205 PR target/48336
11206 PR middle-end/48342
11207 PR rtl-optimization/48345
11208 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
11209 hard regs for given mode from profitable regs when doing secondary
11210 allocation.
11211
11212 2011-03-29 Jeff Law <law@redhat.com>
11213
11214 PR bootstrap/48327
11215 * tree-ssa-threadupdate.c (struct redirection_data): Remove
11216 do_not_duplicate field.
11217 (lookup_redirection_data): Corresponding changes.
11218 (create_duplicates): Always create a template block.
11219 (redirect_edges): Remove code which reused the original block
11220 when it was going to become unreachable code.
11221 (thread_block): Don't set do_not_duplicate field.
11222
11223 2011-03-29 Joseph Myers <joseph@codesourcery.com>
11224
11225 * lto-opts.c (register_user_option_p, lto_register_user_option):
11226 Make type argument unsigned.
11227 * lto-streamer.h (lto_register_user_option): Make type argument
11228 unsigned.
11229 * opth-gen.awk: Make CL_* macros unsigned.
11230 * opts-common.c (find_opt): Make lang_mask argument unsigned.
11231 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
11232 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
11233 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
11234 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
11235 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
11236 (find_opt): Make lang_mask argument unsigned.
11237
11238 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
11239
11240 PR rtl-optimization/48331
11241 PR rtl-optimization/48334
11242 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
11243 for any used algorithm.
11244
11245 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
11246
11247 * ira-conflicts.c (build_object_conflicts): Add unused attribute
11248 to parent_max.
11249
11250 2011-03-29 Uros Bizjak <ubizjak@gmail.com>
11251
11252 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
11253 (alpha_option_override): Don't set alpha_sr_alias_set.
11254 (emit_frame_store_1): Use gen_frame_mem rather than calling
11255 set_mem_alias_set.
11256 (alpha_expand_epilogue): Ditto.
11257
11258 2011-03-29 Ira Rosen <ira.rosen@linaro.org>
11259
11260 PR tree-optimization/48290
11261 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
11262 vectorization, check that relevant phis in the basic block after
11263 the inner loop are really inner loop's exit phis.
11264
11265 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
11266
11267 PR debug/48190
11268 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
11269 (cached_dw_loc_list_def): New structure.
11270 (cached_dw_loc_list): New typedef.
11271 (cached_dw_loc_list_table): New variable.
11272 (cached_dw_loc_list_table_hash): New function.
11273 (cached_dw_loc_list_table_eq): Likewise.
11274 (add_location_or_const_value_attribute): Take a bool cache_p.
11275 Cache the list when the parameter is true.
11276 (gen_formal_parameter_die): Update caller.
11277 (gen_variable_die): Likewise.
11278 (dwarf2out_finish): Likewise.
11279 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
11280 while generating debug info for the decl.
11281 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
11282 (dwarf2out_init): Initialize cached_dw_loc_list_table.
11283 (resolve_addr): Cache the result of resolving a chain of
11284 location lists.
11285
11286 2011-03-28 Vladimir Makarov <vmakarov@redhat.com>
11287
11288 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
11289 conflict object hard regset nodes have intersecting hard reg sets.
11290
11291 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
11292 after regstat_init_n_sets_and_refs.
11293
11294 * ira.c: Add more comments at the top.
11295 (setup_stack_reg_pressure_class, setup_pressure_classes):
11296 Add comments how we compute the register pressure classes.
11297 (setup_allocno_and_important_classes): Add more comments.
11298 (setup_class_translate_array, reorder_important_classes)
11299 (setup_reg_class_relations): Add comments.
11300
11301 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
11302 start of the file.
11303
11304 * ira-color.c: Add 2011 to the Copyright line.
11305 (assign_hard_reg): Add more comments.
11306 (improve_allocation): Ditto.
11307
11308 * ira-costs.c: Add 2011 to the Copyright line.
11309 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
11310 comments.
11311 (setup_regno_cost_classes_by_mode): Ditto.
11312
11313 Initial patches from ira-improv branch:
11314
11315 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
11316
11317 * ira-build.c (ira_create_object): Remove initialization of
11318 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
11319 (ira_create_allocno): Remove initialization of
11320 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
11321 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
11322 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
11323 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
11324 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
11325 Initialize ALLOCNO_ADD_DATA.
11326 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
11327 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
11328 ALLOCNO_REG.
11329 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
11330 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
11331
11332 * ira.c (ira_reallocate): Remove.
11333 (setup_pressure_classes): Call
11334 ira_init_register_move_cost_if_necessary. Use
11335 ira_register_move_cost instead of ira_get_register_move_cost.
11336 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
11337 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
11338
11339 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
11340 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
11341 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
11342 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
11343 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
11344 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
11345 Fix formatting.
11346 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
11347 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
11348 (struct allocno_color_data): New.
11349 (allocno_color_data_t): New typedef.
11350 (allocno_color_data): New definition.
11351 (ALLOCNO_COLOR_DATA): New macro.
11352 (struct object_color_data): New.
11353 (object_color_data_t): New typedef.
11354 (object_color_data): New definition.
11355 (OBJECT_COLOR_DATA): New macro.
11356 (update_copy_costs, calculate_allocno_spill_cost): Call
11357 ira_init_register_move_cost_if_necessary. Use
11358 ira_register_move_cost instead of ira_get_register_move_cost.
11359 (move_spill_restore, update_curr_costs): Ditto.
11360 (allocno_spill_priority): Make it inline.
11361 (color_pass): Allocate and free allocno_color_dat and object_color_data.
11362 (struct coalesce_data, coalesce_data_t): New.
11363 (allocno_coalesce_data): New definition.
11364 (ALLOCNO_COALESCE_DATA): New macro.
11365 (merge_allocnos, coalesced_allocno_conflict_p): Use
11366 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
11367 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
11368 (coalesce_allocnos): Ditto.
11369 (setup_coalesced_allocno_costs_and_nums): Ditto.
11370 (collect_spilled_coalesced_allocnos): Ditto.
11371 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
11372 (setup_slot_coalesced_allocno_live_ranges): Ditto.
11373 (coalesce_spill_slots): Ditto.
11374 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
11375 free allocno_coalesce_data.
11376
11377 * ira-conflicts.c: Fix formatting.
11378 (process_regs_for_copy): Call
11379 ira_init_register_move_cost_if_necessary. Use
11380 ira_register_move_cost instead of ira_get_register_move_cost.
11381 (build_object_conflicts): Optimize.
11382
11383 * ira-costs.c (record_reg_classes): Optimize. Call
11384 ira_init_register_move_cost_if_necessary. Use
11385 ira_register_move_cost, ira_may_move_in_cost, and
11386 ira_may_move_out_cost instead of ira_get_register_move_cost and
11387 ira_get_may_move_cost.
11388 (record_address_regs): Ditto.
11389 (scan_one_insn): Optimize.
11390 (find_costs_and_classes): Optimize.
11391 (process_bb_node_for_hard_reg_moves): Call
11392 ira_init_register_move_cost_if_necessary. Use
11393 ira_register_move_cost instead of ira_get_register_move_cost.
11394
11395 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
11396 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
11397 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
11398 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
11399 definitions.
11400 (ira_initiate_emit_data, ira_finish_emit_data)
11401 (create_new_allocno): New functions.
11402 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
11403 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
11404 Use ira_register_move_cost instead of ira_get_register_move_cost.
11405
11406 * ira-int.h: Fix some comments.
11407 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
11408 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
11409 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
11410 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
11411 add_data.
11412 (struct ira_allocno): Make mode and aclass a bitfield. Move other
11413 bitfield after mode. Make hard_regno a short int. Make
11414 hard_regno short. Remove first_coalesced_allocno and
11415 next_coalesced_allocno. Move mem_optimized_dest_p,
11416 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
11417 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
11418 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
11419 temp, colorable_p. Add new member add_data.
11420 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
11421 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
11422 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
11423 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
11424 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
11425 (ALLOCNO_ADD_DATA): New macro.
11426 (ira_emit_data_t): New typedef.
11427 (struct ira_emit_data): New. Move mem_optimized_dest_p,
11428 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
11429 from struct ira_allocno.
11430 (ALLOCNO_EMIT_DATA): New macro.
11431 (ira_allocno_emit_data, allocno_emit_reg): New.
11432 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
11433 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
11434 (OBJECT_ADD_DATA): New macro.
11435 (ira_reallocate): Remove.
11436 (ira_initiate_emit_data, ira_finish_emit_data): New.
11437 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
11438 (ira_init_register_move_cost_if_necessary): New.
11439 (ira_object_conflict_iter_next): Merge into
11440 ira_object_conflict_iter_cond.
11441 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
11442
11443 * ira-live.c (process_single_reg_class_operands): Call
11444 ira_init_register_move_cost_if_necessary. Use
11445 ira_register_move_cost instead of ira_get_register_move_cost.
11446
11447 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
11448
11449 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
11450
11451 * ira-costs.c: Fix formatting.
11452 (cost_classes, cost_classes_num): Remove.
11453 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
11454 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
11455 (cost_classes_del, cost_classes_htab): New.
11456 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
11457 (initiate_regno_cost_classes, setup_cost_classes): New.
11458 (setup_regno_cost_classes_by_aclass): New.
11459 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
11460 (record_reg_classes): Use regno_cost_classes instead of
11461 cost_classes. Move checking opposite operand up.
11462 (record_address_regs): Use regno_cost_classes
11463 instead of cost_classes.
11464 (scan_one_insn): Ditto. Use always general register.
11465 (print_allocno_costs): Use regno_cost_classes instead of
11466 cost_classes.
11467 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
11468 (find_costs_and_classes): Set up cost classes for each registers.
11469 Use also their mode for this. Use regno_cost_classes instead of
11470 cost_classes.
11471 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
11472 cost_classes.
11473 (free_ira_costs, ira_init_costs): Don't use cost_classes.
11474 (ira_costs, ira_set_pseudo_classes): Call
11475 initiate_regno_cost_classes and finish_regno_cost_classes.
11476
11477 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
11478
11479 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
11480
11481 * target.def (ira_cover_classes): Remove.
11482
11483 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
11484
11485 * doc/tm.texi.in: Ditto.
11486
11487 * ira-conflicts.c: Remove mentioning cover classes from the file.
11488 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
11489 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
11490
11491 * targhooks.c (default_ira_cover_classes): Remove.
11492
11493 * targhooks.h (default_ira_cover_classes): Ditto.
11494
11495 * haifa-sched.c: Remove mentioning cover classes from the file.
11496 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
11497 ira_pressure_classes and ira_pressure_classes_num instead of
11498 ira_reg_class_cover_size and ira_reg_class_cover. Use
11499 sched_regno_pressure_class instead of sched_regno_cover_class.
11500 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
11501 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
11502
11503 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
11504 classes from the file.
11505 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
11506 (struct object_hard_regs, struct object_hard_regs_node): New.
11507 (struct ira_object): New members profitable_hard_regs,
11508 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
11509 (struct ira_allocno): Rename cover_class to aclass. Rename
11510 cover_class_cost and updated_cover_class_cost to class_cost and
11511 updated_class_cost. Remove splay_removed_p and
11512 left_conflict_size. Add new members colorable_p.
11513 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
11514 (ALLOCNO_COLORABLE_P): New macro.
11515 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
11516 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
11517 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
11518 (OBJECT_...): Rename parameter C to O.
11519 (OBJECT_PROFITABLE_HARD_REGS): New macro.
11520 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
11521 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
11522 (struct target_ira_int): New members x_ira_max_memory_move_cost,
11523 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
11524 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
11525 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
11526 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
11527 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
11528 x_ira_reg_class_subunion.
11529 (ira_max_memory_move_cost, ira_max_register_move_cost)
11530 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
11531 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
11532 (ira_important_class_nums, ira_reg_class_superunion): New macros.
11533 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
11534 (ira_reg_class_union): Rename to ira_reg_class_subunion.
11535 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
11536 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
11537 (ira_tune_allocno_costs_and_cover_classes): Rename to
11538 ira_tune_allocno_costs.
11539 (ira_debug_hard_regs_forest): New.
11540 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
11541 (ira_object_conflict_iter_next): Fix comments.
11542 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
11543 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
11544 cover_class to aclass.
11545 (ira_allocate_and_accumulate_costs): Ditto.
11546 (ira_allocate_and_set_or_copy_costs): Ditto.
11547
11548 * opts.c (decode_options): Remove ira_cover_class check.
11549
11550 * ira-color.c: Remove mentioning cover classes from the file. Use
11551 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
11552 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
11553 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
11554 (splay-tree.h): Remove include.
11555 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
11556 before copy_freq_compare_func.
11557 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
11558 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
11559 New definitions.
11560 (hard_regs_roots, hard_regs_node_vec): Ditto.
11561 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
11562 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
11563 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
11564 (create_new_object_hard_regs_node): Ditto.
11565 (add_new_object_hard_regs_node_to_forest): Ditto.
11566 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
11567 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
11568 Ditto.
11569 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
11570 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
11571 (remove_unused_object_hard_regs_nodes): Ditto.
11572 (enumerate_object_hard_regs_nodes): Ditto.
11573 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
11574 (object_hard_regs_subnode_t): Ditto.
11575 (struct object_hard_regs_subnode): Ditto.
11576 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
11577 (setup_object_hard_regs_subnode_index): Ditto.
11578 (get_object_hard_regs_subnodes_num): Ditto.
11579 (form_object_hard_regs_nodes_forest): Ditto.
11580 (finish_object_hard_regs_nodes_tree): Ditto.
11581 (finish_object_hard_regs_nodes_forest): Ditto.
11582 (allocnos_have_intersected_live_ranges_p): Rename to
11583 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
11584 (pseudos_have_intersected_live_ranges_p): Rename to
11585 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
11586 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
11587 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
11588 (update_copy_costs): Remove assert. Skip cost update if the hard
11589 reg does not belong the class.
11590 (assign_hard_reg): Process only profitable hard regs.
11591 (uncolorable_allocnos_num): Make it scalar.
11592 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
11593 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
11594 and ira_reg_class_max_nregs.
11595 (bucket_allocno_compare_func): Check frequency first.
11596 (sort_bucket): Add compare function as a parameter.
11597 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
11598 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
11599 (push_allocno_to_stack): Rewrite for checking new allocno
11600 colorability.
11601 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
11602 (push_only_colorable): Pass new parameter to sort_bucket.
11603 (push_allocno_to_spill): Remove.
11604 (allocno_spill_priority_compare): Make it inline and rewrite.
11605 (splay_tree_allocate, splay_tree_free): Remove.
11606 (allocno_spill_sort_compare): New function.
11607 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
11608 build and use splay tree. Choose first allocno in uncolorable
11609 allocno bucket to spill. Remove setting spill cost.
11610 (all_conflicting_hard_regs): Remove.
11611 (setup_allocno_available_regs_num): Check only profitable hard
11612 regs. Print info about hard regs nodes.
11613 (setup_allocno_left_conflicts_size): Remove.
11614 (put_allocno_into_bucket): Don't call
11615 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
11616 (improve_allocation): New.
11617 (color_allocnos): Call setup_profitable_hard_regs,
11618 form_object_hard_regs_nodes_forest, improve_allocation,
11619 finish_object_hard_regs_nodes_forest. Setup spill cost.
11620 (print_loop_title): Use pressure classes.
11621 (color_allocnso): Ditto.
11622 (do_coloring): Remove allocation and freeing splay_tree_node_pool
11623 and allocnos_for_spilling.
11624 (ira_sort_regnos_for_alter_reg): Don't setup members
11625 {first,next}_coalesced_allocno.
11626 (color): Remove allocating and freeing removed_splay_allocno_vec.
11627 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
11628 prohibited_class_mode_regs.
11629
11630 * ira-lives.c: Remove mentioning cover classes from the file. Fix
11631 formatting.
11632 (update_allocno_pressure_excess_length): Use pressure classes.
11633 (inc_register_pressure, dec_register_pressure): Check for pressure
11634 class.
11635 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
11636 pressure class. Use ira_reg_class_nregs instead of
11637 ira_reg_class_max_nregs.
11638 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
11639 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
11640 (single_reg_class): Use ira_reg_class_nregs instead of
11641 ira_reg_class_max_nregs.
11642 (process_bb_node_lives): Use pressure classes.
11643
11644 * ira-emit.c: Remove mentioning cover classes from the file. Use
11645 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
11646 (change_loop): Use pressure classes.
11647 (modify_move_list): Call ira_set_allocno_class instead of
11648 ira_set_allocno_cover_class.
11649
11650 * ira-build.c: Remove mentioning cover classes from the file. Use
11651 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
11652 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
11653 ALLOCNO_UPDATED_CLASS_COST instead of
11654 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
11655 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
11656 (ira_create_allocno): Remove initialization of
11657 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
11658 ALLOCNO_COLORABLE_P.
11659 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
11660 Update conflict regs for the objects.
11661 (create_cap_allocno): Remove assert. Don't propagate
11662 ALLOCNO_AVAILABLE_REGS_NUM.
11663 (ira_free_allocno_costs): New function.
11664 (finish_allocno): Change a part of code into call of
11665 ira_free_allocno_costs.
11666 (low_pressure_loop_node_p): Use pressure classes.
11667 (object_range_compare_func): Don't compare classes.
11668 (setup_min_max_conflict_allocno_ids): Ditto.
11669
11670 * loop-invariant.c: Remove mentioning cover classes from the file.
11671 Use ira_pressure_classes and ira_pressure_classes_num instead of
11672 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
11673 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
11674 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
11675 Use reg_allocno_class instead of reg_cover_class.
11676 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
11677 STACK_REG_COVER_CLASS.
11678 (get_regno_cover_class): Rename to get_regno_pressure_class.
11679 (move_loop_invariants): Initialize and finalize regstat.
11680
11681 * ira.c: Remove mentioning cover classes from the file. Add
11682 comments about coloring without cover classes. Use ALLOCNO_CLASS
11683 instead of ALLOCNO_COVER_CLASS. Fix formatting.
11684 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
11685 setup_class_subset_and_memory_move_costs.
11686 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
11687 (setup_cover_and_important_classes): Rename to
11688 setup_allocno_and_important_classes.
11689 (setup_class_translate_array): New.
11690 (setup_class_translate): Call it for allocno and pressure classes.
11691 (cover_class_order): Rename to allocno_class_order.
11692 (comp_reg_classes_func): Use ira_allocno_class_translate instead
11693 of ira_class_translate.
11694 (reorder_important_classes): Set up ira_important_class_nums.
11695 (setup_reg_class_relations): Set up ira_reg_class_superunion.
11696 (print_class_cover): Rename to print_classes. Add parameter.
11697 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
11698 Print pressure classes too.
11699 (find_reg_class_closure): Rename to find_reg_classes. Don't call
11700 setup_reg_subclasses.
11701 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
11702 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
11703 (setup_prohibited_class_mode_regs): Use
11704 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
11705 (clarify_prohibited_class_mode_regs): New function.
11706 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
11707 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
11708 (ira_init_once): Initialize them.
11709 (free_register_move_costs): Process them.
11710 (ira_init): Move calls of find_reg_classes and
11711 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
11712 Call clarify_prohibited_class_mode_regs.
11713 (ira_no_alloc_reg): Remove.
11714 (too_high_register_pressure_p): Use pressure classes.
11715
11716 * sched-deps.c: Remove mentioning cover classes from the file.
11717 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
11718 ira_pressure_classes and ira_pressure_classes_num instead of
11719 ira_reg_class_cover_size and ira_reg_class_cover.
11720 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
11721 sched_regno_pressure_class instead of sched_regno_cover_class.
11722 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
11723 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
11724
11725 * ira.h: Add 2010 to Copyright.
11726 (ira_no_alloc_reg): Remove external.
11727 (struct target_ira): Rename x_ira_hard_regno_cover_class,
11728 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
11729 x_ira_class_translate to x_ira_hard_regno_allocno_class,
11730 x_ira_allocno_classes_num, x_ira_allocno_classes, and
11731 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
11732 x_ira_pressure_classes, x_ira_pressure_class_translate, and
11733 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
11734 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
11735 x_ira_no_alloc_regs.
11736 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
11737 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
11738 ira_allocno_classes_num and ira_allocno_classes.
11739 (ira_class_translate): Rename to ira_allocno_class_translate.
11740 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
11741 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
11742 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
11743 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
11744 (ira_no_alloc_regs): New.
11745
11746 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
11747 classes from the file. Use ALLOCNO_CLASS instead of
11748 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
11749 ALLOCNO_COVER_CLASS_COST.
11750 (regno_cover_class): Rename to regno_aclass.
11751 (record_reg_classes): Use ira_reg_class_subunion instead of
11752 ira_reg_class_union.
11753 (record_address_regs): Check overflow.
11754 (scan_one_insn): Ditto.
11755 (print_allocno_costs): Print total mem cost fore regional allocation.
11756 (print_pseudo_costs): Use REG_N_REFS.
11757 (find_costs_and_classes): Use classes intersected with them on the
11758 1st pass. Check overflow. Use ira_reg_class_subunion instead of
11759 ira_reg_class_union. Use ira_allocno_class_translate and
11760 regno_aclass instead of ira_class_translate and regno_cover_class.
11761 Modify code for finding regno_aclass. Setup preferred classes for
11762 the next pass.
11763 (setup_allocno_cover_class_and_costs): Rename to
11764 setup_allocno_class_and_costs. Use regno_aclass instead of
11765 regno_cover_class. Use ira_set_allocno_class instead of
11766 ira_set_allocno_cover_class.
11767 (init_costs, finish_costs): Use regno_aclass instead of
11768 regno_cover_class.
11769 (ira_costs): Use setup_allocno_class_and_costs instead of
11770 setup_allocno_cover_class_and_costs.
11771 (ira_tune_allocno_costs_and_cover_classes): Rename to
11772 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
11773 by processing objects. Use ira_reg_class_max_nregs instead of
11774 ira_reg_class_nregs.
11775
11776 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
11777
11778 * sched-int.h: Remove mentioning cover classes from the file.
11779 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
11780
11781 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
11782 classes from the file.
11783 (struct reg_pref): Rename coverclass into allocnoclass.
11784 (reg_cover_class): Rename to reg_allocno_class.
11785
11786 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
11787
11788 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
11789
11790 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
11791
11792 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
11793
11794 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
11795
11796 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
11797
11798 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
11799
11800 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
11801
11802 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
11803
11804 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
11805
11806 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
11807 (i386_ira_cover_classes): Ditto.
11808
11809 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
11810
11811 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
11812
11813 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
11814
11815 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
11816
11817 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
11818
11819 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
11820
11821 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
11822 (mips_ira_cover_classes): Ditto.
11823
11824 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
11825
11826 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
11827
11828 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
11829
11830 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
11831
11832 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
11833
11834 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
11835 (IRA_COVER_CLASSES_VSX): Ditto.
11836
11837 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
11838 (rs6000_ira_cover_classes): Ditto.
11839
11840 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
11841
11842 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
11843
11844 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
11845
11846 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
11847
11848 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
11849
11850 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
11851
11852 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
11853
11854 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
11855
11856 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
11857
11858 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
11859
11860 2011-03-29 Jakub Jelinek <jakub@redhat.com>
11861
11862 PR debug/48253
11863 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
11864 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
11865 dw_fde_unlikely_section_end_label, cold_in_std_section,
11866 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
11867 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
11868 fields.
11869 (output_fde): Use dw_fde_second_{begin,end} if second is
11870 true, otherwise dw_fde_{begin,end}.
11871 (output_call_frame_info): Test dw_fde_second_begin != NULL
11872 instead of dw_fde_switched_sections.
11873 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
11874 fields, initialize new fields. Initialize in_std_section
11875 unconditionally from the first partition.
11876 (dwarf2out_end_epilogue): Don't override dw_fde_end when
11877 dw_fde_second_begin is non-NULL.
11878 (dwarf2out_switch_text_section): Stop initializing removed
11879 dw_fde_struct fields, initialize new fields, initialize
11880 also dw_fde_end here. Set dw_fde_switch_cfi even when
11881 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
11882 (struct var_loc_list_def): Add last_before_switch field.
11883 (arange_table, arange_table_allocated, arange_table_in_use,
11884 ARANGE_TABLE_INCREMENT, add_arange): Removed.
11885 (size_of_aranges): Count !in_std_section and !second_in_std_section
11886 hunks in fdes, instead of looking at arange_table_in_use.
11887 (output_aranges): Add aranges_length argument, don't call
11888 size_of_aranges here. Instead of using aranges_table*
11889 emit ranges for fdes when !in_std_section resp.
11890 !second_in_std_section.
11891 (dw_loc_list): Break ranges crossing section switch.
11892 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
11893 use dw_fde_second_end instead of dw_fde_end as end of last range.
11894 (gen_subprogram_die): Don't call add_arange. Use
11895 dw_fde_{begin,end} for first partition and if switched
11896 section dw_fde_second_{begin,end} for the second.
11897 (var_location_switch_text_section_1,
11898 var_location_switch_text_section): New functions.
11899 (dwarf2out_begin_function): Initialize cold_text_section even
11900 when function_section () isn't text_section.
11901 (prune_unused_types): Don't walk arange_table.
11902 (dwarf2out_finish): Don't needlessly test
11903 flag_reorder_blocks_and_partition when testing cold_text_section_used.
11904 If info_section_emitted, call size_of_aranges and if it indicates
11905 non-empty .debug_aranges, call output_aranges with the computed
11906 size. Stop using removed dw_fde_struct fields, use
11907 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
11908 for second.
11909
11910 PR debug/48203
11911 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
11912 create ENTRY_VALUE if incoming or address of incoming's MEM
11913 is a hard REG.
11914 * dwarf2out.c (mem_loc_descriptor): Don't emit
11915 DW_OP_GNU_entry_value of DW_OP_fbreg.
11916 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
11917 on ENTRY_VALUE is able to find the canonical parameter VALUE.
11918 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
11919 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
11920 ENTRY_VALUE_EXPs.
11921 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
11922 is a REG_P or MEM_P with REG_P address, compute hash directly
11923 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
11924 (preserve_only_constants): Don't clear VALUES forwaring
11925 ENTRY_VALUE to some other VALUE.
11926
11927 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
11928
11929 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
11930 instead of GEN_INT.
11931
11932 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
11933
11934 * cfgexpand.c (expand_gimple_cond): Always set the source location and
11935 block before expanding the statement.
11936 (expand_gimple_stmt_1): Likewise. Set them here...
11937 (expand_gimple_stmt): ...and not here. Tidy.
11938 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
11939 unknown.
11940
11941 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
11942
11943 * Makefile.in: New rule for cprop.o.
11944 * gcse.c: Move constant/copy propagation to cprop.c.
11945 (compute_local_properties): Only handle expression tables.
11946 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
11947 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
11948 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
11949 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
11950 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
11951 compute_cprop_data, find_used_regs, try_replace_reg,
11952 find_avail_set, cprop_jump, constprop_register, cprop_insn,
11953 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
11954 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
11955 find_bypass_set, reg_killed_on_edge, bypass_block,
11956 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
11957 execute_rtl_cprop, pass_rtl_cprop): Move to...
11958 * cprop.c: ...here. New file, constant/copy propagation for RTL
11959 moved from gcse.c to here with minor cleanups in duplicated code.
11960
11961 2011-03-28 H.J. Lu <hongjiu.lu@intel.com>
11962
11963 * config/i386/i386.c (flag_opts): Fix a typo in
11964 -mavx256-split-unaligned-store.
11965
11966 2011-03-28 Anatoly Sokolov <aesok@post.ru>
11967
11968 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
11969 LIBCALL_VALUE): Remove macros.
11970 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11971 TARGET_FUNCTION_VALUE_REGNO_P): Define.
11972 (h8300_function_value, h8300_libcall_value,
11973 h8300_function_value_regno_p): New functions.
11974
11975 2011-03-28 Anatoly Sokolov <aesok@post.ru>
11976
11977 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
11978
11979 2011-03-28 Jeff Law <law@redhat.com>
11980
11981 * tree-ssa-threadupdate.c (redirect_edges): Call
11982 create_edge_and_update_destination_phis as needed.
11983 (create_edge_and_update_destination_phis): Accept new BB argument.
11984 All callers updated.
11985 (thread_block): Do not update the profile when threading around
11986 intermediate blocks.
11987 (thread_single_edge): Likewise.
11988 (determine_bb_domination_status): If BB is not a successor of the
11989 loop header, return NONDOMINATING.
11990 (register_jump_thread): Note when we register a jump thread around
11991 an intermediate block.
11992 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
11993 (thread_across_edge): Use it.
11994
11995 2011-03-28 Tristan Gingold <gingold@adacore.com>
11996
11997 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
11998 when for_return is 2.
11999
12000 2011-03-28 Jeff Law <law@redhat.com>
12001
12002 * var-tracking.c (canonicalize_values_mark): Delete unused
12003 lhs assignment.
12004 (canonicalize_values_star, set_variable_part): Likewise.
12005 (clobber_variable_part, delete_variable_part): Likewise.
12006
12007 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
12008
12009 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
12010
12011 2011-03-28 Martin Jambor <mjambor@suse.cz>
12012
12013 * tree-inline.c (expand_call_inline): Do not check that destination
12014 node is analyzed.
12015 (optimize_inline_calls): Assert that destination node is analyzed.
12016 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
12017 not call tree_lowering_passes.
12018 * cgraph.h (cgraph_analyze_function): Declare.
12019 * cgraphunit.c (cgraph_analyze_function): Make public.
12020
12021 2011-03-28 Joseph Myers <joseph@codesourcery.com>
12022
12023 * config/sparc/sparc-opts.h: New.
12024 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
12025 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
12026 (sparc_option_override): Store processor_type enumeration rather
12027 than string in cpu_default. Remove name and enumeration from
12028 cpu_table. Directly default -mcpu then default -mtune from -mcpu
12029 without using sparc_select. Use target_flags_explicit instead of
12030 fpu_option_set.
12031 * config/sparc/sparc.h (enum processor_type): Move to
12032 sparc-opts.h.
12033 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
12034 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
12035 HeaderInclude entry.
12036 (mcpu=, mtune=): Use Var and Enum.
12037 (sparc_processor_type): New Enum and EnumValue entries.
12038
12039 2011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12040 Iain Sandoe <iains@gcc.gnu.org>
12041
12042 PR target/48245
12043 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
12044
12045 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
12046
12047 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
12048 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
12049 Insert new statements at it in lieu of STMT.
12050 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
12051 * tree-vect-stmts.c (vectorizable_store): Likewise.
12052 (vectorizable_load): Likewise.
12053
12054 2011-03-28 Uros Bizjak <ubizjak@gmail.com>
12055
12056 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
12057 (divtf3): Ditto.
12058 (multf3): Ditto.
12059 (subtf3): Ditto.
12060
12061 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
12062
12063 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
12064 unaligned 256bit load/store.
12065 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
12066 (*avx_movdqu<avxmodesuffix>): Likewise.
12067
12068 2011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12069
12070 PR target/48288
12071 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
12072 * config/pa/pa.md (iordi3): Use new predicate in expander.
12073 (iorsi3): Likewise.
12074
12075 2011-03-27 Anatoly Sokolov <aesok@post.ru>
12076
12077 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
12078 FUNCTION_VALUE_REGNO_P): Remove macros.
12079 * config/mips/mips-protos.h (mips_function_value): Remove.
12080 * config/mips/mips.c (mips_function_value): Rename to...
12081 (mips_function_value_1): ... this. Make static. Handle receiving
12082 the function type in 'fn_decl_or_type' argument.
12083 (mips_function_value, mips_libcall_value,
12084 mips_function_value_regno_p): New function.
12085 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12086 TARGET_FUNCTION_VALUE_REGNO_P): Define.
12087
12088 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
12089
12090 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
12091 and -mavx256-split-unaligned-store.
12092 (ix86_option_override_internal): Split 32-byte AVX unaligned
12093 load/store by default.
12094 (ix86_avx256_split_vector_move_misalign): New.
12095 (ix86_expand_vector_move_misalign): Use it.
12096
12097 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
12098 -mavx256-split-unaligned-store.
12099
12100 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
12101 256bit load/store. Generate unaligned store on misaligned memory
12102 operand.
12103 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
12104 256bit load/store.
12105 (*avx_movdqu<avxmodesuffix>): Likewise.
12106
12107 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
12108 -mavx256-split-unaligned-store.
12109
12110 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
12111
12112 PR target/38598
12113 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
12114 Update commentary.
12115
12116 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
12117
12118 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
12119 opno arguments with an expand_operand. Use create_input_operand.
12120 (mips_prepare_builtin_target): Delete.
12121 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
12122 functions.
12123 (mips_expand_builtin_direct): Use create_output_operand and
12124 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
12125 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
12126 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
12127
12128 2011-03-27 Ira Rosen <ira.rosen@linaro.org>
12129
12130 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
12131 function.
12132 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
12133
12134 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
12135
12136 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
12137 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
12138 basic blocks and call commit_edge_insertions directly.
12139 (fixup_abnormal_edges): Move from here to...
12140 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
12141 on the edges and return whether some have actually been inserted.
12142 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
12143 compensation code.
12144
12145 2011-03-26 Andrey Belevantsev <abel@ispras.ru>
12146
12147 PR rtl-optimization/48144
12148 * sel-sched-ir.c (merge_history_vect): Factor out from ...
12149 (merge_expr_data): ... here.
12150 (av_set_intersect): Rename to av_set_code_motion_filter.
12151 Update all callers. Call merge_history_vect when an expression
12152 is found in both sets.
12153 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
12154
12155 2011-03-26 Alan Modra <amodra@gmail.com>
12156
12157 * config/rs6000/predicates.md (word_offset_memref_op): Handle
12158 cmodel medium addresses.
12159 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
12160 64-bit gpr loads and stores.
12161 (rs6000_secondary_reload_ppc64): New function.
12162 * config/rs6000/rs6000-protos.h: Declare it.
12163 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
12164
12165 2011-03-26 Alan Modra <amodra@gmail.com>
12166
12167 PR target/47487
12168 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
12169 GNU Go in traceback table.
12170
12171 2011-03-25 Richard Henderson <rth@redhat.com>
12172
12173 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
12174 if there are exactly 6 operands.
12175 (set_storage_via_setmem): Similarly.
12176
12177 2011-03-25 Kai Tietz <ktietz@redhat.com>
12178
12179 * collect2.c (write_c_file_stat): Handle backslash
12180 as right-hand directory separator.
12181 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
12182 checking just for slash.
12183 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
12184 instead of checking for trailing slash.
12185 * gcc.c (record_temp_file): Use filename_cmp instead
12186 of strcmp.
12187 (do_spec_1): Likewise.
12188 (replace_outfile_spec_function): Likewise.
12189 (is_directory): Use filename_ncmp instead of strncmp.
12190 (print_multilib_info): Likewise.
12191 * gcov.c (find_source): Use filename_cmp instead
12192 instead of strcmp.
12193 (make_gcov_file_name): Fix order of slash/backslash
12194 checks.
12195 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
12196 (add_standard_paths): Likewise.
12197 * mips-tfile.c (saber_stop): Handle backslash.
12198 * prefix.c (update_path): Use filename_ncmp instead of
12199 strncmp.
12200 * profile.c (output_location): Use filename_cmp instead
12201 of strcmp.
12202 * read-md.c (handle_toplevel_file): Handle backslash.
12203 * tlink.c (frob_extension): Likewise.
12204 * tree-cfg.c (same_line_p): Use filename_cmp instead of
12205 strcmp.
12206 * tree-dump.c (dequeue_and_dump): Handle backslash.
12207 * tree.c (get_file_function_name): Likewise.
12208 * gengtype.c (read_input_list): Likewise.
12209 (get_file_realbasename): Likewise.
12210 (get_output_file_with_visibility): Use filename_cmp
12211 instead of strcmp.
12212
12213 2011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
12214
12215 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
12216 case to VFPv1.
12217
12218 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
12219
12220 * fold-const.c (expr_location_or): New function.
12221 (fold_truth_not_expr): Call it.
12222
12223 2011-03-25 Jeff Law <law@redhat.com>
12224
12225 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
12226 va_end.
12227 * c-family/c-common.c (def_fn_type): Likewise.
12228 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
12229 * emit-rtl.c (gen_rtvec): Likewise.
12230 * lto/lto-lang.c (def_fn_type): Likewise.
12231
12232 2011-03-25 Richard Guenther <rguenther@suse.de>
12233
12234 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
12235 also generate copies.
12236 (fini_copy_prop): Handle constant values properly.
12237
12238 2011-03-25 Jakub Jelinek <jakub@redhat.com>
12239
12240 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
12241 mode size instead of bitsize with DWARF2_ADDR_SIZE.
12242 (hash_loc_operands, compare_loc_operands): Handle
12243 DW_OP_GNU_entry_value.
12244
12245 2011-03-25 Kai Tietz <ktietz@redhat.com>
12246
12247 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
12248 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
12249 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
12250 comment and use macro TARGET_64BIT_MS_ABI instead.
12251 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
12252 and change default behavior for 32-bit MS_ABI.
12253 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
12254 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
12255 32-bit, too.
12256 (ix86_cfun_abi): Likewise.
12257 (ix86_maybe_switch_abi): Adjust comment.
12258 (init_cumulative_args): Check for bit-ness in MS_ABI case.
12259 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
12260 instead of checking for SYSV_ABI.
12261 (ix86_nsaved_sseregs): Likewise.
12262 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
12263 to 16 bytes.
12264 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
12265 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
12266 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
12267 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
12268 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
12269
12270 2011-03-25 Richard Guenther <rguenther@suse.de>
12271
12272 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
12273 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
12274 (verify_gimple): Remove.
12275 * tree-cfg.c (verify_gimple_call): Merge verification
12276 from verify_stmts.
12277 (verify_gimple_phi): Merge verification from verify_stmts.
12278 (verify_gimple_label): New function.
12279 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
12280 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
12281 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
12282 (verify_stmts): Rename to verify_gimple_in_cfg.
12283 (verify_gimple_in_cfg): New function.
12284 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
12285 * tree-ssa.c (verify_ssa): Likewise.
12286 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
12287
12288 2011-03-25 Richard Guenther <rguenther@suse.de>
12289
12290 * passes.c (init_optimization_passes): Add FRE pass after
12291 early SRA.
12292
12293 2011-03-25 Bernd Schmidt <bernds@codesourcery.com>
12294 Andrew Stubbs <ams@codesourcery.com>
12295
12296 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
12297 for Cortex-A8.
12298 (arm_movdi_vfp_cortexa8): New pattern.
12299 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
12300 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
12301 instructions when tuning for Cortex-A8. Set attribute "arch".
12302 * config/arm/arm.md: Move include arm-tune.md up a bit.
12303 (define_attr "arch"): Add "onlya8" and "nota8" values.
12304 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
12305
12306 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
12307
12308 PR bootstrap/48282
12309 Revert:
12310 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
12311
12312 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
12313 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
12314 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
12315 * passes.c (init_optimization_passes): Move
12316 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
12317
12318 2011-03-25 Kai Tietz <ktietz@redhat.com>
12319
12320 * c-typeck.c (comptypes_internal): Replace target
12321 hook call of comp_type_attributes by version in tree.c file.
12322 * gimple.c (gimple_types_compatible_p_1): Likewise.
12323 * tree-ssa.c (useless_type_conversion_p): Likewise.
12324 * tree.c (build_type_attribute_qual_variant): Likewise.
12325 (attribute_value_equal): New static helper function.
12326 (comp_type_attributes): New function.
12327 (merge_attributes): Use attribute_value_equal for comparison.
12328 (attribute_list_contained): Likewise.
12329 * tree.h (comp_type_attributes): New prototype.
12330
12331 2011-03-25 Richard Guenther <rguenther@suse.de>
12332
12333 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
12334 of complex types at -O0.
12335 (verify_gimple_assign_binary): Likewise.
12336 (verify_gimple_assign_ternary): Likewise.
12337
12338 2011-03-24 Mark Wielaard <mjw@redhat.com>
12339
12340 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
12341 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
12342
12343 2011-03-24 Mark Wielaard <mjw@redhat.com>
12344
12345 PR debug/48041
12346 * dwarf2out.c (output_abbrev_section): Only write table when
12347 abbrev_die_table_in_use > 1.
12348
12349 2011-02-24 Richard Henderson <rth@redhat.com>
12350
12351 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
12352 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
12353 (alpha_expand_unaligned_load_words): Use extql.
12354 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
12355 (emit_insxl): Handle all modes for consistency.
12356
12357 2011-02-24 Richard Henderson <rth@redhat.com>
12358
12359 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
12360 (alpha_expand_unaligned_load): Likewise.
12361 (alpha_expand_unaligned_store): Likewise.
12362 (alpha_expand_unaligned_load_words): Likewise.
12363 (alpha_expand_unaligned_store_words): Likewise.
12364 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
12365 (alpha_split_lock_test_and_set_12): Likewise.
12366 (print_operand, alpha_fold_builtin_extxx): Likewise.
12367 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
12368 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
12369 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
12370 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
12371 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
12372 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
12373 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
12374 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
12375 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
12376 (extwl, extll, extql): Similarly.
12377 (inswh, inslh, insqh): Similarly.
12378 (mskbl, mskwl, mskll, mskql): Similarly.
12379 (mskwh, msklh, mskqh): Similarly.
12380
12381 2011-02-24 Richard Henderson <rth@redhat.com>
12382
12383 * config/alpha/alpha.md (attribute isa): Add er, ner.
12384 (attribute enabled): Handle them.
12385 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
12386
12387 2011-02-24 Richard Henderson <rth@redhat.com>
12388
12389 * config/alpha/alpha.md (attribute isa): Add vms.
12390 (attribute enabled): Handle it.
12391 (*movsf): Merge *movsf_{nofix,fix,nofp}.
12392 (*movdf): Merge *movdf_{nofix,fix,nofp}.
12393 (*movtf): Rename from *movtf_internal for consistency.
12394 (*movsi): Merge with *movsi_nt_vms.
12395 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
12396 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
12397 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
12398 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
12399
12400 2011-02-24 Richard Henderson <rth@redhat.com>
12401
12402 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
12403 (extendqisi2, extendhisi2): Likewise.
12404 (extendqidi2): Simplify BWX/non-BWX expansions.
12405 (extendhidi2): Similarly.
12406
12407 2011-02-24 Richard Henderson <rth@redhat.com>
12408
12409 * config/alpha/alpha.md (attribute isa): New.
12410 (attribute enabled): New.
12411 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
12412 (zero_extendqisi2, zero_extendqidi2): Similarly.
12413 (zero_extendhisi2, zero_extendhidi2): Similarly.
12414 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
12415
12416 2011-02-24 Richard Henderson <rth@redhat.com>
12417
12418 * config/alpha/predicates.md (input_operand): Revert last change;
12419 update comment to mention 32-bit VMS rather than Windows.
12420
12421 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
12422
12423 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
12424 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
12425 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
12426 * passes.c (init_optimization_passes): Move
12427 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
12428
12429 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
12430
12431 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
12432
12433 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
12434
12435 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
12436 correctly.
12437
12438 2011-03-24 Jakub Jelinek <jakub@redhat.com>
12439
12440 PR debug/48204
12441 * simplify-rtx.c (simplify_const_unary_operation): Call
12442 real_convert when changing mode class with FLOAT_EXTEND.
12443
12444 2011-03-24 Nick Clifton <nickc@redhat.com>
12445
12446 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
12447 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
12448 * config/rx/rx.c (rx_option_override): Set align_jumps,
12449 align_loops and align_labels if not set by the user.
12450 (rx_align_for_label): New function.
12451 (rx_max_skip_for_label): New function.
12452 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
12453 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
12454 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
12455 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
12456 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
12457
12458 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
12459
12460 PR rtl-optimization/48263
12461 * optabs.c (expand_binop_directly): Reinstate convert_modes code
12462 and original commutative_p handling. Use maybe_gen_insn.
12463
12464 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12465
12466 * reload.c (find_reloads_subreg_address): Add address_reloaded
12467 parameter and return true there if the full address has been
12468 reloaded.
12469 (find_reloads_toplev): Pass address_reloaded flag.
12470 (find_reloads_address_1): Don't use address_reloaded parameter.
12471
12472 2011-03-24 Jeff Law <law@redhat.com>
12473
12474 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
12475 unused variable "ann".
12476 (remove_unused_locals): Likewise.
12477
12478 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
12479 statement.
12480
12481 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
12482 after it is freed.
12483
12484 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12485
12486 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
12487 for invalid symbolic addresses.
12488 (s390_secondary_reload): Don't use s390_check_symref_alignment for
12489 larl operands.
12490
12491 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
12492
12493 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
12494 the argument in calls to fold_truth_not_expr.
12495
12496 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
12497
12498 * tree.c (record_node_allocation_statistics): New function.
12499 (make_node_stat, copy_node_stat, build_string): Call it.
12500 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
12501 (build1_stat, build_omp_clause): Likewise.
12502
12503 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
12504
12505 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
12506 last commit.
12507
12508 2011-03-24 Richard Guenther <rguenther@suse.de>
12509
12510 PR tree-optimization/48271
12511 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
12512 blocks that still exist.
12513
12514 2011-03-24 Richard Guenther <rguenther@suse.de>
12515
12516 PR tree-optimization/48270
12517 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
12518 not free datarefs before ddrs.
12519
12520 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
12521
12522 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
12523 from the address built for a reference with variable offset.
12524
12525 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
12526
12527 PR target/48237
12528 * config/i386/i386.md (*movdf_internal_rex64): Do not split
12529 alternatives that can be handled with movq or movabsq insn.
12530 (*movdf_internal): Disable for !TARGET_64BIT.
12531 (*movdf_internal_nointeger): Ditto.
12532 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
12533
12534 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
12535
12536 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
12537 (FUNCTION_ARG_ADVANCE): Likewise.
12538 * tm.texi.in: Change references to them to hook references.
12539 * tm.texi: Regenerate.
12540 * targhooks.c (default_function_arg): Eliminate check for target macro.
12541 (default_function_incoming_arg): Likewise.
12542 (default_function_arg_advance): Likewise.
12543 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
12544 (function_arg_advance): Likewise.
12545 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
12546
12547 2011-03-24 Richard Guenther <rguenther@suse.de>
12548
12549 PR middle-end/48269
12550 * tree-object-size.c (addr_object_size): Do not double-account
12551 for MEM_REF offsets.
12552
12553 2011-03-24 Diego Novillo <dnovillo@google.com>
12554
12555 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
12556 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
12557 (lto_input_data_block): Move from lto-opts.c. Make extern.
12558 Update all users.
12559 (lto_input_string): Rename from input_string. Make extern.
12560 Update all users.
12561 * lto-streamer-out.c (lto_output_string_with_length): Rename from
12562 output_string_with_length.
12563 Output 0 to indicate a non-NULL string. Update all callers to
12564 not emit 0.
12565 (lto_output_string): Rename from output_string. Make extern.
12566 Update all users.
12567 (lto_output_decl_state_streams): Make extern.
12568 (lto_output_decl_state_refs): Make extern.
12569 * lto-streamer.h (lto_input_string): Declare.
12570 (lto_input_data_block): Declare.
12571 (lto_output_string): Declare.
12572 (lto_output_string_with_length): Declare.
12573 (lto_output_decl_state_streams): Declare.
12574 (lto_output_decl_state_refs): Declare.
12575
12576 2011-03-24 Richard Guenther <rguenther@suse.de>
12577
12578 PR tree-optimization/46562
12579 * tree.c (build_invariant_address): New function.
12580 * tree.h (build_invariant_address): Declare.
12581 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
12582 a renamed function moved ...
12583 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
12584 Take valueization callback parameter.
12585 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
12586 * gimple-fold.h: New file.
12587 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
12588 (ccp_fold, fold_const_aggregate_ref,
12589 fold_ctor_reference, fold_nonarray_ctor_reference,
12590 fold_array_ctor_reference, fold_string_cst_ctor_reference,
12591 get_base_constructor): Move ...
12592 * gimple-fold.c: ... here.
12593 (gimple_fold_stmt_to_constant_1): New function
12594 split out from ccp_fold. Take a valueization callback parameter.
12595 Valueize all operands.
12596 (gimple_fold_stmt_to_constant): New wrapper function.
12597 (fold_const_aggregate_ref_1): New function split out from
12598 fold_const_aggregate_ref. Take a valueization callback parameter.
12599 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
12600 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
12601 invariant POINTER_PLUS_EXPRs to invariant form.
12602 (vn_valueize): New function.
12603 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
12604 * tree-vrp.c (vrp_valueize): New function.
12605 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
12606 to fold statements to constants.
12607 * tree-ssa-pre.c (eliminate): Properly guard propagation of
12608 function declarations.
12609 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
12610 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
12611
12612 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
12613
12614 * config/h8300/predicates.md (jump_address_operand): Fix register
12615 mode check.
12616
12617 2011-03-24 Ira Rosen <ira.rosen@linaro.org>
12618
12619 * doc/invoke.texi (max-stores-to-sink): Document.
12620 * params.h (MAX_STORES_TO_SINK): Define.
12621 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
12622 if either vectorization or if-conversion is disabled.
12623 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
12624 tree-vect-data-refs.c vect_equal_offsets.
12625 (dr_equal_offsets_p): New function.
12626 (find_data_references_in_bb): Remove static.
12627 * tree-data-ref.h (find_data_references_in_bb): Declare.
12628 (dr_equal_offsets_p): Likewise.
12629 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
12630 (vect_drs_dependent_in_basic_block): Update calls to
12631 vect_equal_offsets.
12632 (vect_check_interleaving): Likewise.
12633 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
12634 (cond_if_else_store_replacement): Rename to...
12635 (cond_if_else_store_replacement_1): ... this. Change arguments and
12636 documentation.
12637 (cond_if_else_store_replacement): New function.
12638 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
12639 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
12640
12641 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
12642
12643 PR target/46934
12644 * config/arm/arm.md (casesi): Use the gen_int_mode() function
12645 to subtract lower bound instead of GEN_INT().
12646
12647 2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
12648
12649 PR other/48179
12650 PR other/48221
12651 PR other/48234
12652 * doc/extend.texi (Alignment): Move section to match order in TOC.
12653 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
12654 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
12655
12656 2011-03-23 Jeff Law <law@redhat.com>
12657
12658 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
12659 before removing the edge.
12660
12661 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
12662 it may have been freed by redirect_branch_edge or
12663 redirect_edge_succ_nodup.
12664
12665 2011-03-23 Richard Guenther <rguenther@suse.de>
12666
12667 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
12668 (check_va_list_escapes): Likewise.
12669 (check_all_va_list_escapes): Likewise.
12670
12671 2011-03-23 Richard Guenther <rguenther@suse.de>
12672
12673 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
12674 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
12675 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
12676 (alias.o): Likewise.
12677 (ipa-type-escape.o): Remove.
12678 (ipa-struct-reorg.o): Likewise.
12679 (GTFILES): Remove ipa-struct-reorg.c.
12680 * alias.c: Do not include ipa-type-escape.h.
12681 * tree-ssa-alias.c: Likewise.
12682 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
12683 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
12684 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
12685 and ipa-type-escape passes.
12686 * tree-pass.h (pass_ipa_type_escape): Remove.
12687 (pass_ipa_struct_reorg): Likewise.
12688 * ipa-struct-reorg.h: Remove.
12689 * ipa-struct-reorg.c: Likewise.
12690 * ipa-type-escape.h: Likewise.
12691 * ipa-type-escape.c: Likewise.
12692 * doc/invoke.texi (-fipa-struct-reorg): Remove.
12693 (--param struct-reorg-cold-struct-ratio): Likewise.
12694 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
12695 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
12696 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
12697
12698 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12699
12700 * config/s390/2084.md: Enable all insn reservations also for z9_ec
12701 cpu attribute value.
12702 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
12703 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
12704 * config/s390/s390.c (processor_flags_table): New constant array.
12705 (s390_handle_arch_option): Remove.
12706 (s390_handle_option): Remove s390_handle_arch_option invocations
12707 and OPT_mwarn_framesize_ handling.
12708 (s390_option_override): Remove s390_handle_arch_option invocation.
12709 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
12710 warnings.
12711 * config/s390/s390.md (cpu attribute): Add z9_ec value.
12712 * config/s390/s390.opt (s390_tune, s390_arch)
12713 (march=): Replace s390_arch_option enum and values with
12714 processor_type. Set variable name to s390_arch. Set
12715 initialization value.
12716 (mtune=): Replace s390_arch_option with processor_type. Set
12717 variable name to s390_tune. Set initialization value.
12718
12719 2011-03-23 Julian Brown <julian@codesourcery.com>
12720
12721 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
12722 accesses which are not naturally aligned.
12723
12724 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
12725
12726 PR target/47553
12727 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
12728
12729 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
12730
12731 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
12732 parameter from "int" to "enum insn_code".
12733 (expand_operand_type): New enum.
12734 (expand_operand): New structure.
12735 (create_expand_operand): New function.
12736 (create_fixed_operand, create_output_operand): Likewise
12737 (create_input_operand, create_convert_operand_to): Likewise.
12738 (create_convert_operand_from, create_address_operand): Likewise.
12739 (create_integer_operand): Likewise.
12740 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
12741 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
12742 (expand_insn, expand_jump_insn): Likewise.
12743 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
12744 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
12745 (expand_movstr, expand_builtin___clear_cache): Likewise.
12746 (expand_builtin_lock_release): Likewise.
12747 * explow.c (allocate_dynamic_stack_space): Likewise.
12748 (probe_stack_range): Likewise. Allow check_stack to FAIL,
12749 and use the default handling in that case.
12750 * expmed.c (check_predicate_volatile_ok): Delete.
12751 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
12752 (emit_cstore): Likewise.
12753 * expr.c (emit_block_move_via_movmem): Likewise.
12754 (set_storage_via_setmem, expand_assignment): Likewise.
12755 (emit_storent_insn, try_casesi): Likewise.
12756 (emit_single_push_insn): Likewise. Allow the expansion to fail.
12757 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
12758 (expand_vec_shift_expr, expand_binop_directly): Likewise.
12759 (expand_twoval_unop, expand_twoval_binop): Likewise.
12760 (expand_unop_direct, emit_indirect_jump): Likewise.
12761 (emit_conditional_move, vector_compare_rtx): Likewise.
12762 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
12763 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
12764 (expand_sync_lock_test_and_set): Likewise.
12765 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
12766 (emit_unop_insn): Likewise.
12767 (expand_copysign_absneg): Change icode to an insn_code.
12768 (create_convert_operand_from_type): New function.
12769 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
12770 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
12771 (expand_insn, expand_jump_insn): Likewise.
12772 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
12773 than const_int_operand for operand 2.
12774
12775 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12776
12777 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
12778 if possible.
12779
12780 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
12781
12782 * emit-rtl.c (emit_pattern_before_noloc): New function.
12783 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
12784 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
12785 (emit_pattern_after_noloc): New function.
12786 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
12787 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
12788
12789 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
12790
12791 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
12792 (__ffsDI2): Likewise.
12793
12794 2011-03-22 Richard Henderson <rth@redhat.com>
12795
12796 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
12797 of !TARGET_ABI_OPEN_VMS.
12798 (alpha_trampoline_init, alpha_start_function): Likewise.
12799 (alpha_expand_epilogue, alpha_file_start): Likewise.
12800 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
12801 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
12802 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
12803 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
12804 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
12805
12806 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12807
12808 * config/s390/s390-opts.h: New.
12809 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
12810 s390_arch_flags, s390_warn_framesize, s390_stack_size,
12811 s390_stack_guard): Remove.
12812 (s390_handle_arch_option): Return void. Take enum
12813 s390_arch_option value instead of string and searching array.
12814 (s390_handle_option): Don't assert that global structures are in
12815 use. Access variables via opts pointer. Use error_at. Don't use
12816 sscanf for -mstack-guard= or -mstack-size=. Update call to
12817 s390_handle_arch_option.
12818 (s390_option_override): Update call to s390_handle_arch_option.
12819 (s390_emit_prologue): Use %d format for s390_stack_size in
12820 diagnostic. Use %wd for HOST_WIDE_INT.
12821 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
12822 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
12823 * config/s390/s390.opt (config/s390/s390-opts.h): New
12824 HeaderInclude entry.
12825 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
12826 s390_arch_flags, s390_warn_framesize): New Variable entries.
12827 (s390_arch_option): New Enum and EnumValue entries.
12828 (march=): Use Enum instead of Var.
12829 (mstack-guard=, mstack-size=): Use UInteger and Var.
12830 (mtune=): Use Enum.
12831
12832 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12833
12834 * config/score/score.c (score_handle_option): Don't assert that
12835 global structures are in use. Access target_flags via opts
12836 pointer. Use value of -march= option to determine target_flags
12837 settings.
12838 * config/score/score.opt (march=): Use Enum.
12839 (score_arch): New Enum and EnumValue entries.
12840
12841 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12842
12843 * config/mep/mep.c (option_mtiny_specified): Remove.
12844 (mep_option_override): Move register handling for -mivc2 from
12845 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
12846 instead of option_mtiny_specified.
12847 (mep_handle_option): Access target_flags via opts pointer. Don't
12848 assert that global structures are in use. Defer part of -mivc2
12849 handling and move it to mep_option_override.
12850 * config/mep/mep.opt (IVC2): New Mask entry.
12851 (mivc2): Use Var and Defer instead of Mask.
12852
12853 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12854
12855 * config/v850/v850-opts.h: New.
12856 * config/v850/v850.c (small_memory): Replace with
12857 small_memory_physical_max array. Make that array static const.
12858 (v850_handle_memory_option): Take integer value of argument. Take
12859 gcc_options pointer, option text and location. Return void.
12860 Update for changes to small memory structures.
12861 (v850_handle_option): Access target_flags via opts pointer. Don't
12862 assert that global structures are in use. Update calls to
12863 v850_handle_memory_option.
12864 (v850_encode_data_area): Update references to small memory settings.
12865 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
12866 (enum small_memory_type): Move to v850-opts.h.
12867 * config/v850/v850.opt (config/v850/v850-opts.h): New
12868 HeaderInclude entry.
12869 (small_memory_max): New Variable entry.
12870 (msda): Replace by pair of options msda= and msda-. Use UInteger.
12871 (mtda, mzda): Likewise.
12872
12873 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12874
12875 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
12876 pointer. Don't assert that global structures are in use.
12877
12878 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12879
12880 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
12881 via opts pointer. Don't assert that global structures are in use.
12882
12883 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12884
12885 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
12886 (munix=93): Use Var.
12887 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
12888 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
12889 * config/pa/pa-opts.h: New.
12890 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
12891 (pa_handle_option): Don't assert that global structures are in
12892 use. Access target_flags via opts pointer. Don't handle
12893 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
12894 OPT_munix_98 here.
12895 (pa_option_override): Handle deferred OPT_mfixed_range_.
12896
12897 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12898
12899 * config/mn10300/mn10300-opts.h: New.
12900 * config/mn10300/mn10300.c (mn10300_processor,
12901 mn10300_tune_string): Remove.
12902 (mn10300_handle_option): Don't assert that global structures are
12903 in use. Access mn10300_processor via opts pointer. Don't handle
12904 OPT_mtune_ here.
12905 * config/mn10300/mn10300.h (enum processor_type): Move to
12906 mn10300-opts.h.
12907 (mn10300_processor): Remove.
12908 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
12909 HeaderInclude entry.
12910 (mn10300_processor): New Variable entry.
12911 (mtune=): Use Var.
12912
12913 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12914
12915 * config/microblaze/microblaze.c: Don't include opts.h.
12916 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
12917 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
12918 (mno-clearbss): Use Var and Warn.
12919
12920 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12921
12922 * config/m32r/m32r-opts.h: New.
12923 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
12924 (m32r_handle_option): Don't assert that global structures are in
12925 use. Access target_flags and m32r_cache_flush_func via opts
12926 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
12927 OPT_mno_flush_trap here.
12928 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
12929 include of m32r-opts.h.
12930 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
12931 HeaderInclude entry.
12932 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
12933 (mmodel=): Use Enum and Var.
12934 (m32r_model): New Enum and EnumValue entries.
12935 (mno-flush-trap): Use Var.
12936 (msdata=): Use Enum and Var.
12937 (m32r_sdata): New Enum and EnumValue entries.
12938
12939 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12940
12941 * config/m32c/m32c.c: Don't include opts.h.
12942 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
12943 m32c_handle_option): Remove.
12944 (m32c_option_override): Check global_options_set.x_target_memregs
12945 instead of target_memregs_set.
12946 * config/m32c/m32c.h (target_memregs): Remove.
12947 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
12948 variable.
12949
12950 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12951
12952 * config/iq2000/iq2000-opts.h: New.
12953 * config/iq2000/iq2000.c: Don't include opts.h.
12954 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
12955 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
12956 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
12957 HeaderInclude entry.
12958 (iq2000_tune): New Variable entry.
12959 (march=): Add comment. Use Enum.
12960 (iq2000_arch): New Enum and EnumValue entries.
12961 (mcpu=): Use Enum and Var.
12962 (iq2000_tune): New Enum and EnumValue entries.
12963
12964 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12965
12966 * config/ia64/ia64-opts.h: New.
12967 * config/ia64/ia64.c (ia64_tune): Remove.
12968 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
12969 here. Use error_at.
12970 (ia64_option_override): Handle deferred OPT_mfixed_range_.
12971 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
12972 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
12973 HeaderInclude entry.
12974 (ia64_tune): New Variable entry.
12975 (mfixed-range=): Use Defer and Var.
12976 (mtune=): Use Enum and Var.
12977 (ia64_tune): New Enum and EnumValue entries.
12978
12979 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12980
12981 * config/frv/frv-opts.h: New.
12982 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
12983 frv-opts.h.
12984 (frv_cpu_type): Remove.
12985 * config/frv/frv.c: Don't include opts.h.
12986 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
12987 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
12988 (frv_cpu_type): New Variable entry.
12989 (frv_cpu): New Enum and EnumValue entries.
12990
12991 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12992
12993 * config/cris/cris.c (cris_handle_option): Access target_flags via
12994 opts pointer. Don't assert that global structures are in use.
12995 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
12996 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
12997
12998 2011-03-22 Joseph Myers <joseph@codesourcery.com>
12999
13000 * config/bfin/bfin-opts.h: New.
13001 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
13002 bfin_si_revision, bfin_workarounds): Remove.
13003 (bfin_cpus): Make static const.
13004 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
13005 not bfin_lib_id_given.
13006 (bfin_handle_option): Don't set bfin_lib_id_given. Access
13007 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
13008 pointer. Use error_at. Don't assert that global structures are in use.
13009 * config/bfin/bfin.h: Include bfin-opts.h.
13010 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
13011 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
13012 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
13013 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
13014 entries.
13015
13016 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13017
13018 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
13019 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
13020 or -msoft-float here.
13021 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
13022 -msoft-float and -mhard-float.
13023 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
13024 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
13025 msoft-float.
13026 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
13027 -msoft-float.
13028 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
13029 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
13030 not mhard-float.
13031 (LIBGCC_SPEC): Don't handle -msoft-float.
13032 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
13033 -mhard-float.
13034 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
13035 msoft-float.
13036 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
13037 -mfloat-abi=*, not -msoft-float and -mhard-float.
13038 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
13039 -msoft-float.
13040 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
13041 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
13042 mhard-float and msoft-float.
13043 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
13044 mfloat-abi=soft in comments, not mhard-float and msoft-float.
13045 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
13046 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
13047 mhard-float.
13048 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
13049 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
13050 msoft-float.
13051 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
13052 not mhard-float.
13053 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
13054 not msoft-float.
13055
13056 2011-03-22 Richard Henderson <rth@redhat.com>
13057
13058 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
13059 TARGET_ABI_WINDOWS_NT.
13060 (alpha_output_function_end_prologue): Likewise.
13061 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
13062 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
13063 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
13064 (trap, *movsi_nt_vms): Likewise.
13065 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
13066 (*tablejump_osf_nt_internal): Remove.
13067 * config/alpha/predicates.md (input_operand): Only test Pmode.
13068
13069 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13070
13071 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
13072 via opts pointer. Use error_at. Don't assert that global
13073 structures are in use.
13074
13075 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13076
13077 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
13078 (ix86_handle_option): Access ix86_isa_flags and
13079 ix86_isa_flags_explicit via opts pointer. Don't assert that
13080 global structures are in use.
13081 (ix86_function_specific_save, ix86_function_specific_restore):
13082 Update ix86_isa_flags_explicit field name.
13083 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
13084 (ix86_isa_flags_explicit): Rename TargetSave entry to
13085 x_ix86_isa_flags_explicit.
13086
13087 2011-03-22 Richard Henderson <rth@redhat.com>
13088
13089 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
13090 (alpha_option_override, direct_return): Likewise.
13091 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
13092 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
13093 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
13094 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
13095 (alpha_expand_epilogue, alpha_end_function): Likewise.
13096 (alpha_init_libfuncs): Likewise.
13097 (struct machine_function): Remove unicosmk members.
13098 (print_operand) ['t']: Remove.
13099 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
13100 unicosmk_output_module_name, unicosmk_output_common,
13101 current_section_align, unicosmk_output_text_section_asm_op,
13102 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
13103 unicosmk_section_type_flags, unicosmk_unique_section,
13104 unicosmk_asm_named_section, unicosmk_insert_attributes,
13105 unicosmk_output_align, unicosmk_defer_case_vector,
13106 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
13107 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
13108 unicosmk_output_ssib, unicosmk_add_call_info_word,
13109 unicosmk_extern_head, unicosmk_output_default_externs,
13110 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
13111 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
13112 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
13113 * config/alpha/alpha-protos.h: Update.
13114 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
13115 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
13116 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
13117 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
13118 (*mulsi_se, mulvsi3): Likewise.
13119 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
13120 (*divmodsi_internal, call, call_value, realign): Likewise.
13121 (moddi3, umoddi3): Likewise; remove duplicate expander.
13122 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
13123 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
13124 (*movdi_nofix): Remove r/U alternative.
13125 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
13126 * config/alpha/constraints.md ("U"): Remove.
13127 * config/alpha/predicates.md (call_operand"): Don't test
13128 TARGET_ABI_UNICOSMK.
13129
13130 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13131
13132 * target.def (handle_option): Take gcc_options and
13133 cl_decoded_option pointers and location_t.
13134 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
13135 * doc/tm.texi: Regenerate.
13136 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
13137 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
13138 * lto-opts.c (lto_reissue_options): Generate option structure for
13139 targetm.handle_option call.
13140 * opts.c (target_handle_option): Update call to
13141 targetm.handle_option. Remove assertions about values now passed
13142 down to hook.
13143 * targhooks.c (default_target_handle_option): New.
13144 * targhooks.h (default_target_handle_option): Declare.
13145 * config/alpha/alpha.c: Include opts.h.
13146 (alpha_handle_option): Update to new hook interface.
13147 * config/arm/arm.c: Include opts.h.
13148 (arm_handle_option): Update to new hook interface.
13149 * config/arm/t-arm (arm.o): Update dependencies.
13150 * config/bfin/bfin.c: Include opts.h.
13151 (bfin_handle_option): Update to new hook interface.
13152 * config/cris/cris.c: Include opts.h.
13153 (cris_handle_option): Update to new hook interface.
13154 * config/frv/frv.c: Include opts.h.
13155 (frv_handle_option): Update to new hook interface.
13156 * config/i386/i386.c: Include opts.h.
13157 (ix86_handle_option): Update to new hook interface.
13158 (ix86_valid_target_attribute_inner_p): Generate option structure
13159 for call to ix86_handle_option.
13160 * config/i386/t-i386 (i386.o): Update dependencies.
13161 * config/ia64/ia64.c: Include opts.h.
13162 (ia64_handle_option): Update to new hook interface.
13163 * config/ia64/t-ia64 (ia64.o): Update dependencies.
13164 * config/iq2000/iq2000.c: Include opts.h.
13165 (iq2000_handle_option): Update to new hook interface.
13166 * config/m32c/m32c.c: Include opts.h.
13167 (m32c_handle_option): Update to new hook interface.
13168 * config/m32r/m32r.c: Include opts.h.
13169 (m32r_handle_option): Update to new hook interface.
13170 * config/m68k/m68k.c: Include opts.h.
13171 (m68k_handle_option): Update to new hook interface.
13172 * config/mep/mep.c: Include opts.h.
13173 (mep_handle_option): Update to new hook interface.
13174 * config/microblaze/microblaze.c: Include opts.h.
13175 (microblaze_handle_option): Update to new hook interface.
13176 * config/mips/mips.c: Include opts.h.
13177 (mips_handle_option): Update to new hook interface.
13178 * config/mn10300/mn10300.c: Include opts.h.
13179 (mn10300_handle_option): Update to new hook interface.
13180 * config/pa/pa.c: Include opts.h.
13181 (pa_handle_option): Update to new hook interface.
13182 * config/pdp11/pdp11.c: Include opts.h.
13183 (pdp11_handle_option): Update to new hook interface.
13184 * config/rs6000/rs6000.c: Include opts.h.
13185 (rs6000_handle_option): Update to new hook interface.
13186 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
13187 * config/rx/rx.c: Include opts.h.
13188 (rx_handle_option): Update to new hook interface.
13189 * config/s390/s390.c: Include opts.h.
13190 (s390_handle_option): Update to new hook interface.
13191 * config/score/score.c: Include opts.h.
13192 (score_handle_option): Update to new hook interface.
13193 * config/sh/sh.c: Include opts.h.
13194 (sh_handle_option): Update to new hook interface.
13195 * config/sparc/sparc.c: Include opts.h.
13196 (sparc_handle_option): Update to new hook interface.
13197 * config/v850/v850.c: Include opts.h.
13198 (v850_handle_option): Update to new hook interface.
13199
13200 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13201
13202 * gcc.c (driver_unknown_option_callback): Only permit and save
13203 unknown -Wno- options.
13204 (driver_wrong_lang_callback): Save options directly instead of via
13205 driver_unknown_option_callback.
13206
13207 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
13208
13209 * combine.c (simplify_set): Try harder to find the best CC mode when
13210 simplifying a nested COMPARE on the RHS.
13211
13212 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13213
13214 * config/alpha/gnu.h: Remove.
13215 * config/arc: Remove directory.
13216 * config/arm/netbsd.h: Remove.
13217 * config/arm/t-pe: Remove.
13218 * config/crx: Remove directory.
13219 * config/i386/netbsd.h: Remove.
13220 * config/m68hc11: Remove directory.
13221 * config/m68k/uclinux-oldabi.h: Remove.
13222 * config/mcore/mcore-pe.h: Remove.
13223 * config/mcore/t-mcore-pe: Remove.
13224 * config/netbsd-aout.h: Remove.
13225 * config/rs6000/gnu.h: Remove.
13226 * config/sh/sh-symbian.h: Remove.
13227 * config/sh/symbian-base.c: Remove.
13228 * config/sh/symbian-c.c: Remove.
13229 * config/sh/symbian-cxx.c: Remove.
13230 * config/sh/symbian-post.h: Remove.
13231 * config/sh/symbian-pre.h: Remove.
13232 * config/sh/t-symbian: Remove.
13233 * config/svr3.h: Remove.
13234 * config/vax/netbsd.h: Remove.
13235 * config.build: Don't handle i[34567]86-*-pe.
13236 * config.gcc: Remove handling of deprecations for most deprecated
13237 targets.
13238 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
13239 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
13240 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
13241 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
13242 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
13243 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
13244 Remove cases.
13245 * config.host: Don't handle i[34567]86-*-pe.
13246 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
13247 (ASM_SPEC32): Don't handle -mcall-gnu.
13248 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
13249 -mcall-gnu.
13250 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
13251 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
13252 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
13253 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
13254 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
13255 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
13256 conditional on SYMBIAN.
13257 * configure.ac: Don't handle powerpc*-*-gnu*.
13258 * configure: Regenerate.
13259 * doc/extend.texi (interrupt attribute): Don't mention CRX.
13260 * doc/install-old.texi (m6811, m6812): Don't mention.
13261 * doc/install.texi (arc-*-elf*): Don't document multilib option.
13262 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
13263 (m68k-uclinuxoldabi): Don't mention.
13264 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
13265 Remove.
13266 (-mcall-gnu): Remove.
13267 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
13268 families): Remove constraint documentation.
13269
13270 2011-03-22 Marius Strobl <marius@FreeBSD.org>
13271
13272 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
13273 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
13274 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
13275
13276 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
13277
13278 PR target/48226
13279 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
13280 vector when peeking at the next token for vector, don't expand the
13281 keywords.
13282
13283 2011-03-21 Georg-Johann Lay <avr@gjlay.de>
13284
13285 * config/avr/avr-protos.h (expand_epilogue): Change prototype
13286 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
13287 * config/avr/avr.c (init_cumulative_args)
13288 (avr_function_arg_advance): Use it.
13289 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
13290 sibcall epilogues.
13291 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
13292 (avr_function_ok_for_sibcall): ...this new function.
13293 (avr_lookup_function_attribute1): New static Function.
13294 (avr_naked_function_p, interrupt_function_p)
13295 (signal_function_p, avr_OS_task_function_p)
13296 (avr_OS_main_function_p): Use it.
13297 * config/avr/avr.md ("sibcall", "sibcall_value")
13298 ("sibcall_epilogue"): New expander.
13299 ("*call_insn", "*call_value_insn"): New insn.
13300 ("call_insn", "call_value_insn"): Remove
13301 ("call", "call_value", "epilogue"): Change expander to handle
13302 sibling calls.
13303
13304 2011-03-21 Nick Clifton <nickc@redhat.com>
13305
13306 * doc/invoke.texi (Overall Options): Move closing brace to end of
13307 options list.
13308 (Optimization Options): Add missing @gol.
13309 (Directory Options): Likewise.
13310 (i386 and x86-64 Options): Likewise.
13311 (RS6000 and PowerPC Options): Likewise.
13312 (i386 and x86-64 Windows Options): Likewise.
13313 (V850 Options): Add text missing from descriptions.
13314
13315 2011-03-22 Richard Henderson <rth@redhat.com>
13316
13317 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
13318 (avr_incoming_return_addr_rtx): New.
13319 (emit_push_byte): New.
13320 (expand_prologue): Use it. Remove incorrect dwarf annotation for
13321 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
13322 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
13323 (emit_pop_byte): New.
13324 (expand_epilogue): Use it. Pop frame pointer by bytes.
13325 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
13326 (INCOMING_RETURN_ADDR_RTX): New.
13327 (INCOMING_FRAME_SP_OFFSET): New.
13328 (ARG_POINTER_CFA_OFFSET): New.
13329 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
13330 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
13331 (pophi): Remove.
13332
13333 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
13334
13335 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
13336
13337 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
13338 (FUNCTION_ARG_ADVANCE): Likewise.
13339 * tm.texi.in: Change references to them to hook references.
13340 * tm.texi: Regenerate.
13341 * targhooks.c (default_function_arg): Eliminate check for target
13342 macro.
13343 (default_function_incoming_arg): Likewise.
13344 (default_function_arg_advance): Likewise.
13345 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
13346 (function_arg_advance): Likewise.
13347 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
13348
13349 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
13350
13351 * tree.c (build_call_1): New function.
13352 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
13353
13354 2011-03-22 Richard Guenther <rguenther@suse.de>
13355
13356 PR tree-optimization/48228
13357 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
13358 for single-arg PHIs.
13359
13360 2011-03-22 Andrey Belevantsev <abel@ispras.ru>
13361
13362 PR rtl-optimization/48143
13363 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
13364 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
13365 sse2_cvtps2pd): Likewise.
13366
13367 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13368
13369 * recog.c (canonicalize_change_group): Use validate_unshare_change.
13370
13371 2011-03-22 Richard Guenther <rguenther@suse.de>
13372
13373 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
13374 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
13375 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
13376 and REALIGN_LOAD_EXPR.
13377 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
13378 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
13379 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
13380 DOT_PROD_EXPR case ...
13381 (expand_expr_real_2): ... here.
13382 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
13383 and REALIGN_LOAD_EXPR.
13384 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
13385 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
13386 (vect_create_epilog_for_reduction): Likewise.
13387 (vectorizable_reduction): Likewise.
13388 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
13389 * tree-vect-stmts.c (vectorizable_load): Likewise.
13390
13391 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
13392
13393 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
13394
13395 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13396
13397 * config/s390/s390.c (s390_delegitimize_address): Fix offset
13398 handling for PLTOFF/GOTOFF.
13399
13400 2011-03-22 Nick Clifton <nickc@redhat.com>
13401
13402 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
13403 trailing backslash from the end of the macro definition.
13404
13405 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13406
13407 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
13408 and PLT unspecs.
13409
13410 2011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
13411
13412 * expr.h (prepare_operand): Move to...
13413 * optabs.h (prepare_operand): ...here and change the insn code
13414 parameter from "int" to "enum insn_code".
13415 (insn_operand_matches): Declare.
13416 * expr.c (init_expr_target): Use insn_operand_matches.
13417 (compress_float_constant): Likewise.
13418 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
13419 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
13420 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
13421 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
13422 Likewise.
13423 (gen_cond_trap): Likewise.
13424 (prepare_operand): Likewise. Change icode to an insn_code.
13425 (insn_operand_matches): New function.
13426 * reload.c (find_reloads_address_1): Use insn_operand_matches.
13427 * reload1.c (gen_reload): Likewise.
13428 * targhooks.c (default_secondary_reload): Likewise.
13429
13430 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
13431
13432 * config/alpha/alpha.md (unspec): New define_c_enum.
13433 (unspecv): Ditto.
13434
13435 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
13436
13437 PR debug/48214
13438 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
13439 between a call and its CALL_ARG_LOCATION note.
13440
13441 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
13442
13443 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
13444
13445 2011-03-21 Jakub Jelinek <jakub@redhat.com>
13446
13447 PR c/42544
13448 PR c/48197
13449 * c-common.c (shorten_compare): If primopN is first sign-extended
13450 to opN and then zero-extended to result type, set primopN to opN.
13451
13452 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
13453
13454 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
13455 for barrier handlers.
13456
13457 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
13458
13459 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
13460 UNSPEC constants to be in the unspec enumeration, and redefine
13461 all UNSPECV constants to be in the unspecv enumeration, so that
13462 dumps print which unspec/unspec_volatile this is.
13463 * config/rs6000/vector.md (UNSPEC_*): Ditto.
13464 * config/rs6000/paired.md (UNSPEC_*): Ditto.
13465 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
13466 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
13467 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
13468
13469 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
13470 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
13471 UNSPECV_LWSYNC, since these are used as unspec_volatile.
13472 * config/rs6000/sync.md (isync, lwsync): Ditto.
13473
13474 2011-03-21 Richard Guenther <rguenther@suse.de>
13475
13476 * params.def (lto-min-partition): Fix typo.
13477
13478 2011-03-21 Richard Guenther <rguenther@suse.de>
13479
13480 PR c/47939
13481 * c-decl.c (grokdeclarator): Drop to the main variant only
13482 for array types. Drop flag_gen_aux_info check.
13483
13484 2011-03-21 Richard Guenther <rguenther@suse.de>
13485
13486 PR translation/47911
13487 * params.def (lto-partitions): Fix typo.
13488 (lto-min-partition): Fix wording.
13489
13490 2011-03-21 Andreas Tobler <andreast@fgznet.ch>
13491
13492 * config/rs6000/t-freebsd: Remove duplication from file.
13493
13494 2011-03-21 Richard Guenther <rguenther@suse.de>
13495
13496 PR middle-end/47661
13497 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
13498
13499 2011-03-21 Richard Guenther <rguenther@suse.de>
13500
13501 PR lto/48210
13502 * params.def (lto-partitions): Require at least 1 partition.
13503
13504 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13505
13506 * gthr-solaris.h: Remove.
13507 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
13508 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
13509 (LIB_SPEC): Likewise.
13510 * config/sol2.opt (threads): Remove.
13511 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
13512 (sparc*-*-solaris2*): Likewise.
13513 * configure.ac (enable_threads): Enable solaris support.
13514 * configure: Regenerate.
13515 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
13516 * doc/install.texi (Configuration, --enable-threads=lib): Remove
13517 solaris.
13518
13519 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13520
13521 * config.gcc: Obsolete *-*-solaris2.8*.
13522 * doc/install.texi (Specific, *-*-solaris2*): Document it.
13523
13524 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13525
13526 PR bootstrap/48135
13527 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
13528 reference. Solaris 8 perl works.
13529
13530 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13531
13532 PR bootstrap/48135
13533 * doc/install.texi (Prerequisites): Move jar etc. up.
13534 Explain support library version requirements.
13535
13536 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13537
13538 PR bootstrap/48135
13539 * doc/install.texi (Prerequisites): Move Perl to build
13540 requirements. Always necessary on Solaris 2 with Sun ld.
13541
13542 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13543
13544 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
13545 binutils 2.21.
13546 (Specific, i?86-*-solaris2.[89]): Likewise.
13547 (Specific, i?86-*-solaris2.10): Likewise.
13548 (Specific, mips-sgi-irix6): Likewise.
13549 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
13550 Update for binutils 2.21.
13551
13552 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13553
13554 * configure.ac (gcc_cv_lto_plugin): Fix typo.
13555 Allow -fuse-linker-plugin for non-default plugin linker.
13556 * configure: Regenerate.
13557
13558 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
13559
13560 PR bootstrap/48167
13561 * gengtype.c (files_rules): Added rule for cp/parser.h.
13562
13563 2011-03-21 Jakub Jelinek <jakub@redhat.com>
13564
13565 PR target/48213
13566 * config/s390/s390.c (s390_delegitimize_address): Don't call
13567 lowpart_subreg if orig_x has BLKmode.
13568
13569 2011-03-21 Kai Tietz <ktietz@redhat.com>
13570
13571 PR target/12171
13572 * doc/plugins.texi: Adjust documentation for plugin register_callback.
13573 * tree.h (attribute_spec): Add new member affects_type_identity.
13574 * attribs.c (empty_attribute_table): Adjust attribute_spec
13575 initializers.
13576 * config/alpha/alpha.c: Likewise.
13577 * config/arc/arc.c: Likewise.
13578 * config/arm/arm.c: Likewise.
13579 * config/avr/avr.c: Likewise.
13580 * config/bfin/bfin.c: Likewise.
13581 * config/crx/crx.c: Likewise.
13582 * config/darwin.h: Likewise.
13583 * config/h8300/h8300.c: Likewise.
13584 * config/i386/cygming.h: Likewise.
13585 * config/i386/i386.c: Likewise.
13586 * config/ia64/ia64.c: Likewise.
13587 * config/m32c/m32c.c: Likewise.
13588 * config/m32r/m32r.c: Likewise.
13589 * config/m68hc11/m68hc11.c: Likewise.
13590 * config/m68k/m68k.c: Likewise.
13591 * config/mcore/mcore.c: Likewise.
13592 * config/mep/mep.c: Likewise.
13593 * config/microblaze/microblaze.c: Likewise.
13594 * config/mips/mips.c: Likewise.
13595 * config/rs6000/rs6000.c: Likewise.
13596 * config/rx/rx.c: Likewise.
13597 * config/sh/sh.c: Likewise.
13598 * config/sol2.h: Likewise.
13599 * config/sparc/sparc.c: Likewise.
13600 * config/spu/spu.c: Likewise.
13601 * config/stormy16/stormy16.c: Likewise.
13602 * config/v850/v850.c: Likewise.
13603
13604 2011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
13605
13606 * simplify-rtx.c (simplify_binary_operation_1): Handle
13607 (xor (and A B) C) case when B and C are both constants.
13608
13609 2011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
13610
13611 * tree-dfa.c (add_referenced_var): Fix typo in comment.
13612
13613 2011-03-20 Eric Botcazou <ebotcazou@adacore.com>
13614
13615 PR bootstrap/48168
13616 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
13617
13618 2011-03-20 Jakub Jelinek <jakub@redhat.com>
13619
13620 PR rtl-optimization/48156
13621 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
13622 assume df and df_lr are not NULL.
13623
13624 2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13625
13626 PR debug/48023
13627 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
13628 between a call and its CALL_ARG_LOCATION note.
13629
13630 2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
13631
13632 PR debug/48178
13633 * config/sh/sh.c (find_barrier): Don't emit a constant pool
13634 between a call and its corresponding CALL_ARG_LOCATION note.
13635
13636 2011-03-19 Anatoly Sokolov <aesok@post.ru>
13637
13638 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
13639 instead of loop. Use HARD_REGISTER_NUM_P predicate.
13640 * haifa-sched.c (setup_ref_regs): Ditto.
13641 * caller-save.c (add_used_regs_1): Ditto.
13642 * dse.c (look_for_hardregs): Ditto.
13643 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
13644 * sched-rgn.c (check_live_1): Ditto.
13645
13646 2011-03-18 Joseph Myers <joseph@codesourcery.com>
13647
13648 * c-decl.c (diagnose_mismatched_decls): Give an error for
13649 redefining a typedef with variably modified type.
13650
13651 2011-03-18 Joseph Myers <joseph@codesourcery.com>
13652
13653 * c-decl.c (grokfield): Don't allow typedefs for structures or
13654 unions with no tag by default.
13655 * doc/extend.texi (Unnamed Fields): Update.
13656
13657 2011-03-18 Uros Bizjak <ubizjak@gmail.com>
13658
13659 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
13660 Rewrite using indirect functions.
13661 (lwp_slwpcb): Ditto.
13662 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
13663 (avx_vinsertf128<mode>): Ditto.
13664
13665 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13666
13667 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
13668 unspecs.
13669
13670 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13671
13672 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
13673 splitting between a call and its corresponding CALL_ARG_LOCATION note.
13674
13675 2011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
13676
13677 PR rtl-optimization/48170
13678 * gcse.c (hoist_code): Remove bogus asserts.
13679
13680 2011-03-18 Georg-Johann Lay <avr@gjlay.de>
13681
13682 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
13683 computation for prologue/epilogue.
13684
13685 2011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13686
13687 * Makefile.in (check-consistency): Remove.
13688
13689 2011-03-18 Jakub Jelinek <jakub@redhat.com>
13690
13691 PR debug/48176
13692 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
13693 arange_table_in_use is 0, but either text_section_used or
13694 cold_text_section_used is true. Don't call it if
13695 !info_section_emitted.
13696
13697 2011-03-18 Anatoly Sokolov <aesok@post.ru>
13698
13699 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
13700 FUNCTION_VALUE_REGNO_P): Remove.
13701 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
13702 Remove.
13703 * config/avr/avr.c (avr_ret_register): Make static inline.
13704 (avr_function_value_regno_p): New function.
13705 (avr_libcall_value): Make static. Add 'func' argument.
13706 (avr_function_value): Make static. Rename 'func' argument to
13707 'fn_decl_or_type', forward it to avr_libcall_value. Call
13708 avr_ret_register function instead of RET_REGISTER macro.
13709 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
13710
13711 2011-03-18 Jason Merrill <jason@redhat.com>
13712
13713 PR c++/23372
13714 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
13715
13716 2011-03-18 Richard Guenther <rguenther@suse.de>
13717
13718 * doc/install.texi (--enable-gold): Remove.
13719 (--with-plugin-ld): Document.
13720 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
13721
13722 2011-03-18 Andrew Pinski <pinskia@gmail.com>
13723
13724 PR middle-end/47790
13725 * expr.c (optimize_bitfield_assignment_op): Revamp to work
13726 again after expansion changes.
13727
13728 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
13729
13730 * combine.c (try_combine): Do simplification only call of
13731 subst() on i2 even when i1 is present. Update comments.
13732
13733 2011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
13734
13735 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
13736 and UNSPEC_PCREL_SYMOFF.
13737
13738 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13739
13740 * config/s390/s390.md: Use define_c_enum for the unspec constant
13741 definitions.
13742
13743 2011-03-18 Richard Henderson <rth@redhat.com>
13744 Jakub Jelinek <jakub@redhat.com>
13745
13746 PR bootstrap/48161
13747 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
13748 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
13749
13750 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13751
13752 PR middle-end/47725
13753 * combine.c (cant_combine_insn_p): Don't check zero/sign
13754 extended hard registers.
13755
13756 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13757
13758 PR middle-end/47725
13759 * combine.c (cant_combine_insn_p): Check zero/sign extended
13760 hard registers.
13761
13762 2011-03-17 Anatoly Sokolov <aesok@post.ru>
13763
13764 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13765 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
13766 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
13767 Change return type to bool.
13768 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13769
13770 2011-03-17 Jakub Jelinek <jakub@redhat.com>
13771
13772 PR debug/48163
13773 * var-tracking.c (prepare_call_arguments): If CALL target
13774 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
13775 pc instead of looking it up using cselib_lookup and use
13776 Pmode for it if x has VOIDmode.
13777 * dwarf2out.c (gen_subprogram_die): If also both first and
13778 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
13779
13780 PR debug/48163
13781 * function.c (assign_parms): For data.passed_pointer parms
13782 use MEM of data.entry_parm instead of data.entry_parm itself
13783 as DECL_INCOMING_RTL.
13784 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
13785 also when passed and declared mode is the same, DECL_RTL
13786 is a MEM with pseudo as address and DECL_INCOMING_RTL is
13787 a MEM too.
13788
13789 2011-03-16 Jeff Law <law@redhat.com>
13790
13791 PR rtl-optimization/37273
13792 * ira-costs.c (scan_one_insn): Detect constants living in memory and
13793 handle them like argument loads from stack slots. Do not double
13794 count memory for memory constants and argument loads from stack slots.
13795
13796 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13797
13798 PR debug/48160
13799 * var-tracking.c (prepare_call_arguments): Check SUBREG.
13800
13801 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
13802
13803 PR target/48171
13804 * config/i386/i386.opt: Add Save to -mavx and -mfma.
13805
13806 2011-03-17 Jakub Jelinek <jakub@redhat.com>
13807
13808 PR bootstrap/48153
13809 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
13810 if dwarf_strict.
13811 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
13812 Clear call_arg_locations and call_arg_loc_last always.
13813
13814 PR middle-end/48152
13815 * var-tracking.c (prepare_call_arguments): If argument needs to be
13816 passed by reference, adjust argtype and mode.
13817
13818 2011-03-17 Richard Guenther <rguenther@suse.de>
13819
13820 PR middle-end/48134
13821 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
13822 a value make sure to fold the statement.
13823
13824 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
13825
13826 PR target/43872
13827 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
13828 return condition with !cfun->calls_alloca.
13829
13830 2011-03-17 Richard Guenther <rguenther@suse.de>
13831
13832 PR bootstrap/48148
13833 * lto-cgraph.c (input_overwrite_node): Clear the abstract
13834 origin for decls in other ltrans units.
13835 (input_varpool_node): Likewise.
13836
13837 2011-03-17 Richard Guenther <rguenther@suse.de>
13838
13839 PR middle-end/48165
13840 * tree-object-size.c (compute_object_offset): Properly return
13841 the offset operand of MEM_REFs as sizetype.
13842
13843 2011-03-17 Jakub Jelinek <jakub@redhat.com>
13844
13845 PR rtl-optimization/48141
13846 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
13847 * dse.c: Include params.h.
13848 (active_local_stores_len): New variable.
13849 (add_wild_read, dse_step1): Clear it when setting active_local_stores
13850 to NULL.
13851 (record_store, check_mem_read_rtx): Decrease it when removing
13852 from the chain.
13853 (scan_insn): Likewise. Increase it when adding to chain, if it
13854 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
13855 set active_local_stores to NULL before the addition.
13856 * Makefile.in (dse.o): Depend on $(PARAMS_H).
13857
13858 PR rtl-optimization/48141
13859 * dse.c (record_store): If no positions are needed in an insn
13860 that cannot be deleted, at least unchain it from active_local_stores.
13861
13862 2011-03-16 Dodji Seketeli <dodji@redhat.com>
13863
13864 PR debug/47510
13865 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
13866 (lookup_type_die_strip_naming_typedef): ... here.
13867 (get_context_die): Use it.
13868 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
13869 the anonymous struct named by the naming typedef.
13870
13871 2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
13872
13873 PR target/48154
13874 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
13875 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
13876
13877 2011-03-16 Jeff Law <law@redhat.com>
13878
13879 * tree-vrp.c (identify_jump_threads): Slightly simplify type
13880 check for operands of conditional. Allow type to be a pointer.
13881
13882 2011-03-16 Richard Guenther <rguenther@suse.de>
13883
13884 PR tree-optimization/48149
13885 * fold-const.c (fold_binary_loc): Fold
13886 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
13887
13888 2011-03-16 Richard Guenther <rguenther@suse.de>
13889
13890 PR tree-optimization/26134
13891 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
13892 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
13893 (non_rewritable_mem_ref_base): Handle complex type component
13894 accesses, constrain offsets for vector and complex extracts
13895 more properly.
13896
13897 2011-03-16 Richard Guenther <rguenther@suse.de>
13898
13899 PR tree-optimization/48146
13900 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
13901 operands avoiding the need for renaming.
13902
13903 2011-03-16 Richard Guenther <rguenther@suse.de>
13904
13905 * gimple-fold.c (maybe_fold_reference): Open-code relevant
13906 constant folding. Move MEM_REF canonicalization first.
13907 Rely on fold_const_aggregate_ref for initializer folding.
13908 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
13909
13910 2011-03-16 Jakub Jelinek <jakub@redhat.com>
13911
13912 PR middle-end/48136
13913 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
13914 arg0/arg1 or their arguments are always fold converted to matching
13915 types.
13916
13917 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
13918 to nargs.
13919
13920 2011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13921
13922 PR lto/46944
13923 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
13924 Handle in-tree gold.
13925 (ld_vers): Extract binutils version for gold.
13926 (gcc_cv_ld_hidden): Handle gold here.
13927 (gcc_cv_lto_plugin): Determine level of linker plugin support.
13928 * configure: Regenerate.
13929 * config.in: Regenerate.
13930 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
13931 -fuse-linker-plugin otherwise.
13932 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
13933 (LINK_COMMAND_SPEC): Use it.
13934 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
13935
13936 2011-03-16 Jakub Jelinek <jakub@redhat.com>
13937
13938 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
13939 * calls.c: Remove debug.h include.
13940 (emit_call_1): Don't call virtual_call_token debug hook.
13941 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
13942 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
13943 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
13944 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
13945 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
13946 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
13947 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
13948 dwarf2out_virtual_call): Remove.
13949 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
13950 copy_call_info and virtual_call hooks.
13951 (dwarf2out_init): Don't initialize vcall_insn_table,
13952 debug_dcall_section and debug_vcall_section.
13953 (prune_unused_types): Don't mark nodes from dcall_table.
13954 (dwarf2out_finish): Don't output dcall or vcall tables.
13955 * final.c (final_scan_insn): Don't call direct_call or
13956 virtual_call debug hooks.
13957 * debug.h (struct gcc_debug_hooks): Remove direct_call,
13958 virtual_call_token, copy_call_info and virtual_call hooks.
13959 (debug_nothing_uid): Remove prototype.
13960 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
13961 copy_call_info and virtual_call hooks.
13962 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13963 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
13964 * debug.c (do_nothing_debug_hooks): Likewise.
13965 (debug_nothing_uid): Remove.
13966 * doc/invoke.texi (-fenable-icf-debug): Remove.
13967 * common.opt (-fenable-icf-debug): Likewise.
13968
13969 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
13970 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
13971 call's MEM. Handle functions returning aggregate through a hidden
13972 first pointer. For virtual calls add clobbered pc to call arguments
13973 chain.
13974 * dwarf2out.c (gen_subprogram_die): Emit
13975 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
13976 can't be emitted.
13977
13978 PR debug/45882
13979 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
13980 * rtl.h (ENTRY_VALUE_EXP): Define.
13981 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
13982 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
13983 * print-rtl.c (print_rtx): Likewise.
13984 * gengtype.c (adjust_field_rtx_def): Likewise.
13985 * var-tracking.c (vt_add_function_parameter): Adjust
13986 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
13987 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
13988 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
13989 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
13990 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
13991
13992 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
13993 Call var_location debug hook even on CALL_INSNs.
13994 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
13995 * rtl.def (ENTRY_VALUE): New.
13996 * dwarf2out.c: Include cfglayout.h.
13997 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
13998 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
13999 (struct call_arg_loc_node): New type.
14000 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
14001 tail_call_site_count): New variables.
14002 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
14003 DW_TAG_GNU_call_site_parameter.
14004 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
14005 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
14006 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
14007 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
14008 and DW_AT_GNU_all_source_call_sites.
14009 (mem_loc_descriptor): Handle ENTRY_VALUE.
14010 (add_src_coords_attributes): Don't add enything if
14011 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
14012 (dwarf2out_abstract_function): Save and clear call_arg_location,
14013 call_site_count and tail_call_site_count around dwarf2out_decl call.
14014 (gen_call_site_die): New function.
14015 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
14016 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
14017 (dwarf2out_function_decl): Clear call_arg_locations,
14018 call_arg_loc_last, set call_site_count and tail_call_site_count
14019 to -1 and free block_map.
14020 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
14021 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
14022 followed by any real instructions.
14023 (dwarf2out_begin_function): Set call_site_count and
14024 tail_call_site_count to 0.
14025 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
14026 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
14027 attempt to force a DIE for it and worst case remove the attribute.
14028 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
14029 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
14030 the decl itself.
14031 * var-tracking.c: Include tm_p.h.
14032 (vt_stack_adjustments): For calls call note_register_arguments.
14033 (argument_reg_set): New variable.
14034 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
14035 ensure the VALUE is resolved.
14036 (call_arguments): New variable.
14037 (prepare_call_arguments): New function.
14038 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
14039 (struct expand_loc_callback_data): Add ignore_cur_loc field.
14040 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
14041 always use the best expression.
14042 (vt_expand_loc): Add ignore_cur_loc argument.
14043 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
14044 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
14045 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
14046 note for all calls.
14047 (vt_add_function_parameter): Use cselib_lookup_from_insn.
14048 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
14049 argument. Don't call cselib_preserve_only_values and
14050 cselib_reset_table.
14051 (note_register_arguments): New function.
14052 (vt_initialize): Compute argument_reg_set. Call
14053 vt_add_function_parameters before processing basic blocks instead of
14054 afterwards. For calls call prepare_call_arguments before calling
14055 cselib_process_insn.
14056 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
14057 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
14058 (var-tracking.o): Depend on $(TM_P_H).
14059 * cfglayout.h (insn_scope): New prototype.
14060 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
14061 * cfglayout.c (insn_scope): No longer static.
14062 * insn-notes.def (CALL_ARG_LOCATION): New.
14063 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
14064 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
14065 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
14066 nothing for DECL_EXTERNAL BLOCK_VARS.
14067
14068 2011-03-16 Alan Modra <amodra@gmail.com>
14069
14070 PR target/45844
14071 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
14072 create invalid offset address for vsx splat insn.
14073 * config/rs6000/predicates.md (splat_input_operand): New.
14074 * config/rs6000/vsx.md (vsx_splat_*): Use it.
14075
14076 2011-03-15 Xinliang David Li <davidxl@google.com>
14077
14078 PR c/47837
14079 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
14080 (normalize_preds): New function.
14081 (is_use_properly_guarded): Normalize def predicates.
14082
14083 2011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
14084
14085 PR target/46788
14086 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
14087 in the output template.
14088
14089 2011-03-15 Richard Guenther <rguenther@suse.de>
14090
14091 PR middle-end/47650
14092 * tree-pretty-print.c (dump_function_declaration): Properly
14093 dump unprototyped and varargs function types.
14094
14095 2011-03-15 Richard Guenther <rguenther@suse.de>
14096
14097 PR tree-optimization/13954
14098 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
14099 and friends.
14100
14101 2011-03-15 Richard Guenther <rguenther@suse.de>
14102
14103 PR tree-optimization/48037
14104 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
14105 selects into BIT_FIELD_REFs.
14106 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
14107 vector select.
14108
14109 2011-03-15 Jakub Jelinek <jakub@redhat.com>
14110
14111 PR tree-optimization/48129
14112 * builtins.c (fold_builtin_snprintf): Convert to type of
14113 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
14114 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
14115
14116 2011-03-15 Richard Guenther <rguenther@suse.de>
14117
14118 PR tree-optimization/41490
14119 * tree-ssa-dce.c (propagate_necessity): Handle returns without
14120 value but with VUSE.
14121 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
14122 return statements.
14123 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
14124 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
14125 * tree-tailcall.c (find_tail_calls): Ignore returns.
14126
14127 2011-03-15 Richard Guenther <rguenther@suse.de>
14128
14129 PR middle-end/48031
14130 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
14131 or variable-indexed array accesses when in gimple form.
14132
14133 2011-03-15 Richard Guenther <rguenther@suse.de>
14134
14135 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
14136
14137 2011-03-15 Alan Modra <amodra@gmail.com>
14138
14139 PR target/48032
14140 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
14141 presume symbol_refs without a symbol_ref_decl are suitably
14142 aligned, nor other trees we may see here. Handle anchor symbols.
14143 (legitimate_constant_pool_address_p): Comment. Add mode param.
14144 Check cmodel=medium addresses. Adjust all calls.
14145 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
14146 creating cmodel=medium optimized access to locals.
14147 * config/rs6000/constraints.md (R): Pass QImode to
14148 legitimate_constant_pool_address_p.
14149 * config/rs6000/predicates.md (input_operand): Pass mode to
14150 legitimate_constant_pool_address_p.
14151 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
14152 Update prototype.
14153
14154 2011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14155
14156 PR target/48053
14157 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
14158 64-bit constants being loaded into registers other than GPRs such
14159 as loading 0 into a VSX register.
14160
14161 2011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14162
14163 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
14164
14165 2011-03-14 Jakub Jelinek <jakub@redhat.com>
14166
14167 PR middle-end/47917
14168 * builtins.c (fold_builtin_snprintf): New function.
14169 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
14170 (fold_builtin_4): Likewise.
14171
14172 PR middle-end/38878
14173 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
14174 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
14175 and C - X == X also strip nops from +/-/p+ operand.
14176 When optimizing -X == C, fold C to arg0's type.
14177
14178 PR debug/47946
14179 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
14180 emit it as add_AT_int instead of add_AT_unsigned.
14181
14182 2011-03-14 Tom Tromey <tromey@redhat.com>
14183
14184 * unwind-dw2.c: Include sys/sdt.h if it exists.
14185 (_Unwind_DebugHook): Use STAP_PROBE2.
14186 * config.in, configure: Rebuild.
14187 * configure.ac: Check for sys/sdt.h.
14188
14189 2011-03-14 Uros Bizjak <ubizjak@gmail.com>
14190
14191 * config/i386/i386.md (ROUND_FLOOR): New constant.
14192 (ROUND_CEIL): Ditto.
14193 (ROUND_TRUNC): Ditto.
14194 (ROUND_MXCSR): Ditto.
14195 (ROUND_NO_EXC): Ditto.
14196 (rint<mode>2): Use new defines instead of numerical constants.
14197 (floor<mode>2): Ditto.
14198 (ceil<mode>2): Ditto.
14199 (btrunc<mode>2): Ditto.
14200 * config/i386/i386-builtin-types.def: Define ROUND function type
14201 aliases.
14202 * config/i386/i386.c (enum ix86_builtins): Add
14203 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
14204 (struct builtin_description): Add
14205 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
14206 (ix86_expand_sse_round): New static function.
14207 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
14208 function types.
14209 (ix86_builtin_vectorized_function): Handle
14210 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
14211
14212 2011-03-14 Tom Tromey <tromey@redhat.com>
14213
14214 * c-parser.c (c_parser_asm_string_literal): Clear
14215 warn_overlength_strings.
14216
14217 2011-03-14 Tom Tromey <tromey@redhat.com>
14218
14219 * c-parser.c (disable_extension_diagnostics): Save
14220 warn_overlength_strings.
14221 (restore_extension_diagnostics): Restore warn_overlength_strings.
14222
14223 2011-03-14 Jakub Jelinek <jakub@redhat.com>
14224
14225 * BASE-VER: Change to 4.7.0.
14226
14227 2011-03-14 Richard Guenther <rguenther@suse.de>
14228
14229 PR middle-end/48098
14230 * tree.c (build_vector_from_val): Adjust assert to requirements
14231 and reality.
14232
14233 2011-03-14 Jakub Jelinek <jakub@redhat.com>
14234
14235 PR bootstrap/48102
14236 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
14237
14238 2011-03-14 Andreas Tobler <andreast@fgznet.ch>
14239
14240 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
14241 terms of target_flags_explicit. Adjust copyright year.
14242
14243 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
14244 * config/rs6000/t-freebsd: New file. Add override for
14245 LIB2FUNCS_EXTRA.
14246
14247 2011-03-13 Chris Demetriou <cgd@google.com>
14248
14249 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
14250 (-fno-diagnostics-show-option): this, to reflect current default.
14251 (-Werror=): Update text about -fno-diagnostics-show-option.
14252
14253 2011-03-12 Peter Bergner <bergner@vnet.ibm.com>
14254
14255 PR target/48053
14256 * config/rs6000/predicates.md (easy_vector_constant_add_self,
14257 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
14258 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
14259 mode is not V2DImode or V2DFmode.
14260 (vspltis_constant): Do not handle V2DImode and V2DFmode.
14261 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
14262 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
14263 registers to 0.
14264 (movdi_internal64): Likewise.
14265
14266 2011-03-12 Sebastian Pop <sebastian.pop@amd.com>
14267
14268 PR tree-optimization/47127
14269 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
14270 parameter.
14271 (set_cloog_options): Same.
14272 (scop_to_clast): Same.
14273 (print_clast_stmt): Do not call cloog_state_malloc and
14274 cloog_state_free.
14275 (print_generated_program): Same.
14276 (gloog): Same.
14277 * graphite-clast-to-gimple.h (cloog_state): Declared.
14278 (scop_to_clast): Adjust declaration.
14279 * graphite.c (cloog_state): Defined here.
14280 (graphite_initialize): Call cloog_state_malloc.
14281 (graphite_finalize): Call cloog_state_free.
14282
14283 2011-03-11 Jason Merrill <jason@redhat.com>
14284
14285 * attribs.c (lookup_attribute_spec): Take const_tree.
14286 * tree.h: Adjust.
14287
14288 2011-03-11 Joseph Myers <joseph@codesourcery.com>
14289
14290 * config/sparc/sparc.c (sparc_option_override): Use
14291 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
14292
14293 2011-03-11 Richard Guenther <rguenther@suse.de>
14294
14295 PR tree-optimization/48067
14296 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
14297 multiplication result will be only used once on the target
14298 stmt.
14299
14300 2011-03-11 Richard Guenther <rguenther@suse.de>
14301
14302 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
14303
14304 2011-03-11 Richard Guenther <rguenther@suse.de>
14305
14306 PR lto/48073
14307 * tree.c (find_decls_types_r): Do not walk types only reachable
14308 from IDENTIFIER_NODEs.
14309
14310 2011-03-11 Jakub Jelinek <jakub@redhat.com>
14311
14312 PR middle-end/48044
14313 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
14314 all vnode->force_output nodes as needed.
14315
14316 2011-03-11 Jason Merrill <jason@redhat.com>
14317
14318 PR c++/48069
14319 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
14320 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
14321
14322 2011-03-11 Martin Jambor <mjambor@suse.cz>
14323
14324 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
14325 cgraph_node.
14326
14327 2011-03-11 Jakub Jelinek <jakub@redhat.com>
14328
14329 PR tree-optimization/48063
14330 * ipa-inline.c (cgraph_decide_inlining): Don't try to
14331 inline functions called once if !tree_can_inline_p (node->callers).
14332
14333 2011-03-11 Chen Liqin <liqin.gcc@gmail.com>
14334
14335 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
14336 extra_objs.
14337 * config/score/score3.c: Delete.
14338 * config/score/score3.h: Delete.
14339 * config/score/mul-div.S: Delete.
14340 * config/score/sfp-machine.h: Add new file.
14341 * config/score/constraints.md: Add new file.
14342 * config/score/t-score-softfp: Add new file.
14343 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
14344 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
14345 (score7_extra_constraint): Delete.
14346 (score7_option_override): Remove unused code.
14347 * config/score/score.c: Remove score3 and score5 define and code.
14348 * config/score/score.h: Remove score3 and score5 define and code.
14349 * config/score/score.md: Remove score3 template and unusual insn.
14350 * config/score/score.opt: Remove score3 and score5 options.
14351
14352 2011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14353
14354 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
14355 when _HPUX_SOURCE is defined.
14356 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
14357
14358 2011-03-10 Jason Merrill <jason@redhat.com>
14359
14360 PR c++/48029
14361 * stor-layout.c (layout_type): Don't set structural equality
14362 on arrays of incomplete type.
14363 * tree.c (type_hash_eq): Handle comparing them properly.
14364
14365 2011-03-10 Jakub Jelinek <jakub@redhat.com>
14366
14367 PR debug/48043
14368 * config/s390/s390.c (s390_delegitimize_address): Make sure the
14369 result mode matches original rtl mode.
14370
14371 2011-03-10 Nick Clifton <nickc@redhat.com>
14372
14373 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
14374 (andsi3, andsi3_flags): Fix timings for three operand alternative.
14375
14376 2011-03-09 Jakub Jelinek <jakub@redhat.com>
14377
14378 PR rtl-optimization/47866
14379 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
14380 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
14381 if target wasn't scalar.
14382 * function.c (assign_stack_temp_for_type): Assert that neither
14383 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
14384 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
14385 macro.
14386 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
14387
14388 2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14389
14390 * config/s390/s390-protos.h (s390_label_align): New prototype.
14391 * config/s390/s390.c (s390_label_align): New function.
14392 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
14393
14394 2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
14395
14396 PR target/47755
14397 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
14398 V2DI/V2DF constants. Only all 0's or all 1's are easy.
14399 (output_vec_const_move): Ditto.
14400
14401 2011-03-08 Anatoly Sokolov <aesok@post.ru>
14402
14403 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
14404 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
14405 * config/mips/mips.c (mips_preferred_reload_class): Make static.
14406 Change 'rclass' argument and result type to reg_class_t.
14407 (TARGET_PREFERRED_RELOAD_CLASS): Define.
14408
14409 2011-03-08 Georg-Johann Lay <avr@gjlay.de>
14410
14411 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14412 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
14413 (TARGET_MEMORY_MOVE_COST): Define.
14414 (avr_register_move_cost, avr_memory_move_cost): New Functions.
14415
14416 2011-03-08 Jakub Jelinek <jakub@redhat.com>
14417
14418 PR debug/47881
14419 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
14420 removed anything.
14421
14422 PR tree-optimization/48022
14423 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
14424 for EQ/NE_EXPR.
14425
14426 2011-03-07 Jakub Jelinek <jakub@redhat.com>
14427
14428 PR debug/47991
14429 * var-tracking.c (find_use_val): Return NULL for
14430 cui->sets && cui->store_p BLKmode MEMs.
14431
14432 2011-03-07 Anatoly Sokolov <aesok@post.ru>
14433
14434 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
14435 Remove.
14436 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
14437 xstormy16_print_operand_address): Remove.
14438 * config/stormy16/stormy16.c (xstormy16_print_operand,
14439 xstormy16_print_operand_address): Make static.
14440 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
14441
14442 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
14443
14444 PR target/47862
14445 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
14446 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
14447 before definition.
14448
14449 2011-03-07 Zdenek Dvorak <ook@ucw.cz>
14450
14451 PR bootstrap/48000
14452 * cfgloopmanip.c (fix_bb_placements): Return immediately
14453 if FROM is BASE_LOOP's header.
14454
14455 2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
14456
14457 * gimplify.c (gimplify_function_tree): Fix building calls
14458 to __builtin_return_address.
14459
14460 2011-03-07 Alan Modra <amodra@gmail.com>
14461
14462 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
14463 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
14464 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
14465 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
14466 return_mode args.
14467 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
14468 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
14469 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
14470 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
14471 * config/rs6000/rs6000.c
14472 (rs6000_elf_end_indicate_exec_stack): Rename to..
14473 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
14474 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
14475 (rs6000_file_start): ..here.
14476 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
14477 file scope variables.
14478 (call_ABI_of_interest): New function.
14479 (init_cumulative_args): Set above vars when function return value
14480 is a float, vector, or small struct.
14481 (rs6000_function_arg_advance_1): Likewise for function args.
14482 (rs6000_va_start): Set rs6000_passes_float if variable arg function
14483 references float args.
14484
14485 2011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
14486
14487 * doc/cfg.texi: Remove "See" before @ref.
14488 * doc/invoke.texi: Likewise.
14489
14490 2011-03-05 Jason Merrill <jason@redhat.com>
14491
14492 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
14493
14494 2011-03-05 Anthony Green <green@moxielogic.com>
14495
14496 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
14497
14498 2011-03-05 Zdenek Dvorak <ook@ucw.cz>
14499
14500 PR rtl-optimization/47899
14501 * cfgloopmanip.c (fix_bb_placements): Fix first argument
14502 to flow_loop_nested_p when moving the loop upward.
14503
14504 2011-03-05 Richard Earnshaw <rearnsha@arm.com>
14505
14506 PR target/47719
14507 * arm.md (movhi_insn_arch4): Accept any immediate constant.
14508
14509 2011-03-05 Jakub Jelinek <jakub@redhat.com>
14510
14511 PR tree-optimization/47967
14512 * ipa-cp.c (build_const_val): Return NULL instead of creating
14513 VIEW_CONVERT_EXPR for mismatching sizes.
14514 (ipcp_create_replace_map): Return NULL if build_const_val failed.
14515 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
14516 give up on versioning.
14517
14518 2011-03-05 Alan Modra <amodra@gmail.com>
14519
14520 PR target/47986
14521 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
14522 full cmodel medium/large lo_sum + high addresses.
14523
14524 2011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14525
14526 * config/s390/s390.c (s390_decompose_address): Reject non-literal
14527 pool references in UNSPEC_LTREL_OFFSET.
14528
14529 2011-03-04 Jan Hubicka <jh@suse.cz>
14530
14531 PR lto/47497
14532 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
14533 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
14534 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
14535 Add node pointers.
14536 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
14537 cgraph_add_thunk): Add node pointers.
14538 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
14539 associated to right node.
14540 (input_node): Update use of cgraph_same_body_alias
14541 and cgraph_add_thunk.
14542
14543 2011-03-04 Changpeng Fang <changpeng.fang@amd.com>
14544
14545 * config/i386/i386.opt (mprefer-avx128): New flag.
14546 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
14547 modes when the flag -mprefer-avx128 is on.
14548
14549 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
14550
14551 * dwarf2out.c (compare_loc_operands): Fix address handling.
14552
14553 2011-03-04 Alan Modra <amodra@gmail.com>
14554
14555 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
14556
14557 2011-03-04 Richard Guenther <rguenther@suse.de>
14558
14559 PR middle-end/47968
14560 * expmed.c (extract_bit_field_1): Prefer vector modes that
14561 vec_extract patterns can handle.
14562
14563 2011-03-04 Richard Guenther <rguenther@suse.de>
14564
14565 PR middle-end/47975
14566 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
14567
14568 2011-03-04 Richard Henderson <rth@redhat.com>
14569
14570 * explow.c (emit_stack_save): Remove 'after' parameter.
14571 (emit_stack_restore): Likewise.
14572 * expr.h: Update to match.
14573 * builtins.c, calls.c, stmt.c: Likewise.
14574 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
14575 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
14576 * function.c (expand_function_end): Insert the emit_stack_save
14577 sequence before parm_birth_insn instead of after.
14578
14579 2011-03-03 Uros Bizjak <ubizjak@gmail.com>
14580
14581 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
14582 (ssse3_pmaddubsw128): Ditto.
14583 (ssse3_pmaddubsw): Ditto.
14584
14585 2011-03-03 Steve Ellcey <sje@cup.hp.com>
14586
14587 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
14588
14589 2011-03-03 Jakub Jelinek <jakub@redhat.com>
14590
14591 PR c/47963
14592 * gimplify.c (omp_add_variable): Only call omp_notice_variable
14593 on TYPE_SIZE_UNIT if it is a DECL.
14594
14595 PR debug/47283
14596 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
14597 first operand is not is_gimple_mem_ref_addr, try to fold it.
14598 If the operand still isn't is_gimple_mem_ref_addr, clear
14599 MEM_EXPR on op0.
14600
14601 2011-03-03 Richard Guenther <rguenther@suse.de>
14602
14603 PR middle-end/47283
14604 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
14605 match comment.
14606 (refs_may_alias_p_1): For release branches return true if
14607 we are confused by our input.
14608
14609 2011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14610
14611 * config/s390/s390.c (s390_function_value): Rename to ...
14612 (s390_function_and_libcall_value): ... this.
14613 (s390_function_value): New function.
14614 (s390_libcall_value): New function.
14615 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
14616 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
14617 target macro definitions.
14618 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
14619
14620 2011-03-02 Joseph Myers <joseph@codesourcery.com>
14621
14622 * config/i386/freebsd64.h (CC1_SPEC): Define.
14623 * config/i386/linux64.h (CC1_SPEC): Define.
14624 * config/i386/x86-64.h (CC1_SPEC): Don't define.
14625
14626 2011-03-02 Anatoly Sokolov <aesok@post.ru>
14627
14628 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
14629 Remove.
14630 * config/stormy16/stormy16.c: Include reload.h.
14631 (xstormy16_memory_move_cost): New function.
14632 (TARGET_MEMORY_MOVE_COST): Define.
14633
14634 2011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
14635
14636 PR rtl-optimization/47925
14637 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
14638 with side effects. Remove the more-specific check for volatile asms.
14639
14640 2011-03-02 Alan Modra <amodra@gmail.com>
14641
14642 PR target/47935
14643 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
14644 toc relative addresses for valid offsets.
14645
14646 2011-03-01 Richard Guenther <rguenther@suse.de>
14647
14648 PR tree-optimization/47890
14649 * tree-vect-loop.c (get_initial_def_for_induction): Set
14650 related stmt properly.
14651
14652 2011-03-01 Richard Guenther <rguenther@suse.de>
14653
14654 PR lto/47924
14655 * lto-streamer.c (lto_record_common_node): Also register
14656 the canonical type.
14657
14658 2011-03-01 Richard Guenther <rguenther@suse.de>
14659
14660 PR lto/46911
14661 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
14662 Do not stream DECL_ABSTRACT_ORIGIN.
14663 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
14664 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
14665 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14666 Do not stream DECL_ABSTRACT_ORIGIN.
14667 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
14668 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
14669
14670 2011-02-28 Anatoly Sokolov <aesok@post.ru>
14671
14672 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
14673 FUNCTION_VALUE_REGNO_P): Remove.
14674 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
14675 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
14676 Add 'outgoing' argument.
14677 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
14678 function.
14679 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14680 TARGET_FUNCTION_VALUE_REGNO_P): Define.
14681
14682 2011-02-28 Kai Tietz <kai.tietz@onevision.com>
14683
14684 PR debug/28047
14685 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
14686 (lookup_filename): Likewise.
14687 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
14688
14689 2011-02-28 Bernd Schmidt <bernds@codesourcery.com>
14690 Jakub Jelinek <jakub@redhat.com>
14691
14692 PR middle-end/47893
14693 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
14694 (assign_stack_local_1): Change last argument type to int.
14695 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
14696 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
14697 don't record padding space into frame_space_list nor use those areas.
14698 (assign_stack_local): Adjust caller.
14699 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
14700 of assign_stack_local, pass 0 as last argument.
14701 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
14702 callers.
14703
14704 2011-02-28 Jakub Jelinek <jakub@redhat.com>
14705
14706 PR debug/47283
14707 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
14708 Use target address_mode and pointer_mode hooks instead of hardcoded
14709 Pmode and ptr_mode. Handle some simple cases of extending if
14710 POINTERS_EXTEND_UNSIGNED < 0.
14711 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
14712 Call convert_debug_memory_address.
14713 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
14714 convert_debug_memory_address.
14715
14716 PR middle-end/46790
14717 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
14718 * configure: Regenerated.
14719 * config.in: Regenerated.
14720 * varasm.c (default_function_section): Return NULL
14721 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
14722
14723 2011-02-28 Martin Jambor <mjambor@suse.cz>
14724
14725 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
14726 the description to match the printed values.
14727
14728 2011-02-28 Richard Guenther <rguenther@suse.de>
14729
14730 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
14731 of the copied scope tree.
14732
14733 2011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14734
14735 * doc/extend.texi (Function Attributes): Avoid deeply (and
14736 wrongly) nested tables.
14737
14738 2011-02-27 Jakub Jelinek <jakub@redhat.com>
14739
14740 PR middle-end/47903
14741 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
14742 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
14743 r isn't op0 nor op1.
14744
14745 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
14746
14747 * config/avr/avr.md: Remove magic comment for emacs.
14748
14749 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
14750
14751 PR target/45261
14752 * config/avr/avr.c (avr_option_override): Use error on bad options.
14753 (avr_help): New function.
14754 (TARGET_HELP): Define.
14755
14756 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
14757
14758 PR target/42240
14759 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
14760 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
14761
14762 2011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
14763
14764 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
14765 (ARM Options): Ditto.
14766 (i386 and x86-64 Options): Ditto.
14767 (RX Options): Ditto.
14768 (SPARC Options): Ditto.
14769
14770 2011-02-26 Tijl Coosemans <tijl@coosemans.org>
14771
14772 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
14773 FreeBSD 6 and later. Generally use cpu generic.
14774
14775 2011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
14776
14777 * doc/cpp.texi: Update copyright years.
14778
14779 2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
14780
14781 PR target/46898
14782 * config/lm32/lm32.md (ashrsi3): Added needed variable.
14783
14784 2011-02-25 Jon Beniston <jon@beniston.com>
14785
14786 PR target/46898
14787 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
14788 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
14789 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
14790 (lm32_block_move_inline): Add type cast to remove warning.
14791 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
14792 (gen_int_relational): Move declarations to start of function.
14793
14794 2011-02-25 Eric Botcazou <ebotcazou@adacore.com>
14795
14796 PR tree-optimization/45470
14797 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
14798 can throw internally only.
14799 * tree-vect-stmts.c (vectorizable_call): Likewise.
14800
14801 2011-02-24 Anatoly Sokolov <aesok@post.ru>
14802
14803 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
14804 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
14805 * config/stormy16/stormy16-protos.h
14806 (xstormy16_preferred_reload_class): Remove.
14807 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
14808 static. Change 'rclass' argument and return type to reg_class_t.
14809 (TARGET_PREFERRED_RELOAD_CLASS,
14810 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
14811
14812 2011-02-24 Richard Guenther <rguenther@suse.de>
14813
14814 * lto-streamer-in.c (input_bb): Do not find referenced vars
14815 in debug statements.
14816
14817 2011-02-23 Jason Merrill <jason@redhat.com>
14818
14819 * common.opt (fabi-version): Document v5 and v6.
14820
14821 2011-02-23 Richard Guenther <rguenther@suse.de>
14822
14823 PR tree-optimization/47849
14824 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
14825
14826 2011-02-23 Jie Zhang <jie@codesourcery.com>
14827
14828 * opts-common.c (decode_cmdline_option): Print empty string
14829 argument as "" in decoded->orig_option_with_args_text.
14830 * gcc.c (execute): Print empty string argument as ""
14831 in the verbose output.
14832 (do_spec_1): Keep empty string argument.
14833
14834 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
14835
14836 * config.gcc: Declare score-* and crx-* obsolete.
14837
14838 2011-02-23 Jie Zhang <jie@codesourcery.com>
14839
14840 PR rtl-optimization/47763
14841 * web.c (web_main): Ignore naked clobber when replacing register.
14842
14843 2011-02-22 Anatoly Sokolov <aesok@post.ru>
14844
14845 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
14846 Remove.
14847
14848 2011-02-22 Sebastian Pop <sebastian.pop@amd.com>
14849
14850 PR doc/47848
14851 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
14852
14853 2011-02-22 Mike Stump <mikestump@comcast.net>
14854
14855 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
14856 assembler.
14857 * configure: Regenerate.
14858
14859 2011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
14860
14861 PR rtl-optimization/46002
14862 * ira-color.c (update_copy_costs): Change class intersection
14863 test to reg_class_contents[] test of 'hard_regno'.
14864
14865 2011-02-21 Joseph Myers <joseph@codesourcery.com>
14866
14867 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
14868 than Driver option.
14869 * config/hpux11.opt (mt): Likewise.
14870 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
14871 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
14872 * config/vax/elf.opt (mno-asm-pic): Likewise.
14873 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
14874
14875 2011-02-21 Mike Stump <mikestump@comcast.net>
14876
14877 PR target/47822
14878 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
14879 tree so we can get save the type.
14880 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
14881 for CFString instead of trying to use past the end of the builtins.
14882 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
14883 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
14884 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
14885 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
14886 Rename to darwin_builtin_cfstring.
14887 (darwin_init_cfstring_builtins): Return the built type.
14888
14889 2011-02-21 Uros Bizjak <ubizjak@gmail.com>
14890
14891 PR target/47840
14892 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
14893 (_mm256_insert_epi64): Use _mm_insert_epi64.
14894
14895 2011-02-21 Anatoly Sokolov <aesok@post.ru>
14896
14897 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14898 * config/stormy16/stormy16-protos.h
14899 (xstormy16_mode_dependent_address_p): Remove.
14900 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
14901 Make static. Change return type to bool. Change argument type to
14902 const_rtx. Remove dead code.
14903 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14904
14905 2011-02-21 Richard Guenther <rguenther@suse.de>
14906
14907 PR lto/47820
14908 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
14909 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
14910 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
14911 TUs context.
14912 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14913 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
14914
14915 2011-02-20 Richard Guenther <rguenther@suse.de>
14916
14917 PR lto/47822
14918 * tree.c (free_lang_data_in_decl): Clean builtins from
14919 the TU decl BLOCK_VARS.
14920
14921 2011-02-19 Alexandre Oliva <aoliva@redhat.com>
14922
14923 PR debug/47620
14924 PR debug/47630
14925 * haifa-sched.c (fix_tick_ready): Skip tick computation
14926 for debug insns.
14927
14928 2011-02-19 Richard Guenther <rguenther@suse.de>
14929
14930 PR lto/47647
14931 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
14932 Remove lazy BLOCK_VARS streaming.
14933 (lto_input_ts_block_tree_pointers): Likewise.
14934 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
14935
14936 2011-02-19 Joseph Myers <joseph@codesourcery.com>
14937
14938 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
14939
14940 2011-02-19 Joseph Myers <joseph@codesourcery.com>
14941
14942 * config/i386/biarch32.h, config/i386/mach.h,
14943 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
14944
14945 2011-02-19 Jakub Jelinek <jakub@redhat.com>
14946
14947 PR target/47800
14948 * config/i386/i386.md (peephole2 for shift and plus): Use
14949 operands[1] original mode in the first insn.
14950
14951 2011-02-18 Mike Stump <mikestump@comcast.net>
14952
14953 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
14954
14955 2011-02-18 Jan Hubicka <jh@suse.cz>
14956
14957 PR middle-end/47788
14958 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
14959 to zero when the function is not inlinable at all.
14960
14961 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14962
14963 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
14964 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
14965 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
14966 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
14967 * config/pa/t-pa64: Likewise.
14968 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
14969
14970 2011-02-18 Jakub Jelinek <jakub@redhat.com>
14971
14972 PR driver/47787
14973 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
14974
14975 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14976
14977 PR target/47792
14978 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
14979
14980 2011-02-18 Anatoly Sokolov <aesok@post.ru>
14981
14982 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
14983 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
14984 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
14985 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
14986 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
14987 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
14988 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
14989 m32r_load_postinc_p, m32r_store_preinc_predec_p,
14990 m32r_legitimate_address_p): New functions.
14991 * config/m32r/constraints.md (constraint "S"): Don't use
14992 STORE_PREINC_PREDEC_P.
14993 (constraint "U"): Don't use LOAD_POSTINC_P.
14994
14995 2011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
14996
14997 PR rtl-optimization/46178
14998 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
14999 compute ira_hard_regno_cover_class[].
15000
15001 2011-02-18 Richard Guenther <rguenther@suse.de>
15002
15003 PR lto/47798
15004 * lto-streamer.h (lto_global_var_decls): Declare.
15005 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
15006 statics for global var processing.
15007
15008 2011-02-18 Richard Guenther <rguenther@suse.de>
15009
15010 PR tree-optimization/47737
15011 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
15012 edge dominance check.
15013
15014 2011-02-18 Jakub Jelinek <jakub@redhat.com>
15015
15016 PR debug/47780
15017 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
15018 avoid invalid rtx sharing.
15019
15020 2011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
15021
15022 * doc/cpp.texi (Obsolete Features): Add background on the
15023 origin of assertions.
15024
15025 2011-02-17 Iain Sandoe <iains@gcc.gnu.org>
15026
15027 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
15028 objc_abi == 2.
15029 * config/darwin.c (output_objc_section_asm_op): Added support for
15030 ABI v1 and v2.
15031 (is_objc_metadata): New.
15032 (darwin_objc2_section): New.
15033 (darwin_objc1_section): New.
15034 (machopic_select_section): Added support for ABI v1 and v2.
15035 (darwin_emit_objc_zeroed): New.
15036 (darwin_output_aligned_bss): Detect objc metadata and treat it
15037 appropriately.
15038 (darwin_asm_output_aligned_decl_common): Same.
15039 (darwin_asm_output_aligned_decl_local): Same.
15040 * config/darwin-sections.def: Updated for ABI v1 and v2.
15041 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
15042 compiling Objective-C code for the NeXT runtime, default to using
15043 ABI version 0 for 32-bit, and version 2 for 64-bit.
15044
15045 2011-02-17 Joseph Myers <joseph@codesourcery.com>
15046
15047 * common.opt (optimize_fast): New Variable.
15048 * opts.c (default_options_optimization): Use opts->x_optimize_fast
15049 instead of local variable ofast.
15050
15051 2011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
15052
15053 * doc/invoke.texi (fobjc-abi-version): Documented.
15054 (fobjc-nilcheck): Documented.
15055 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
15056 version.
15057
15058 2011-02-17 Joseph Myers <joseph@codesourcery.com>
15059
15060 PR driver/47390
15061 * common.opt (export-dynamic): New Driver option.
15062 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
15063
15064 2011-02-17 Joseph Myers <joseph@codesourcery.com>
15065
15066 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
15067
15068 2011-02-17 Alexandre Oliva <aoliva@redhat.com>
15069 Jan Hubicka <jh@suse.cz>
15070
15071 PR debug/47106
15072 PR debug/47402
15073 * cfgexpand.c (account_used_vars_for_block): Remove.
15074 (estimated_stack_frame_size): Use referenced vars.
15075 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
15076 that were referenced in the original function. Test src_fn
15077 rather than cfun. Drop redundant get_var_ann.
15078 (setup_one_parameter): Drop redundant get_var_ann.
15079 (declare_return_variable): Likewise.
15080 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
15081 (copy_arguments_for_versioning): Drop redundant get_var_ann.
15082 * ipa-inline.c (compute_inline_parameters): Do not compute
15083 disregard_inline_limits here.
15084 (compute_inlinable_for_current, pass_inlinable): New.
15085 (pass_inline_parameters): Require PROP_referenced_vars.
15086 * cgraphunit.c (cgraph_process_new_functions): Don't run
15087 compute_inline_parameters explicitly unless function is in SSA form.
15088 (cgraph_analyze_function): Set .disregard_inline_limits.
15089 * tree-sra.c (convert_callers): Compute inliner parameters
15090 only for functions already in SSA form.
15091
15092 2011-02-17 Joseph Myers <joseph@codesourcery.com>
15093
15094 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
15095 -mlittle-endian-data.
15096
15097 2011-02-17 Joseph Myers <joseph@codesourcery.com>
15098
15099 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
15100 -mno-fpu, not -fpu and -no-fpu.
15101 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
15102 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
15103
15104 2011-02-17 Uros Bizjak <ubizjak@gmail.com>
15105
15106 PR target/43653
15107 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
15108 input reload with PLUS RTX.
15109
15110 2011-02-16 Joseph Myers <joseph@codesourcery.com>
15111
15112 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
15113 of InverseVar(MDMX).
15114
15115 2011-02-16 Joseph Myers <joseph@codesourcery.com>
15116
15117 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
15118 --m4-340.
15119
15120 2011-02-16 Joseph Myers <joseph@codesourcery.com>
15121
15122 * config/mn10300/mn10300.opt (mno-crt0): New.
15123
15124 2011-02-16 Joseph Myers <joseph@codesourcery.com>
15125
15126 * config/m68k/uclinux.opt (static-libc): New Driver option.
15127
15128 2011-02-16 Joseph Myers <joseph@codesourcery.com>
15129
15130 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
15131
15132 2011-02-16 Joseph Myers <joseph@codesourcery.com>
15133
15134 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
15135 %{muser-extend-enabled}.
15136
15137 2011-02-16 Richard Guenther <rguenther@suse.de>
15138
15139 PR tree-optimization/47738
15140 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
15141 the TODO from tree_predictive_commoning.
15142
15143 2011-02-15 Jeff Law <law@redhat.com>
15144
15145 Revert
15146 2011-01-25 Jeff Law <law@redhat.com>
15147
15148 PR rtl-optimization/37273
15149 * ira-costs.c (scan_one_insn): Detect constants living in memory and
15150 handle them like argument loads from stack slots. Do not double
15151 count memory for memory constants and argument loads from stack slots.
15152
15153 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
15154
15155 PR middle-end/47725
15156 * combine.c (cant_combine_insn_p): Revert the last change.
15157
15158 2011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
15159
15160 PR target/47755
15161 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
15162 mode for vector constants. Remove code that checks for TImode.
15163
15164 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
15165
15166 PR debug/47106
15167 PR debug/47402
15168 * cgraph.h (compute_inline_parameters): Return void.
15169 * ipa-inline.c (compute_inline_parameters): Adjust.
15170
15171 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
15172
15173 PR debug/47106
15174 PR debug/47402
15175 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
15176 rather than decl.
15177 * cfgexpand.c (estimated_stack_frame_size): Likewise.
15178 * ipa-inline.c (compute_inline_parameters): Adjust.
15179
15180 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
15181
15182 PR debug/47106
15183 PR debug/47402
15184 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
15185 Adjust all users. Pass FN to...
15186 * tree-flow-inline.h (first_referenced_var): ... this. Add
15187 fn argument.
15188 * ipa-struct-reorg.c: Adjust.
15189 * tree-dfa.c: Adjust.
15190 * tree-into-ssa.c: Adjust.
15191 * tree-sra.c: Adjust.
15192 * tree-ssa-alias.c: Adjust.
15193 * tree-ssa-live.c: Adjust.
15194 * tree-ssa.c: Adjust.
15195 * tree-ssanames.c: Adjust.
15196 * tree-tailcall.c: Adjust.
15197
15198 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
15199
15200 PR debug/47106
15201 PR debug/47402
15202 * tree-flow.h (referenced_var_lookup): Add fn parameter.
15203 Adjust all callers.
15204 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
15205 * tree-flow-inline.h: Adjust.
15206 * gimple-pretty-print.c: Adjust.
15207 * tree-into-ssa.c: Adjust.
15208 * tree-ssa.c: Adjust.
15209 * cfgexpand.c: Adjust.
15210
15211 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
15212
15213 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
15214 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15215 (EXTRA_CONSTRAINT): Delete.
15216 * config/iq2000/constraints.md: New file.
15217 * config/iq2000/iq2000.md: Include it.
15218 (define_insn ""): Delete.
15219 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
15220 unsupported constraint letters from patterns.
15221 (call_value, call_value_internal1): Likewise.
15222 (call_value_multiple_internal1): Likewise.
15223
15224 2011-02-15 Nick Clifton <nickc@redhat.com>
15225
15226 * config/mn10300/mn10300.c: Include tm-constrs.h.
15227 (struct liw_data): New data structure describing an LIW candidate
15228 instruction.
15229 (extract_bundle): Use struct liw_data. Allow small integer
15230 operands for some instructions.
15231 (check_liw_constraints): Use struct liw_data. Remove swapped
15232 parameter. Add comments describing the checks. Fix bug when
15233 assigning the source of liw1 to the source of liw2.
15234 (liw_candidate): Delete. Code moved into extract_bundle.
15235 (mn10300_bundle_liw): Use struct liw_data. Check constraints
15236 before swapping.
15237 * config/mn10300/predicates.md (liw_operand): New predicate.
15238 Allows registers and small integer constants.
15239 * config/mn10300/constraints.md (O): New constraint. Accetps
15240 integers in the range -8 to +7 inclusive.
15241 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
15242 for moving a small integer into a register. Give this alternative
15243 LIW attributes.
15244 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
15245 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
15246 using the J,K,L and M constraints,
15247 (liw): Remove SI mode on second operands to allow for HI and QI
15248 mode values.
15249 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
15250 instruction.
15251
15252 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
15253
15254 PR middle-end/47725
15255 * combine.c (cant_combine_insn_p): Check zero/sign extended
15256 hard registers.
15257
15258 2011-02-15 Richard Guenther <rguenther@suse.de>
15259
15260 PR tree-optimization/47743
15261 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
15262 for a non-type-compatible VN lookup bail out.
15263
15264 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
15265
15266 * config/fr30/constraints.md: New file.
15267 * config/fr30/fr30.md: Include it.
15268 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
15269 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15270 (EXTRA_CONSTRAINT): Delete.
15271
15272 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
15273
15274 * config/frv/constraints.md: New file.
15275 * config/frv/predicates.md: Include it.
15276 * config/frv/frv.c (reg_class_from_letter): Delete.
15277 (frv_option_override): Don't initialize it.
15278 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
15279 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
15280 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
15281 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
15282 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
15283 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15284 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
15285 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
15286 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
15287 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
15288 (REG_CLASS_FROM_CONSTRAINT): Delete.
15289
15290 2011-02-15 Jakub Jelinek <jakub@redhat.com>
15291
15292 PR middle-end/47581
15293 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
15294 if frame size is 0 in a leaf function.
15295
15296 2011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15297
15298 PR pch/14940
15299 * config/alpha/host-osf.c: New file.
15300 * config/alpha/x-osf: New file.
15301 * config.host (alpha*-dec-osf*): Use it.
15302
15303 2011-02-14 Anatoly Sokolov <aesok@post.ru>
15304
15305 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15306 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
15307 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
15308 (rx_mode_dependent_address_p): ...this. Make static. Change argument
15309 type to const_rtx.
15310 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15311
15312 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
15313
15314 * config/stormy16/constraints.md: New file.
15315 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
15316 Use satisfies_constraint_Q and satisfies_constraint_R.
15317 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
15318 Delete.
15319 (xstormy16_legitiamte_address_p): Declare.
15320 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
15321 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15322 (EXTRA_CONSTRAINT): Delete.
15323 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
15324 Un-staticize.
15325 (xstormy16_extra_constraint_p): Delete.
15326
15327 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
15328
15329 PR tree-optimization/46494
15330 * loop-unroll.c (split_edge_and_insert): Adjust comment.
15331 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
15332 (pass_rtl_loop_done): Add TODO_verify_flow.
15333 * fwprop.c (pass_rtl_fwprop): Likewise.
15334 * modulo-sched.c (pass_sms): Likewise.
15335 * tree-ssa-dom.c (pass_dominator): Likewise.
15336 * tree-ssa-loop-ch.c (pass_ch): Likewise.
15337 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
15338 (pass_tree_loop_done): Likewise.
15339 * tree-ssa-pre.c (execute_pre): Likewise.
15340 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
15341 * tree-ssa-sink.c (pass_sink_code): Likewise.
15342 * tree-vrp.c (pass_vrp): Likewise.
15343
15344 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
15345
15346 * config/v850/constraints.md: New file.
15347 * config/v850/v850.md: Include it.
15348 * config/v850/predicates.md (reg_or_0_operand): Use
15349 satisfies_constraint_G.
15350 (special_symbolref_operand): Use satisfies_constraint_K.
15351 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
15352 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
15353 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
15354 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
15355 (EXTRA_CONSTRAINT): Delete.
15356 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
15357 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
15358 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
15359
15360 2011-02-14 Anatoly Sokolov <aesok@post.ru>
15361
15362 PR target/47696
15363 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
15364 description.
15365
15366 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
15367
15368 * config/mcore/constraints.md: New file.
15369 * config/mcore/mcore.md: Include it.
15370 * config/mcore/mcore.c (reg_class_from_letter): Delete.
15371 * config/mcore/mcore.h (reg_class_from_letter): Delete.
15372 (REG_CLASS_FROM_LETTER): Delete.
15373 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
15374 insn_const_int_ok_for_constraint.
15375 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
15376 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
15377 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15378 (EXTRA_CONSTRAINT): Delete.
15379
15380 2011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15381
15382 PR ada/41929
15383 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
15384 (IS_SIGHANDLER): Define.
15385 (sparc64_is_sighandler): New function, split off from
15386 sparc64_fallback_frame_state.
15387 (sparc_is_sighandler): New function, split off from
15388 sparc_fallback_frame_state.
15389 (sparc64_fallback_frame_state): Merge with ...
15390 (sparc_fallback_frame_state): ... this into ...
15391 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
15392 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
15393 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
15394 stack instead of hardcoded offsets.
15395
15396 2011-02-14 Andriy Gapon <avg@freebsd.org>
15397
15398 PR target/45808
15399 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
15400
15401 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15402
15403 * configure: Regenerate.
15404
15405 2011-02-12 Joseph Myers <joseph@codesourcery.com>
15406
15407 PR driver/45731
15408 * gcc.c (asm_options): Correct spec matching --target-help.
15409
15410 2011-02-12 Martin Jambor <mjambor@suse.cz>
15411
15412 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
15413 to gimple call error.
15414
15415 2011-02-12 Mike Stump <mikestump@comcast.net>
15416
15417 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
15418 comments in backslash regions.
15419
15420 2011-02-12 Mike Stump <mikestump@comcast.net>
15421 Jakub Jelinek <jakub@redhat.com>
15422 Iain Sandoe <iains@gcc.gnu.org>
15423
15424 PR target/47324
15425 * dwarf2out.c (output_cfa_loc): When required, apply the
15426 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
15427 (output_loc_sequence): Likewise.
15428 (output_loc_operands_raw): Likewise.
15429 (output_loc_sequence_raw): Likewise.
15430 (output_cfa_loc): Likewise.
15431 (output_loc_list): Suppress register number adjustment when
15432 calling output_loc_sequence()
15433 (output_die): Likewise.
15434
15435 2011-02-12 Anatoly Sokolov <aesok@post.ru>
15436
15437 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15438 Remove macros.
15439 * config/xtensa/xtensa.c (xtensa_register_move_cost,
15440 xtensa_memory_move_cost): New functions.
15441 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
15442
15443 2011-02-12 Alexandre Oliva <aoliva@redhat.com>
15444
15445 PR lto/47225
15446 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
15447 in the current directory.
15448 * configure: Rebuilt.
15449
15450 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
15451
15452 * config/darwin.c (darwin_override_options): Add a hunk missed
15453 from the commit of r168571. Trim comment line lengths and
15454 correct indents of the preceding block.
15455
15456 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
15457
15458 * gcc.c (driver_handle_option): Concatenate the argument to -F with
15459 the switch.
15460
15461 2011-02-11 Joseph Myers <joseph@codesourcery.com>
15462
15463 * common.opt (nostartfiles): New Driver option.
15464
15465 2011-02-11 Xinliang David Li <davidxl@google.com>
15466
15467 PR tree-optimization/47707
15468 * tree-chrec.c (convert_affine_scev): Keep type precision.
15469
15470 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
15471
15472 PR tree-optimization/47420
15473 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
15474
15475 2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
15476
15477 PR rtl-optimization/47614
15478 * rtl.h (check_for_inc_dec): Declare.
15479 * dse.c (check_for_inc_dec): Externalize...
15480 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
15481 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
15482
15483 2011-02-11 Joseph Myers <joseph@codesourcery.com>
15484
15485 PR driver/47678
15486 * gcc.c (main): Do not compile inputs if there were errors in
15487 option handling.
15488 * opts-common.c (read_cmdline_option): Check for wrong language
15489 after other error checks.
15490
15491 2011-02-11 Nathan Froyd <froydnj@codesourcery.com>
15492
15493 * cgraph.c: Fix comment typos.
15494 * cgraph.h: Likewise.
15495 * cgraphunit.c: Likewise.
15496 * ipa-cp.c: Likewise.
15497 * ipa-inline.c: Likewise.
15498 * ipa-prop.c: Likewise.
15499 * ipa-pure-const.c: Likewise.
15500 * ipa-ref.c: Likewise.
15501 * ipa-reference.c: Likewise.
15502
15503 2011-02-11 Jakub Jelinek <jakub@redhat.com>
15504
15505 PR debug/47684
15506 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
15507
15508 2011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15509
15510 PR testsuite/47400
15511 * doc/sourcebuild.texi (Require Support): Document
15512 dg-require-ascii-locale.
15513
15514 2011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
15515
15516 * doc/lto.texi (Write summary): Fix missing parentheses.
15517
15518 2011-02-10 DJ Delorie <dj@redhat.com>
15519
15520 * config/m32c/m32c.c (m32c_option_override): Disable
15521 -fcombine-stack-adjustments until flag value tracking and compare
15522 optimization can be rewritten.
15523
15524 2011-02-10 Peter Bergner <bergner@vnet.ibm.com>
15525
15526 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
15527 PROCESSOR_POWER7.
15528 (PROCESSOR_DEFAULT64): Likewise.
15529
15530 2011-02-10 Richard Henderson <rth@redhat.com>
15531
15532 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
15533 change from 2011-02-03.
15534 * config/rx/rx.c (flags_from_code): Likewise.
15535 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
15536 is valid, n/pz otherwise.
15537 (rx_select_cc_mode): Return CCmode if Y is not zero.
15538
15539 2011-02-10 Richard Guenther <rguenther@suse.de>
15540
15541 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
15542
15543 2011-02-10 Richard Guenther <rguenther@suse.de>
15544
15545 PR tree-optimization/47677
15546 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
15547
15548 2011-02-10 Jakub Jelinek <jakub@redhat.com>
15549
15550 PR target/47665
15551 * combine.c (make_compound_operation): Only change shifts into
15552 multiplication for SCALAR_INT_MODE_P.
15553
15554 2011-02-10 Jie Zhang <jie@codesourcery.com>
15555
15556 PR testsuite/47622
15557 Revert
15558 2011-02-05 Jie Zhang <jie@codesourcery.com>
15559 PR debug/42631
15560 * web.c (entry_register): Don't clobber the number of the
15561 first uninitialized reference in used[].
15562
15563 2011-02-09 Richard Guenther <rguenther@suse.de>
15564
15565 PR tree-optimization/47664
15566 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
15567 all edges again.
15568
15569 2011-02-09 David Edelsohn <dje.gcc@gmail.com>
15570
15571 PR target/46481
15572 PR target/47032
15573 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
15574 PROCESSOR_POWER7.
15575 (PROCESSOR_DEFAULT64): Same.
15576 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
15577
15578 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15579
15580 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
15581
15582 2011-02-09 Martin Jambor <mjambor@suse.cz>
15583
15584 PR middle-end/45505
15585 * tree-sra.c (struct access): New flags grp_scalar_read and
15586 grp_scalar_write. Changed description of assignment read and write
15587 flags.
15588 (dump_access): Dump new flags, reorder all of them.
15589 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
15590 to detect multiple scalar reads.
15591 (analyze_access_subtree): Use the new scalar read write flags instead
15592 of the old flags. Adjusted comments.
15593
15594 2011-02-08 DJ Delorie <dj@redhat.com>
15595
15596 PR target/47548
15597 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
15598 patterns.
15599
15600 2011-02-08 Joseph Myers <joseph@codesourcery.com>
15601
15602 * config/m68k/uclinux.opt: New.
15603 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
15604
15605 2011-02-08 Joseph Myers <joseph@codesourcery.com>
15606
15607 * config/cris/elf.opt (sim): New Driver option.
15608
15609 2011-02-08 Joseph Myers <joseph@codesourcery.com>
15610
15611 * config/xtensa/elf.opt: New.
15612 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
15613
15614 2011-02-08 Joseph Myers <joseph@codesourcery.com>
15615
15616 * config/vax/elf.opt: New.
15617 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
15618
15619 2011-02-08 Joseph Myers <joseph@codesourcery.com>
15620
15621 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
15622
15623 2011-02-08 Joseph Myers <joseph@codesourcery.com>
15624
15625 * config/gnu-user.opt: New.
15626 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
15627 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
15628 *-*-uclinux*): Use gnu-user.opt.
15629
15630 2011-02-08 Thomas Schwinge <thomas@schwinge.name>
15631
15632 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
15633 * config/i386/gnu.h (CPP_SPEC): Likewise.
15634
15635 2011-02-08 Ian Lance Taylor <iant@google.com>
15636
15637 * common.opt (fcx-limited-range): Add SetByCombined flag.
15638 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
15639 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
15640 (fassociative-math, freciprocal-math): Likewise.
15641 (funsafe-math-optimizations): Likewise.
15642 * opth-gen.awk: Handle SetByCombined.
15643 * optc-gen.awk: Likewise.
15644 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
15645 (set_unsafe_math_optimizations_flags): Likewise.
15646 * doc/options.texi (Option properties): Document SetByCombined.
15647
15648 2011-02-08 Joseph Myers <joseph@codesourcery.com>
15649
15650 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
15651 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
15652 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
15653 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
15654 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
15655
15656 2011-02-08 Sebastian Pop <sebastian.pop@amd.com>
15657
15658 PR tree-optimization/46834
15659 PR tree-optimization/46994
15660 PR tree-optimization/46995
15661 * graphite-sese-to-poly.c (used_outside_reduction): New.
15662 (detect_commutative_reduction): Call used_outside_reduction.
15663 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
15664 translate_scalar_reduction_to_array only when at least one
15665 loop-phi/close-phi tuple has been detected.
15666
15667 2011-02-08 Richard Guenther <rguenther@suse.de>
15668
15669 PR middle-end/47639
15670 * tree-vect-generic.c (expand_vector_operations_1): Update
15671 stmts here ...
15672 (expand_vector_operations): ... not here. Cleanup EH info
15673 and the CFG if required.
15674
15675 2011-02-08 Richard Guenther <rguenther@suse.de>
15676
15677 PR tree-optimization/47641
15678 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
15679 require type compatibility.
15680
15681 2011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15682
15683 * gimple-low.c (lower_function_body): Don't remove the location of
15684 the return statement here.
15685 (lower_gimple_return): Do it here instead but only if the return
15686 statement is actually used twice.
15687
15688 2011-02-08 Richard Guenther <rguenther@suse.de>
15689
15690 PR tree-optimization/47632
15691 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
15692 unused up_to_stmt parameter, return whether cfg-cleanup is
15693 necessary, remove EH info properly.
15694 (forward_propagate_into_gimple_cond): Adjust caller.
15695 (forward_propagate_into_cond): Likewise.
15696 (forward_propagate_comparison): Likewise.
15697 (tree_ssa_forward_propagate_single_use_vars): Make
15698 forward_propagate_comparison case similar to the two others.
15699
15700 2011-02-08 Nick Clifton <nickc@redhat.com>
15701
15702 * config/mn10300/mn10300.opt (mliw): New command line option.
15703 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
15704 (liw_bundling): New automaton.
15705 (liw): New attribute.
15706 (liw_op): New attribute.
15707 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
15708 (movsi_internal): Add LIW attributes.
15709 (andsi3): Likewise.
15710 (iorsi3): Likewise.
15711 (xorsi3): Likewise.
15712 (addsi3): Separate register and immediate alternatives.
15713 Add LIW attributes.
15714 (subsi3): Likewise.
15715 (cmpsi): Likewise.
15716 (aslsi3): Likewise.
15717 (lshrsi3): Likewise.
15718 (ashrsi3): Likewise.
15719 (liw): New pattern.
15720 * config/mn10300/mn10300.c (liw_op_names): New
15721 (mn10300_print_operand): Handle 'W' operand descriptor.
15722 (extract_bundle): New function.
15723 (check_liw_constraints): New function.
15724 (liw_candidate): New function.
15725 (mn10300_bundle_liw): New function.
15726 (mn10300_reorg): New function.
15727 (TARGET_MACHINE_DEPENDENT_REORG): Define.
15728 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
15729 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
15730 __LIW__ or __NO_LIW__.
15731 * doc/invoke.texi: Describe the -mliw command line option.
15732
15733 2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15734
15735 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
15736 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
15737 pthread_mutex_unlock): Remove.
15738 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
15739 * config/pa/t-pa64: Likewise.
15740 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
15741 shared libc if not linking against libpthread.
15742 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
15743
15744 2011-02-07 Iain Sandoe <iains@gcc.gnu.org>
15745
15746 PR target/47558
15747 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
15748 on 10.6 and later to ensure that we always use the unwinder from
15749 the system. Only add -no_compact_unwind when tarteting darwin
15750 10.6 or later.
15751
15752 2011-02-07 Steve Ellcey <sje@cup.hp.com>
15753
15754 PR target/46997
15755 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
15756 (vec_interleave_lowv2sf): Ditto.
15757 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
15758 (vec_extract_oddv2sf): Ditto.
15759
15760 2011-02-07 Mike Stump <mikestump@comcast.net>
15761
15762 PR target/42333
15763 Add __ieee_divdc3 entry point.
15764 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
15765 entry point.
15766 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
15767 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
15768 * config/darwin.c (darwin_rename_builtins): Add.
15769 * config/darwin-protos.h (darwin_rename_builtins): Add.
15770
15771 2011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
15772
15773 PR target/47636
15774 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
15775 for the condition.
15776
15777 2011-02-07 Mike Stump <mikestump@comcast.net>
15778
15779 * config/darwin.opt (mmacosx-version-min): Update default OS version.
15780
15781 2011-02-07 Denis Chertykov <chertykov@gmail.com>
15782
15783 PR target/47534
15784 * config/avr/libgcc.S (exit): Move .endfunc
15785
15786 2011-02-07 Richard Guenther <rguenther@suse.de>
15787
15788 PR tree-optimization/47615
15789 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
15790 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
15791 (run_scc_vn): Initialize it.
15792 (visit_reference_op_load): Use it.
15793 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
15794
15795 2011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15796
15797 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
15798 DImode trapping arithmetic libfuncs.
15799
15800 2011-02-07 Richard Guenther <rguenther@suse.de>
15801
15802 PR tree-optimization/47621
15803 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
15804 two duplicates ...
15805 (execute_update_addresses_taken): ... here. Make it more
15806 conservative in what we accept.
15807
15808 2011-02-06 Joseph Myers <joseph@codesourcery.com>
15809
15810 * config/sparc/freebsd.h (ASM_SPEC): Define.
15811 * config/sparc/vxworks.h (ASM_SPEC): Define.
15812
15813 2011-02-06 Joseph Myers <joseph@codesourcery.com>
15814
15815 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
15816
15817 2011-02-06 Steven Bosscher <steven@gcc.gnu.org>
15818
15819 * doc/invoke.texi: Remove reference to compiler internals from
15820 user documentation.
15821
15822 * reg-notes.def: Remove REG_VALUE_PROFILE.
15823 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
15824
15825 2011-02-05 Jakub Jelinek <jakub@redhat.com>
15826
15827 PR middle-end/47610
15828 * varasm.c (default_section_type_flags): If decl is NULL,
15829 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
15830
15831 2011-02-05 Jie Zhang <jie@codesourcery.com>
15832
15833 PR debug/42631
15834 * web.c (entry_register): Don't clobber the number of the
15835 first uninitialized reference in used[].
15836
15837 2011-02-04 Sebastian Pop <sebastian.pop@amd.com>
15838
15839 PR tree-optimization/46194
15840 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
15841 (build_classic_dist_vector_1): Do not represent classic distance
15842 vectors when the access functions are variating in different loops.
15843
15844 2011-02-04 Joseph Myers <joseph@codesourcery.com>
15845
15846 * config/mips/iris6.opt: New.
15847 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
15848
15849 2011-02-04 Richard Henderson <rth@redhat.com>
15850 Steve Ellcey <sje@cup.hp.com>
15851
15852 PR target/46997
15853 * config/ia64/predicates.md (mux1_brcst_element): New.
15854 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
15855 * config/ia64/ia64.c (ia64_unpack_assemble): New.
15856 (ia64_unpack_sign): New.
15857 (ia64_expand_unpack): Rewrite using new routines.
15858 (ia64_expand_widen_sum): Ditto.
15859 (ia64_expand_dot_prod_v8qi): Ditto.
15860 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
15861 routines, add endian check.
15862 (pmpy2_even): Rename from pmpy2_r, add endian check.
15863 (pmpy2_odd): Rename from pmpy2_l, add endian check.
15864 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
15865 (vec_widen_smult_hi_v4hi): Ditto.
15866 (vec_widen_umult_lo_v4hi): Ditto.
15867 (vec_widen_umult_hi_v4hi): Ditto.
15868 (mulv2si3): Change endian checks.
15869 (sdot_prodv4hi): Rewrite with new calls.
15870 (udot_prodv4hi): New.
15871 (vec_pack_ssat_v4hi): Add endian check.
15872 (vec_pack_usat_v4hi): Ditto.
15873 (vec_pack_ssat_v2si): Ditto.
15874 (max1_even): Rename from max1_r, add endian check.
15875 (max1_odd): Rename from max1_l, add endian check.
15876 (*mux1_rev): Format change.
15877 (*mux1_mix): Ditto.
15878 (*mux1_shuf): Ditto.
15879 (*mux1_alt): Ditto.
15880 (*mux1_brcst_v8qi): Use new predicate.
15881 (vec_extract_evenv8qi): Remove endian check.
15882 (vec_extract_oddv8qi): Ditto.
15883 (vec_interleave_lowv4hi): Format change.
15884 (vec_interleave_highv4hi): Ditto.
15885 (mix2_even): Rename from mix2_r, add endian check.
15886 (mix2_odd): Rename from mux2_l, add endian check.
15887 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
15888 (vec_extract_evenodd_helper): Format change.
15889 (vec_extract_evenv4hi): Remove endian check.
15890 (vec_extract_oddv4hi): Remove endian check.
15891 (vec_interleave_lowv2si): Format change.
15892 (vec_interleave_highv2si): Format change.
15893 (vec_initv2si): Remove endian check.
15894 (vecinit_v2si): Add endian check.
15895 (reduc_splus_v2sf): Add endian check.
15896 (reduc_smax_v2sf): Ditto.
15897 (reduc_smin_v2sf): Ditto.
15898 (vec_initv2sf): Remove endian check.
15899 (fpack): Add endian check.
15900 (fswap): Add endian check.
15901 (vec_interleave_highv2sf): Add endian check.
15902 (vec_interleave_lowv2sf): Add endian check.
15903 (fmix_lr): Add endian check.
15904 (vec_setv2sf): Format change.
15905 (*vec_extractv2sf_0_be): Use shift to extract operand.
15906 (*vec_extractv2sf_1_be): New.
15907 (vec_pack_trunc_v4hi): Add endian check.
15908 (vec_pack_trunc_v2si): Format change.
15909
15910 2011-02-04 Jakub Jelinek <jakub@redhat.com>
15911
15912 PR inline-asm/23200
15913 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
15914 do bb, locus and block comparison and disallow loads if it is not set.
15915 (stmt_is_replaceable_p): New function.
15916 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
15917 callers.
15918 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
15919 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
15920 SSA_NAME_DEF_STMT.
15921 * tree-flow.h (stmt_is_replaceable_p): New prototype.
15922
15923 2011-02-04 Joseph Myers <joseph@codesourcery.com>
15924
15925 * config/rs6000/xilinx.opt: New.
15926 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
15927
15928 2011-02-04 Joseph Myers <joseph@codesourcery.com>
15929
15930 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
15931
15932 2011-02-03 Anatoly Sokolov <aesok@post.ru>
15933
15934 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
15935 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
15936 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
15937 secondary_reload_info, xtensa_secondary_reload): Remove.
15938 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
15939 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
15940 (xtensa_preferred_reload_class): Make static. Change return and
15941 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
15942 Use CONST_DOUBLE_P predicate.
15943 (xtensa_preferred_output_reload_class): New function.
15944 (xtensa_secondary_reload): Make static.
15945
15946 2011-02-03 Joseph Myers <joseph@codesourcery.com>
15947
15948 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
15949 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
15950 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
15951
15952 2011-02-03 Jakub Jelinek <jakub@redhat.com>
15953
15954 PR middle-end/31490
15955 * output.h (SECTION_RELRO): Define.
15956 (SECTION_MACH_DEP): Adjust.
15957 (get_variable_section): New prototype.
15958 * varpool.c (varpool_finalize_named_section_flags): New function.
15959 (varpool_assemble_pending_decls): Call it.
15960 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
15961 * cgraphunit.c (cgraph_output_in_order): Call
15962 varpool_finalize_named_section_flags.
15963 * varasm.c (get_section): Allow section flags conflicts between
15964 relro and read-only sections if the section hasn't been declared yet.
15965 Set SECTION_OVERRIDE after diagnosing section type conflict.
15966 (get_variable_section): No longer static.
15967 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
15968 readonly sections that need relocations.
15969 (decl_readonly_section_1): New function.
15970 (decl_readonly_section): Use it.
15971
15972 Revert:
15973 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
15974 Steve Ellcey <sje@cup.hp.com>
15975
15976 PR middle-end/31490
15977 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
15978 if section attribute used.
15979
15980 2011-02-03 Jakub Jelinek <jakub@redhat.com>
15981
15982 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
15983 * config/darwin.c (SECTION_NO_ANCHOR): Define.
15984 (darwin_init_sections): Remove assertion.
15985
15986 2011-02-03 Nick Clifton <nickc@redhat.com>
15987
15988 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
15989 lt and ge.
15990 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
15991 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
15992 instead of "n" and "pz".
15993 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
15994 CC_FLAG_S.
15995
15996 2011-02-03 Jakub Jelinek <jakub@redhat.com>
15997
15998 PR target/47312
15999 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
16000 fma, expand FMA_EXPR as fma{,f,l} call.
16001
16002 PR lto/47274
16003 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
16004 copy them into a unsigned char variable and pass address of it to
16005 lto_output_data_stream.
16006
16007 PR target/47564
16008 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
16009 around backend_init_target and lang_dependent_init_target calls.
16010 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
16011 (verify_cgraph_node): Don't call set_cfun here. Use
16012 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
16013 Set error_found for incorrectly represented calls to thunks.
16014
16015 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
16016
16017 PR debug/43092
16018 PR rtl-optimization/43494
16019 * rtl.h (for_each_inc_dec_fn): New type.
16020 (for_each_inc_dec): Declare.
16021 * rtlanal.c (struct for_each_inc_dec_ops): New type.
16022 (for_each_inc_dec_find_inc_dec): New fn.
16023 (for_each_inc_dec_find_mem): New fn.
16024 (for_each_inc_dec): New fn.
16025 * dse.c (struct insn_size): Remove.
16026 (replace_inc_dec, replace_inc_dec_mem): Remove.
16027 (emit_inc_dec_insn_before): New fn.
16028 (check_for_inc_dec): Use it, along with for_each_inc_dec.
16029 (canon_address): Pass mem modes to cselib_lookup.
16030 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
16031 (cselib_lookup_from_insn): Likewise.
16032 (cselib_subst_to_values): Likewise.
16033 * cselib.c (find_slot_memmode): New var.
16034 (cselib_find_slot): New fn. Use it instead of
16035 htab_find_slot_with_hash everywhere.
16036 (entry_and_rtx_equal_p): Use find_slot_memmode.
16037 (autoinc_split): New fn.
16038 (rtx_equal_for_cselib_p): Rename and implement in terms of...
16039 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
16040 Deal with autoinc. Special-case recursion into MEMs.
16041 (cselib_hash_rtx): Likewise.
16042 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
16043 address and MEM modes.
16044 (cselib_subst_to_values): Add memmode, pass it on.
16045 Deal with autoinc.
16046 (cselib_lookup): Add memmode argument, pass it on.
16047 (cselib_lookup_from_insn): Add memmode.
16048 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
16049 (struct cselib_record_autoinc_data): New.
16050 (cselib_record_autoinc_cb): New fn.
16051 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
16052 mode to cselib_lookup. Reset autoinced REGs here instead of...
16053 (cselib_process_insn): ... here.
16054 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
16055 to cselib_lookup.
16056 (add_uses): Likewise, also to cselib_subst_to_values.
16057 (add_stores): Likewise.
16058 * sched-deps.c (add_insn_mem_dependence): Pass mode to
16059 cselib_subst_to_values.
16060 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
16061 * gcse.c (do_local_cprop): Adjusted.
16062 * postreload.c (reload_cse_simplify_set): Adjusted.
16063 (reload_cse_simplify_operands): Adjusted.
16064 * sel-sched-dump (debug_mem_addr_value): Pass mode.
16065
16066 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
16067
16068 PR tree-optimization/45122
16069 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
16070 unsafe assumptions when there's more than one loop exit.
16071
16072 2011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
16073
16074 PR target/47272
16075 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
16076 Document using vector double with the load/store builtins, and
16077 that the load/store builtins always use Altivec instructions.
16078
16079 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
16080 to use altivec memory instructions, even on VSX.
16081 (vector_altivec_store_<mode>): Ditto.
16082
16083 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
16084 function.
16085
16086 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16087 V2DF, V2DI support to load/store overloaded builtins.
16088
16089 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
16090 altivec load/store builtins for V2DF/V2DI types.
16091
16092 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
16093 set avoid indexed addresses on power6 if -maltivec.
16094 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
16095 vector_altivec_load/vector_altivec_store builtins.
16096 (altivec_expand_st_builtin): Ditto.
16097 (altivec_expand_builtin): Add VSX memory builtins.
16098 (rs6000_init_builtins): Add V2DI types to internal types.
16099 (altivec_init_builtins): Add support for V2DF/V2DI altivec
16100 load/store builtins.
16101 (rs6000_address_for_altivec): Insure memory address is appropriate
16102 for Altivec.
16103
16104 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
16105 vec_vsx_ld and vec_vsx_st.
16106 (vsx_store_<mode>): Ditto.
16107
16108 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
16109 variables to hold long long types for VSX vector memory builtins.
16110 (RS6000_BTI_unsigned_long_long): Ditto.
16111 (long_long_integer_type_internal_node): Ditti.
16112 (long_long_unsigned_type_internal_node): Ditti.
16113
16114 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
16115 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
16116 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
16117
16118 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
16119 short cuts.
16120 (vec_vsx_st): Ditto.
16121
16122 2011-02-02 Joseph Myers <joseph@codesourcery.com>
16123
16124 * config/pa/pa-hpux10.opt: New.
16125 * config/hpux11.opt (pthread): New Driver option.
16126 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
16127 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
16128
16129 2011-02-02 Joseph Myers <joseph@codesourcery.com>
16130
16131 * config/ia64/vms.opt: New.
16132 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
16133
16134 2011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
16135
16136 PR target/47580
16137 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
16138 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
16139 generator functions.
16140 (vsx_floatuns<VSi><mode>2): Ditto.
16141 (vsx_fix_trunc<mode><VSi>2): Ditto.
16142 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
16143
16144 2011-02-02 Joseph Myers <joseph@codesourcery.com>
16145
16146 * config/i386/djgpp.opt (posix): New Driver option.
16147
16148 2011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
16149
16150 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
16151 Move to the unsupported targets list.
16152
16153 2011-02-02 Peter Bergner <bergner@vnet.ibm.com>
16154
16155 PR rtl-optimization/47525
16156 * df-scan.c: Update copyright years.
16157 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
16158 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
16159
16160 2011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16161
16162 * config/i386/sysv4.h (TARGET_VERSION): Remove.
16163 (SUBTARGET_RETURN_IN_MEMORY): Remove.
16164 (ASM_OUTPUT_ASCII): Remove.
16165 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
16166
16167 2011-02-02 Jeff Law <law@redhat.com>
16168
16169 PR middle-end/47543
16170 * reload.c (find_reloads_address): Handle reg+d address where both
16171 components are invalid by reloading the entire address.
16172
16173 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
16174 Richard Guenther <rguenther@suse.de>
16175
16176 PR tree-optimization/40979
16177 PR bootstrap/47044
16178 * passes.c (init_optimization_passes): After LIM call copy_prop
16179 and DCE to clean up.
16180 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
16181
16182 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
16183
16184 PR tree-optimization/47576
16185 PR tree-optimization/47555
16186 * doc/invoke.texi (scev-max-expr-complexity): Documented.
16187 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
16188 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
16189 * tree-scalar-evolution.c (follow_ssa_edge): Use
16190 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
16191
16192 2011-02-02 Richard Guenther <rguenther@suse.de>
16193
16194 PR tree-optimization/47566
16195 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
16196
16197 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
16198
16199 PR debug/47106
16200 PR debug/47402
16201 * tree-inline.c (declare_return_variable): Remove unused caller
16202 variable.
16203
16204 PR debug/47106
16205 PR debug/47402
16206 * tree-flow-inline.h (clear_is_used, is_used_p): New.
16207 * cfgexpand.c (account_used_vars_for_block): Use them.
16208 * tree-nrv.c (tree_nrv): Likewise.
16209 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
16210 (dump_scope_block): Likewise.
16211 (remove_unused_locals): Likewise.
16212
16213 PR debug/47106
16214 PR debug/47402
16215 * tree-inline.c (declare_return_variable): Add result decl to
16216 local decls only once.
16217 * gimple-low.c (record_vars_into): Mark newly-created variables
16218 as referenced.
16219
16220 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
16221
16222 PR debug/47498
16223 PR debug/47501
16224 PR debug/45136
16225 PR debug/45130
16226 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
16227 debug insns.
16228 (no_real_insns_p, schedule_block, set_priorities): Drop special
16229 treatment of boundary debug insns.
16230 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
16231 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
16232 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
16233 (BOUNDARY_DEBUG_INSN_P): Likewise.
16234 (SCHEDULE_DEBUG_INSN_P): Likewise.
16235 * sched-rgn.c (init_ready_list): Drop special treatment of
16236 boundary debug insns.
16237 * final.c (rest_of_clean_state): Clear notes' BB.
16238
16239 2011-02-01 Joseph Myers <joseph@codesourcery.com>
16240
16241 * config/openbsd.opt (assert=): New Driver option.
16242
16243 2011-02-01 Joseph Myers <joseph@codesourcery.com>
16244
16245 * config/i386/nto.opt: New.
16246 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
16247
16248 2011-02-01 Joseph Myers <joseph@codesourcery.com>
16249
16250 * config/i386/netware.opt: New.
16251 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
16252
16253 2011-02-01 Joseph Myers <joseph@codesourcery.com>
16254
16255 * config/interix.opt (posix): New Driver option.
16256
16257 2011-02-01 DJ Delorie <dj@redhat.com>
16258
16259 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
16260
16261 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
16262 class for A0/A1.
16263
16264 2011-02-01 Sebastian Pop <sebastian.pop@amd.com>
16265
16266 PR tree-optimization/47561
16267 * toplev.c (process_options): Print the Graphite flags. Add
16268 flag_loop_flatten to the list of options requiring Graphite.
16269
16270 2011-02-01 Joseph Myers <joseph@codesourcery.com>
16271
16272 * config/i386/cygming.opt (posix): New Driver option.
16273
16274 2011-02-01 Joseph Myers <joseph@codesourcery.com>
16275
16276 * config/arm/vxworks.opt: New.
16277 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
16278
16279 2011-02-01 Joseph Myers <joseph@codesourcery.com>
16280
16281 * config/alpha/elf.opt: New.
16282 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
16283 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
16284
16285 2011-02-01 Richard Guenther <rguenther@suse.de>
16286
16287 PR tree-optimization/47559
16288 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
16289 store-motion on references that can throw.
16290
16291 2011-02-01 Bernd Schmidt <bernds@codesourcery.com>
16292
16293 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
16294 * tree-pass.h (TDF_CSELIB): New macro.
16295 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
16296 cselib_lookup): Check for it rather than for TDF_DETAILS.
16297
16298 2011-02-01 H.J. Lu <hongjiu.lu@intel.com>
16299
16300 PR driver/47547
16301 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
16302 is HOST_BIT_BUCKET.
16303
16304 * opts.c (finish_options): Don't add x_aux_base_name if it is
16305 HOST_BIT_BUCKET.
16306
16307 2011-02-01 Richard Guenther <rguenther@suse.de>
16308
16309 PR tree-optimization/47555
16310 Revert
16311 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
16312
16313 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
16314
16315 2011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
16316
16317 PR gcc/46692
16318 * config/lm32/t-lm32: Add multilib for all CPU options.
16319
16320 2011-02-01 Richard Guenther <rguenther@suse.de>
16321
16322 PR tree-optimization/47541
16323 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
16324 sure to have a field at offset zero.
16325
16326 2011-01-31 Joseph Myers <joseph@codesourcery.com>
16327
16328 * config/arc/arc.opt (EB, EL): New Driver options.
16329
16330 2011-01-31 Joseph Myers <joseph@codesourcery.com>
16331
16332 * config/alpha/osf5.opt: New.
16333 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
16334
16335 2011-01-31 Joseph Myers <joseph@codesourcery.com>
16336
16337 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
16338
16339 2011-01-31 Sebastian Pop <sebastian.pop@amd.com>
16340
16341 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
16342 -floop-interchange.
16343 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
16344 is an alias of -floop-interchange and that it requires the
16345 Graphite infrastructure.
16346 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
16347 flag_loop_interchange based on the value of flag_tree_loop_linear.
16348
16349 2011-01-31 Jakub Jelinek <jakub@redhat.com>
16350 Richard Guenther <rguenther@suse.de>
16351
16352 PR tree-optimization/47538
16353 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
16354 type instead of r1type, except for comparisons. For right
16355 shifts and comparisons punt if there are mismatches in
16356 sizetype vs. non-sizetype types.
16357
16358 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16359
16360 * doc/sourcebuild.texi (Effective-Target Keywords): Document
16361 avx_runtime.
16362
16363 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16364
16365 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
16366 version number.
16367 * configure: Regenerate.
16368
16369 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16370
16371 * configure.ac (gcc_cv_ld_static_option): Define.
16372 (gcc_cv_ld_dynamic_option): Define.
16373 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
16374 instead.
16375 (HAVE_LD_STATIC_DYNAMIC): Update message.
16376 (LD_STATIC_OPTION): Define.
16377 (LD_DYNAMIC_OPTION): Define.
16378 * configure: Regenerate.
16379 * config.in: Regenerate.
16380 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
16381 HAVE_LD_STATIC_DYNAMIC]: Use them.
16382
16383 2011-01-31 Nick Clifton <nickc@redhat.com>
16384
16385 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
16386 registers inside interrupt handlers if the handler is not a leaf
16387 function.
16388
16389 2011-01-31 Nick Clifton <nickc@redhat.com>
16390
16391 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
16392 reg_renumber returning an INVALID_REGNUM.
16393
16394 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
16395
16396 PR libgcj/44341
16397 * doc/install.texi: Document host options discarded when cross
16398 configuring target libraries.
16399
16400 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
16401
16402 Reverted:
16403 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
16404 PR debug/45136
16405 PR debug/45130
16406 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
16407 debug insns.
16408 (no_real_insns_p, schedule_block, set_priorities): Drop special
16409 treatment of boundary debug insns.
16410 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
16411 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
16412 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
16413 (BOUNDARY_DEBUG_INSN_P): Likewise.
16414 (SCHEDULE_DEBUG_INSN_P): Likewise.
16415 * sched-rgn.c (init_ready_list): Drop special treatment of
16416 boundary debug insns.
16417 * final.c (rest_of_clean-state): Clear notes' BB.
16418
16419 2011-01-31 Alan Modra <amodra@gmail.com>
16420
16421 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
16422 toc relative expressions as we do in print_operand_address.
16423
16424 2011-01-30 Kazu Hirata <kazu@codesourcery.com>
16425
16426 * doc/extend.texi: Follow spelling conventions.
16427 * doc/invoke.texi: Fix a typo.
16428
16429 2011-01-30 Joseph Myers <joseph@codesourcery.com>
16430
16431 * config/hpux11.opt: New.
16432 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
16433 ia64*-*-hpux*): Use hpux11.opt.
16434
16435 2011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
16436
16437 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
16438 to tmake_file.
16439
16440 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
16441
16442 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
16443 support sites.
16444
16445 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
16446
16447 * doc/install.texi (Binaries): Remove outdated reference for
16448 Motorola 68HC11/68HC12 downloads.
16449
16450 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
16451
16452 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
16453 Drepper's paper.
16454
16455 2011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
16456
16457 PR bootstrap/47147
16458 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
16459 used by NetBSD.
16460
16461 2011-01-28 Ahmad Sharif <asharif@google.com>
16462
16463 * value-prof.c (check_counter): Corrected error message.
16464
16465 2011-01-29 Jie Zhang <jie@codesourcery.com>
16466
16467 * config/arm/arm.c (arm_legitimize_reload_address): New.
16468 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
16469 arm_legitimize_reload_address.
16470 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
16471
16472 2011-01-28 Ian Lance Taylor <iant@google.com>
16473
16474 * godump.c (go_define): Ignore macros whose definitions include
16475 two adjacent operands.
16476
16477 2011-01-28 Jakub Jelinek <jakub@redhat.com>
16478
16479 PR target/42894
16480 * varasm.c (force_const_mem): Store copy of x in desc->constant
16481 instead of x itself.
16482 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
16483 itself into REG_EQUAL note.
16484
16485 2011-01-28 Joseph Myers <joseph@codesourcery.com>
16486
16487 * config/freebsd.opt (posix, rdynamic): New Driver options.
16488
16489 2011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16490
16491 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
16492 -Bstatic/-Bdynamic.
16493 * configure: Regenerate.
16494
16495 2011-01-27 Joseph Myers <joseph@codesourcery.com>
16496
16497 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
16498 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
16499
16500 2011-01-27 Anatoly Sokolov <aesok@post.ru>
16501
16502 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
16503 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
16504 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
16505 (s390_preferred_reload_class): Make static. Change return and
16506 'rclass' argument type to reg_class_t.
16507
16508 2011-01-27 Jan Hubicka <jh@suse.cz>
16509
16510 PR middle-end/46949
16511 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
16512 (process_function_and_variable_attributes): Check defined weakrefs.
16513
16514 2011-01-27 Martin Jambor <mjambor@suse.cz>
16515
16516 PR tree-optimization/47228
16517 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
16518 build_ref_for_offset.
16519
16520 2011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16521
16522 * config/spu/spu-elf.h (ASM_SPEC): Remove.
16523
16524 2011-01-26 Mikael Pettersson <mikpe@it.uu.se>
16525
16526 PR rtl-optimization/46856
16527 * postreload.c (reload_combine_recognize_const_pattern): Do not
16528 separate cc0 setter and user on cc0 targets.
16529
16530 2011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
16531
16532 PR c/43082
16533 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
16534 passed a VOID_TYPE expression, immediately emit an error and
16535 return error_mark_node.
16536
16537 2011-01-26 Jeff Law <law@redhat.com>
16538
16539 PR rtl-optimization/47464
16540 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
16541 rather than may_trap_p as needed.
16542
16543 2011-01-26 DJ Delorie <dj@redhat.com>
16544
16545 PR rtl-optimization/46878
16546 * combine.c (insn_a_feeds_b): Check for the implicit cc0
16547 setter/user dependency as well.
16548
16549 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
16550
16551 PR rtl-optimization/44469
16552 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
16553 after removing trivially dead basic blocks.
16554
16555 2011-01-26 Joseph Myers <joseph@codesourcery.com>
16556
16557 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
16558 * config/frv/frv.h (LINK_SPEC): Likewise.
16559 * config/i386/netware.h (LINK_SPEC): Likewise.
16560 * config/m68k/linux.h (ASM_SPEC): Likewise.
16561 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
16562 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
16563 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
16564 * config/sparc/linux.h (ASM_SPEC): Likewise.
16565 * config/sparc/linux64.h (ASM_SPEC): Likewise.
16566 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
16567
16568 2011-01-26 Joseph Myers <joseph@codesourcery.com>
16569
16570 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
16571 * config/frv/frv.h (ASM_SPEC): Likewise.
16572 * config/m68k/linux.h (ASM_SPEC): Likewise.
16573 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
16574 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
16575 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
16576 * config/sparc/linux.h (ASM_SPEC): Likewise.
16577 * config/sparc/linux64.h (ASM_SPEC): Likewise.
16578 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
16579
16580 2011-01-26 Joseph Myers <joseph@codesourcery.com>
16581
16582 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
16583 * config/frv/frv.h (LINK_SPEC): Likewise.
16584 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
16585
16586 2011-01-26 Joseph Myers <joseph@codesourcery.com>
16587
16588 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
16589 * config/frv/frv.h (ASM_SPEC): Likewise.
16590 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
16591 * config/m68k/linux.h (ASM_SPEC): Likewise.
16592 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
16593 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
16594 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
16595 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
16596 * config/sparc/linux.h (ASM_SPEC): Likewise.
16597 * config/sparc/linux64.h (ASM_SPEC): Likewise.
16598 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
16599 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
16600
16601 2011-01-26 Steve Ellcey <sje@cup.hp.com>
16602
16603 PR target/46997
16604 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
16605 (*mux2): Ditto.
16606 (vec_extract_evenodd_help): Ditto.
16607 (vec_extract_evenv4hi): Ditto.
16608 (vec_extract_oddv4hi): Ditto.
16609 (vec_interleave_lowv2si): Ditto.
16610 (vec_interleave_highv2si): Ditto.
16611 (vec_extract_evenv2si): Ditto.
16612 (vec_extract_oddv2si: Ditto.
16613 (vec_pack_trunc_v2si): Ditto.
16614
16615 2011-01-22 Jan Hubicka <jh@suse.cz>
16616
16617 PR target/47237
16618 * cgraph.h (cgraph_local_info): New field can_change_signature.
16619 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
16620 signature can change.
16621 (ipcp_estimate_growth): Call sequence simplify only if calle signature
16622 can change.
16623 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
16624 (cgraph_function_versioning): We can not change signature of functions
16625 that don't allow that.
16626 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
16627 (lto_input_node): Likewise.
16628 * ipa-inline.c (compute_inline_parameters): Compute
16629 local.can_change_signature.
16630 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
16631 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
16632 functions that can not change signature.
16633 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
16634 init_cumulative_args): Do not use local calling conventions
16635 for functions that can not change signature.
16636
16637 2011-01-22 Jan Hubicka <jh@suse.cz>
16638
16639 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
16640
16641 2011-01-26 Richard Guenther <rguenther@suse.de>
16642
16643 PR tree-optimization/47190
16644 * cgraphunit.c (process_common_attributes): New function.
16645 (process_function_and_variable_attributes): Use it.
16646
16647 2011-01-26 Richard Guenther <rguenther@suse.de>
16648
16649 PR lto/47423
16650 * cgraphbuild.c (record_eh_tables): Record reference to personality
16651 function.
16652
16653 2011-01-26 Alexandre Oliva <aoliva@redhat.com>
16654
16655 PR debug/45454
16656 * sel-sched.c (moveup_expr): Don't let debug insns prevent
16657 non-debug insns from moving up.
16658
16659 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
16660
16661 PR target/40125
16662 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
16663 t-dlldir{,-x} fragment for build and add it to tmake_file.
16664 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
16665 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
16666 * config/i386/t-dlldir: New file.
16667 (SHLIB_DLLDIR): Define.
16668 * config/i386/t-dlldir-x: New file.
16669 (SHLIB_DLLDIR): Define.
16670 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
16671 (SHLIB_INSTALL): Use it.
16672
16673 2011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
16674
16675 PR target/47246
16676 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
16677 lower bound of the allowed Thumb-2 coprocessor load/store
16678 index range to -256. Add explaining comment.
16679
16680 2011-01-25 Ian Lance Taylor <iant@google.com>
16681
16682 * godump.c (go_define): Improve lexing of macro expansion to only
16683 accept expressions which match Go spec.
16684
16685 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
16686
16687 PR c++/43601
16688 * tree.c (handle_dll_attribute): Handle it.
16689 * doc/extend.texi (@item dllexport): Mention it.
16690 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
16691
16692 2011-01-25 Ian Lance Taylor <iant@google.com>
16693
16694 PR tree-optimization/26854
16695 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
16696 (decl_jump_unsafe): Move higher in file, with no other change.
16697 (bind): Set has_jump_unsafe_decl if appropriate.
16698 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
16699 (check_earlier_gotos): Likewise.
16700 (c_check_switch_jump_warnings): Likewise.
16701
16702 2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
16703
16704 * doc/invoke.texi (Warning Options): Add missing hyphen.
16705 (-fprofile-dir): Minor grammatical fixes.
16706 (-fbranch-probabilities): Likewise.
16707
16708 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
16709
16710 PR debug/45136
16711 PR debug/45130
16712 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
16713 debug insns.
16714 (no_real_insns_p, schedule_block, set_priorities): Drop special
16715 treatment of boundary debug insns.
16716 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
16717 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
16718 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
16719 (BOUNDARY_DEBUG_INSN_P): Likewise.
16720 (SCHEDULE_DEBUG_INSN_P): Likewise.
16721 * sched-rgn.c (init_ready_list): Drop special treatment of
16722 boundary debug insns.
16723 * final.c (rest_of_clean-state): Clear notes' BB.
16724
16725 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16726
16727 * Makefile.in (LAMBDA_H): Removed.
16728 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
16729 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
16730 lambda-trans.o, and tree-loop-linear.o.
16731 (lto-symtab.o): Remove dependence on LAMBDA_H.
16732 (tree-loop-linear.o): Remove rule.
16733 (lambda-mat.o): Same.
16734 (lambda-trans.o): Same.
16735 (lambda-code.o): Same.
16736 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
16737 (tree-vect-slp.o): Same.
16738 * hwint.h (gcd): Moved here.
16739 (least_common_multiple): Same.
16740 * lambda-code.c: Removed.
16741 * lambda-mat.c: Removed.
16742 * lambda-trans.c: Removed.
16743 * lambda.h: Removed.
16744 * tree-loop-linear.c: Removed.
16745 * lto-symtab.c: Do not include lambda.h.
16746 * omega.c (gcd): Removed.
16747 * passes.c (init_optimization_passes): Remove pass_linear_transform.
16748 * tree-data-ref.c (print_lambda_vector): Moved here.
16749 (lambda_vector_copy): Same.
16750 (lambda_matrix_copy): Same.
16751 (lambda_matrix_id): Same.
16752 (lambda_vector_first_nz): Same.
16753 (lambda_matrix_row_add): Same.
16754 (lambda_matrix_row_exchange): Same.
16755 (lambda_vector_mult_const): Same.
16756 (lambda_vector_negate): Same.
16757 (lambda_matrix_row_negate): Same.
16758 (lambda_vector_equal): Same.
16759 (lambda_matrix_right_hermite): Same.
16760 * tree-data-ref.h: Do not include lambda.h.
16761 (lambda_vector): Moved here.
16762 (lambda_matrix): Same.
16763 (dependence_level): Same.
16764 (lambda_transform_legal_p): Removed declaration.
16765 (lambda_collect_parameters): Same.
16766 (lambda_compute_access_matrices): Same.
16767 (lambda_vector_gcd): Same.
16768 (lambda_vector_new): Same.
16769 (lambda_vector_clear): Same.
16770 (lambda_vector_lexico_pos): Same.
16771 (lambda_vector_zerop): Same.
16772 (lambda_matrix_new): Same.
16773 * tree-flow.h (least_common_multiple): Removed declaration.
16774 * tree-parloops.c (lambda_trans_matrix): Moved here.
16775 (LTM_MATRIX): Same.
16776 (LTM_ROWSIZE): Same.
16777 (LTM_COLSIZE): Same.
16778 (LTM_DENOMINATOR): Same.
16779 (lambda_trans_matrix_new): Same.
16780 (lambda_matrix_vector_mult): Same.
16781 (lambda_transform_legal_p): Same.
16782 * tree-pass.h (pass_linear_transform): Removed declaration.
16783 * tree-ssa-loop.c (tree_linear_transform): Removed.
16784 (gate_tree_linear_transform): Removed.
16785 (pass_linear_transform): Removed.
16786 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
16787 flag_loop_interchange.
16788
16789 2011-01-25 Jakub Jelinek <jakub@redhat.com>
16790
16791 PR tree-optimization/47265
16792 PR tree-optimization/47443
16793 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
16794 if name still has some uses.
16795
16796 2011-01-25 Martin Jambor <mjambor@suse.cz>
16797
16798 PR tree-optimization/47382
16799 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
16800 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
16801
16802 2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
16803
16804 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
16805 sjlj_except_unwind_info.
16806
16807 2011-01-25 Richard Guenther <rguenther@suse.de>
16808
16809 PR tree-optimization/47426
16810 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
16811 visible functions results escape.
16812
16813 2011-01-25 Jakub Jelinek <jakub@redhat.com>
16814
16815 PR target/45701
16816 * config/arm/arm.c (any_sibcall_uses_r3): New function.
16817 (arm_get_frame_offsets): Use it.
16818
16819 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16820 Jakub Jelinek <jakub@redhat.com>
16821
16822 PR tree-optimization/47271
16823 * tree-if-conv.c (bb_postdominates_preds): New.
16824 (if_convertible_bb_p): Call bb_postdominates_preds.
16825 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
16826 (predicate_scalar_phi): Call bb_postdominates_preds.
16827
16828 2011-01-25 Nick Clifton <nickc@redhat.com>
16829
16830 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
16831 * config/rx/rx.c (rx_function_value): Likewise.
16832 (rx_promote_function_mode): Likewise.
16833 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
16834 in order to make it legitimate.
16835 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
16836 make sure that the first operand is the same as the result register.
16837 (addsi3_unspec): Delete.
16838 (subdi3): Do not accept immediate operands.
16839 (subdi3_internal): Likewise.
16840
16841 2011-01-25 Jeff Law <law@redhat.com>
16842
16843 PR rtl-optimization/37273
16844 * ira-costs.c (scan_one_insn): Detect constants living in memory and
16845 handle them like argument loads from stack slots. Do not double
16846 count memory for memory constants and argument loads from stack slots.
16847
16848 2011-01-25 Jakub Jelinek <jakub@redhat.com>
16849
16850 PR tree-optimization/47427
16851 PR tree-optimization/47428
16852 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
16853 coalesce if the new root var would be TREE_READONLY.
16854
16855 2011-01-25 Richard Guenther <rguenther@suse.de>
16856
16857 PR middle-end/47414
16858 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
16859 correct type for TBAA.
16860
16861 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16862
16863 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
16864 (close_phi_written_to_memory): Call for_each_index with
16865 dr_indices_valid_in_loop.
16866
16867 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16868
16869 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
16870 when it is initialized.
16871
16872 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16873
16874 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
16875 call to graphite_find_data_references_in_stmt.
16876 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
16877 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
16878 call to graphite_find_data_references_in_stmt.
16879 (analyze_drs_in_stmts): Same.
16880 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
16881 in which the scalar analysis of indices is performed.
16882 (create_data_ref): Same. Update call to dr_analyze_indices.
16883 (find_data_references_in_stmt): Update call to create_data_ref.
16884 (graphite_find_data_references_in_stmt): Same.
16885 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
16886 declaration.
16887 (create_data_ref): Same.
16888 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
16889 call to create_data_ref.
16890
16891 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16892
16893 * graphite-sese-to-poly.c (build_poly_scop): Move
16894 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
16895
16896 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16897
16898 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
16899 VAR_DECL, PARM_DECL, and RESULT_DECL.
16900
16901 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16902
16903 * graphite-dependences.c (reduction_dr_1): Allow several reductions
16904 in a reduction PBB.
16905 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
16906 that have already been marked as PBB_IS_REDUCTION.
16907
16908 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16909
16910 * graphite-scop-detection.c (same_close_phi_node): New.
16911 (remove_duplicate_close_phi): New.
16912 (make_close_phi_nodes_unique): New.
16913 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
16914
16915 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16916
16917 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
16918 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
16919 of both data references to be the same.
16920
16921 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16922
16923 * graphite-dependences.c (build_lexicographical_constraint): Remove
16924 the gdim parameter.
16925 (build_lexicographical_constraint): Adjust call to
16926 ppl_powerset_is_empty.
16927 (dependence_polyhedron): Same.
16928 (graphite_legal_transform_dr): Same.
16929 (graphite_carried_dependence_level_k): Same.
16930 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
16931 parameter.
16932 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
16933
16934 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16935
16936 * graphite-sese-to-poly.c
16937 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
16938 (close_phi_written_to_memory): New.
16939 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
16940 and unshare_expr.
16941
16942 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16943
16944 * doc/install.texi: Update the expected version number of PPL to 0.11.
16945 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
16946 #if PPL_VERSION_MINOR < 11.
16947
16948 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16949
16950 * graphite-dependences.c: Include graphite-cloog-util.h.
16951 (new_poly_ddr): Inlined into dependence_polyhedron.
16952 (free_poly_ddr): Moved close by new_poly_ddr.
16953 (dependence_polyhedron_1): Renamed dependence_polyhedron.
16954 Early return NULL when ppl_powerset_is_empty returns true.
16955 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
16956 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
16957 (graphite_legal_transform_dr): Call new_poly_ddr.
16958 (graphite_carried_dependence_level_k): Same.
16959 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
16960 (dot_transformed_deps_stmt_1): Removed.
16961 (dot_deps_stmt_1): Call dot_deps_stmt_2.
16962 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
16963 (dot_deps_1): Call dot_deps_2.
16964 * Makefile.in (graphite-dependences.o): Add missing dependence on
16965 graphite-cloog-util.h.
16966
16967 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16968
16969 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
16970 (build_lexicographical_constraint): Same.
16971 (dependence_polyhedron_1): Same.
16972 (graphite_legal_transform_dr): Same.
16973 (graphite_carried_dependence_level_k): Same.
16974 * graphite-ppl.c (ppl_powerset_is_empty): New.
16975 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
16976 * tree-data-ref.c (dump_data_reference): Print the basic block index.
16977
16978 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16979
16980 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
16981 the "a followed by b" relation and document it.
16982
16983 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16984
16985 * graphite-dependences.c (build_lexicographical_constraint): Stop the
16986 iteration when the bag of constraints is empty.
16987
16988 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16989
16990 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
16991
16992 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
16993
16994 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
16995 nest and two loop depths as parameters.
16996 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
16997 lst_perfect_nestify.
16998
16999 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17000
17001 * graphite-dependences.c (print_pddr): Call
17002 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
17003
17004 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17005
17006 * graphite-ppl.c (debug_gmp_value): New.
17007 * graphite-ppl.h (debug_gmp_value): Declared.
17008
17009 2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
17010
17011 * doc/install.texi: Document availability of cloog-0.16.
17012
17013 2011-01-25 Vladimir Kargov <kargov@gmail.com>
17014
17015 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
17016 invalid postdominance info.
17017
17018 2011-01-24 Jan Hubicka <jh@suse.cz>
17019
17020 PR c/21659
17021 * doc/extend.texi (weak pragma): Drop claim that it must
17022 appear before definition.
17023 * varasm.c (merge_weak, declare_weak): Only sanity check
17024 that DECL is not output at a time it is declared weak.
17025
17026 2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
17027
17028 * machmode.def: Fixed comments.
17029
17030 2011-01-24 Kai Tietz <kai.tietz@onevision.com>
17031
17032 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
17033
17034 2011-01-24 Paul Koning <ni1d@arrl.net>
17035
17036 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
17037 WORDS_BIG_ENDIAN.
17038
17039 2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
17040
17041 PR target/46519
17042 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
17043 (block_info): Add scanned and prev.
17044 (move_or_delete_vzeroupper_2): Return if the basic block
17045 has been scanned and the upper 128bit state is unchanged
17046 from the last scan.
17047 (move_or_delete_vzeroupper_1): Return true if the exit
17048 state is changed.
17049 (move_or_delete_vzeroupper): Visit basic blocks using the
17050 work-list based algorithm based on vt_find_locations in
17051 var-tracking.c.
17052
17053 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
17054
17055 2011-01-24 Nick Clifton <nickc@redhat.com>
17056
17057 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
17058 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
17059 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
17060 then define __v850e1__.
17061 * doc/invoke.texi: Document -mv850es.
17062
17063 2011-01-24 Richard Henderson <rth@redhat.com>
17064
17065 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
17066 compound unordered comparisons.
17067 * config/rx/rx.c (rx_split_fp_compare): Remove.
17068 * config/rx/rx-protos.h: Update.
17069 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
17070 (cbranchsf4): Don't call rx_split_fp_compare.
17071 (*cbranchsf4): Use rx_split_cbranch.
17072 (*cmpsf): Don't accept "i" constraint.
17073 (*conditional_branch): Only valid after reload.
17074 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
17075
17076 2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
17077
17078 PR target/47385
17079 * config/rs6000/altivec.md (vector constant splitters): Add
17080 support for creating vector single precision constants if -mvsx is
17081 used and we would create the constant using Altivec primitives.
17082
17083 2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
17084 Richard Sandiford <rdsandiford@googlemail.com>
17085
17086 PR rtl-optimization/47166
17087 * reload1.c (emit_reload_insns): Disable the spill_reg_store
17088 mechanism for PRE_MODIFY and POST_MODIFY.
17089 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
17090 reloadreg.
17091
17092 2011-01-23 Andreas Schwab <schwab@linux-m68k.org>
17093
17094 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
17095
17096 2011-01-22 Jan Hubicka <jh@suse.cz>
17097
17098 PR lto/47333
17099 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
17100
17101 2011-01-22 Jan Hubicka <jh@suse.cz>
17102
17103 PR tree-optimization/43884
17104 PR lto/44334
17105 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
17106 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
17107
17108 2011-01-22 Anatoly Sokolov <aesok@post.ru>
17109
17110 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
17111 * config/s390/s390.c (s390_register_move_cost,
17112 s390_memory_move_cost): New.
17113 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
17114
17115 2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17116
17117 PR middle-end/47401
17118 * except.c (sjlj_assign_call_site_values): Move setting the
17119 crtl->uses_eh_lsda flag to ...
17120 (sjlj_mark_call_sites): ... here.
17121 (sjlj_emit_function_enter): Support NULL dispatch label.
17122 (sjlj_build_landing_pads): In a function with no landing pads
17123 that still has must-not-throw regions, generate code to register
17124 a personality function with empty LSDA.
17125
17126 2011-01-21 Richard Henderson <rth@redhat.com>
17127
17128 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
17129
17130 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
17131
17132 * compare-elim.c: New file.
17133 * Makefile.in (OBJS-common): Add it.
17134 (compare-elim.o): New.
17135 * common.opt (fcompare-elim): New.
17136 * opts.c (default_options_table): Add OPT_fcompare_elim.
17137 * tree-pass.h (pass_compare_elim_after_reload): New.
17138 * passes.c (init_optimization_passes): Add it.
17139 * recog.h: Protect against re-inclusion.
17140 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
17141 * doc/invoke.texi (-fcompare-elim): Document it.
17142 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
17143 * doc/tm.texi: Rebuild.
17144
17145 2011-01-22 Nick Clifton <nickc@redhat.com>
17146
17147 * config/rx/rx.md (cstoresf4): Pass comparison operator to
17148 rx_split_fp_compare.
17149
17150 2011-01-22 Nick Clifton <nickc@redhat.com>
17151
17152 * config/rx/rx.md (UNSPEC_CONST): New.
17153 (deallocate_and_return): Wrap the amount popped off the stack in
17154 an UNSPEC_CONST in order to stop it being rejected by
17155 -mmax-constant-size.
17156 (pop_and_return): Add a "(return)" rtx.
17157 (call): Drop the immediate operand.
17158 (call_internal): Likewise.
17159 (call_value): Likewise.
17160 (call_value_internal): Likewise.
17161 (sibcall_internal): Likewise.
17162 (sibcall_value_internal): Likewise.
17163 (sibcall): Likewise. Generate an explicit call using
17164 sibcall_internal.
17165 (sibcall_value): Likewise.
17166 (mov<>): FAIL if a constant operand is not legitimate.
17167 (addsi3_unpsec): New pattern.
17168
17169 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
17170 (ok_for_max_constant): New function.
17171 (gen_safe_add): New function.
17172 (rx_expand_prologue): Use gen_safe_add.
17173 (rx_expand_epilogue): Likewise.
17174 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
17175 UNSPEC CONSTs.
17176
17177 2011-01-21 Jeff Law <law@redhat.com>
17178
17179 PR tree-optimization/47053
17180 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
17181 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
17182 statements are deleted.
17183 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
17184 is nonempty, then purge dead edges and cleanup the CFG.
17185
17186 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
17187
17188 PR debug/47402
17189 Temporarily revert:
17190 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
17191 PR debug/47106
17192 * tree-dfa.c (create_var_ann): Mark variable as used.
17193
17194 2011-01-21 Jakub Jelinek <jakub@redhat.com>
17195
17196 PR middle-end/45566
17197 * except.c (convert_to_eh_region_ranges): Emit queued no-region
17198 notes from other section in hot/cold partitioning even if
17199 last_action is -3. Increment call_site_base.
17200
17201 PR rtl-optimization/47366
17202 * fwprop.c (forward_propagate_into): Return bool. If
17203 any changes are made, -fnon-call-exceptions is used and
17204 REG_EH_REGION note is present, call purge_dead_edges
17205 and return true if it purged anything.
17206 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
17207 any EH edges were purged.
17208
17209 2011-01-21 Jeff Law <law@redhat.com>
17210
17211 PR rtl-optimization/41619
17212 * caller-save.c (setup_save_areas): Break out code to determine
17213 which hard regs are live across calls by examining the reload chains
17214 so that it is always used.
17215 Eliminate code which checked REG_N_CALLS_CROSSED.
17216
17217 2011-01-21 Jakub Jelinek <jakub@redhat.com>
17218
17219 PR tree-optimization/47355
17220 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
17221 NOP has non-debug uses beyond PHIs in new_bb.
17222
17223 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
17224
17225 PR debug/47106
17226 * cfgexpand.c (account_used_vars_for_block): Only account vars
17227 that are annotated as used.
17228 (estimated_stack_frame_size): Don't set TREE_USED.
17229 * tree-dfa.c (create_var_ann): Mark variable as used.
17230
17231 2011-01-21 Richard Guenther <rguenther@suse.de>
17232
17233 PR middle-end/47395
17234 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
17235
17236 2011-01-21 Richard Guenther <rguenther@suse.de>
17237
17238 PR tree-optimization/47365
17239 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
17240 (vn_reference_lookup_pieces): Adjust.
17241 (vn_reference_lookup): Likewise.
17242 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
17243 (vn_reference_lookup_3): Only look through kills if in
17244 VN_WALKREWRITE mode.
17245 (vn_reference_lookup_pieces): Adjust.
17246 (vn_reference_lookup): Likewise.
17247 (visit_reference_op_load): Likewise.
17248 (visit_reference_op_store): Likewise.
17249 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
17250 (compute_avail): Likewise.
17251 (eliminate): Likewise.
17252
17253 2011-01-21 Jakub Jelinek <jakub@redhat.com>
17254
17255 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
17256 DECL_IGNORED_P non-reg vars if they are used.
17257
17258 PR tree-optimization/47391
17259 * varpool.c (const_value_known_p): Return false if
17260 decl is volatile.
17261
17262 2011-01-21 Kai Tietz <kai.tietz@onevision.com>
17263
17264 PR bootstrap/47215
17265 * config/i386/i386.c (ix86_local_alignment): Handle
17266 case for va_list_type_node is nil.
17267 (ix86_canonical_va_list_type): Likewise.
17268
17269 2011-01-21 Alan Modra <amodra@gmail.com>
17270
17271 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
17272 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
17273
17274 2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17275
17276 * config/arm/arm.md (define_attr type): Rename f_load
17277 and f_store to f_fpa_load and f_fpa_store. Update.
17278 (write_conflict): Deal with rename fallout.
17279 (*push_fp_multi): Likewise.
17280 * config/arm/fpa.md (f_load): Use f_fpa_load.
17281 (f_store): Use f_fpa_store.
17282 (*movsf_fpa): Likewise.
17283 (*movdf_fpa): Likewise.
17284 (*movxf_fpa): Likewise.
17285 (*thumb2_movsf_fpa): Likewise.
17286 (*thumb2_movdf_fpa): Likewise.
17287 (*thumb2_movxf_fpa): Likewise.
17288 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
17289 f_loadd and f_stored.
17290 (*thumb2_movdi_vfp): Likewise.
17291 (*thumb2_movsf_vfp): Fix attribute to f_loads.
17292 (*thumb2_movsi_vfp): Likewise.
17293 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
17294 Use f_loads instead of f_load.
17295 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
17296
17297 2011-01-20 Anatoly Sokolov <aesok@post.ru>
17298
17299 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
17300 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
17301 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17302 (xtensa_mode_dependent_address_p): New function.
17303 (constantpool_address_p): Make static. Change return type to bool.
17304 Change argument type to const_rtx. Use CONST_INT_P predicate.
17305
17306 2011-01-20 Alexandre Oliva <aoliva@redhat.com>
17307
17308 PR debug/46583
17309 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
17310
17311 2011-01-20 Jakub Jelinek <jakub@redhat.com>
17312
17313 PR debug/47283
17314 * cfgexpand.c (expand_debug_expr): Instead of generating
17315 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
17316 etc. handling.
17317
17318 2011-01-20 Richard Guenther <rguenther@suse.de>
17319
17320 PR middle-end/47370
17321 * tree-inline.c (remap_gimple_op_r): Recurse manually for
17322 the pointer operand of MEM_REFs.
17323
17324 2011-01-20 Jakub Jelinek <jakub@redhat.com>
17325
17326 PR tree-optimization/46130
17327 * ipa-split.c (consider_split): If return_bb contains non-virtual
17328 PHIs other than for retval or if split_function would not adjust it,
17329 refuse to split.
17330
17331 2011-01-20 Richard Guenther <rguenther@suse.de>
17332
17333 PR tree-optimization/47167
17334 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
17335 Revert previous change, only avoid enumeral type changes.
17336
17337 2011-01-19 Mike Stump <mikestump@comcast.net>
17338
17339 * doc/tm.texi.in (BRANCH_COST): Englishify.
17340 * doc/tm.texi (BRANCH_COST): Likewise.
17341
17342 2011-01-19 Dodji Seketeli <dodji@redhat.com>
17343
17344 PR c++/47291
17345 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
17346 (gen_scheduled_generic_parms_dies): New functions.
17347 (gen_struct_or_union_type_die): Schedule template parameters DIEs
17348 generation for the end of CU compilation.
17349 (dwarf2out_finish): Generate template parameters DIEs here.
17350
17351 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
17352
17353 PR debug/46240
17354 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
17355 debug bind stmt on merge edges.
17356
17357 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
17358
17359 PR debug/47079
17360 PR debug/46724
17361 * function.c (instantiate_expr): Instantiate incoming rtl of
17362 implicit arguments, and recurse on VALUE_EXPRs.
17363 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
17364 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
17365
17366 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
17367
17368 * c-parser.c (c_parser_for_statement): Initialize
17369 collection_expression.
17370
17371 2011-01-19 Joseph Myers <joseph@codesourcery.com>
17372
17373 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
17374
17375 2011-01-19 Joseph Myers <joseph@codesourcery.com>
17376
17377 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
17378 (LINK_SHLIB_SPEC): Don't use %(link_path).
17379 (SUBTARGET_EXTRA_SPECS): Remove link_path.
17380
17381 2011-01-19 Joseph Myers <joseph@codesourcery.com>
17382
17383 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
17384 (NO_SHARED_LIB_SUPPORT): Remove.
17385 (LINK_SHLIB_SPEC): Remove one conditional definition.
17386
17387 2011-01-19 Joseph Myers <joseph@codesourcery.com>
17388
17389 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
17390 %{call_shared}.
17391 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
17392 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
17393 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
17394 %{call_shared} and conditionals on these options not being passed.
17395 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
17396 %{call_shared}.
17397
17398 2011-01-19 Jakub Jelinek <jakub@redhat.com>
17399
17400 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
17401 simplify.
17402
17403 * ipa-split.c: Spelling fixes.
17404
17405 2011-01-19 Richard Henderson <rth@redhat.com>
17406
17407 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
17408 (*mulsi3): Likewise.
17409
17410 * longlong.h [__mn10300__] (count_leading_zeros): New.
17411 [__mn10300__] (umul_ppmm, smul_ppmm): New.
17412 [__mn10300__] (add_ssaaaa, subddmmss): New.
17413 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
17414 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
17415
17416 2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17417
17418 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
17419
17420 2011-01-19 Richard Henderson <rth@redhat.com>
17421
17422 * config/mn10300/mn10300.md (addsi3_flags): New.
17423 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
17424 (subsi3_flags, subc_internal, subdi3): New.
17425 (subdi3_internal, *subdi3_degenerate): New.
17426 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
17427
17428 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
17429 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
17430 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
17431 * config/mn10300/mn10300-protos.h: Update.
17432 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
17433 (return_ret): Likewise. Rename from return_internal_regs.
17434 (return_internal): Remove.
17435
17436 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
17437 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
17438 (mn10300_legitimate_constant_p): Likewise.
17439 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
17440 (mn10300_frame_size): New.
17441 (mn10300_expand_prologue): Use it.
17442 (mn10300_expand_epilogue): Likewise.
17443 (mn10300_initial_offset): Likewise.
17444 * config/mn10300/mn10300-protos.h: Update.
17445 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
17446 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
17447 (prologue, epilogue, return_internal): Tidy output code.
17448 (mn10300_store_multiple_operation, return): Likewise.
17449 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
17450 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
17451 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
17452 (load_pic, am33_load_pic): New.
17453 (mn10300_load_pic0, mn10300_load_pic1): New.
17454
17455 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
17456 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
17457 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
17458 (cc_flags_for_mode, cc_flags_for_code): New.
17459 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
17460 overflow flag is not valid. Validate that the flags we need
17461 for the comparison are valid.
17462 (mn10300_output_cmp): Remove.
17463 (mn10300_output_add): New.
17464 (mn10300_select_cc_mode): Use cc_flags_for_code.
17465 (mn10300_split_cbranch): New.
17466 (mn10300_match_ccmode): New.
17467 (mn10300_split_and_operand_count): New.
17468 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
17469 to the function.
17470 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
17471 (addsi3): ... here. Use mn10300_output_add.
17472 (*addsi3_flags): New.
17473 (*am33_subsi3, *mn10300_subsi3): Merge...
17474 (subsi3): ... here. Use attribute isa.
17475 (*subsi3_flags): New.
17476 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
17477 when possible.
17478 (*am33_andsi3, *mn10300_andsi3): Merge...
17479 (andsi3): ... here.
17480 (*andsi3_flags): New.
17481 (andsi3 splitters): New.
17482 (*am33_iorsi3, *mn10300_iorsi3): Merge...
17483 (iorsi3): ... here.
17484 (*iorsi3_flags): New.
17485 (*am33_xorsi3, *mn10300_xorsi3): Merge...
17486 (xorsi3): ... here.
17487 (*xorsi3_flags): New.
17488 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
17489 (one_cmplsi2): ... here.
17490 (*one_cmplsi2_flags): New.
17491 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
17492 instead of "dax" in constraints. Use mn10300_split_cbranch.
17493 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
17494 use matching constraints to eliminate a self-comparison.
17495 (*integer_conditional_branch): Rename from integer_conditional_branch.
17496 Use int_mode_flags to match CC_REG.
17497 (*cbranchsi4_btst, *btstsi): New.
17498 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
17499 mn10300_split_cbranch.
17500 (*am33_cmpsf): Rename from am33_cmpsf.
17501 (*float_conditional_branch): Rename from float_conditional_branch.
17502 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
17503 (zero_extendqisi2): ... here.
17504 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
17505 (zero_extendhisi2): ... here.
17506 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
17507 (extendqisi2): ... here.
17508 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
17509 (extendhisi2): ... here.
17510 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
17511 (ashlsi3): ... here.
17512 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
17513 (lshrsi3): ... here.
17514 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
17515 (ashrsi3): ... here.
17516 (consecutive add peephole): Remove.
17517 * config/mn10300/predicates.md (label_ref_operand): New.
17518 (int_mode_flags): New.
17519 (CCZN_comparison_operator): New.
17520
17521 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
17522 (throughput_42_latency_43): New reservation.
17523 (mulsidi3, umulsidi3): New expanders.
17524 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
17525 the MDR register to allocation; separately allocate the low and
17526 high parts of the DImode result.
17527 (umulsidi3_internal): Similarly.
17528 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
17529 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
17530 (udivsi3, umodsi3): Remove.
17531 (udivmodsi4, divmodsi4): New expanders.
17532 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
17533 (*divmodsi4): Simiarly.
17534 (ext_internal): New.
17535
17536 * config/mn10300/constraints.md ("z"): New constraint.
17537 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
17538 (FIXED_REGISTERS): Don't fix MDR.
17539 (CALL_USED_REGSITERS): Reformat nicely.
17540 (REG_ALLOC_ORDER): Add MDR.
17541 (enum regclass): Add MDR_REGS.
17542 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
17543 (IRA_COVER_CLASSES): Add MDR_REGS.
17544 (REGNO_REG_CLASS): Handle MDR_REG.
17545 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
17546 (mn10300_register_move_cost): Likewise.
17547 * config/mn10300/mn10300.md (MDR_REG): New.
17548 (*movsi_internal): Handle moves to/from MDR_REGS.
17549
17550 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
17551 POST_MODIFY.
17552 (mn10300_secondary_reload): Tidy combination reload classes.
17553 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
17554 addresses for AM33. Allow symbolic offsets for reg+imm.
17555 (mn10300_regno_in_class_p): New.
17556 (mn10300_legitimize_reload_address): New.
17557 * config/mn10300/mn10300.h (enum reg_class): Remove
17558 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
17559 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
17560 SP_OR_GENERAL_REGS.
17561 (REG_CLASS_NAMES): Update to match.
17562 (REG_CLASS_CONTENTS): Likewise.
17563 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
17564 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
17565 (REGNO_IN_RANGE_P): Remove.
17566 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
17567 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
17568 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
17569 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
17570 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
17571 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
17572 (REGNO_GENERAL_P): New.
17573 (HAVE_POST_MODIFY_DISP): New.
17574 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
17575 (LEGITIMIZE_RELOAD_ADDRESS): New.
17576 * config/mn10300/mn10300-protos.h: Update.
17577
17578 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
17579 DATA_REGS for AM33 stack-pointer destination.
17580 (mn10300_preferred_output_reload_class): Likewise.
17581 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
17582 into a form appropriate for ...
17583 (TARGET_SECONDARY_RELOAD): New.
17584 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
17585 * config/mn10300/mn10300-protos.h: Update.
17586 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
17587 reload_insi; use the "A" constraint for the scratch; handle AM33
17588 moves of sp to non-address registers.
17589
17590 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
17591 (*movqi_internal): ... here.
17592 (*am33_movhi, *mn10300_movhi): Merge into...
17593 (*movhi_internal): ... here.
17594 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
17595 as the source/destination of moves from/to SP.
17596 (movsf): Only allow for AM33-2.
17597 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
17598 any integer constant constraint. Only allow for AM33-2. Tidy
17599 all of the alternative outputs.
17600 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
17601 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
17602 for MN103.
17603 (udivsi3, umodsi3): New patterns for MN103 only.
17604
17605 2011-01-19 Joern Rennecke <amylaar@spamcop.net>
17606
17607 * doc/tm.texi.in: Spell out that a lack of register class unions
17608 can lead to ICEs.
17609 * doc/tm.texi: Regenerate.
17610
17611 2011-01-19 Jakub Jelinek <jakub@redhat.com>
17612
17613 PR rtl-optimization/47337
17614 * dce.c (check_argument_store): New function.
17615 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
17616
17617 PR tree-optimization/47290
17618 * tree-eh.c (infinite_empty_loop_p): New function.
17619 (cleanup_empty_eh): Use it.
17620
17621 2011-01-18 Steve Ellcey <sje@cup.hp.com>
17622
17623 PR target/46997
17624 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
17625 (a64_expand_widen_sum): Ditto.
17626 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
17627 (vec_extract_evenodd_help): Ditto.
17628 (vec_extract_evenv4hi): Ditto.
17629 (vec_extract_oddv4hi): Ditto.
17630 (vec_extract_evenv2si): Ditto.
17631 (vec_extract_oddv2si): Ditto.
17632 (vec_extract_evenv2sf): Ditto.
17633 (vec_extract_oddv2sf): Ditto.
17634 (vec_pack_trunc_v4hi: Ditto.
17635 (vec_pack_trunc_v2si): Ditto.
17636 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
17637 (vec_interleave_highv8qi): Ditto.
17638 (mix1_r): Ditto.
17639 (vec_extract_oddv8qi): Ditto.
17640 (vec_interleave_lowv4hi): Ditto.
17641 (vec_interleave_highv4hi): Ditto.
17642 (vec_interleave_lowv2si): Ditto.
17643 (vec_interleave_highv2si): Ditto.
17644
17645 2011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17646
17647 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
17648 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
17649 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
17650 (pa_c_mode_for_suffix): New.
17651 (TARGET_EXPAND_BUILTIN): Define.
17652 (TARGET_C_MODE_FOR_SUFFIX): Define.
17653 (pa_builtins): Define.
17654 (pa_init_builtins): Register __float128 type and init new support
17655 builtins.
17656 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
17657 * config/pa/quadlib.c (_U_Qfcopysign): New.
17658
17659 2011-01-18 Eric Botcazou <ebotcazou@adacore.com>
17660
17661 PR middle-end/46894
17662 * explow.c (allocate_dynamic_stack_space): Do not assume more than
17663 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
17664 are defined.
17665
17666 2011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17667
17668 PR tree-optimization/47179
17669 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
17670 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
17671
17672 2011-01-18 Richard Guenther <rguenther@suse.de>
17673
17674 PR rtl-optimization/47216
17675 * emit-rtl.c: Include tree-flow.h.
17676 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
17677 of replicating it with different semantics.
17678 * Makefile.in (emit-rtl.o): Adjust.
17679
17680 2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17681
17682 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
17683 (cortex_a9_dp): Handle neon types correctly.
17684
17685 2011-01-18 Jakub Jelinek <jakub@redhat.com>
17686
17687 PR rtl-optimization/47299
17688 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
17689 subtarget. Use normal multiplication if both operands are constants.
17690 * expmed.c (expand_widening_mult): Don't try to optimize constant
17691 multiplication if op0 has VOIDmode. Convert op1 constant to mode
17692 before using it.
17693
17694 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17695
17696 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
17697 spacing after 'e.g.', typos, comma, hyphenation.
17698
17699 2011-01-17 Richard Henderson <rth@redhat.com>
17700
17701 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
17702 (rx_restricted_mem_operand): New.
17703 (rx_shift_operand): Use register_operand.
17704 (rx_source_operand, rx_compare_operand): Likewise.
17705 * config/rx/rx.md (addsi3_flags): New expander.
17706 (adddi3): Rewrite as expander.
17707 (adc_internal, *adc_flags, adddi3_internal): New patterns.
17708 (subsi3_flags): New expander.
17709 (subdi3): Rewrite as expander.
17710 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
17711
17712 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
17713 (rx_init_builtins): Remove sat builtin.
17714 (rx_expand_builtin): Likewise.
17715 * config/rx/rx.md (ssaddsi3): New.
17716 (*sat): Rename from sat. Represent the CC_REG input.
17717
17718 * config/rx/predicates.md (rshift_operator): New.
17719 * config/rx/rx.c (rx_expand_insv): Remove.
17720 * config/rx/rx-protos.h: Update.
17721 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
17722 operand to the canonical position.
17723 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
17724 (*bitclr, *bitclr_in_memory): Similarly.
17725 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
17726 (insv): Retain the zero_extract in the expansion.
17727
17728 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
17729 (bswaphi2, bitinvert, revw): Likewise.
17730
17731 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
17732 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
17733 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
17734 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
17735 (bitset, bitset_in_memory): Likewise.
17736 (bitinvert, bitinvert_in_memory): Likewise.
17737 (bitclr, bitclr_in_memory): Likewise.
17738 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
17739 (rx_strend, rx_cmpstrn): Likewise.
17740 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
17741 (bitop peep2 patterns): Remove.
17742
17743 * config/rx/rx.c (rx_match_ccmode): New.
17744 * config/rx/rx-protos.h: Update.
17745 * config/rx/rx.md (abssi2): Clobber, don't set flags.
17746 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
17747 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
17748 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
17749 (fix_truncsfsi2, floatsisf2): Likewise.
17750 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
17751 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
17752 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
17753 (*subsi3_flags, *xorsi3_flags): New.
17754
17755 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
17756
17757 * config/rx/rx.c (rx_print_operand): Remove workaround for
17758 unsplit comparison operations.
17759
17760 * config/rx/rx.md (movsicc): Split after reload.
17761 (*movsicc): Merge *movsieq and *movsine via match_operator.
17762 (*stcc): New pattern.
17763
17764 * config/rx/rx.c (rx_float_compare_mode): Remove.
17765 * config/rx/rx.h (rx_float_compare_mode): Remove.
17766 * config/rx/rx.md (cstoresi4): Split after reload.
17767 (*sccc): New pattern.
17768
17769 * config/rx/predicates.md (label_ref_operand): New.
17770 (rx_z_comparison_operator): New.
17771 (rx_zs_comparison_operator): New.
17772 (rx_fp_comparison_operator): New.
17773 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
17774 Validate that the flags are set properly for the comparison.
17775 (rx_gen_cond_branch_template): Remove.
17776 (rx_cc_modes_compatible): Remove.
17777 (mode_from_flags): New.
17778 (flags_from_code): Rename from flags_needed_for_conditional.
17779 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
17780 (rx_select_cc_mode): Likewise.
17781 (rx_split_fp_compare): New.
17782 (rx_split_cbranch): New.
17783 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
17784 (*cbranchsi4): Use match_operator and rx_split_cbranch.
17785 (*cbranchsf4): Similarly.
17786 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
17787 match_operator and rx_split_cbranch.
17788 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
17789 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
17790 (*cmpsi): Rename from cmpsi.
17791 (*tstsi): Rename from tstsi.
17792 (*cmpsf): Rename from cmpsf; use CC_Fmode.
17793 (*conditional_branch): Rename from conditional_branch.
17794 (*reveresed_conditional_branch): Remove.
17795 (b<code>): Remove expander.
17796 * config/rx/rx-protos.h: Update.
17797
17798 * config/rx/rx.c (rx_compare_redundant): Remove.
17799 * config/rx/rx.md (cmpsi): Don't use it.
17800 * config/rx/rx-protos.h: Update.
17801
17802 * config/rx/rx-modes.def (CC_F): New mode.
17803 * config/rx/rx.c (rx_select_cc_mode): New.
17804 * config/rx/rx.h (SELECT_CC_MODE): Use it.
17805 * config/rx/rx-protos.h: Update.
17806
17807 2011-01-17 Richard Henderson <rth@redhat.com>
17808
17809 * except.c (dump_eh_tree): Fix stray ; after for statement.
17810
17811 2011-01-17 Richard Guenther <rguenther@suse.de>
17812
17813 PR tree-optimization/47313
17814 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
17815 handling before copying the body. Properly deal with
17816 by-reference result in SSA form.
17817
17818 2011-01-17 Ian Lance Taylor <iant@google.com>
17819
17820 PR target/47219
17821 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
17822 (struct_value_alias_set): Don't define.
17823 (sparc_option_override): Don't set sparc_sr_alias_set and
17824 struct_value_alias_set.
17825 (save_or_restore_regs): Use gen_frame_mem rather than calling
17826 set_mem_alias_set.
17827 (sparc_struct_value_rtx): Likewise.
17828
17829 2011-01-17 H.J. Lu <hongjiu.lu@intel.com>
17830
17831 PR target/47318
17832 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
17833 (_mm_maskstore_pd): Likewise.
17834 (_mm_maskload_ps): Likewise.
17835 (_mm_maskstore_ps): Likewise.
17836 (_mm256_maskload_pd): Change mask to __m256i.
17837 (_mm256_maskstore_pd): Likewise.
17838 (_mm256_maskload_ps): Likewise.
17839 (_mm256_maskstore_ps): Likewise.
17840
17841 * config/i386/i386-builtin-types.def: Updated.
17842 (ix86_expand_special_args_builtin): Likewise.
17843
17844 * config/i386/i386.c (bdesc_special_args): Update
17845 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
17846 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
17847 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
17848 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
17849
17850 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
17851 Use <avxpermvecmode> on mask register.
17852 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
17853
17854 2011-01-17 Olivier Hainque <hainque@adacore.com>
17855 Michael Haubenwallner <michael.haubenwallner@salomon.at>
17856 Eric Botcazou <ebotcazou@adacore.com>
17857
17858 PR target/46655
17859 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
17860 if <= USHRT_MAX in 32-bit mode.
17861
17862 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17863
17864 * doc/install.texi (Configuration, Specific): Wrap long
17865 lines in examples. Allow line wrapping in long options
17866 and URLs where beneficial for PDF output.
17867
17868 2011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
17869
17870 * config/mips/mips.c (mips_classify_symbol): Don't return
17871 SYMBOL_PC_RELATIVE for nonlocal labels.
17872
17873 2011-01-15 Eric Botcazou <ebotcazou@adacore.com>
17874
17875 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
17876
17877 2011-01-15 Jan Hubicka <jh@suse.cz>
17878
17879 PR tree-optimization/47276
17880 * ipa.c (function_and_variable_visibility): Do not try to mark alias
17881 declarations as needed.
17882
17883 2011-01-15 Martin Jambor <mjambor@suse.cz>
17884
17885 * common.opt (fdevirtualize): New flag.
17886 * doc/invoke.texi (Option Summary): Document it.
17887 * opts.c (default_options_table): Add devirtualize flag.
17888 * ipa-prop.c (detect_type_change): Return immediately if
17889 devirtualize flag is not set.
17890 (detect_type_change_ssa): Likewise.
17891 (compute_known_type_jump_func): Likewise.
17892 (ipa_analyze_virtual_call_uses): Likewise.
17893
17894 2011-01-14 Martin Jambor <mjambor@suse.cz>
17895
17896 PR tree-optimization/45934
17897 PR tree-optimization/46302
17898 * ipa-prop.c (type_change_info): New type.
17899 (stmt_may_be_vtbl_ptr_store): New function.
17900 (check_stmt_for_type_change): Likewise.
17901 (detect_type_change): Likewise.
17902 (detect_type_change_ssa): Likewise.
17903 (compute_complex_assign_jump_func): Check for dynamic type change.
17904 (compute_complex_ancestor_jump_func): Likewise.
17905 (compute_known_type_jump_func): Likewise.
17906 (compute_scalar_jump_functions): Likewise.
17907 (ipa_analyze_virtual_call_uses): Likewise.
17908 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
17909
17910 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17911
17912 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
17913 * config/i386/i386.opt (msse5): New Alias.
17914
17915 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17916
17917 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
17918 * config/sparc/linux64.h (CC1_SPEC): Likewise.
17919 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
17920 * config/sparc/sparc.h (CC1_SPEC): Likewise.
17921
17922 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17923
17924 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
17925 -mcpu options.
17926 * config/sparc/linux64.h (CC1_SPEC): Likewise.
17927 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
17928 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
17929 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
17930 Likewise.
17931 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
17932
17933 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17934
17935 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
17936
17937 2011-01-14 Mike Stump <mikestump@comcast.net>
17938
17939 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
17940 * config/fr30/fr30.md: Likweise
17941 (movsi_push): Likewise.
17942 (movsi_pop): Likewise.
17943 (enter_func): Likewise.
17944 * config/moxie/moxie.md (movsi_push): Likewise.
17945 (movsi_pop): Likewise.
17946
17947 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17948
17949 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
17950 %{no_archive} %{exact_version}.
17951 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
17952 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
17953 %{no_archive} %{exact_version}.
17954 * config/mips/openbsd.h (LINK_SPEC): Likewise.
17955 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
17956 * config/mips/vxworks.h: Likewise.
17957
17958 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17959
17960 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
17961
17962 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17963
17964 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
17965 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
17966
17967 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17968
17969 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
17970 -nodefaultlib.
17971
17972 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17973
17974 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
17975 for mcpu not cpu.
17976 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
17977 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
17978 not cpu.
17979 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
17980 Don't handle -shlib.
17981
17982 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17983
17984 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
17985 (CC1_SPEC): Don't handle -profile.
17986
17987 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17988
17989 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
17990 * config/mips/mips.h (CC1_SPEC): Likewise.
17991
17992 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17993
17994 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
17995 * config/mips/mips.h (CC1_SPEC): Likewise.
17996
17997 2011-01-14 Joseph Myers <joseph@codesourcery.com>
17998
17999 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
18000 * config/m32r/linux.h (LINK_SPEC): Likewise.
18001 * config/mips/linux.h (LINK_SPEC): Likewise.
18002 * config/mips/linux64.h (LINK_SPEC): Likewise.
18003 * config/sparc/linux.h (LINK_SPEC): Likewise.
18004 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
18005 LINK_SPEC): Likewise.
18006 * config/xtensa/linux.h (LINK_SPEC): Likewise.
18007
18008 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18009
18010 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
18011 %{version:-v}.
18012 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
18013
18014 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18015
18016 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
18017 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
18018
18019 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18020
18021 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
18022
18023 2011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18024
18025 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
18026 supports -Bstatic/-Bdynamic.
18027 * configure: Regenerate.
18028
18029 2011-01-14 Jan Hubicka <jh@suse.cz>
18030 Jack Howarth <howarth@bromo.med.uc.edu>
18031
18032 PR target/46037
18033 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
18034 when checking debug_info_level. Test write_symbols instead of
18035 debug_hooks->var_location when setting flag_var_tracking_uninit.
18036
18037 2011-01-14 Richard Guenther <rguenther@suse.de>
18038
18039 PR tree-optimization/47179
18040 * target.def (ref_may_alias_errno): New target hook.
18041 * targhooks.h (default_ref_may_alias_errno): Declare.
18042 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
18043 (default_ref_may_alias_errno): New function.
18044 * target.h (struct ao_ref_s): Declare.
18045 * tree-ssa-alias.c: Include target.h.
18046 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
18047 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
18048 (targhooks.o): Likewise.
18049 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
18050 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
18051
18052 2011-01-14 Richard Guenther <rguenther@suse.de>
18053
18054 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
18055
18056 2011-01-14 Richard Guenther <rguenther@suse.de>
18057
18058 PR tree-optimization/47280
18059 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
18060 return CFG changes.
18061 (tree_ssa_forward_propagate_single_use_vars): Deal with
18062 CFG changes from associate_plusminus.
18063
18064 2011-01-14 Richard Guenther <rguenther@suse.de>
18065
18066 PR middle-end/47281
18067 Revert
18068 2011-01-11 Richard Guenther <rguenther@suse.de>
18069
18070 PR tree-optimization/46076
18071 * tree-ssa.c (useless_type_conversion_p): Conversions from
18072 unprototyped to empty argument list function types are useless.
18073
18074 2011-01-14 Richard Guenther <rguenther@suse.de>
18075
18076 PR tree-optimization/47286
18077 * tree-ssa-structalias.c (new_var_info): Register variables are global.
18078
18079 2011-01-14 Martin Jambor <mjambor@suse.cz>
18080
18081 PR middle-end/46823
18082 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
18083
18084 2011-01-13 Anatoly Sokolov <aesok@post.ru>
18085
18086 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
18087 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
18088 * config/xtensa/xtensa.c (xtensa_libcall_value,
18089 xtensa_function_value_regno_p): New functions.
18090 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
18091
18092 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
18093
18094 PR c++/47213
18095 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
18096 PE specific hook.
18097 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
18098 New function prototype.
18099 * config/i386/winnt.c (i386_pe_assemble_visibility):
18100 Warn only if attribute was specified by user.
18101
18102 2011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
18103
18104 PR target/47251
18105 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
18106 floating point.
18107 (floatunsdidf2_fcfidu): Ditto.
18108
18109 2011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18110
18111 * config/s390/s390.c (print_operand_address): Replace 'error' with
18112 'output_operand_lossage'.
18113 (print_operand): Likewise.
18114
18115 2011-01-13 Jeff Law <law@redhat.com>
18116
18117 PR rtl-optimization/39077
18118 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
18119 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
18120 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
18121 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
18122 * gcse.c (prune_insertions_deletions): New function.
18123 (compute_pre_data): Use it.
18124
18125 2011-01-13 Dodji Seketeli <dodji@redhat.com>
18126
18127 PR debug/PR46973
18128 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
18129 static function.
18130 (prune_unused_types_mark): Use it.
18131
18132 2011-01-13 Andrey Belevantsev <abel@ispras.ru>
18133
18134 PR rtl-optimization/45352
18135 * sel-sched.c: Update copyright years.
18136 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
18137 in the advancing loop when we have issued issue_rate insns.
18138
18139 2011-01-12 Richard Henderson <rth@redhat.com>
18140
18141 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
18142 (TARGET_MD_ASM_CLOBBERS): New.
18143
18144 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
18145 (TARGET_DELEGITIMIZE_ADDRESS): New.
18146
18147 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
18148 (clzsi2, *bsch): New patterns.
18149
18150 * config/mn10300/mn10300.md (INT): New mode iterator.
18151 (*mov<INT>_clr): New pattern, and peep2 to generate it.
18152
18153 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
18154 flag_split_wide_types.
18155
18156 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
18157 (mn10300_trampoline_init): Rewrite without a template, an immediate
18158 load and a direct branch.
18159 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
18160
18161 2011-01-12 Anatoly Sokolov <aesok@post.ru>
18162
18163 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18164 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
18165 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
18166 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18167
18168 2011-01-12 Kai Tietz <kai.tietz@onevision.com>
18169
18170 PR debug/47209
18171 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
18172 of type.
18173
18174 2011-01-12 Jan Hubicka <jh@suse.cz>
18175
18176 PR driver/47244
18177 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
18178 (PLUGIN_COND_CLOSE): New macro.
18179 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
18180
18181 2011-01-12 Richard Guenther <rguenther@suse.de>
18182
18183 PR lto/47259
18184 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
18185 register variables in a MEM_REF.
18186
18187 2011-01-12 Joseph Myers <joseph@codesourcery.com>
18188
18189 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
18190 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
18191 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
18192 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
18193 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
18194 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
18195 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
18196 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
18197 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
18198 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
18199 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
18200 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
18201 * config/gnu-user.h: New. Copied from linux.h.
18202 (LINUX_TARGET_STARTFILE_SPEC): Rename to
18203 GNU_USER_TARGET_STARTFILE_SPEC.
18204 (LINUX_TARGET_ENDFILE_SPEC): Rename to
18205 GNU_USER_TARGET_ENDFILE_SPEC.
18206 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
18207 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
18208 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
18209 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
18210 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
18211 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
18212 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
18213 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
18214 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
18215 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
18216 * config/arm/linux-eabi.h (CC1_SPEC): Use
18217 GNU_USER_TARGET_CC1_SPEC.
18218 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
18219 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
18220 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
18221 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
18222 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
18223 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
18224 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
18225 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
18226
18227 2011-01-12 Richard Guenther <rguenther@suse.de>
18228
18229 PR other/46946
18230 * doc/invoke.texi (ffast-math): Document it is turned on
18231 with -Ofast.
18232
18233 2011-01-12 Jan Hubicka <jh@suse.cz>
18234
18235 PR tree-optimization/47233
18236 * opts.c (common_handle_option): Disable ipa-reference with profile
18237 feedback.
18238
18239 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
18240
18241 * c-parser.c (c_parser_objc_at_property_declaration): Improved
18242 error message.
18243
18244 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
18245
18246 * c-parser.c (c_lex_one_token): Updated and reindented some
18247 comments. No changes in code.
18248
18249 2011-01-11 Ian Lance Taylor <iant@google.com>
18250
18251 * godump.c (go_output_var): Don't output the variable if there is
18252 already a type with the same name.
18253
18254 2011-01-11 Ian Lance Taylor <iant@google.com>
18255
18256 * godump.c (go_format_type): Don't generate float80.
18257
18258 2011-01-11 Richard Henderson <rth@redhat.com>
18259
18260 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
18261 declaration. Rewrite for both speed and size.
18262 (mn10300_address_cost_1): Remove.
18263 (mn10300_register_move_cost): New.
18264 (mn10300_memory_move_cost): New.
18265 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
18266 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
18267 extensions, shifts, BSWAP, CLZ.
18268 (mn10300_wide_const_load_uses_clr): Remove.
18269 (TARGET_REGISTER_MOVE_COST): New.
18270 (TARGET_MEMORY_MOVE_COST): New.
18271 * config/mn10300/mn10300-protos.h: Update.
18272 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
18273
18274 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
18275 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
18276 * config/mn10300/mn10300-protos.h: Update.
18277 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
18278 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
18279 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
18280 (*test_int_bitfield, *test_byte_bitfield): Remove.
18281 (*bit_test, *subreg_bit_test): Remove.
18282 * config/mn10300/predicates.md (const_8bit_operand): Remove.
18283
18284 * config/mn10300/constraints.md ("c"): Rename from "A".
18285 ("A", "D"): New constraint letters.
18286 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
18287 (fmssf4, fnmasf4, fnmssf4): Likewise.
18288
18289 * config/mn10300/mn10300.md (isa): New attribute.
18290 (enabled): New attribute.
18291
18292 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
18293 (abssf2, negsf2): Define only for hardware fp.
18294 (sqrtsf2): Reformat.
18295 (addsf3, subsf3, mulsf3): Merge expander and insn.
18296
18297 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
18298 (DEBUGGER_AUTO_OFFSET): Remove.
18299 (DEBUGGER_ARG_OFFSET): Remove.
18300
18301 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
18302 Emit register stores with the same offsets as the hardware.
18303 (mn10300_store_multiple_operation): Don't check that the register
18304 save offsets are monotonic.
18305 * config/mn10300/mn10300-protos.h: Update.
18306
18307 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
18308
18309 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
18310 in terms of the value on the stack, not the MDR register.
18311
18312 2011-01-11 Jan Hubicka <jh@suse.cz>
18313
18314 PR lto/45721
18315 PR lto/45375
18316 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
18317 (symbol_alias_set_destroy, symbol_alias_set_contains,
18318 propagate_aliases_backward): Declare.
18319 * lto-streamer-out.c (struct sets): New sturcture.
18320 (trivally_defined_alias): New function.
18321 (output_alias_pair_p): Rewrite.
18322 (output_unreferenced_globals): Fix output of alias pairs.
18323 (produce_symtab): Likewise.
18324 * ipa.c (function_and_variable_visibility): Set weak alias destination
18325 as needed in lto.
18326 * varasm.c (symbol_alias_set_t): Remove.
18327 (symbol_alias_set_destroy): Export.
18328 (propagate_aliases_forward, propagate_aliases_backward): New functions
18329 based on ...
18330 (compute_visible_aliases): ... this one; remove.
18331 (trivially_visible_alias): New
18332 (trivially_defined_alias): New.
18333 (remove_unreachable_alias_pairs): Rewrite.
18334 (finish_aliases_1): Reorganize code checking if alias is defined.
18335 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
18336 in LTO mode.
18337
18338 2011-01-11 Richard Guenther <rguenther@suse.de>
18339
18340 PR tree-optimization/46076
18341 * tree-ssa.c (useless_type_conversion_p): Conversions from
18342 unprototyped to empty argument list function types are useless.
18343
18344 2011-01-11 Richard Guenther <rguenther@suse.de>
18345
18346 PR middle-end/45235
18347 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
18348 volatile MEMs as MEM_READONLY_P.
18349
18350 2011-01-11 Richard Guenther <rguenther@suse.de>
18351
18352 PR tree-optimization/47239
18353 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
18354
18355 2011-01-11 Jeff Law <law@redhat.com>
18356
18357 PR tree-optimization/47086
18358 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
18359 IVs from statements that might throw.
18360
18361 2011-01-10 Jan Hubicka <jh@suse.cz>
18362
18363 PR lto/45375
18364 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
18365
18366 2011-01-10 Jan Hubicka <jh@suse.cz>
18367
18368 PR lto/45375
18369 * profile.c (read_profile_edge_counts): Ignore profile inconistency
18370 when correcting profile.
18371
18372 2011-01-10 Jan Hubicka <jh@suse.cz>
18373
18374 PR lto/46083
18375 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
18376 DECL_FINI_PRIORITY.
18377 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
18378 Restore DECL_FINI_PRIORITY.
18379
18380 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18381
18382 * doc/gimple.texi: Fix quoting of multi-word return values in
18383 @deftypefn statements. Ensure presence of return value. Wrap
18384 overlong @deftypefn lines.
18385 (is_gimple_operand, is_gimple_min_invariant_address): Remove
18386 descriptions of removed functions.
18387 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
18388 of multi-word return value in @deftypefn statement.
18389
18390 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18391
18392 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
18393 (Conditional Expressions, Logical Operators)
18394 (Statement and operand traversals): Do not indent smallexample
18395 code. Fix duplicate function argument in example.
18396
18397 2011-01-10 Jeff Law <law@redhat.com>
18398
18399 PR tree-optimization/47141
18400 * ipa-split.c (split_function): Handle case where we are
18401 returning a value and the return block has a virtual operand phi.
18402
18403 2011-01-10 Jan Hubicka <jh@suse.cz>
18404
18405 PR tree-optimization/47234
18406 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
18407 (pass_feedback_split_functions): Declare.
18408 * passes.c (init_optimization_passes): Add ipa-split as subpass of
18409 tree-profile.
18410 * ipa-split.c (gate_split_functions): Update comments; disable
18411 split-functions for profile_arc_flag and branch_probabilities.
18412 (gate_feedback_split_functions): New function.
18413 (execute_feedback_split_functions): New function.
18414 (pass_feedback_split_functions): New global var.
18415
18416 2011-01-10 H.J. Lu <hongjiu.lu@intel.com>
18417
18418 PR lto/46760
18419 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
18420 calling gimple_call_set_cannot_inline.
18421
18422 2011-01-10 Iain Sandoe <iains@gcc.gnu.org>
18423
18424 * config/darwin-sections.def: Remove unused section.
18425
18426 2011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
18427
18428 PR c++/47218
18429 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
18430
18431 2011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
18432
18433 PR objc/47232
18434 * c-parser.c (c_parser_declaration_or_fndef): Improved
18435 error message.
18436
18437 2011-01-09 Kai Tietz <kai.tietz@onevision.com>
18438
18439 * config/i386/winnt.c (i386_pe_start_function): Make sure
18440 to switch back to function's section.
18441
18442 2011-01-09 Iain Sandoe <iains@gcc.gnu.org>
18443
18444 PR gcc/46902
18445 PR testsuite/46912
18446 * plugin.c: Move include of dlfcn.h from here...
18447 * system.h: ... to here.
18448
18449 2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18450
18451 * doc/cpp.texi (C++ Named Operators): Fix markup for header
18452 file name.
18453 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
18454 two extra empty pages in PDF output.
18455
18456 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
18457
18458 PR objc/47078
18459 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
18460 for error recovery purposes behave as if it was not specified so
18461 that the default type is usd.
18462
18463 2011-01-07 Jan Hubicka <jh@suse.cz>
18464
18465 PR tree-optmization/46469
18466 * ipa.c (function_and_variable_visibility): Clear needed flags on
18467 nodes with external decls; handle weakrefs merging correctly.
18468
18469 2011-01-07 Joseph Myers <joseph@codesourcery.com>
18470
18471 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
18472 not false.
18473
18474 2011-01-07 Jan Hubicka <jh@suse.cz>
18475
18476 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
18477 and no longer claim that gold is required for linker plugin.
18478 * configure: Regenerate.
18479 * gcc.c (PLUGIN_COND): New macro.
18480 (LINK_COMMAND_SPEC): Use it.
18481 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
18482 * config.in (HAVE_LTO_PLUGIN): New.
18483 * configure.ac (--with-lto-plugin): New parameter; autodetect
18484 HAVE_LTO_PLUGIN.
18485
18486 2011-01-07 Jan Hubicka <jh@suse.cz>
18487
18488 PR tree-optimization/46367
18489 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
18490 when we can update original.
18491 (cgraph_mark_inline_edge): Sanity check.
18492 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
18493
18494 2011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18495
18496 * config/spu/spu.h (ASM_COMMENT_START): Define.
18497
18498 2011-01-07 H.J. Lu <hongjiu.lu@intel.com>
18499
18500 PR driver/42445
18501 * gcc.c (%>S): New.
18502 (SWITCH_KEEP_FOR_GCC): Likewise.
18503 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
18504 (do_spec_1): Handle "%>".
18505
18506 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
18507
18508 2011-01-07 Jakub Jelinek <jakub@redhat.com>
18509
18510 PR target/47201
18511 * config/i386/i386.c (ix86_delegitimize_address): If
18512 simplify_gen_subreg fails, return orig_x.
18513
18514 PR bootstrap/47187
18515 * value-prof.c (gimple_stringop_fixed_value): Handle
18516 lhs of the call properly.
18517
18518 2011-01-07 Jan Hubicka <jh@suse.cz>
18519
18520 PR lto/45375
18521 * lto-opt.c (lto_reissue_options): Set flag_shlib.
18522
18523 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
18524
18525 * target.def (function_switched_text_sections): New hook.
18526 * doc/tm.texi: Regenerated.
18527 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
18528 * final.c (default_function_switched_text_sections): New.
18529 (final_scan_insn): Call function_switched_text_sections when a
18530 mid-function section change occurs.
18531 * output.h (default_function_switched_text_sections): Declare.
18532 * config/darwin-protos.h (darwin_function_switched_text_sections):
18533 Likewise.
18534 * config/darwin.c (darwin_function_switched_text_sections): New.
18535 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
18536
18537 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
18538
18539 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
18540 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
18541 the secondary code fragment when outputting for DWARF == 2.
18542
18543 2011-01-07 Anatoly Sokolov <aesok@post.ru>
18544
18545 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18546 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
18547 Remove.
18548 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
18549 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18550
18551 2011-01-06 Eric Botcazou <ebotcazou@adacore.com>
18552
18553 PR debug/46704
18554 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
18555 when it is not empty.
18556
18557 2011-01-06 Changpeng Fang <changpeng.fang@amd.com>
18558
18559 Bobcat Enablement
18560 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
18561 (case ${target}): Add btver1.
18562 * config/i386/driver-i386.c (host_detect_local_cpu): Let
18563 -march=native recognize btver1 processors.
18564 * config/i386/i386-c.c (ix86_target_macros_internal): Add
18565 btver1 def_and_undef
18566 * config/i386/i386.c (struct processor_costs btver1_cost): New
18567 btver1 cost table.
18568 (m_BTVER1): New definition.
18569 (m_AMD_MULTIPLE): Includes m_BTVER1.
18570 (initial_ix86_tune_features): Add btver1 tune.
18571 (processor_target_table): Add btver1 entry.
18572 (static const char *const cpu_names): Add btver1 entry.
18573 (software_prefetching_beneficial_p): Add btver1.
18574 (ix86_option_override_internal): Add btver1 instruction sets.
18575 (ix86_issue_rate): Add btver1.
18576 (ix86_adjust_cost): Add btver1.
18577 * config/i386/i386.h (TARGET_BTVER1): New definition.
18578 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
18579 (enum processor_type): Add PROCESSOR_BTVER1.
18580 * config/i386/i386.md (define_attr "cpu"): Add btver1.
18581
18582 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18583
18584 PR target/43309
18585 * config/i386/i386.c (legitimize_tls_address)
18586 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
18587 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
18588 (tls_initial_exec_64_sun): New pattern.
18589
18590 2011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
18591
18592 * doc/invoke.texi (Overall Options): Improve wording and markup
18593 of the description of -wrapper.
18594
18595 2011-01-06 Joseph Myers <joseph@codesourcery.com>
18596
18597 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
18598 rdynamic, threads): New Driver options.
18599
18600 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18601
18602 PR target/38118
18603 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
18604 if coming from .tdata.
18605 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
18606
18607 2011-01-06 Jan Hubicka <jh@suse.cz>
18608
18609 PR lto/47188
18610 * collect2.c (main): Do not enable LTOmode when plugin is active.
18611
18612 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18613
18614 PR other/45915
18615 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
18616 --version output if supported.
18617 * configure: Regenerate.
18618
18619 2011-01-06 Joseph Myers <joseph@codesourcery.com>
18620
18621 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
18622 Driver options.
18623
18624 2011-01-06 Jakub Jelinek <jakub@redhat.com>
18625
18626 PR c/47150
18627 * c-convert.c (convert): When converting a complex expression
18628 other than COMPLEX_EXPR to a different complex type, ensure
18629 c_save_expr is called instead of save_expr, unless in_late_binary_op.
18630 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
18631 when converting COMPLEX_TYPE.
18632
18633 2011-01-06 Ira Rosen <irar@il.ibm.com>
18634
18635 PR tree-optimization/47139
18636 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
18637 only the last reduction value is used outside the loop. Update
18638 documentation.
18639
18640 2011-01-05 Joseph Myers <joseph@codesourcery.com>
18641
18642 * config/rtems.opt: New.
18643 * config.gcc (*-*-rtems*): Use rtems.opt.
18644
18645 2011-01-05 Changpeng Fang <changpeng.fang@amd.com>
18646
18647 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
18648 processors do not support 3DNow instructions.
18649
18650 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18651
18652 * config/spu/spu.c (spu_option_override): Set parameter
18653 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
18654
18655 2011-01-05 Jan Hubicka <jh@suse.cz>
18656
18657 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
18658 at the command line.
18659
18660 2011-01-05 Martin Jambor <mjambor@suse.cz>
18661
18662 PR lto/47162
18663 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
18664 deltas on streamed outgoing edges.
18665 (output_node_opt_summary): Output info for outgoing edges only when
18666 the node is in new parameter set.
18667 (output_cgraph_opt_summary): New parameter set, passed to the two
18668 aforementioned functions. Update its forward declaration and its
18669 callee too.
18670
18671 2011-01-05 Tom Tromey <tromey@redhat.com>
18672
18673 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
18674 operator to c_finish_omp_atomic.
18675 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
18676 (build_unary_op): Update.
18677 (build_modify_expr): Update.
18678 (build_asm_expr): Update.
18679
18680 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18681
18682 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
18683 newly inserted insns.
18684 (pad_bb): Likewise.
18685 (spu_emit_branch_hint): Likewise.
18686 (insert_hbrp_for_ilb_runout): Likewise.
18687 (spu_machine_dependent_reorg): Call df_finish_pass after
18688 schedule_insns returns.
18689
18690 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18691
18692 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
18693
18694 2011-01-05 Eric Botcazou <ebotcazou@adacore.com>
18695
18696 PR tree-optimization/47005
18697 * tree-sra.c (struct access): Add 'non_addressable' bit.
18698 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
18699 (decide_one_param_reduction): Return 0 if the parameter is passed by
18700 reference and one of the accesses in the group is non_addressable.
18701
18702 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
18703
18704 PR tree-optimization/47056
18705 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
18706 (mark_load): Likewise. Handle FUNCTION_DECL specially.
18707 (mark_store): Likewise. Pass STMT to ipa_record_reference.
18708
18709 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
18710
18711 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
18712 initializer. Skip view conversions from aggregate types.
18713
18714 2011-01-04 Kai Tietz <kai.tietz@onevision.com>
18715
18716 PR bootstrap/47055
18717 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
18718
18719 2011-01-04 Philipp Thomas <pth@suse.de>
18720
18721 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
18722 obvious typo.
18723
18724 2011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18725
18726 * function.c (thread_prologue_and_epilogue_insns): Do not crash
18727 on empty epilogue sequences.
18728
18729 2011-01-04 Joseph Myers <joseph@codesourcery.com>
18730
18731 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
18732 non-static): New Driver options.
18733
18734 2011-01-04 Jie Zhang <jie@codesourcery.com>
18735
18736 PR driver/47137
18737 * gcc.c (default_compilers[]): Set combinable field to 0
18738 for all assembly languages.
18739
18740 2011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
18741
18742 * config/mips/loongson3a.md: New file.
18743 * config/mips/mips.md: Include loongson3a.md.
18744 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
18745 TUNE_LOONGSON_3A.
18746
18747 2011-01-03 Eric Botcazou <ebotcazou@adacore.com>
18748
18749 PR middle-end/47017
18750 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
18751 instead of convert_memory_address_addr_space on the base expression.
18752
18753 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18754
18755 * config/spu/spu.c (spu_option_override): Update error text
18756 for bad -march= / -mtune= values.
18757
18758 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18759
18760 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
18761 if branch-hint optimization will be performed.
18762
18763 2011-01-03 Jakub Jelinek <jakub@redhat.com>
18764
18765 PR tree-optimization/47148
18766 * ipa-split.c (split_function): Convert arguments to
18767 DECL_ARG_TYPE if possible.
18768
18769 PR tree-optimization/47155
18770 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
18771 when computing uns.
18772
18773 PR rtl-optimization/47157
18774 * combine.c (try_combine): If undobuf.other_insn becomes
18775 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
18776 and set *new_direct_jump_p too.
18777
18778 2011-01-03 Sebastian Pop <sebastian.pop@amd.com>
18779
18780 PR tree-optimization/47021
18781 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
18782
18783 2011-01-03 Jakub Jelinek <jakub@redhat.com>
18784
18785 * gcc.c (process_command): Update copyright notice dates.
18786 * gcov.c (print_version): Likewise.
18787 * gcov-dump.c (print_version): Likewise.
18788 * mips-tfile.c (main): Likewise.
18789 * mips-tdump.c (main): Likewise.
18790
18791 2011-01-03 Martin Jambor <mjambor@suse.cz>
18792
18793 PR tree-optimization/46801
18794 * tree-sra.c (type_internals_preclude_sra_p): Check whether
18795 aggregate fields start at byte boundary instead of the bit-field flag.
18796
18797 2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
18798
18799 PR driver/47137
18800 * gcc.c (main): Revert revision 168407.
18801
18802 2011-01-03 Martin Jambor <mjambor@suse.cz>
18803
18804 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
18805
18806 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18807
18808 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
18809 vector optab to expand vector/scalar shift, update gimple to vector.
18810
18811 2011-01-03 Martin Jambor <mjambor@suse.cz>
18812
18813 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
18814 a thunk.
18815
18816 2011-01-03 Martin Jambor <mjambor@suse.cz>
18817
18818 PR tree-optimization/46984
18819 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
18820 HOST_WIDE_INT.
18821 (cgraph_create_indirect_edge): Fixed line length.
18822 (cgraph_indirect_call_info): Declare.
18823 (cgraph_make_edge_direct) Update declaration.
18824 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
18825 (cgraph_create_indirect_edge): Use it.
18826 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
18827 callees.
18828 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
18829 the new thunk_delta representation.
18830 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
18831 HOST_WIDE_INT.
18832 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
18833 (ipa_read_indirect_edge_info): Likewise.
18834 * lto-cgraph.c (output_edge_opt_summary): New function.
18835 (output_node_opt_summary): Call it on all outgoing edges.
18836 (input_edge_opt_summary): New function.
18837 (input_node_opt_summary): Call it on all outgoing edges.
18838
18839 2011-01-02 H.J. Lu <hongjiu.lu@intel.com>
18840
18841 PR driver/47137
18842 * gcc.c (main): Don't check have_o when settting combine_inputs.
18843
18844 2011-01-02 Eric Botcazou <ebotcazou@adacore.com>
18845
18846 * regrename.c: Add general comment describing the pass.
18847 (struct du_head): Remove 'length' field.
18848 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
18849 (regrename_optimize): Do not sort chains. Rework comments, add others.
18850 Force renaming to the preferred class (if any) in the first pass and do
18851 not consider registers that belong to it in the second pass.
18852 (create_new_chain): Do not set 'length' field.
18853 (scan_rtx_reg): Likewise.
18854
18855 2011-01-02 Jakub Jelinek <jakub@redhat.com>
18856
18857 PR tree-optimization/47140
18858 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
18859 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
18860 to bit_value_binop.
18861
18862 PR rtl-optimization/47028
18863 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
18864 parm_birth_insn instead of at the beginning of first bb.
18865
18866 2011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
18867
18868 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
18869 Remove the word "see" before "@pxref".
18870 * doc/rtl.texi: Remove the word "see" before "@pxref".
18871
18872 2011-01-01 Jan Hubicka <jh@suse.cz>
18873
18874 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
18875 memory.
18876
18877 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
18878
18879 PR target/38662
18880 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
18881
18882 \f
18883 Copyright (C) 2011 Free Software Foundation, Inc.
18884
18885 Copying and distribution of this file, with or without modification,
18886 are permitted in any medium without royalty provided the copyright
18887 notice and this notice are preserved.