]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog
mn10300.md (clzsi2): Use XOR after BSCH to convert bit position of highest bit set...
[gcc.git] / gcc / ChangeLog
1 2011-06-27 Nick Clifton <nickc@redhat.com>
2
3 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to
4 convert bit position of highest bit set into a count of the high
5 zero bits.
6
7 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
8
9 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
10
11 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
12
13 PR lto/48492
14 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
15 to a NULL parent.
16
17 2011-06-27 Richard Guenther <rguenther@suse.de>
18
19 PR tree-optimization/49394
20 * passes.c (execute_one_pass): Restore current_pass after
21 applying IPA transforms.
22
23 2011-06-27 Kai Tietz <ktietz@redhat.com>
24
25 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
26 out of type precision after operation.
27 (find_bswap): Take for limit value the integer auto-
28 promotion into account.
29
30 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
31
32 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
33 forward scan as well.
34
35 2011-06-27 Tristan Gingold <gingold@adacore.com>
36
37 PR target/44241
38 * config/vms/vms-protos.h: New file.
39 * config/vms/vms-crtlmap.map: New file.
40 * config/vms/vms.c: New file.
41 * config/vms/make-crtlmap.awk: New file.
42 * config/vms/vms-crtl.h: File removed.
43 * config/vms/vms-crtl-64.h: File removed.
44 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
45 * config/alpha/vms64.h: Do not include vms-crtl-64.h
46 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
47 clear some builtins on VMS. Calls vms_patch_builtins.
48 (avms_asm_output_external): Remove.
49 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
50 (struct crtl_name_spec): Remove
51 (DO_CTRL_NAMES): Remove.
52 * config/ia64/vms.h (struct crtl_name_spec): Remove
53 (DO_CTRL_NAMES): Remove.
54 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
55 clear some builtins on VMS. Calls vms_patch_builtins.
56 (ia64_asm_output_external): Remove DO_CRTL_NAME.
57 * config/ia64/vms64.h: Do not include vms-crtl-64.h
58 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles,
59 tm_p_file.
60
61 2011-06-27 Tristan Gingold <gingold@adacore.com>
62
63 * config/alpha/alpha.c (alpha_end_function): Always generate .end
64 directive on VMS.
65
66 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
67
68 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
69 the function receives nonlocal gotos.
70
71 2011-06-27 Richard Guenther <rguenther@suse.de>
72
73 PR tree-optimization/49536
74 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
75 For non-scalar inner types use a scalar type according to
76 the scalar inner mode.
77
78 2011-06-27 Richard Guenther <rguenther@suse.de>
79
80 PR tree-optimization/49365
81 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
82
83 2011-06-27 Richard Guenther <rguenther@suse.de>
84
85 PR tree-optimization/49169
86 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
87 the alignment of function decls.
88
89 2011-06-26 Iain Sandoe <iains@gcc.gnu.org>
90
91 PR target/47997
92 * config/darwin.c (darwin_mergeable_string_section): Place string
93 constants in '.cstring' rather than '.const' when CF/NSStrings are
94 active.
95
96 2011-06-26 Eric Botcazou <ebotcazou@adacore.com>
97
98 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
99 (emit_save_register_window): Likewise.
100 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
101 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
102 Swap back %o7/%i7 in register naming.
103
104 2011-06-25 Iain Sandoe <iains@gcc.gnu.org>
105
106 PR driver/49371
107 * config/darwin.c (darwin_override_options): Improve warning when
108 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
109 is given with fpie/fPIE.
110 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
111 * config/darwin9.h (PIE_SPEC): New.
112
113 2011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
114
115 * timevar.c (timevar_print): Increase width for display of timevar
116 name.
117
118 2011-06-24 Jakub Jelinek <jakub@redhat.com>
119
120 PR c++/46400
121 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
122 instead of TYPE_CHAIN for chain_next for types.
123
124 2011-06-24 Richard Henderson <rth@redhat.com>
125
126 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
127 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
128 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
129 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
130 (sparc_flat_expand_prologue): Emit individual instructions
131 instead of one of the above.
132
133 2011-06-24 Easwaran Raman <eraman@google.com>
134
135 PR rtl-optimization/49429
136 PR target/49454
137 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
138 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
139 used to copy y into x.
140 * calls.c (initialize_argument_information): Mark
141 an argument addressable if it is passed by invisible reference.
142 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
143 if it is passed by reference.
144
145 2011-06-24 H.J. Lu <hongjiu.lu@intel.com>
146
147 PR rtl-optimization/49504
148 * rtlanal.c (nonzero_bits1): Properly handle addition or
149 subtraction of a pointer in Pmode if pointers extend unsigned.
150 (num_sign_bit_copies1): Likewise.
151
152 2011-06-24 Martin Jambor <mjambor@suse.cz>
153
154 PR tree-optimizations/49516
155 * tree-sra.c (sra_modify_assign): Choose the safe path for
156 aggregate copies if we also did scalar replacements.
157
158 2011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
159
160 PR target/49335
161 * config/arm/predicates.md (add_operator): New.
162 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage
163 in Thumb2.
164
165 2011-06-24 Andi Kleen <ak@linux.intel.com>
166
167 * tree-sra.c (type_internals_preclude_sra_p): Add msg
168 parameter. Split up ifs and report reason in *msg.
169 (reject): Add.
170 (find_var_candiate): Add msg variable.
171 Split up ifs and report reason to reject.
172 (find_param_candidates): Add msg variable.
173 Pass msg to type_internals_preclude_sra_p.
174
175 2011-06-23 Jeff Law <law@redhat.com>
176
177 PR middle-end/48770
178 * reload.h (reload): Change to return a bool.
179 * ira.c (ira): If requested by reload, run a fast DCE pass after
180 reload has completed. Fix comment typo.
181 * reload1.c (need_dce): New file scoped static.
182 (reload): Set reload_completed here. Return whether or not a DCE
183 pass after reload is needed.
184 (delete_dead_insn): Set need_dce as needed.
185
186 PR middle-end/49465
187 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
188 to detect threading through joiner block. If there was already
189 an edge to the new target, then do not change the PHI nodes.
190
191 2011-06-23 Jakub Jelinek <jakub@redhat.com>
192
193 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
194 get_pointer_alignment to see if base isn't sufficiently aligned.
195
196 2011-06-23 Jan Hubicka <jh@suse.cz>
197
198 PR tree-optimize/49373
199 * tree-pass.h (all_late_ipa_passes): Declare.
200 * cgraphunit.c (init_lowered_empty_function): Fix properties.
201 (cgraph_optimize): Execute late passes; remove unreachable funcions after
202 materialization.
203 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or LTOing.
204 * passes.c (all_late_ipa_passes): Declare.
205 (dump_passes, register_pass): Handle late ipa passes.
206 (init_optimization_passes): Move ipa_pta to late passes; schedule fixup_cfg
207 at beggining of all_passes.
208 (apply_ipa_transforms): New function.
209 (execute_one_pass): When doing simple ipa pass, apply all transforms.
210
211 2011-06-23 Joseph Myers <joseph@codesourcery.com>
212
213 * params.c: Include common/common-target.h. Don't include tm.h.
214 (lang_independent_params): Move from toplev.c.
215 (global_init_params): New.
216 * params.h (global_init_params): Declare.
217 * target.def (default_params): Move to common-target.def.
218 * toplev.c (lang_independent_options): Remove.
219 (lang_independent_params): Move to params.c.
220 (general_init): Use global_init_params.
221 * common/common-target.def (option_default_params): Move from
222 target.def.
223 * common/config/ia64/ia64-common.c: Include params.h.
224 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
225 from ia64.c.
226 * common/config/rs6000/rs6000-common.c: Include params.h.
227 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
228 from rs6000.c.
229 * common/config/sh/sh-common.c: Include params.h.
230 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
231 from sh.c.
232 * common/config/spu/spu-common.c: Include params.h.
233 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
234 from spu.c.
235 * config/ia64/ia64.c (ia64_option_default_params,
236 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
237 * config/rs6000/rs6000.c (rs6000_option_default_params,
238 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
239 * config/sh/sh.c (sh_option_default_params,
240 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
241 * config/spu/spu.c (spu_option_default_params,
242 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
243 * Makefile.in (OBJS): Remove params.o.
244 (OBJS-libcommon-target): Add params.o.
245 (params.o, $(common_out_object_file)): Update dependencies.
246 * doc/tm.texi: Regenerate.
247
248 2011-06-23 Alan Modra <amodra@gmail.com>
249
250 PR bootstrap/49383
251 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
252 invocation for 2011-06-09 changes.
253
254 2011-06-22 Jakub Jelinek <jakub@redhat.com>
255
256 PR libgomp/49490
257 * omp-low.c (expand_omp_for_static_nochunk): Only
258 use n ceil/ nthreads size for the first
259 n % nthreads threads in the team instead of
260 all threads except for the last few ones which
261 get less work or none at all.
262
263 PR debug/49496
264 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
265 uses.
266
267 2011-06-22 Richard Guenther <rguenther@suse.de>
268
269 PR tree-optimization/49493
270 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
271 Refer to the alias target of variables.
272 (associate_varinfo_to_alias_1): Remove.
273 (ipa_pta_execute): Do not associate aliases with anything.
274 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
275 (cgraph_function_node): Likewise.
276 (cgraph_function_or_thunk_node): Likewise.
277 (varpool_variable_node): Likewise.
278
279 2011-06-22 Nathan Sidwell <nathan@codesourcery.com>
280
281 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect
282 typo.
283 * config.gcc (arm*-*-linux*): Default to gnu tls.
284 (arm*-*-*): Add --with-tls option.
285 (all_defaults): Add 'tls'.
286
287 2011-06-22 Richard Henderson <rth@redhat.com>
288
289 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
290 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
291 (dwarf2out_frame_debug_cfa_window_save): Rename from
292 dwarf2out_window_save; make static.
293 * tree.h (dwarf2out_window_save): Don't declare.
294
295 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
296 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
297 (emit_save_register_window): Rename from gen_save_register_window;
298 emit the insn and add REG_CFA_* notes.
299 (sparc_expand_prologue): Update to match.
300 * config/sparc/sparc.md (save_register_window_1): Simplify from
301 save_register_window<P:mode>.
302
303 2011-06-22 H.J. Lu <hongjiu.lu@intel.com>
304
305 PR target/49497
306 * config/i386/i386.md (*lea_general_2): Always allow SImode.
307 (*lea_general_2_zext): Likewise.
308 (imul to lea peepholes): Use const359_operand and check
309 TARGET_PARTIAL_REG_STALL.
310
311 * config/i386/predicates.md (const359_operand): New.
312
313 2011-06-22 Michael Matz <matz@suse.de>
314
315 * cgraphunit.c (assemble_thunk): Use correct return type.
316
317 2011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
318 Dmitry Melnik <dm@ispras.ru>
319
320 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
321 (neon_output_shift_immediate): Ditto.
322 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
323 prototype.
324 (neon_output_shift_immediate): Ditto.
325 * config/arm/neon.md (vashl<mode>3): Modified constraint.
326 (vashr<mode>3_imm): New insn pattern.
327 (vlshr<mode>3_imm): Ditto.
328 (vashr<mode>3): Modified constraint.
329 (vlshr<mode>3): Ditto.
330 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
331 predicate.
332 (imm_for_neon_rshift_operand): Ditto.
333 (imm_lshift_or_reg_neon): Ditto.
334 (imm_rshift_or_reg_neon): Ditto.
335
336 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
337
338 2011-06-22 Jakub Jelinek <jakub@redhat.com>
339
340 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
341 builtin calls even if likelyvalue is not CONSTANT.
342 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
343 Return get_value_for_expr of first operand
344 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
345 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
346 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
347 their non-checking counterparts.
348 (call_may_clobber_ref_p_1): Likewise.
349 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
350 like their non-checking counterparts.
351 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
352 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
353 like their non-checking counterparts.
354 (find_func_clobbers): Likewise.
355 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
356 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
357
358 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
359 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
360 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
361 of base type reference as argument.
362 (resolve_addr_in_expr): Likewise. Fix keep computation.
363 (convert_descriptor_to_signed): Renamed to...
364 (convert_descriptor_to_mode): ... this. For wider types convert
365 to unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to
366 untyped.
367 (typed_binop): New function.
368 (scompare_loc_descriptor, ucompare_loc_descriptor,
369 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
370 default to unsigned type instead of signed.
371
372 PR debug/47858
373 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
374 (gimple_build_debug_source_bind_stat): New prototype.
375 (gimple_build_debug_source_bind): Define.
376 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
377 gimple_debug_source_bind_get_value,
378 gimple_debug_source_bind_get_value_ptr,
379 gimple_debug_source_bind_set_var,
380 gimple_debug_source_bind_set_value): New inlines.
381 * gimple.c (gimple_build_debug_source_bind_stat): New function.
382 * gimple-pretty-print.c (dump_gimple_debug): Handle
383 GIMPLE_DEBUG_SOURCE_BIND.
384 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
385 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
386 * tree-parloops.c (eliminate_local_variables,
387 separate_decls_in_region): Likewise.
388 (separate_decls_in_region_debug): Renamed from
389 separate_decls_in_region_debug_bind. Handle
390 gimple_debug_source_bind_p.
391 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
392 prototypes.
393 (DECL_HAS_DEBUG_ARGS_P): Define.
394 (struct tree_function_decl): Add has_debug_args_flag field.
395 * tree.c (debug_args_for_decl): New variable.
396 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
397 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
398 (rewrite_debug_stmt_uses): New function.
399 (rewrite_stmt): Use it to rewrite debug stmt uses.
400 * rtl.def (DEBUG_PARAMETER_REF): New.
401 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
402 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
403 DEBUG_PARAMETER_REF.
404 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
405 * print-rtl.c (print_rtx): Likewise.
406 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
407 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
408 debug stmts in the first bb.
409 * tree-inline.c (remap_ssa_name): If remapping default def
410 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
411 a source bind debug stmt.
412 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
413 (maybe_move_debug_stmts_to_successors): Likewise.
414 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
415 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
416 debug args vector from old_decl to new_decl.
417 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
418 or modified parameters, add debug bind stmts before call
419 setting DEBUG_EXPR_DECL which is remembered in debug args
420 vector.
421 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
422 on DECL_DEBUG_EXPRs from debug args vector.
423 (expand_debug_source_expr): New function.
424 (expand_debug_locations): Use it for source bind insns.
425 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
426 * var-tracking.c (prepare_call_arguments): Add debug args
427 to call_arguments if any.
428 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
429 output_loc_operands, output_loc_operands_raw,
430 resolve_addr_in_expr, compare_loc_operands): Handle
431 DW_OP_GNU_parameter_ref.
432 (get_ref_die_offset, parameter_ref_descriptor): New functions.
433 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
434 (gen_subprogram_die): Handle parameters identified by
435 DEBUG_PARAMETER_REF.
436
437 2011-06-22 Nathan Sidwell <nathan@codesourcery.com>
438
439 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
440 * doc/install.texi (Configuration): Document --with-tls.
441 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
442 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
443 (arm_tls_descseq_addr): New.
444 (legitimize_tls_address): Add tlsdesc support.
445 (arm_cannot_copy_insn_p): Check for tlscall.
446 (arm_emit_tls_decoration): Likewise.
447 * config/arm/arm.h (TARGET_GNU2_TLS): New.
448 (OPTION_DEFAULT_SPECS): Add with-tls support.
449 * config/arm/arm.md (R1_REGNUM): Define.
450 (tlscall): New.
451 * config/arm/arm.opt (tls_type): New enumeration type and values.
452 (mtls-dialect): New switch.
453 * config/arm/arm-opts.h (enum tls_type): New.
454
455 2011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
456
457 * attribs.c (register_attribute): Added assert to check that all
458 attribute specs are registered with a name that is not empty and
459 does not start with '_'.
460 (decl_attributes): Avoid the lookup of the "naked" attribute spec
461 if the function has no attributes.
462 * tree.c (is_attribute_with_length_p): Removed.
463 (is_attribute_p): Removed.
464 (private_is_attribute_p): New.
465 (private_lookup_attribute): New.
466 (lookup_attribute): Removed.
467 (lookup_ident_attribute): New.
468 (remove_attribute): Require the first argument to be in the form
469 'text', not '__text__'. Updated asserts.
470 (merge_attributes): Use lookup_ident_attributes instead of
471 lookup_attribute.
472 (merge_dllimport_decl_attributes): Use remove_attribute.
473 (attribute_list_contained): Likewise.
474 (attribute_list_equal): Immediately return 1 if the arguments are
475 identical pointers.
476 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
477 'int'. Require the first argument to be in the form 'text', not
478 '__text__'. Require the second argument to be an identifier.
479 (lookup_attribute): Made inline. Require the first argument to be
480 in the form 'text', not '__text__'.
481 (private_is_attribute_p, private_lookup_attribute): New.
482 Updated comments.
483
484 2011-06-21 Andrew MacLeod <amacleod@redhat.com>
485
486 * builtins.c: Add sync_ or SYNC__ to builtin names.
487 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
488 * omp-low.c: Add sync_ or SYNC__ to builtin names.
489
490 2011-06-21 Georg-Johann Lay <avr@gjlay.de>
491
492 PR target/33049
493 * config/avr/avr.md (extzv): New expander.
494 (*extzv): New insn.
495 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
496 * config/avr/constraints.md (C04): New constraint.
497 * doc/md.texi (Machine Constraints): Document it.
498
499 2011-06-21 Jakub Jelinek <jakub@redhat.com>
500
501 PR middle-end/49489
502 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
503 unsignedp argument instead of 1 for clrsb_optab.
504 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
505 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
506 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
507 * optabs.c (widen_leading): Call widen_operand and expand_unop
508 with 0 as unsignedp argument instead of 1 for clrsb_optab.
509 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
510
511 2011-06-21 Georg-Johann Lay <avr@gjlay.de>
512
513 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
514
515 2011-06-21 Bernd Schmidt <bernds@codesourcery.com>
516
517 * gensupport.c (add_define_attr): New static function.
518 (is_predicable): Allow multi-alternative lists for the "predicable"
519 attribute.
520 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
521 (process_one_cond_exec): Call alter_attrs_for_insn.
522 * doc/md.texi (Defining Attributes): Mention some standard names.
523 (Conditional Execution): Update documentation for "predicable".
524
525 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
526 __builtin_clrsbll): Document.
527 * doc/rtl.texi (clrsb): New entry.
528 * optabs.c (widen_leading): Renamed from widen_clz. New argument
529 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
530 (expand_unop): Handle clrsb_optab.
531 (init_optabs): Initialize it.
532 * optabs.h (enum optab_index): New entry OTI_clrsb.
533 (clrsb_optab): Define.
534 * genopinit.c (optabs): Add an entry for it.
535 * builtins.c (expand_builtin): Handle clrsb builtin functions.
536 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
537 BUILT_IN_CLRSBLL): New.
538 * rtl.def (CLRSB): New code.
539 * dwarf2out.c (mem_loc_descriptor): Handle it.
540 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
541 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
542 and popcount.
543 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
544 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
545 (__ctzDI2): Move declaration.
546 * config/bfin/bfin.md (clrsbsi2): New expander.
547 (signbitssi2): Use the CLRSB rtx.
548 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
549 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
550
551 2011-06-21 Richard Guenther <rguenther@suse.de>
552
553 * ipa-inline-transform.c (inline_transform): Fix previous change.
554
555 2011-06-21 Ira Rosen <ira.rosen@linaro.org>
556
557 PR tree-optimization/49478
558 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
559 with constant operand.
560
561 2011-06-21 Richard Guenther <rguenther@suse.de>
562
563 * ipa-inline-transform.c (inline_transform): Fix typo.
564
565 2011-06-21 Richard Guenther <rguenther@suse.de>
566
567 PR tree-optimization/49483
568 * tree-vect-stmts.c (vectorizable_assignment): Also handle
569 VIEW_CONVERT_EXPR conversions.
570
571 2011-06-21 Joseph Myers <joseph@codesourcery.com>
572
573 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
574 * config/avr/avr-tables.opt: New file (generated).
575 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
576 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
577 avr-mcus.def.
578 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
579 (avr_option_override): Don't process -mmcu= argument here. Set
580 avr_current_device using avr_mcu_index.
581 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
582 * config/avr/avr.opt (mmcu=): Use Enum.
583 * config/avr/t-avr (avr-devices.o): Update dependencies.
584 ($(srcdir)/config/avr/avr-tables.opt): New.
585 * target.def (help): Remove.
586 * doc/tm.texi.in (TARGET_HELP): Remove.
587 * doc/tm.texi: Regenerate.
588 * opts.c: Don't include target.h.
589 (common_handle_option): Don't call targetm.help.
590 * system.h (TARGET_HELP): Poison.
591 * Makefile.in (opts.o): Update dependencies.
592
593 2011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
594
595 * config/usegld.h: New file.
596 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
597 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
598 (LIB_SPEC): Likewise. Search /lib.
599 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
600 (RDYNAMIC_SPEC): Handle GNU ld.
601 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
602 Define.
603 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
604 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
605 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
606 (STACK_CHECK_STATIC_BUILTIN): Define.
607 * config/sol2.opt (compat-bsd): Remove.
608 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
609 * config/sol2-bi.h: New file.
610 * config/sol2-gld.h: Remove.
611 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
612 (NO_DBX_BNSYM_ENSYM): Remove.
613 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
614 (STACK_CHECK_STATIC_BUILTIN): Remove.
615 Test USE_GLD instead of TARGET_GNU_LD.
616 * config/i386/sol2-10.h: Rename to ...
617 * config/i386/sol2-bi.h .. this.
618 (SUBTARGET_EXTRA_SPECS): Redefine.
619 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
620 (MULTILIB_DEFAULTS): Remove.
621 (DEFAULT_ARCH32_P): Define.
622 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
623 (ARCH64_SUBDIR): Define.
624 Test USE_GLD instead of TARGET_GNU_LD.
625 (I386_EMULATION): Rename to ...
626 (ARCH32_EMULATION): ... this.
627 (X86_64_EMULATION): Rename to ...
628 (ARCH64_EMULATION): ... this.
629 (TARGET_LD_EMULATION): Remove.
630 (LINK_ARCH_SPEC): Remove.
631 * config/i386/sol2-gas.h: Remove.
632 * config/i386/t-sol2-10: Rename to ...
633 * config/i386/t-sol2-64: ... this.
634 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
635 (AS_SPARC64_FLAG): Define.
636 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
637 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
638 depending on TARGET_CPU_DEFAULT.
639 (CPP_CPU_SPEC): Redefine.
640 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
641 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
642 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
643 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
644 ASM_ARCH_DEFAULT_SPEC): Redefine.
645 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
646 LINK_ARCH_DEFAULT_SPEC.
647 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
648 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
649 (ARCH64_SUBDIR): Define.
650 (LINK_ARCH64_SPEC): Redefine.
651 (CC1_SPEC): Redefine.
652 (OPTION_DEFAULT_SPECS): Redefine.
653 (MULTILIB_DEFAULTS): Define.
654 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
655 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
656 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
657 (NO_DBX_BNSYM_ENSYM): Remove.
658 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
659 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
660 (TARGET_ASM_NAMED_SECTION): Likewise.
661 (STACK_CHECK_STATIC_BUILTIN): Remove.
662 * config/sparc/sol2-bi.h: Remove.
663 * config/sparc/sol2-gas-bi.h: Remove.
664 * config/sparc/sol2-gas.h: Remove.
665 * config/sparc/sol2-gld-bi.h: Remove.
666 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
667 common parts ...
668 (*-*-solaris2*): ... here.
669
670 2011-06-21 Christian Bruel <christian.bruel@st.com>
671
672 PR other/43564
673 * ipa-inline.c (can_inline_edge_p): Check
674 !DECL_DISREGARD_INLINE_LIMITS.
675
676 2011-06-21 Christian Bruel <christian.bruel@st.com>
677
678 PR middle-end/49139
679 * cgraphunit.c (process_function_and_variable_attributes): warn when
680 always_inline functions that are not inline.
681 * ipa-inline-transform.c (inline_transform): Always call
682 optimize_inline.
683 * tree-inline.c (tree_inlinable_function_p): Use error instead
684 of sorry.
685 (expand_call_inline): Likewise.
686
687 2011-06-21 Jakub Jelinek <jakub@redhat.com>
688
689 * Makefile.in (dg_target_exps): Set.
690 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
691 instead of 7, try to divide it more evenly.
692
693 2011-06-20 Changpeng Fang <changpeng.fang@amd.com>
694
695 PR i386/49089
696 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
697 (avx256_split_unaligned_store): New definition.
698 (ix86_option_override_internal): Enable avx256 unaligned load/store
699 splitting only when avx256_split_unaligned_load/store is set.
700
701 2011-06-20 Bernd Schmidt <bernds@codesourcery.com>
702
703 * regrename.c (scan_rtx_reg): Handle the case where we write to an
704 open chain in a smaller mode without failing the entire block.
705
706 2011-06-20 H.J. Lu <hongjiu.lu@intel.com>
707
708 PR middle-end/47725
709 * combine.c (cant_combine_insn_p): Don't check zero/sign
710 extended hard registers.
711
712 2011-06-21 Alan Modra <amodra@gmail.com>
713
714 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
715 CONST high part large-toc address.
716 (rs6000_tls_referenced_p): Make static.
717 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
718
719 2011-06-20 H.J. Lu <hongjiu.lu@intel.com>
720
721 PR middle-end/47725
722 * combine.c (cant_combine_insn_p): Check zero/sign extended
723 hard registers.
724
725 2011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
726
727 PR target/49385
728 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
729 one of the operands is a register.
730
731 2011-06-20 Kai Tietz <ktietz@redhat.com>
732
733 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
734 operations in combination with binary and.
735
736 2011-06-20 Bernd Schmidt <bernds@codesourcery.com>
737
738 * regrename.c (do_replace): Don't update notes.
739
740 2011-06-20 Alan Modra <amodra@gmail.com>
741
742 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
743 of toc-relative address in CONST.
744 (rs6000_delegitimize_address): Recognize changed address.
745 (rs6000_legitimize_reload_address): Likewise.
746 (rs6000_emit_move): Don't force these constants to memory.
747 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
748 toc-relative address in CONST.
749 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
750 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
751
752 2011-06-18 H.J. Lu <hongjiu.lu@intel.com>
753
754 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
755 (count_trailing_zeros): Likewise.
756
757 2011-06-18 H.J. Lu <hongjiu.lu@intel.com>
758
759 PR other/49325
760 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
761 .init_array can be used with .ctors on targets.
762 * configure: Regenerated.
763
764 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
765
766 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
767 if the element type is volatile.
768
769 2011-06-18 Jan Hubicka <jh@suse.cz>
770
771 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
772 extra name aliases.
773 (lto_symtab_resolve_can_prevail_p): Likewise.
774 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
775 * cgraphbuild.c (record_reference): Remove extra body alias code.
776 (mark_load): Likewise.
777 (mark_store): Likewise.
778 * cgraph.h (varpool_node): Remove extra_name filed;
779 add alias_of and extraname_alias.
780 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
781 (varpool_alias_aliased_node): New inline function.
782 (varpool_variable_node): New function.
783 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
784 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
785 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
786 (input_varpool_node): Likewise.
787 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
788 (varpool_externally_visible_p): Remove extra body alias code.
789 (function_and_variable_visibility): Likewise.
790 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
791 (ipa_pta_execute): Use it.
792 * varpool.c (varpool_remove_node): Remove extra name alias code.
793 (varpool_mark_needed_node): Likewise.
794 (varpool_analyze_pending_decls): Analyze aliases.
795 (assemble_aliases): New functoin.
796 (varpool_assemble_decl): Use it.
797 (varpool_create_variable_alias): New function.
798 (varpool_extra_name_alias): Rewrite.
799 (varpool_for_node_and_aliases): New function.
800
801 2011-06-18 Jakub Jelinek <jakub@redhat.com>
802
803 PR target/49411
804 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
805 last_arg_constant and last argument doesn't match its predicate,
806 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
807 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
808 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
809 spelling of error message.
810 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
811 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
812 const_0_to_255_operand instead of const_int_operand.
813
814 Revert:
815 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
816
817 * config/i386/sse.md (blendbits): Remove mode attribute.
818 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
819 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
820 Check integer value of operand 3 in insn constraint.
821
822 2011-06-17 Hans-Peter Nilsson <hp@axis.com>
823
824 PR rtl-optimization/48542
825 * reload.c (find_equiv_reg): Stop looking when finding a
826 setjmp-type call.
827 * reload1.c (reload_as_needed): Invalidate all reload
828 registers when crossing a setjmp-type call.
829
830 2011-06-16 Jeff Law <law@redhat.com>
831
832 * tree-ssa-threadupdate.c (struct redirection_data): New field
833 intermediate_edge.
834 (THREAD_TARGET2): Define.
835 (redirection_data_eq): Also check that the intermediate edge is equal.
836 (lookup_redirection_data): Drop useless argument. Extract the
837 outgoing_edge and intermediate edge from E. Callers updated.
838 (copy_phi_args, update_destination_phis): New functions.
839 (fix_duplicate_block_edges): Likewise.
840 (create_edge_and_update_destination_phis): Duplicate all the edges
841 hung off e->aux. Use copy_phi_args.
842 (create_duplicates): Use fix_duplicate_block_edges.
843 (fixup_template_block): Likewise.
844 (redirect_edges): If necessary, redirect the joiner block's incoming
845 edge to the duplicate of the joiner block.
846 (thread_block): Don't muck up loops when threading through a joiner
847 block.
848 (thread_through_loop_header): Handle threading through a joiner block.
849 (mark_threaded_blocks, register_jump_thread): Likewise.
850 * tree-flow.h (register_jump_thread): Add new argument. Callers
851 updated.
852 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
853 (thread_across_edge): Handle threading through a joiner block.
854
855 2011-06-16 Martin Jambor <mjambor@suse.cz>
856
857 PR tree-optimization/49343
858 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
859 calculate offset, provide 2nd operand for the new COMPONENT_REF.
860
861 2011-06-16 Iain Sandoe <iains@gcc.gnu.org>
862
863 * config/darwin-protos.h (machopic_select_rtx_section): Move to
864 inside RTX_CODE ifdef.
865
866 2011-06-16 Tom de Vries <tom@codesourcery.com>
867
868 PR target/45098
869 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
870 Disallow NULL pointer for pointer arithmetic.
871
872 2011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
873
874 PR target/49398
875 Revert.
876 2011-06-10 Wei Guozhi <carrot@google.com>
877
878 PR target/45335
879 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
880 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
881 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
882 related peephole2.
883 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
884 related peephole2.
885 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
886 (arm_legitimate_ldrd_p): New prototype.
887 (arm_output_ldrd): New prototype.
888 * config/arm/arm.c (arm_check_ldrd_operands): New function.
889 (arm_legitimate_ldrd_p): New function.
890 (arm_output_ldrd): New function.
891
892 2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
893
894 PR middle-end/46500
895 * doc/tm.texi.in: Update Copyright date.
896 * doc/tm.texi: Regenerate.
897 * targhooks.c (default_setup_incoming_varargs): Replace
898 CUMULATIVE_ARGS* argument type with cumulative_args_t.
899 (default_pretend_outgoing_varargs_named): Likewise.
900 (hook_pass_by_reference_must_pass_in_stack): Likewise.
901 (hook_callee_copies_named): Likewise.
902 (default_function_arg_advance): Likewise.
903 (default_function_arg): Likewise.
904 (default_function_incoming_arg): Likewise.
905 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
906 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
907 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
908 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
909 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
910 * targhooks.h (default_setup_incoming_varargs): Likewise.
911 (default_pretend_outgoing_varargs_named): Likewise.
912 (hook_pass_by_reference_must_pass_in_stack): Likewise.
913 (hook_callee_copies_named): Likewise.
914 (default_function_arg_advance): Likewise.
915 (default_function_arg): Likewise.
916 (default_function_incoming_arg): Likewise.
917 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
918 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
919 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
920 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
921 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
922 * target.def (pass_by_reference): Likewise.
923 (setup_incoming_varargs, strict_argument_naming): Likewise.
924 (pretend_outgoing_varargs_named, callee_copies): Likewise.
925 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
926 (function_incoming_arg): Likewise.
927 * target.h: Don't include "tm.h" .
928 (cumulative_args_t): New typedef.
929 [GCC_TM_H] (get_cumulative_args): New static inline function.
930 [GCC_TM_H] (pack_cumulative_args): Likewise.
931 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
932 argument type with cumulative_args_t.
933 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
934 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
935 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
936 (frv_arg_partial_bytes, frv_function_arg): Likewise.
937 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
938 (frv_function_arg_1): Likewise.
939 * config/s390/s390.c (s390_pass_by_reference): Likewise.
940 (s390_function_arg_advance, s390_function_arg): Likewise.
941 * config/m32c/m32c.c (m32c_function_arg): Likewise.
942 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
943 (m32c_strict_argument_naming): Likewise.
944 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
945 (spu_function_arg_advance): Likewise.
946 (spu_setup_incoming_varargs): Likewise. Make static.
947 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
948 Remove prototype.
949 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
950 CUMULATIVE_ARGS* argument type with cumulative_args_t.
951 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
952 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
953 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
954 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
955 (mep_pass_by_reference, mep_function_arg): Likewise.
956 (mep_function_arg_advance): Likewise.
957 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
958 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
959 (m32r_function_arg, m32r_function_arg_advance): Likewise.
960 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
961 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
962 (ix86_function_arg, ix86_pass_by_reference): Likewise.
963 (ix86_setup_incoming_varargs): Likewise.
964 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
965 (sh_strict_argument_naming): Likewise.
966 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
967 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
968 (sh_function_arg_advance, sh_function_arg): Likewise.
969 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
970 (pdp11_function_arg_advance): Likewise.
971 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
972 Likewise.
973 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
974 * config/avr/avr.c (avr_function_arg): Likewise.
975 (avr_function_arg_advance): Likewise.
976 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
977 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
978 (xtensa_function_arg_1): Likewise.
979 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
980 Likewise.
981 (xstormy16_function_arg): Likewise.
982 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
983 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
984 (fr30_function_arg_advance): Likewise.
985 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
986 (lm32_function_arg, lm32_function_arg_advance): Likewise.
987 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
988 (moxie_function_arg, moxie_function_arg_advance): Likewise.
989 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
990 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
991 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
992 (cris_function_arg, cris_function_incoming_arg): Likewise.
993 (cris_function_arg_advance, cris_function_arg_1): Likewise.
994 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
995 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
996 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
997 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
998 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
999 (mn10300_arg_partial_bytes): Likewise.
1000 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
1001 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
1002 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
1003 (ia64_function_arg_1): Likewise.
1004 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
1005 (m68k_function_arg): Likewise.
1006 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
1007 (rs6000_function_arg, setup_incoming_varargs): Likewise.
1008 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
1009 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
1010 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
1011 (picochip_arg_advance): Likewise.
1012 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
1013 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
1014 (mcore_function_arg_advance): Likewise.
1015 * config/score/score.c (score_pass_by_reference): Likewise.
1016 (score_function_arg_advance): Likewise.
1017 (score_arg_partial_bytes): Likewise. Make static.
1018 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
1019 * config/arm/arm.c (arm_arg_partial_bytes): Replace
1020 CUMULATIVE_ARGS* argument type with cumulative_args_t.
1021 (arm_function_arg, arm_function_arg_advance): Likewise.
1022 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
1023 * config/pa/pa.c (pa_pass_by_reference): Likewise.
1024 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
1025 (pa_function_arg): Likewise.
1026 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
1027 (mips_function_arg, mips_function_arg_advance): Likewise.
1028 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
1029 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
1030 * config/vax/vax.c (vax_function_arg): Likewise.
1031 (vax_function_arg_advance): Likewise.
1032 * config/h8300/h8300.c (h8300_function_arg): Likewise.
1033 (h8300_function_arg_advance): Likewise.
1034 * config/v850/v850.c (v850_pass_by_reference): Likewise.
1035 (v850_strict_argument_naming, v850_function_arg): Likewise.
1036 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
1037 (v850_setup_incoming_varargs): Likewise.
1038 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
1039 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
1040 (mmix_function_arg, mmix_pass_by_reference): Likewise.
1041 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
1042 with const void *.
1043 * config/bfin/bfin.c (setup_incoming_varargs): Replace
1044 CUMULATIVE_ARGS* argument type with cumulative_args_t.
1045 (bfin_function_arg_advance, bfin_function_arg): Likewise.
1046 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
1047 * calls.c (emit_call_1): Change type of args_so_far to
1048 cumulative_args_t. Changed all callers.
1049 (initialize_argument_information): Likewise.
1050 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
1051 * dse.c (get_call_args): Likewise.
1052 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
1053 * function.c (pass_by_reference, reference_callee_copied): Likewise.
1054 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
1055 New member args_so_far_v. Changed all users.
1056 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
1057 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
1058 * config/mips/mips.c (mips_output_args_xfer): Likewise.
1059 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
1060 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1061 * config/microblaze/microblaze.c (microblaze_expand_prologue):
1062 Likewise.
1063 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
1064 m32r_pass_by_reference.
1065
1066 2011-06-16 Ira Rosen <ira.rosen@linaro.org>
1067
1068 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
1069 argument to be a VEC of statements.
1070 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
1071 assert that pattern statements have to have their vector type set.
1072 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
1073 Change the first argument to be a VEC of statements. Update
1074 documentation.
1075 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
1076 (vect_handle_widen_mult_by_const): New function.
1077 (vect_recog_widen_mult_pattern): Change the first argument to be a
1078 VEC of statements. Update documentation. Check that the constant is
1079 INTEGER_CST. Support multiplication by a constant that fits an
1080 intermediate type - call vect_handle_widen_mult_by_const.
1081 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
1082 call. Handle additional pattern statements if necessary.
1083
1084 2011-06-16 Nick Clifton <nickc@redhat.com>
1085
1086 PR target/49427
1087 * config.gcc: Set cpu_type to v850 for any V850 architecture.
1088 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
1089 md_file, extra_modes, out_file and extra_options are these are all
1090 deduced from cpu_type.
1091
1092 2011-06-16 Georg-Johann Lay <avr@gjlay.de>
1093
1094 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
1095 truncation mask to 63.
1096
1097 2011-06-16 Georg-Johann Lay <avr@gjlay.de>
1098
1099 PR target/49313
1100 PR target/29524
1101 * longlong.h: Add AVR support:
1102 (count_leading_zeros): New macro.
1103 (count_trailing_zeros): New macro.
1104 (COUNT_LEADING_ZEROS_0): New macro.
1105 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
1106 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
1107 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
1108 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
1109 (LIB2FUNCS_EXCLUDE): Add _clz.
1110 * config/avr/libgcc.S (XCALL): Move up in file.
1111 (XJMP): New C Macro.
1112 (DEFUN): New asm macro.
1113 (ENDF): New asm macro.
1114 (__ffssi2): New function.
1115 (__ffshi2): New function.
1116 (__loop_ffsqi2): New function.
1117 (__ctzsi2): New function.
1118 (__ctzhi2): New function.
1119 (__clzdi2): New function.
1120 (__clzsi2): New function.
1121 (__clzhi2): New function.
1122 (__paritydi2): New function.
1123 (__paritysi2): New function.
1124 (__parityhi2): New function.
1125 (__parityqi2): New function.
1126 (__popcounthi2): New function.
1127 (__popcountsi2): New function.
1128 (__popcountdi2): New function.
1129 (__popcountqi2): New function.
1130 (__bswapsi2): New function.
1131 (__bswapdi2): New function.
1132 (__ashldi3): New function.
1133 (__ashrdi3): New function.
1134 (__lshrdi3): New function.
1135 Fix suspicous lines.
1136
1137 2011-06-16 Richard Guenther <rguenther@suse.de>
1138
1139 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
1140 the same as x != 0.
1141 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
1142 to (bool) X & 1.
1143 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
1144 equality compares against zero for the lower bit.
1145
1146 2011-06-16 Jakub Jelinek <jakub@redhat.com>
1147
1148 PR tree-optimization/49419
1149 * tree-vrp.c (execute_vrp): Call init_range_assertions
1150 before estimate_numbers_of_iterations, call
1151 free_number_of_iterations_estimates before calling
1152 remove_range_assertions.
1153
1154 2011-06-16 Revital Eres <revital.eres@linaro.org>
1155
1156 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
1157 (struct partial_schedule): Add rows_length field.
1158 (verify_partial_schedule): Check rows_length.
1159 (ps_insert_empty_row): Handle rows_length.
1160 (create_partial_schedule): Likewise.
1161 (free_partial_schedule): Likewise.
1162 (reset_partial_schedule): Likewise.
1163 (create_ps_insn): Remove rest_count argument.
1164 (remove_node_from_ps): Update rows_length.
1165 (add_node_to_ps): Update rows_length and call create_ps_insn
1166 without passing row_rest_count.
1167 (rotate_partial_schedule): Update rows_length.
1168
1169 2011-06-16 Revital Eres <revital.eres@linaro.org>
1170
1171 * ddg.c (add_intra_loop_mem_dep): New function.
1172 (build_intra_loop_deps): Call it.
1173
1174 2011-06-13 Jeff Law <law@redhat.com>
1175
1176 * df-problems.c (df_lr_local_compute): Manually CSE
1177 PIC_OFFSET_TABLE_REGNUM.
1178 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
1179 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
1180
1181 2011-06-13 Jan Hubicka <jh@suse.cz>
1182
1183 * cgraphunit.c (handle_alias_pairs): New function.
1184 (cgraph_finalize_compilation_unit): Use it.
1185 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
1186 as externally visible.
1187
1188 2011-06-15 Richard Guenther <rguenther@suse.de>
1189
1190 * expr.c (expand_expr_real_2): Reduce all integral types to
1191 bitfield precision.
1192 (expand_expr_real_1): Likewise.
1193
1194 2011-06-15 Martin Jambor <mjambor@suse.cz>
1195
1196 PR tree-optimization/48613
1197 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
1198 ipa_node_params_vector is NULL.
1199
1200 2011-06-15 Jakub Jelinek <jakub@redhat.com>
1201
1202 PR debug/49382
1203 * dwarf2out.c (dw_loc_list_node): Add force field.
1204 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
1205 location in the list, even if it is modified before first real insn.
1206 (output_loc_list): Emit empty ranges with force flag set.
1207 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
1208
1209 2011-06-15 Alexander Monakov <amonakov@ispras.ru>
1210
1211 PR target/49349
1212 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
1213 (fence_to_rewind). Use it to notice when bookkeeping will be placed
1214 above a fence. Update comments.
1215 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
1216 placed just above it. Do not allow NULL place_to_insert.
1217
1218 2011-06-15 Ira Rosen <ira.rosen@linaro.org>
1219
1220 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
1221 (slpeel_tree_peel_loop_to_edge): Don't call
1222 remove_dead_stmts_from_loop.
1223 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
1224 remove irrelevant pattern statements. For irrelevant statements
1225 check if it is the last statement of a detected pattern, use
1226 corresponding pattern statement instead.
1227 (destroy_loop_vec_info): No need to remove pattern statements,
1228 only free stmt_vec_info.
1229 (vect_transform_loop): For irrelevant statements check if it is
1230 the last statement of a detected pattern, use corresponding
1231 pattern statement instead.
1232 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
1233 pattern statements. Set basic block for the new statement.
1234 (vect_pattern_recog): Update documentation.
1235 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
1236 operands of pattern statements.
1237 (vectorizable_call): Fix printing. In case of a pattern statement
1238 use the lhs of the original statement when creating a dummy
1239 statement to replace the original call.
1240 (vect_analyze_stmt): For irrelevant statements check if it is
1241 the last statement of a detected pattern, use corresponding
1242 pattern statement instead.
1243 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
1244 statements use gsi of the original statement.
1245
1246 2011-06-14 Joseph Myers <joseph@codesourcery.com>
1247
1248 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
1249 common/common-target-def.h.
1250 * target.def (default_target_flags, handle_option,
1251 supports_split_stack, optimization_table, init_struct,
1252 except_unwind_info, unwind_tables_default, have_named_sections):
1253 Move to common/common-target.def.
1254 * target.h (enum opt_levels, struct default_options): Move to
1255 common/common-target.h.
1256 * targhooks.c (default_except_unwind_info,
1257 dwarf2_except_unwind_info, sjlj_except_unwind_info,
1258 default_target_handle_option, empty_optimization_table): Move to
1259 common/common-targhooks.c.
1260 * targhooks.h (default_except_unwind_info,
1261 dwarf2_except_unwind_info, sjlj_except_unwind_info,
1262 default_target_handle_option, empty_optimization_table): Move to
1263 common/common-targhooks.h.
1264 * common/common-target-def.h: Include common/common-targhooks.h.
1265 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
1266 defined.
1267 * common/common-target.def (handle_option, option_init_struct,
1268 option_optimization_table, default_target_flags,
1269 except_unwind_info, supports_split_stack, unwind_tables_default,
1270 have_named_sections): Move from target.def.
1271 (HOOK_PREFIX): Undefine at end of file.
1272 * common/common-target.h: Include input.h.
1273 (enum opt_levels, struct default_options): Move from target.h.
1274 * common/common-targhooks.c, common/common-targhooks.h: New.
1275 * config.gcc (target_has_targetm_common): Default to yes.
1276 (moxie*): Set target_has_targetm_common=no.
1277 (hppa*-*-*): Don't set target_has_targetm_common=yes.
1278 * doc/tm.texi: Regenerate.
1279 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
1280 (C_TARGET_DEF_H): Add common/common-targhooks.h.
1281 (GCC_OBJS): Remove vec.o.
1282 (OBJS): Remove hooks.o and vec.o.
1283 (OBJS-libcommon-target): Add vec.o, hooks.o and
1284 common/common-targhooks.o.
1285 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
1286 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
1287 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
1288 cfglayout.o, $(out_object_file), $(common_out_object_file)):
1289 Update dependencies.
1290 (common/common-targhooks.o): New.
1291 * common/config/default-common.c: Include tm.h. Add FIXME comment.
1292 * common/config/pa/pa-common.c: Include more headers. Take
1293 copyright dates from pa.c.
1294 (pa_option_optimization_table, pa_handle_option,
1295 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
1296 TARGET_HANDLE_OPTION): Move from pa.c.
1297 * common/config/alpha/alpha-common.c,
1298 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
1299 common/config/bfin/bfin-common.c,
1300 common/config/cris/cris-common.c,
1301 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
1302 common/config/h8300/h8300-common.c,
1303 common/config/i386/i386-common.c,
1304 common/config/ia64/ia64-common.c,
1305 common/config/iq2000/iq2000-common.c,
1306 common/config/lm32/lm32-common.c,
1307 common/config/m32c/m32c-common.c,
1308 common/config/m32r/m32r-common.c,
1309 common/config/m68k/m68k-common.c,
1310 common/config/mcore/mcore-common.c,
1311 common/config/mep/mep-common.c,
1312 common/config/microblaze/microblaze-common.c,
1313 common/config/mips/mips-common.c,
1314 common/config/mmix/mmix-common.c,
1315 common/config/mn10300/mn10300-common.c,
1316 common/config/pdp11/pdp11-common.c,
1317 common/config/picochip/picochip-common.c,
1318 common/config/rs6000/rs6000-common.c,
1319 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
1320 common/config/score/score-common.c, common/config/sh/sh-common.c,
1321 common/config/sparc/sparc-common.c,
1322 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
1323 common/config/vax/vax-common.c,
1324 common/config/xstormy16/xstormy16-common.c,
1325 common/config/xtensa/xtensa-common.c: New.
1326 * config/alpha/alpha.c: Include common/common-target.h.
1327 (alpha_option_optimization_table, alpha_handle_option,
1328 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1329 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
1330 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
1331 * config/arm/arm.c (arm_option_optimization_table,
1332 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1333 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
1334 arm-common.c.
1335 * config/avr/avr.c (avr_option_optimization_table,
1336 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
1337 to avr-common.c.
1338 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
1339 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
1340 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
1341 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
1342 * config/cris/cris.c (cris_option_optimization_table,
1343 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1344 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
1345 cris-common.c.
1346 * config/fr30/fr30.c (fr30_option_optimization_table,
1347 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
1348 to fr30-common.c.
1349 * config/frv/frv.c (frv_option_optimization_table,
1350 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
1351 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
1352 * config/h8300/h8300.c (h8300_option_optimization_table,
1353 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1354 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
1355 * config/i386/i386-protos.h (ix86_handle_option): Declare.
1356 * config/i386/i386.c: Include common/common-target.h.
1357 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
1358 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
1359 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
1360 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
1361 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
1362 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
1363 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
1364 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
1365 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
1366 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
1367 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
1368 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
1369 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
1370 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
1371 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
1372 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
1373 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
1374 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
1375 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
1376 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
1377 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
1378 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
1379 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
1380 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
1381 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
1382 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
1383 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
1384 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
1385 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
1386 ix86_option_optimization_table, ix86_option_init_struct,
1387 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
1388 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
1389 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
1390 i386-common.c.
1391 * config/i386/t-i386 (i386.o): Update dependencies.
1392 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
1393 * config/ia64/ia64.c (ia64_option_optimization_table,
1394 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
1395 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1396 ia64_handle_option): Move to ia64-common.c.
1397 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
1398 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
1399 * config/lm32/lm32.c (lm32_option_optimization_table,
1400 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
1401 to lm32-common.c.
1402 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
1403 m32c-common.c.
1404 * config/m32r/m32r.c (m32r_option_optimization_table,
1405 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1406 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
1407 m32r_handle_option): Move to m32r-common.c.
1408 (m32r_memory_move_cost): Remove comment referring to
1409 TARGET_HANDLE_OPTION.
1410 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
1411 Move to m68k-common.c.
1412 * config/mcore/mcore.c (mcore_option_optimization_table,
1413 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1414 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
1415 * config/mep/mep.c (mep_option_optimization_table,
1416 mep_handle_option, TARGET_HANDLE_OPTION,
1417 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
1418 Move to mep-common.c.
1419 * config/microblaze/microblaze.c
1420 (microblaze_option_optimization_table,
1421 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1422 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
1423 * config/mips/mips.c (mips_handle_option,
1424 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
1425 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
1426 mips-common.c.
1427 * config/mmix/mmix.c (mmix_option_optimization_table,
1428 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
1429 Move to mmix-common.c.
1430 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
1431 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
1432 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1433 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
1434 * config/pa/pa.c: Include common/common-target.h.
1435 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
1436 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1437 pa_handle_option): Move to pa-common.c.
1438 (pa_option_override): Use targetm_common.except_unwind_info.
1439 (pa_asm_output_mi_thunk, pa_function_section): Use
1440 targetm_common.have_named_sections.
1441 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
1442 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1443 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
1444 pdp11_handle_option, pdp11_option_init_struct): Move to
1445 pdp11-common.c.
1446 * config/picochip/picochip.c (picochip_option_optimization_table,
1447 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
1448 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
1449 * config/rs6000/rs6000.c: Include common/common-target.h.
1450 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
1451 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
1452 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
1453 rs6000_handle_option): Move to rs6000-common.c.
1454 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
1455 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
1456 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
1457 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
1458 * config/s390/s390.c (processor_flags_table,
1459 s390_option_optimization_table, s390_option_init_struct,
1460 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
1461 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
1462 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
1463 * config/s390/s390.h (processor_flags_table): Declare.
1464 * config/score/score.c (score_option_optimization_table,
1465 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1466 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
1467 score_handle_option): Move to score-common.c.
1468 * config/sh/sh.c (sh_option_optimization_table,
1469 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
1470 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1471 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
1472 * config/sparc/sparc.c: Include common/common-target.h.
1473 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
1474 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
1475 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
1476 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
1477 spu_option_init_struct): Move to spu-common.c.
1478 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
1479 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
1480 * config/v850/v850.c (small_memory_physical_max,
1481 v850_handle_memory_optionn v850_handle_option,
1482 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
1483 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
1484 v850-common.c.
1485 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
1486 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
1487 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
1488 Move to xtensa-common.c.
1489 * cfglayout.c: Include common/common-target.h.
1490 (fixup_reorder_chain): Use targetm_common.have_named_sections.
1491 * cfgrtl.c: Include common/common-target.h.
1492 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
1493 targetm_common.have_named_sections.
1494 * dbxout.c: Include common/common-target.h.
1495 (dbxout_function_end): Use targetm_common.have_named_sections.
1496 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
1497 targetm_common.except_unwind_info.
1498 * dwarf2out.c: Include common/common-target.h.
1499 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
1500 dwarf2out_begin_prologue, dwarf2out_frame_init,
1501 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
1502 targetm_common.except_unwind_info.
1503 * except.c: Include common/common-target.h.
1504 (init_eh, finish_eh_generation,
1505 output_one_function_exception_table): Use
1506 targetm_common.except_unwind_info.
1507 (switch_to_exception_section): Use targetm_common.have_named_sections.
1508 * explow.c: Include common/common-target.h.
1509 * expr.c: Include common/common-target.h.
1510 (build_personality_function): Use targetm_common.except_unwind_info.
1511 * function.c: Include common/common-target.h.
1512 (expand_function_end): Use targetm_common.except_unwind_info.
1513 * haifa-sched.c: Include common/common-target.h.
1514 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
1515 * lto-opts.c: Include common/common-target.h instead of target.h.
1516 (lto_reissue_options): Use targetm_common.handle_option.
1517 * opts.c: Include common/common-target.h.
1518 (target_handle_option): Use targetm_common.handle_option.
1519 (init_options_struct): Update comment referring to
1520 targetm.target_option.optimization. Use
1521 targetm_common.default_target_flags,
1522 targetm_common.unwind_tables_default and
1523 targetm_common.option_init_struct.
1524 (default_options_optimization): Use
1525 targetm_common.option_optimization_table.
1526 (finish_options): Use targetm_common.except_unwind_info,
1527 targetm_common.unwind_tables_default,
1528 targetm_common.have_named_sections and
1529 targetm_common.supports_split_stack.
1530 * toplev.c: Include common/common-target.h.
1531 (process_options): Use targetm_common.have_named_sections.
1532 * tree-tailcall.c: Include common/common-target.h.
1533 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
1534 * tree.c: Include common/common-target.h.
1535 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
1536 * varasm.c: Include common/common-target.h.
1537 (resolve_unique_section, hot_function_section,
1538 default_function_section): Use targetm_common.have_named_sections.
1539
1540 2011-06-14 Easwaran Raman <eraman@google.com>
1541
1542 PR rtl-optimization/44194
1543 * dse.c: Include tree-flow.h
1544 (insn_info): Add new field non_frame_wild_read.
1545 (group_info): Add new fields escaped_n and escaped_p.
1546 (kill_on_calls): New variable.
1547 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
1548 (dse_step0): Initialize kill_on_calls.
1549 (can_escape): New function.
1550 (set_usage_bits): Add additional parameter; record information
1551 about escaped locations.
1552 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
1553 (dse_step2_nospill): Set kill_on_calls based on
1554 group->escaped_n and group->escaped_n.
1555 (add_wild_read): Refactor into...
1556 (reset_active_stores): ... New function, and
1557 (free_read_records): ... New function.
1558 (add_non_frame_wild_read): New function.
1559 (scan_insn): Call add_non_frame_wild_read on non-const calls.
1560 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
1561 (dse_step5_nospill): Call scan_reads_nospill for instructions
1562 marked as non_frame_wild_read.
1563 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
1564
1565 2011-06-14 Joseph Myers <joseph@codesourcery.com>
1566
1567 * common/common-target-def.h, common/common-target.def,
1568 common/common-target.h, common/config/default-common.c,
1569 common/config/pa/pa-common.c: New files.
1570 * Makefile.in (common_out_file, common_out_object_file,
1571 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
1572 (OBJS-libcommon-target): Include $(common_out_object_file).
1573 (prefix.o): Update dependencies.
1574 ($(common_out_object_file), common/common-target-hooks-def.h,
1575 s-common-target-hooks-def-h): New.
1576 (s-tm-texi): Also check timestamp on common-target.def.
1577 (build/genhooks.o): Update dependencies.
1578 * config.gcc (common_out_file, target_has_targetm_common): Define.
1579 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
1580 TARGET_ALWAYS_STRIP_DOTDOT.
1581 * configure.ac (common_out_object_file): Define.
1582 (common_out_file, common_out_object_file): Substitute.
1583 (common): Create directory.
1584 * configure: Regenerate.
1585 * doc/tm.texi.in (targetm_common): Document.
1586 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
1587 * doc/tm.texi: Regenerate.
1588 * genhooks.c (hook_array): Also include common/common-target.def.
1589 * prefix.c (tm.h): Don't include.
1590 (common/common-target.h): Include.
1591 (ALWAYS_STRIP_DOTDOT): Don't define.
1592 (update_path): Use targetm_common.always_strip_dotdot instead of
1593 ALWAYS_STRIP_DOTDOT.
1594 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
1595
1596 2011-06-14 David Li <davidxl@google.com>
1597
1598 * passes.c (execute_function_todo): Remove TODO_dump_func.
1599 (execute_one_pass): Remove TODO_dump_func.
1600 (execute_function_dump): New function.
1601 * tree-vrp.c: Remove TODO_dump_func.
1602 * regrename.c: Remove TODO_dump_func.
1603 * fwprop.c: Remove TODO_dump_func.
1604 * tree-into-ssa.c: Remove TODO_dump_func.
1605 * tree-complex.c: Remove TODO_dump_func.
1606 * tracer.c: Remove TODO_dump_func.
1607 * tree-loop-distribution.c: Remove TODO_dump_func.
1608 * postreload-gcse.c: Remove TODO_dump_func.
1609 * postreload.c: Remove TODO_dump_func.
1610 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
1611 * tree-tailcall.c: Remove TODO_dump_func.
1612 * ipa-cp.c: Remove TODO_dump_func.
1613 * final.c: Remove TODO_dump_func.
1614 * tree-emutls.c: Remove TODO_dump_func.
1615 * omp-low.c: Remove TODO_dump_func.
1616 * tree-ssa-dse.c: Remove TODO_dump_func.
1617 * tree-ssa-uncprop.c: Remove TODO_dump_func.
1618 * auto-inc-dec.c: Remove TODO_dump_func.
1619 * reorg.c: Remove TODO_dump_func.
1620 * tree-ssa-copyrename.c: Remove TODO_dump_func.
1621 * tree-ssa-ccp.c: Remove TODO_dump_func.
1622 * compare-elim.c: Remove TODO_dump_func.
1623 * mode-switching.c: Remove TODO_dump_func.
1624 * modulo-sched.c: Remove TODO_dump_func.
1625 * tree-call-cdce.c: Remove TODO_dump_func.
1626 * cse.c: Remove TODO_dump_func.
1627 * web.c: Remove TODO_dump_func.
1628 * tree-stdarg.c: Remove TODO_dump_func.
1629 * lto-streamer-out.c: Remove TODO_dump_func.
1630 * tree-ssa-math-opts.c: Remove TODO_dump_func.
1631 * tree-ssa-dom.c: Remove TODO_dump_func.
1632 * tree-nrv.c: Remove TODO_dump_func.
1633 * loop-init.c: Remove TODO_dump_func.
1634 * gimple-low.c: Remove TODO_dump_func.
1635 * ipa-inline.c: Remove TODO_dump_func.
1636 * tree-ssa-sink.c: Remove TODO_dump_func.
1637 * jump.c: Remove TODO_dump_func.
1638 * ifcvt.c: Remove TODO_dump_func.
1639 * tree-ssa-loop.c: Remove TODO_dump_func.
1640 * recog.c: Remove TODO_dump_func.
1641 * dse.c: Remove TODO_dump_func.
1642 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
1643 * matrix-reorg.c: Remove TODO_dump_func.
1644 * tree-eh.c: Remove TODO_dump_func.
1645 * regmove.c: Remove TODO_dump_func.
1646 * function.c: Remove TODO_dump_func.
1647 * tree-vectorizer.c: Remove TODO_dump_func.
1648 * ipa-split.c: Remove TODO_dump_func.
1649 * gcse.c: Remove TODO_dump_func.
1650 * tree-if-conv.c: Remove TODO_dump_func.
1651 * init-regs.c: Remove TODO_dump_func.
1652 * tree-ssa-phiopt.c: Remove TODO_dump_func.
1653 * implicit-zee.c: Remove TODO_dump_func.
1654 * lower-subreg.c: Remove TODO_dump_func.
1655 * bt-load.c: Remove TODO_dump_func.
1656 * tree-dfa.c: Remove TODO_dump_func.
1657 * except.c: Remove TODO_dump_func.
1658 * emit-rtl.c: Remove TODO_dump_func.
1659 * store-motion.c: Remove TODO_dump_func.
1660 * cfgexpand.c: Remove TODO_dump_func.
1661 * tree-cfgcleanup.c: Remove TODO_dump_func.
1662 * cfgcleanup.c: Remove TODO_dump_func.
1663 * tree-ssa-pre.c: Remove TODO_dump_func.
1664 * tree-sra.c: Remove TODO_dump_func.
1665 * tree-mudflap.c: Remove TODO_dump_func.
1666 * tree-ssa-copy.c: Remove TODO_dump_func.
1667 * cfglayout.c: Remove TODO_dump_func.
1668 * tree-ssa-forwprop.c: Remove TODO_dump_func.
1669 * tree-ssa-dce.c: Remove TODO_dump_func.
1670 * ira.c: Remove TODO_dump_func.
1671 * tree-ssa.c: Remove TODO_dump_func.
1672 * integrate.c: Remove TODO_dump_func.
1673 * tree-optimize.c: Remove TODO_dump_func.
1674 * tree-ssa-phiprop.c: Remove TODO_dump_func.
1675 * tree-object-size.c: Remove TODO_dump_func.
1676 * combine.c: Remove TODO_dump_func.
1677 * bb-reorder.c: Remove TODO_dump_func.
1678 * cprop.c: Remove TODO_dump_func.
1679 * var-tracking.c: Remove TODO_dump_func.
1680 * tree-profile.c: Remove TODO_dump_func.
1681 * tree-vect-generic.c: Remove TODO_dump_func.
1682 * reg-stack.c: Remove TODO_dump_func.
1683 * sched-rgn.c: Remove TODO_dump_func.
1684 * tree-ssa-structalias.c: Remove TODO_dump_func.
1685 * tree-switch-conversion.c: Remove TODO_dump_func.
1686 * tree-cfg.c: Remove TODO_dump_func.
1687 * tree-ssa-reassoc.c: Remove TODO_dump_func.
1688 * combine-stack-adj.c: Remove TODO_dump_func.
1689 * dce.c: Remove TODO_dump_func.
1690 * tree-ssanames.c: Remove TODO_dump_func.
1691 * regcprop.c: Remove TODO_dump_func.
1692
1693 2011-06-14 H.J. Lu <hongjiu.lu@intel.com>
1694
1695 PR middle-end/47364
1696 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
1697 and properly handle result not in Pmode.
1698
1699 2011-06-14 Robert Millan <rmh@gnu.org>
1700
1701 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
1702 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
1703 `config/linux.h'.
1704
1705 * config/i386/kfreebsd-gnu64.h: New file.
1706 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
1707 with `i386/kfreebsd-gnu64.h'.
1708
1709 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
1710 (GNU_USER_LINK_EMULATION64): New macros.
1711 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
1712 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
1713 of hardcoding `elf_i386' and `elf_x86_64'.
1714
1715 2011-06-14 Nick Clifton <nickc@redhat.com>
1716
1717 PR target/49403
1718 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
1719
1720 PR target/49402
1721 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
1722
1723 2011-06-14 Jakub Jelinek <jakub@redhat.com>
1724
1725 PR fortran/49103
1726 * tree.h (DECL_NONSHAREABLE): Define.
1727 (struct tree_decl_common): Change decl_common_unused to
1728 decl_nonshareable_flag.
1729 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
1730 Ignore vars with DECL_NONSHAREABLE bit set.
1731 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
1732 on stores to automatic aggregate vars.
1733
1734 PR rtl-optimization/49390
1735 Revert:
1736 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
1737
1738 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
1739 MEM_ALIAS_SET.
1740
1741 2011-06-14 Zdenek Dvorak <ook@ucw.cz>
1742 Tom de Vries <tom@codesourcery.com>
1743
1744 PR target/45098
1745 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
1746 Document changed semantics.
1747 (max_stmt_executions, max_stmt_executions_int): Declare.
1748 * tree-data-ref.c (estimated_loop_iterations)
1749 (estimated_loop_iterations_int): Move functions...
1750 * tree-ssa-loop-niter.c (estimated_loop_iterations)
1751 (estimated_loop_iterations_int): here.
1752 (record_estimate): Change nb_iterations_upper_bound and
1753 nb_iterations_estimate semantics.
1754 (max_stmt_executions, max_stmt_executions_int): New function.
1755 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
1756 (max_stmt_executions_tree): this.
1757 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
1758 estimated_loop_iterations_tree.
1759 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
1760 max_stmt_executions_int instead of estimated_loop_iterations_int.
1761 * predict.c (predict_loops): Idem.
1762 * tree-parloops.c (parallelize_loops): Idem.
1763 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
1764 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
1765 (init_omega_for_ddr_1): Idem.
1766 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
1767 (loop_prefetch_arrays): Idem
1768 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
1769 max_stmt_executions instead of estimated_loop_iterations.
1770 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
1771 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
1772 instead of nb_iterations_upper_bound.
1773
1774 2011-06-13 Jan Hubicka <jh@suse.cz>
1775
1776 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
1777
1778 2011-06-14 Richard Henderson <rth@redhat.com>
1779
1780 PR debug/48459
1781 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
1782 (based_loc_descr): Assert it's true.
1783 (compute_frame_pointer_to_fb_displacement): Set it, rather than
1784 aborting immediately.
1785
1786 2011-06-14 Sanjin Liu <scliu@faraday-tech.com>
1787 Mingfeng Wu <mingfeng@faraday-tech.com>
1788
1789 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
1790
1791 2011-06-13 Jan Hubicka <jh@suse.cz>
1792
1793 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
1794
1795 2011-06-13 Jan Hubicka <jh@suse.cz>
1796
1797 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
1798 similarly to DECL_COMDAT.
1799 * cgraphunit.c (cgraph_analyze_function): Likewise.
1800 * ipa.c (function_and_variable_visibility): Likewise.
1801
1802 2011-06-13 Jan Hubicka <jh@suse.cz>
1803
1804 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
1805 BINFO_VIRTUALS when streaming for ltrans unit.
1806
1807 2011-06-13 David Edelsohn <dje.gcc@gmail.com>
1808
1809 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
1810 (movdi_internal64): Same.
1811
1812 2011-06-13 Edmar Wienskoski <edmar@freescale.com>
1813
1814 PR target/44618
1815 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
1816 a set of similar patterns, where the MATCH_OPERAND for the function
1817 argument is replaced with individual references to hardware registers.
1818 (save_fpregs_<mode>): Ditto
1819 (restore_gpregs_<mode>): Ditto
1820 (return_and_restore_gpregs_<mode>): Ditto
1821 (return_and_restore_fpregs_<mode>): Ditto
1822 (return_and_restore_fpregs_aix_<mode>): Ditto
1823
1824 2011-06-13 Jan Hubicka <jh@suse.cz>
1825
1826 * ipa-utils.c (postorder_stack): New structure.
1827 (ipa_reverse_postorder): Handle aliases.
1828
1829 2011-06-13 Jan Hubicka <jh@suse.cz>
1830
1831 * ipa-inline.c (reset_edge_caches): Walk aliases.
1832 (update_caller_keys): Do not test inlinability of aliases.
1833 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
1834 (do_estimate_growth): Fix typo.
1835
1836 2011-06-13 Jan Hubicka <jh@suse.cz>
1837
1838 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
1839 (can_remove_node_now_p): ... here; handle same comdat groups.
1840 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
1841 (inline_call): Update use of can_remove_node_now_p.
1842
1843 2011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
1844
1845 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
1846 condition to disallow non-identical memory locations.
1847 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
1848 preference to bit manipulation instructions.
1849
1850 2011-06-13 Jan Hubicka <jh@suse.cz>
1851
1852 * cgraph.c (cgraph_for_node_thunks_and_aliases,
1853 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
1854 (nonremovable_p): New function.
1855 (cgraph_can_remove_if_no_direct_calls_p): New function.
1856 (used_from_object_file_p): New functoin.
1857 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
1858 references from aliases.
1859 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
1860 * ipa-inline.c (check_caller_edge): New function.
1861 (want_inline_function_called_once_p): Use it; accept aliases called
1862 once, too.
1863 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
1864
1865 2011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1866
1867 PR target/48454
1868 * config/arm/neon.md (vec_pack_trunc): Set the lengths
1869 correctly for the case with Quad vectors.
1870
1871 2011-06-13 Jakub Jelinek <jakub@redhat.com>
1872 Ira Rosen <ira.rosen@linaro.org>
1873
1874 PR tree-optimization/49352
1875 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
1876 all, make sure loop_use_stmt after the loop is a def stmt of a used
1877 SSA_NAME that is the only one defined inside of the loop. Don't
1878 check for COND_EXPR and GIMPLE_BINARY_RHS.
1879 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
1880 check_reduction is true.
1881
1882 2011-06-11 Jan Hubicka <jh@suse.cz>
1883
1884 PR middle-end/49373
1885 * ipa.c (cgraph_externally_visible_p): Check resolution info.
1886
1887 2011-06-11 Jan Hubicka <jh@suse.cz>
1888
1889 PR middle-end/48836
1890 * ipa-inline-transform.c: Include tree-pass.h
1891 (inline_transform): Set TODO_update_ssa_only_virtuals.
1892 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
1893
1894 2011-06-11 Jan Hubicka <jh@suse.cz>
1895
1896 PR middle-end/49378
1897 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
1898 aliases and thunks.
1899
1900 2011-06-12 Ira Rosen <ira.rosen@linaro.org>
1901
1902 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
1903 Take number of iterations to peel into account for equally frequent
1904 misalignment values.
1905
1906 2011-06-11 Jan Hubicka <jh@suse.cz>
1907
1908 * lto-streamer-out.c (produce_symtab): Stream out the newly
1909 represented aliases.
1910
1911 2011-06-11 Jan Hubicka <jh@suse.cz>
1912
1913 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
1914 varying args.
1915 (ipa_update_after_lto_read): Likewise.
1916 (ipa_write_node_info): Do not sream call_with_var_arguments.
1917 (ipa_read_node_info): Likewise.
1918
1919 2011-06-11 Jan Hubicka <jh@suse.cz>
1920
1921 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
1922
1923 2011-06-11 Jan Hubicka <jh@suse.cz>
1924
1925 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
1926 (lto_symtab_resolve_can_prevail_p): Likewise.
1927 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
1928 * cgraph.c (same_body_aliases_done): New global var.
1929 (cgraph_same_body_alias_1): Rename to ...
1930 (cgraph_create_function_alias): ... this one; reorg to new
1931 representation.
1932 (cgraph_same_body_alias): Use cgraph_create_function_alias;
1933 record references when asked to.
1934 (cgraph_add_thunk): Fix formating.
1935 (cgraph_get_node): Kill same body alias code.
1936 (cgraph_node_for_asm): Likewise.
1937 (cgraph_remove_same_body_alias): Remove.
1938 (cgraph_remove_node): Kill same body alias code.
1939 (cgraph_mark_address_taken_node): Mark also the aliased function
1940 as having address taken.
1941 (dump_cgraph_node): Dump same body aliases.
1942 (cgraph_for_node_thunks_and_aliases): Update for new alias
1943 representation.
1944 (cgraph_for_node_and_aliases): Likewise.
1945 * cgraph.h (same_body): Kll pointer.
1946 (same_body_alias): Update comment.
1947 (same_body_aliases_done): Declare.
1948 (cgraph_remove_same_body_alias): Remove declaration.
1949 (cgraph_create_function_alias): Declare.
1950 (cgraph_process_same_body_aliases): Declare.
1951 (cgraph_function_with_gimple_body_p): Check for alias.
1952 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
1953 (cgraph_alias_aliased_node): New function.
1954 (cgraph_function_node): Update for new aliases.
1955 (cgraph_function_or_thunk_node): Likewise.
1956 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
1957 (inline_call): Remove dead aliases.
1958 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
1959 name hack for same body aliases.
1960 (clone_of_p): Look through aliases.
1961 (verify_cgraph_node): Verify aliases.
1962 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
1963 (cgraph_process_same_body_aliases): New function.
1964 (process_function_and_variable_attributes): Disable weakref warning on
1965 alias.
1966 (cgraph_analyze_functions): Handle aliases.
1967 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
1968 (assemble_thunks): Rename to ...
1969 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
1970 (cgraph_expand_function): Remove alias output code.
1971 (cgraph_output_in_order): Skip aliases.
1972 (cgraph_preserve_function_body_p): Aliases don't need preserving.
1973 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
1974 (ipa_record_reference): Do not assert on alias references.
1975 (ipa_ref_has_aliases_p): New function.
1976 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
1977 (ipa_ref_has_aliases_p): Declare.
1978 * lto-cgraph.c (lto_output_node): Handle aliases.
1979 (input_node): Likewise.
1980 * lto-streamer-out.c (lto_output): Skip aliases.
1981 (produce_symtab): Kill same_body_alias code.
1982 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
1983 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
1984 * ipa-inline.c (update_caller_keys): Walk aliases.
1985 (inline_small_functions): Fix thinko in previous patch.
1986 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
1987 (function_and_variable_visibility): Do not walk same body aliases.
1988 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
1989 (ipa_pta_execute): Use it.
1990
1991 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
1992
1993 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
1994 (*vec_dupv2df): Rename from vec_dupv2df.
1995 (vec_dupv2df): New expander.
1996
1997 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
1998
1999 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
2000
2001 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
2002
2003 * config/i386/i386.md: Use default value in "isa" attribute.
2004 * config/i386/sse.md: Ditto.
2005 * config/i386/mmx.md: Ditto.
2006
2007 2011-06-10 Wei Guozhi <carrot@google.com>
2008
2009 PR target/45335
2010 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
2011 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
2012 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
2013 related peephole2.
2014 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
2015 related peephole2.
2016 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
2017 (arm_legitimate_ldrd_p): New prototype.
2018 (arm_output_ldrd): New prototype.
2019 * config/arm/arm.c (arm_check_ldrd_operands): New function.
2020 (arm_legitimate_ldrd_p): New function.
2021 (arm_output_ldrd): New function.
2022
2023 2011-06-10 David Li <davidxl@google.com>
2024
2025 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
2026 * passes.c (passr_eq): New function.
2027 (create_pass_tab): New function.
2028 (pass_traverse): New function.
2029 (dump_one_pass): New function.
2030 (dump_pass_list): New function.
2031 (dump_passes): New function.
2032
2033 2011-06-10 Jan Hubicka <jh@suse.cz>
2034
2035 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
2036 setting the nothrow flag.
2037 * ipa-reference.c (propagate): Skip aliases.
2038 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
2039 (propagate_nothrow): Skip aliases; do not update cgraph.
2040 (local_pure_const): Do not update cgraph.
2041 * tree-profile.c (tree_profiling): Do fixup_cfg.
2042
2043 2011-06-10 Jan Hubicka <jh@suse.cz>
2044
2045 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
2046 (cgraph_local_node_p): ... here; handle aliases.
2047 (has_addr_references_p): Break out from ...;
2048 (cgraph_remove_unreachable_nodes) ... here.
2049
2050 2011-06-10 Jan Hubicka <jh@suse.cz>
2051
2052 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
2053 * common.opt (flag_inline_functions_called_once): Do not
2054 initialize to 1.
2055
2056 2011-06-10 Jan Hubicka <jh@suse.cz>
2057
2058 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
2059 (ipcp_initialize_node_lattices): Do not deal with aliases;
2060 Do not try to propagate through thunks.
2061 (ipcp_change_tops_to_bottom): Do not deal with aliases.
2062
2063 2011-06-10 Jan Hubicka <jh@suse.cz>
2064
2065 * ipa-prop.c (ipa_write_node_info): Stream jump functions
2066 for indirect calls.
2067 (ipa_read_node_info): Likewise.
2068
2069 2011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2070
2071 PR lto/49302
2072 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
2073 (build_and_insert_call): Likewise.
2074 (build_and_insert_ref): New.
2075 (gimple_expand_builtin_pow): Minor cleanup.
2076 (gimple_expand_builtin_cabs): New.
2077 (execute_cse_sincos): Add case for BUILT_IN_CABS.
2078
2079 2011-06-10 Jan Hubicka <jh@suse.cz>
2080
2081 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
2082 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
2083 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
2084 (ipcp_propagate_stage): Skip aliases when propagating.
2085 (ipcp_need_redirect_p): Skip aliases.
2086 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
2087 collect_callers_of_node.
2088 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
2089 for aliases.
2090 (ipa_compute_jump_functions): Look through aliases.
2091
2092 2011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2093
2094 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
2095
2096 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
2097
2098 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
2099 Adjust comments.
2100 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
2101
2102 2011-06-10 Jan Hubicka <jh@suse.cz>
2103
2104 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
2105 Update call of gimple_get_virt_method_for_binfo.
2106 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
2107 refuse_thunks parameter.
2108 (gimple_fold_call): Update.
2109 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
2110
2111 2011-06-10 Jan Hubicka <jh@suse.cz>
2112
2113 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
2114 (not_all_callers_have_enough_arguments_p): ... this one; turn into
2115 worker for cgraph_for_node_and_aliases.
2116 (convert_callers_for_node): Break out from ...
2117 (convert_callers): ... here.
2118 (modify_function): Use collect_callers_of_node.
2119 (ipa_early_sra): Use cgraph_for_node_and_aliases.
2120
2121 2011-06-10 Richard Guenther <rguenther@suse.de>
2122
2123 PR tree-optimization/49361
2124 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
2125 when not already in gimple form.
2126
2127 2011-06-10 Richard Guenther <rguenther@suse.de>
2128
2129 PR bootstrap/49344
2130 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
2131 FOR_EACH_PHI_OR_STMT_USE.
2132
2133 2011-06-10 Jan Hubicka <jh@suse.cz>
2134
2135 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
2136 (clone_inlined_nodes): ... here.
2137 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
2138 to real destination prior inlining.
2139 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
2140 can_early_inline_edge_p, want_early_inline_function_p,
2141 want_early_inline_function_p, want_inline_small_function_p,
2142 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
2143 edge_badness, update_all_callee_keys, lookup_recursive_calls,
2144 add_new_edges_to_heap, inline_small_functions, flatten_function,
2145 inline_always_inline_functions, early_inline_small_functions): Use
2146 cgraph_function_or_thunk_node.
2147 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
2148 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
2149 (do_estimate_edge_growth_1): Break out from ...
2150 (do_estimate_growth) ... here; walk aliases.
2151 (inline_generate_summary): Skip aliases.
2152
2153 2011-06-10 Richard Guenther <rguenther@suse.de>
2154
2155 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
2156 forward when combining, visit inserted stmts when a stmt was changed.
2157
2158 2011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
2159
2160 * tree.h (error_operand_p): Add.
2161 * dbxout.c (dbxout_type_fields): Use the latter.
2162 * c-decl.c (add_stmt): Likewise.
2163 * gimplify.c (omp_add_variable, omp_notice_variable,
2164 gimplify_scan_omp_clauses): Likewise.
2165
2166 2011-06-10 Georg-Johann Lay <avr@gjlay.de>
2167
2168 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
2169 when a value is actually passed in regs.
2170
2171 2011-06-10 Eric Botcazou <ebotcazou@adacore.com>
2172 Laurent Rougé <laurent.rouge@menta.fr>
2173
2174 * doc/invoke.texi (SPARC options): Add -mflat.
2175 * config/sparc/sparc.opt: Likewise.
2176 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
2177 (sparc_flat_expand_prologue): Declare.
2178 (sparc_flat_expand_epilogue): Likewise.
2179 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
2180 (CPP_ENDIAN_SPEC): Replace with...
2181 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
2182 (CPP_SPEC): Adjust to above change.
2183 (EXTRA_SPECS): Likewise.
2184 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
2185 (INCOMING_REGNO): Likewise.
2186 (OUTGOING_REGNO): Likewise.
2187 (LOCAL_REGNO): Likewise.
2188 (SETUP_FRAME_ADDRESSES): Likewise.
2189 (FIXED_REGISTERS): Set 0 for %fp.
2190 (CALL_USED_REGISTERS): Likewise.
2191 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
2192 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
2193 (RETURN_ADDR_REGNUM): Define.
2194 (RETURN_ADDR_RTX): Use it.
2195 (INCOMING_RETURN_ADDR_REGNUM): Define.
2196 (INCOMING_RETURN_ADDR_RTX): Use it.
2197 (DWARF_FRAME_RETURN_COLUMN): Likewise.
2198 (EH_RETURN_REGNUM): Define.
2199 (EH_RETURN_STACKADJ_RTX): Use it.
2200 (EH_RETURN_HANDLER_RTX): Delete.
2201 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
2202 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
2203 Delete.
2204 (struct machine_function): Add frame_size, apparent_frame_size,
2205 frame_base_reg, frame_base_offset, n_global_fp_regs and
2206 save_local_in_regs_p fields.
2207 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
2208 sparc_frame_base_offset, sparc_n_global_fp_regs,
2209 sparc_save_local_in_regs_p): New macros.
2210 (sparc_option_override): Error out if -fcall-saved-REG is specified
2211 for Out registers.
2212 (eligible_for_restore_insn): Fix formatting.
2213 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
2214 (eligible_for_sibcall_delay): Likewise.
2215 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
2216 (sparc_legitimate_address_p): Adjust to above change.
2217 (save_global_or_fp_reg_p): New predicate.
2218 (return_addr_reg_needed_p): Likewise.
2219 (save_local_or_in_reg_p): Likewise.
2220 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
2221 (SORR_SAVE, SORR_RESTORE): Delete.
2222 (sorr_pred_t): New typedef.
2223 (sorr_act_t): New enum.
2224 (save_or_restore_regs): Rename to...
2225 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
2226 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
2227 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
2228 mechanism. Add CFI information for double-word saves in 32-bit mode.
2229 (emit_adjust_base_to_offset): New function extracted from...
2230 (emit_save_or_restore_regs): ...this. Rename the rest to...
2231 (emit_save_or_restore_regs_global_fp_regs): ...this.
2232 (emit_save_or_restore_regs_local_in_regs): New function.
2233 (gen_create_flat_frame_[123]): New functions.
2234 (sparc_expand_prologue): Use SIZE local variable. Adjust.
2235 (sparc_flat_expand_prologue): New function.
2236 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
2237 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
2238 (sparc_flat_expand_epilogue): New function.
2239 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
2240 (output_return): Likewise.
2241 (output_sibcall): Likewise.
2242 (sparc_output_mi_thunk): Likewise.
2243 (sparc_frame_pointer_required): Likewise.
2244 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
2245 function optimization.
2246 * config/sparc/sparc.md (flat): New attribute.
2247 (prologue): Add TARGET_FLAT handling.
2248 (save_register_window): Disable if TARGET_FLAT.
2249 (create_flat_frame_[123]): New patterns.
2250 (epilogue): Add TARGET_FLAT handling.
2251 (sibcall_epilogue): Likewise.
2252 (eh_return): New expander.
2253 (eh_return_internal): New insn and splitter.
2254 (return_internal): Add TARGET_FLAT handling.
2255 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
2256 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
2257 (nonlocal_goto): Add TARGET_FLAT handling.
2258 * config/sparc/t-elf: Add -mflat multilib.
2259 * config/sparc/t-leon: Likewise.
2260
2261 2011-06-10 Jan Hubicka <jh@suse.cz>
2262
2263 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
2264 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
2265 (self_recursive_p): Use cgraph_function_node.
2266 (propagate_pure_const): Likewise.
2267 (propagate_nothrow): Likewise.
2268 * ipa-reference.c (ipa_reference_get_not_read_global): Use
2269 cgraph_function_node.
2270 (propagate_bits): Likewise.
2271 (propagate): Likewise.
2272
2273 2011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2274 Richard Earnshaw <rearnsha@arm.com>
2275
2276 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
2277 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
2278 (*thumb2_movdi_vfp): Delete.
2279 (*arm_movdi_vfp_cortexa8): Delete.
2280 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
2281 (*movdi_vfp_cortexa8): Likewise.
2282
2283 2011-06-10 Richard Guenther <rguenther@suse.de>
2284
2285 * stor-layout.c (initialize_sizetypes): Give names to all
2286 sizetype kinds.
2287
2288 2011-06-10 Ira Rosen <ira.rosen@linaro.org>
2289
2290 PR tree-optimization/49318
2291 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
2292 irrelevant pattern statements.
2293
2294 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
2295
2296 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
2297
2298 PR bootstrap/49354
2299 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
2300 to last assignment.
2301
2302 2011-06-09 Jan Hubicka <jh@suse.cz>
2303
2304 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
2305 do not recompute reachable flag.
2306 (cgraph_finalize_function, cgraph_analyze_functions): Set
2307 redefined_extern_inline here.
2308
2309 2011-06-09 Jan Hubicka <jh@suse.cz>
2310
2311 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
2312 (cgraph_only_called_directly_p): ... this one; bring offline.
2313 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
2314 varpool_used_from_object_file_p): Drop names from the declaratoin.
2315 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
2316 collect_callers_of_node): New.
2317 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
2318 (cgraph_edge_recursive_p): Use cgraph_function_node.
2319 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
2320 (cgraph_node_cannot_be_local_p_1): Break out from ...
2321 (cgraph_node_can_be_local_p): ... here; walk aliases.
2322 (cgraph_for_node_thunks_and_aliases): New function.
2323 (cgraph_for_node_and_aliases): New function.
2324 (cgraph_make_node_local_1): Break out from ...
2325 (cgraph_make_node_local) ... here; use
2326 cgraph_for_node_thunks_and_aliases.
2327 (cgraph_set_nothrow_flag_1): Break out from ...
2328 (cgraph_set_nothrow_flag) ... here;
2329 use cgraph_for_node_thunks_and_aliases.
2330 (cgraph_set_const_flag_1): Break out from ...
2331 (cgraph_set_const_flag) ... here;
2332 use cgraph_for_node_thunks_and_aliases.
2333 (cgraph_set_pure_flag_1): Break out from ...
2334 (cgraph_set_pure_flag) ... here;
2335 use cgraph_for_node_thunks_and_aliases.
2336 (cgraph_propagate_frequency_1): Break out from ...
2337 (cgraph_propagate_frequency) ... here; use
2338 cgraph_for_node_thunks_and_aliases.
2339 (cgraph_used_from_object_file_p): Do not care about aliases.
2340 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
2341 New functions.
2342 (collect_callers_of_node_1, collect_callers_of_node): New functions.
2343
2344 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
2345
2346 PR rtl-optimization/49154
2347 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
2348 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
2349 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
2350 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
2351 * config/cris/cris.h (cris_register_move_cost): Remove
2352 !TARGET_V32 code. Tweak comments.
2353
2354 2011-06-09 Jan Hubicka <jh@suse.cz>
2355
2356 * cgraphbuild.c (record_eh_tables): Mark personality function as having
2357 address taken.
2358
2359 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
2360
2361 PR rtl-optimization/49154
2362 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
2363 is a matching slot in the hashtable, assign it to classes_ptr.
2364
2365 PR rtl-optimization/49154
2366 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
2367 register classes.
2368 * doc/tm.texi: Regenerate.
2369
2370 2011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
2371
2372 PR target/49307
2373 * config/sh/sh.md (UNSPEC_CHKADD): New.
2374 (chk_guard_add): New define_insn_and_split.
2375 (symGOT_load): Use chk_guard_add instead of blockage.
2376
2377 2011-06-09 Kai Tietz <ktietz@redhat.com>
2378
2379 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
2380
2381 2011-06-09 Eric Botcazou <ebotcazou@adacore.com>
2382
2383 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
2384
2385 2011-06-09 Wei Guozhi <carrot@google.com>
2386
2387 PR target/46975
2388 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
2389 (peephole2 for conditional move): Generate 16 bit instructions.
2390
2391 2011-06-09 Uros Bizjak <ubizjak@gmail.com>
2392
2393 * config/i386/i386.md (*movdi_internal_rex64): Merge
2394 alternatives 6 and 8.
2395
2396 2011-06-09 David Li <davidxl@google.com>
2397
2398 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
2399 * passes.c (passr_eq): New function.
2400 (create_pass_tab): New function.
2401 (pass_traverse): New function.
2402 (dump_one_pass): New function.
2403 (dump_pass_list): New function.
2404 (dump_passes): New function.
2405
2406 2011-06-09 David Li <davidxl@google.com>
2407
2408 * tree-complex.c (tree_lower_complex): Gate cleanup.
2409 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
2410 (execute_optimize_stdarg): Ditto.
2411 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
2412 (execute_cleanup_eh_1): Ditto.
2413 (execute_cleanup_eh): Ditto.
2414 * gcse.c (gate_rtl_pre): Ditto.
2415 (execute_rtl_pre): Ditto.
2416 * except.c (finish_eh_generation): Ditto.
2417 (convert_to_eh_region_ranges): Ditto.
2418 * cprop.c (one_cprop_pass): Ditto.
2419
2420 2011-06-09 Bernd Schmidt <bernds@codesourcery.com>
2421
2422 PR target/48673
2423 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
2424 in all basic blocks.
2425
2426 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2427
2428 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
2429 (HAVE_ENABLE_EXECUTE_STACK): Define.
2430 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
2431 (HAVE_ENABLE_EXECUTE_STACK): Define.
2432 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
2433 (HAVE_ENABLE_EXECUTE_STACK): Define.
2434 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
2435 (ENABLE_EXECUTE_STACK): Remove.
2436 (HAVE_ENABLE_EXECUTE_STACK): Define.
2437 [IN_LIBGCC2]: Don't include <windows.h>.
2438 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
2439 (HAVE_ENABLE_EXECUTE_STACK): Define.
2440 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
2441 (HAVE_ENABLE_EXECUTE_STACK): Define.
2442 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
2443 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
2444 (HAVE_ENABLE_EXECUTE_STACK): Define.
2445 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
2446 (HAVE_ENABLE_EXECUTE_STACK): Define.
2447 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
2448 (HAVE_ENABLE_EXECUTE_STACK): Define.
2449 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
2450 (HAVE_ENABLE_EXECUTE_STACK): Define.
2451 * config/alpha/alpha.c (alpha_trampoline_init): Test
2452 HAVE_ENABLE_EXECUTE_STACK.
2453 * config/i386/i386.c (ix86_trampoline_init): Likewise.
2454 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
2455 (sparc64_initialize_trampoline): Likewise.
2456 * libgcc2.c [L_enable_execute_stack]: Remove.
2457 * system.h (ENABLE_EXECUTE_STACK): Poison.
2458 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
2459 * doc/tm.texi: Regenerate.
2460 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
2461
2462 2011-06-09 Jakub Jelinek <jakub@redhat.com>
2463
2464 PR middle-end/49308
2465 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
2466 variable. After resetting and rescanning insn continue with previous
2467 statement.
2468
2469 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2470
2471 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
2472 (gcc_cv_ld_hidden): Likewise.
2473 * configure: Regenerate.
2474 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
2475 (ix86_stack_protect_fail): Mark unused.
2476 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
2477 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
2478 [TARGET_MACHO]: Don't define.
2479 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
2480 (TARGET_STACK_PROTECT_FAIL): Likewise.
2481 (rs6000_stack_protect_fail): Mark unused.
2482 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
2483 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
2484
2485 2011-06-08 Andi Kleen <ak@linux.intel.com>
2486
2487 * varasm.c (get_section): Print location of other conflict
2488 for section conflicts.
2489
2490 2011-06-08 Andi Kleen <ak@linux.intel.com>
2491
2492 * config/i386/driver-i386.c (host_detect_local_cpu):
2493 Add model 0x2d Intel CPU.
2494
2495 2011-06-08 Andi Kleen <ak@linux.intel.com>
2496
2497 * reginfo.c (global_regs_decl): Add.
2498 (globalize_reg): Add decl parameter. Compute location. Pass location
2499 to warnings and add inform. Store decl in global_regs_decl.
2500 * rtl.h (globalize_reg): Update prototype.
2501 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
2502
2503 2011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
2504
2505 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
2506
2507 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
2508
2509 PR target/49305
2510 * config/sh/predicates.md (general_movsrc_operand): Check
2511 mode for memory with indexed address for QI and HImode.
2512 (general_movdst_operand): Likewise.
2513
2514 2011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
2515
2516 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
2517
2518 2011-06-08 Alexandre Oliva <aoliva@redhat.com>
2519
2520 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
2521 (num_ssa_operands): Likewise.
2522 (op_iter_init_phiuse): Forward-declare.
2523 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
2524
2525 2011-06-08 Nick Clifton <nickc@redhat.com>
2526
2527 * doc/invoke.texi (ARM Options): Update description of
2528 -mthumb-interwork.
2529
2530 2011-06-08 H.J. Lu <hongjiu.lu@intel.com>
2531
2532 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2533 unknown Intel family 0x6 CPUs.
2534
2535 2011-06-08 Martin Jambor <mjambor@suse.cz>
2536
2537 * tree-sra.c (mark_rw_status): Removed.
2538 (analyze_access_subtree): New parameter parent instead of
2539 mark_read and mark_write, propagate from that.
2540
2541 2011-06-08 Julian Brown <julian@codesourcery.com>
2542
2543 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
2544 for double-precision helper functions in hard-float mode if only
2545 single-precision arithmetic is supported in hardware.
2546
2547 2011-06-08 Alexander Monakov <amonakov@ispras.ru>
2548
2549 PR rtl-optimization/49303
2550 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
2551 code_motion_path_driver returned 0 or 1.
2552 (sel_region_finish): Clear h_d_i_d.
2553
2554 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
2555
2556 * config/sh/sh.c (prepare_move_operands): Set pic register
2557 appropriately for global and local dynamic tls models even
2558 if flag_pic is unset.
2559
2560 2011-06-07 Jason Merrill <jason@redhat.com>
2561
2562 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
2563
2564 2011-06-07 Xinliang David Li <davidxl@google.com>
2565 * passes.c (enable_disable_pass): Handle assembler name.
2566 (is_pass_explicitly_enabled_or_disabled): Ditto.
2567
2568 2011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2569
2570 PR tree-optimization/48497
2571 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
2572
2573 2011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2574
2575 PR tree-optimization/46728
2576 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
2577 to use gimple_val_nonnegative_real_p.
2578 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
2579 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
2580
2581 2011-06-07 H.J. Lu <hongjiu.lu@intel.com>
2582
2583 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
2584
2585 2011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
2586
2587 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
2588 constant vectors.
2589
2590 2011-06-07 Richard Guenther <rguenther@suse.de>
2591
2592 * stor-layout.c (initialize_sizetypes): Initialize all
2593 sizetypes based on target definitions.
2594 (set_sizetype): Remove.
2595 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
2596 * tree.h (set_sizetype): Remove.
2597
2598 2011-06-07 Nick Clifton <nickc@redhat.com>
2599
2600 * config.gcc: Unify V850 architecture options and add support for
2601 newer V850 architectures.
2602 * config/v850/t-v850e: Delete.
2603
2604 2011-06-07 Richard Guenther <rguenther@suse.de>
2605
2606 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
2607 Call set_sizetype from here.
2608
2609 2011-06-07 Andrew Stubbs <ams@codesourcery.com>
2610
2611 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
2612 (*maddhisi4tb, *maddhisi4tt): New define_insns.
2613
2614 2011-06-07 Bernd Schmidt <bernds@codesourcery.com>
2615 Andrew Stubbs <ams@codesourcery.com>
2616
2617 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
2618 multiplies.
2619 * doc/md.texi (Canonicalization of Instructions): Document widening
2620 multiply canonicalization.
2621
2622 2011-06-07 Jakub Jelinek <jakub@redhat.com>
2623
2624 PR gcov-profile/49299
2625 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
2626
2627 2011-06-07 Ira Rosen <ira.rosen@linaro.org>
2628
2629 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
2630 a pointer.
2631 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
2632 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
2633 vect_recog_pow_pattern): Likewise.
2634 (vect_pattern_recog_1): Remove declaration.
2635 (widened_name_p): Remove declaration. Add new argument to specify
2636 whether to check that both types are either signed or unsigned.
2637 (vect_recog_widen_mult_pattern): Update documentation. Handle
2638 unsigned patterns and multiplication by constants.
2639 (vect_pattern_recog_1): Update vect_recog_func references. Use
2640 statement information from the statement returned from pattern
2641 detection functions.
2642 (vect_pattern_recog): Update vect_recog_func reference.
2643 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
2644 multiplication by a constant use the type of the other operand.
2645
2646 2011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
2647
2648 PR rtl-optimization/49145
2649 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
2650
2651 2011-06-06 Jakub Jelinek <jakub@redhat.com>
2652
2653 PR debug/49262
2654 * dwarf2out.c (native_encode_initializer): Decrement count in each
2655 iteration.
2656
2657 PR debug/49294
2658 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
2659 non-MODE_INT modes.
2660
2661 PR c++/49264
2662 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
2663 if stmt folded into nothing.
2664 * tree-inline.c (fold_marked_statements): If a builtin at the end of
2665 a bb folded into nothing, just update cgraph edges and move to next bb.
2666 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
2667 to be NULL. Don't compute count and frequency if new_call is NULL.
2668
2669 2011-06-04 Diego Novillo <dnovillo@google.com>
2670
2671 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
2672 (cgraph.o): Likewise.
2673 (cgraphunit.o): Likewise.
2674 * cgraphunit.c: Include lto-streamer.h
2675 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
2676 if LTO is enabled.
2677 * lto-streamer-in.c (unpack_value_fields): Call
2678 streamer_hooks.unpack_value_fields if set.
2679 (lto_materialize_tree): For unhandled nodes, first try to
2680 call lto_streamer_hooks.alloc_tree, if it exists.
2681 (lto_input_ts_decl_common_tree_pointers): Move reading of
2682 DECL_INITIAL to lto_streamer_read_tree.
2683 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
2684 (lto_streamer_read_tree): New.
2685 (lto_reader_init): Rename from lto_init_reader.
2686 Move initialization code to lto/lto.c.
2687 * lto-streamer-out.c (pack_value_fields): Call
2688 streamer_hooks.pack_value_fields if set.
2689 (lto_output_tree_ref): For tree nodes that are not normally indexable,
2690 call streamer_hooks.indexable_with_decls_p before giving up.
2691 (lto_output_ts_decl_common_tree_pointers): Move handling
2692 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
2693 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
2694 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
2695 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
2696 (lto_streamer_write_tree): New.
2697 (lto_output): Call lto_streamer_init directly.
2698 (lto_writer_init): Remove.
2699 * lto-streamer.c (streamer_hooks): New.
2700 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
2701 instead of lto_preload_common_nodes.
2702 (lto_is_streamable): Move from lto-streamer.h
2703 (lto_streamer_hooks_init): New.
2704 (streamer_hooks): New.
2705 (streamer_hooks_init): New.
2706 * lto-streamer.h (struct output_block): Forward declare.
2707 (struct lto_input_block): Likewise.
2708 (struct data_in): Likewise.
2709 (struct bitpack_d): Likewise.
2710 (struct streamer_hooks): Declare.
2711 (streamer_hooks): Declare.
2712 (lto_streamer_hooks_init): Declare.
2713 (lto_streamer_write_tree): Declare.
2714 (lto_streamer_read_tree): Declare.
2715 (streamer_hooks_init): Declare.
2716 (lto_is_streamable): Move to lto-streamer.c
2717
2718 2011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2719
2720 * longlong.h (smul_ppmm): The resulting register pair contains the
2721 higher order word first.
2722
2723 2011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2724
2725 PR tree-optimization/46728
2726 * builtins.c (powi_table): Remove.
2727 (powi_lookup_cost): Remove.
2728 (powi_cost): Remove.
2729 (expand_powi_1): Remove.
2730 (expand_powi): Remove.
2731 (expand_builtin_pow_root): Remove.
2732 (expand_builtin_pow): Remove.
2733 (expand_builtin_powi): Eliminate handling of constant exponent.
2734 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
2735
2736 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
2737
2738 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
2739
2740 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
2741
2742 * dce.c (reset_unmarked_insns_debug_uses): New.
2743 (delete_unmarked_insns): Skip debug insns.
2744 (prescan_insns_for_dce): Likewise.
2745 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
2746 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
2747 active reg can be found.
2748 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
2749 (convert_regs_1): Use it.
2750
2751 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
2752
2753 * tree-pretty-print.c (dump_function_header): Add flags.
2754 Don't dump decl_uid with nouid.
2755 * tree-pretty-print.h (dump_function_header): Adjust.
2756 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
2757 * passes.c (pass_init_dump_file): Pass dump_flags on.
2758 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
2759
2760 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
2761
2762 PR bootstrap/49270
2763 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
2764
2765 2011-06-06 Mikael Pettersson <mikpe@it.uu.se>
2766
2767 PR tree-optimization/49243
2768 * calls.c (setjmp_call_p): Also check if fndecl has the
2769 returns_twice attribute.
2770
2771 2011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2772
2773 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
2774 -ffast-math etc.
2775
2776 2011-06-06 Richard Henderson <rth@redhat.com>
2777 Georg-Johann Lay <avr@gjlay.de>
2778
2779 PR target/42210
2780 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
2781 New predicates.
2782 * config/avr/avr.md ("insv"): New insn expander.
2783 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
2784 "*insv.not.io", "*insv.reg"): New insns.
2785
2786 2011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
2787
2788 PR target/49285
2789 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
2790 to nonimmediate_operand from memory_operand for the operand that is to
2791 be forced to memory by the expander. Lose the constraints.
2792
2793 2011-06-05 Eric Botcazou <ebotcazou@adacore.com>
2794
2795 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
2796 EH return when delayed branches are disabled.
2797
2798 2011-06-05 Uros Bizjak <ubizjak@gmail.com>
2799
2800 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
2801 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
2802 calculation.
2803 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
2804 Simplify MODE_V1DF and MODE_V2SF handling.
2805 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
2806 Simplify MODE_SF handling.
2807
2808 2011-06-04 Jan Hubicka <jh@suse.cz>
2809
2810 PR tree-optimization/48893
2811 PR tree-optimization/49091
2812 PR tree-optimization/49179
2813 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
2814 Bounds check.
2815
2816 2011-06-04 Jan Hubicka <jh@suse.cz>
2817
2818 PR lto/48954
2819 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
2820 bitmaps.
2821
2822 2011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
2823
2824 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
2825
2826 2011-06-04 Jakub Jelinek <jakub@redhat.com>
2827
2828 PR target/49281
2829 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
2830 to be strictly smaller than 1 << shiftcount.
2831
2832 2011-06-04 Jan Hubicka <jh@suse.cz>
2833
2834 PR tree-optimize/48929
2835 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
2836 of empty predicate.
2837
2838 2011-06-04 Alexandre Oliva <aoliva@redhat.com>
2839
2840 PR debug/48333
2841 * calls.c (emit_call_1): Prefer the __builtin declaration of
2842 builtin functions.
2843
2844 2011-06-03 Diego Novillo <dnovillo@google.com>
2845
2846 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
2847 (lto_input_tree_pointers): Likewise.
2848 * lto-streamer-out.c (pack_value_fields): Likewise.
2849 (lto_output_tree_pointers): Likewise.
2850 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
2851 and OPTIMIZATION_NODE.
2852
2853 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2854
2855 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
2856 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
2857 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
2858 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
2859 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
2860 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
2861 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
2862 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
2863 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
2864 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
2865 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
2866 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
2867 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
2868 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
2869 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
2870 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
2871 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
2872 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
2873 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
2874 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
2875 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
2876 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
2877 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
2878 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
2879 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
2880 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
2881 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
2882 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
2883 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
2884 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
2885 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
2886 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
2887 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
2888 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
2889 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
2890 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
2891 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
2892 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
2893 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
2894 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
2895 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
2896 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
2897 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
2898 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
2899 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
2900 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
2901 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
2902 * system.h (MD_UNWIND_SUPPORT): Poison.
2903 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
2904 * doc/tm.texi: Regenerate.
2905 * unwind-dw2.c: Include md-unwind-support.h instead of
2906 MD_UNWIND_SUPPORT.
2907 * config/ia64/unwind-ia64.c: Likewise.
2908 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
2909
2910 2011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
2911
2912 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
2913
2914 2011-06-03 Richard Henderson <rth@redhat.com>
2915 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2916
2917 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
2918 (sigill_hdlr): Correct insn, insn size.
2919 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
2920
2921 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2922
2923 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
2924 t-slibgcc-dummy.
2925 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
2926 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
2927 * config/mips/t-iris: Remove.
2928 * config/mips/t-irix6: New file.
2929 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
2930
2931 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2932
2933 * Makefile.in (LIB2ADDEHDEP): Remove.
2934 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
2935 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
2936 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
2937 * config/t-darwin (LIB2ADDEHDEP): Remove.
2938 * config/t-freebsd (LIB2ADDEHDEP): Remove.
2939 * config/t-linux (LIB2ADDEHDEP): Remove.
2940
2941 2011-06-03 Diego Novillo <dnovillo@google.com>
2942
2943 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
2944 (lto_register_var_decl_in_symtab): Likewise.
2945 (lto_register_function_decl_in_symtab): Likewise.
2946 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
2947 logic to uniquify_nodes.
2948
2949 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2950
2951 * config/alpha/t-osf5: Remove.
2952 * config/alpha/t-osf-pthread: Remove.
2953 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
2954 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
2955
2956 2011-06-03 Julian Brown <julian@codesourcery.com>
2957
2958 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
2959 (strongarm1110): Use strongarm tuning.
2960 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
2961 * config/arm/arm.c (arm_strongarm_tune): New.
2962 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
2963 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
2964 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
2965 setting, using previous defaults or 1 for Cortex-A5.
2966 (arm_option_override): Set max_insns_skipped from current tuning.
2967
2968 2011-06-03 Nathan Sidwell <nathan@codesourcery.com>
2969
2970 * doc/install.texi (Options specification): Document --with-specs.
2971
2972 2011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2973
2974 * config/arm/neon.md (orndi3_neon): Actually split it.
2975
2976 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
2977
2978 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
2979 * var-tracking.c (reverse_op): Limite recurse depth to 5.
2980
2981 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
2982
2983 PR debug/47590
2984 * target.def (delay_sched2, delay_vartrack): New.
2985 * doc/tm.texi.in: Update.
2986 * doc/tm.texi: Rebuild.
2987 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
2988 * var-tracking.c (gate_handle_var_tracking): Likewise.
2989 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
2990 (bfin_flag_var_tracking): Drop.
2991 (output_file_start): Don't save and override flag_var_tracking.
2992 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
2993 (bfin_reorg): Test original variables.
2994 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
2995 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
2996 (ia64_flag_var_tracking): Drop.
2997 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
2998 (ia64_file_start): Don't save and override flag_var_tracking.
2999 (ia64_override_options_after_change): Ditto
3000 flag_schedule_insns_after_reload.
3001 (ia64_reorg): Test original variables.
3002 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
3003 (picochip_flag_var_tracking): Drop.
3004 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
3005 (picochip_option_override): Don't save and override
3006 flag_schedule_insns_after_reload.
3007 (picochip_asm_file_start): Ditto flag_var_tracking.
3008 (picochip_reorg): Test original variables.
3009 * config/spu/spu.c (spu_flag_var_tracking): Drop.
3010 (TARGET_DELAY_VARTRACK): Define.
3011 (spu_var_tracking): New.
3012 (spu_machine_dependent_reorg): Call it.
3013 (asm_file_start): Don't save and override flag_var_tracking.
3014
3015 2011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
3016
3017 PR target/49163
3018 * config/sh/predicates.md (general_movsrc_operand): Return 0
3019 for memory and memory subreg of which address is an invalid
3020 indexed address for QI and HImode.
3021 (general_movdst_operand): Likewise.
3022
3023 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
3024
3025 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
3026 edges only, when there is a non-local label in the function.
3027 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
3028
3029 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
3030
3031 * config/i386/constraints.md (Y3): New register constraint.
3032 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
3033 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
3034 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
3035 *sse2_interleave_lowv2df.
3036
3037 2011-06-02 Julian Brown <julian@codesourcery.com>
3038
3039 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
3040 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
3041 (arm_cortex_a5_tune): New.
3042
3043 2011-06-02 Julian Brown <julian@codesourcery.com>
3044
3045 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
3046 * config/arm/arm.c (arm_default_branch_cost): New.
3047 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
3048 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
3049 (arm_fa726_tune): Set branch_cost field using
3050 arm_default_branch_cost.
3051 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
3052 current_tune structure.
3053 * dojump.c (tm_p.h): Include file.
3054
3055 2011-06-02 Julian Brown <julian@codesourcery.com>
3056
3057 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
3058 tuning.
3059 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
3060 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
3061 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
3062 field.
3063 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
3064 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
3065 (arm_fa726te_tune): Add prefer_constant_pool setting.
3066 (arm_v6t2_tune, arm_cortex_tune): New.
3067 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
3068 prefer_constant_pool setting.
3069
3070 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
3071
3072 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
3073 switch statement.
3074 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
3075 (*movdf_internal) <case 6,7,8>: Ditto.
3076
3077 * config/i386/constraints.md (Y4): New register constraint.
3078 * config/i386/sse.md (vec_set<mode>_0): Merge with
3079 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
3080 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
3081 *vec_extractv2di_1_sse.
3082 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
3083 and *vec_concatv2di_rex64_sse.
3084
3085 2011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
3086
3087 PR target/48807
3088 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
3089 of cgraph_local_info for null before attempting to use it.
3090
3091 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
3092
3093 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
3094 (current_function_dynamic_alloc_count): Delete.
3095 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
3096 (expand_builtin_nonlocal_goto): Remove obsolete comment.
3097 (expand_builtin_update_setjmp_buf): Remove dead code.
3098 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
3099 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
3100 support.
3101 * function.c (instantiate_virtual_regs): Likewise.
3102 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
3103 for a block with a single abnormal incoming edge.
3104 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
3105 (SETJMP_VIA_SAVE_AREA): Delete.
3106 * config/sparc/sparc-protos.h (load_got_register): Declare.
3107 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
3108 (load_got_register): Make global.
3109 (sparc_frame_pointer_required): Add 'static'.
3110 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
3111 (sparc_builtin_setjmp_frame_value): New function.
3112 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
3113 (save_stack_nonlocal): New expander.
3114 (restore_stack_nonlocal): Likewise.
3115 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
3116 (nonlocal_goto_internal): New insn.
3117 (goto_handler_and_restore): Delete.
3118 (builtin_setjmp_setup): Likewise.
3119 (do_builtin_setjmp_setup): Likewise.
3120 (setjmp): Likewise.
3121 (builtin_setjmp_receiver): New expander.
3122
3123 2011-06-01 David Li <davidxl@google.com>
3124
3125 PR middle-end/49261
3126 * tree-pretty-print.c (dump_function_header): Format cleanup.
3127
3128 2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
3129
3130 PR target/49238
3131 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
3132 needed when original operands are used for msw_skip comparison.
3133
3134 2011-06-01 Jakub Jelinek <jakub@redhat.com>
3135
3136 PR debug/49250
3137 * var-tracking.c (add_uses, add_stores): Don't call
3138 cselib_subst_to_values on ENTRY_VALUE.
3139
3140 2011-06-01 Diego Novillo <dnovillo@google.com>
3141
3142 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
3143 output_record_start with LTO_null instead of output_zero.
3144 (lto_output_ts_binfo_tree_pointers): Likewise.
3145 (lto_output_tree): Likewise.
3146 (output_eh_try_list): Likewise.
3147 (output_eh_region): Likewise.
3148 (output_eh_lp): Likewise.
3149 (output_eh_regions): Likewise.
3150 (output_bb): Likewise.
3151 (output_function): Likewise.
3152 (output_unreferenced_globals): Likewise.
3153 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
3154 instead of NUM_TREE_CODES.
3155 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
3156 (lto_output_int_in_range): Change << to >> when shifting VAL.
3157
3158 2011-06-01 Diego Novillo <dnovillo@google.com>
3159
3160 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
3161 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
3162
3163 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
3164
3165 PR target/45074
3166 * optabs.h (valid_multiword_target_p): Declare.
3167 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
3168 doing multi-word operations.
3169 * optabs.c (expand_binop): Likewise.
3170 (expand_doubleword_bswap): Likewise.
3171 (expand_absneg_bit): Likewise.
3172 (expand_unop): Likewise.
3173 (expand_copysign_bit): Likewise.
3174 (multiword_target_p): New function.
3175
3176 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
3177
3178 PR rtl-optimization/48830
3179 PR rtl-optimization/48808
3180 PR rtl-optimization/48792
3181 * reload.c (push_reload): Check contains_reg_of_mode.
3182 * reload1.c (strip_paradoxical_subreg): New function.
3183 (gen_reload_chain_without_interm_reg_p): Use it to handle
3184 paradoxical subregs.
3185 (emit_output_reload_insns, gen_reload): Likewise.
3186
3187 2011-06-01 David Li <davidxl@google.com>
3188
3189 * predict.c : Change pass name
3190 * ipa.c: Ditto.
3191 * dce.c: Ditto.
3192 * tree-profile.c: Ditto.
3193 * except.c: Ditto.
3194
3195 2011-06-01 David Li <davidxl@google.com>
3196
3197 * tree-pretty-print.c (dump_function_header): New function.
3198 * final.c (rest_of_clean_state): Use header dumper.
3199 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
3200 * passes.c (pass_init_dump_file): Use header dumper.
3201
3202 2011-06-01 Jakub Jelinek <jakub@redhat.com>
3203
3204 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
3205 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
3206 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
3207 New functions.
3208 (mem_loc_descriptor): Use them.
3209
3210 * var-tracking.c (create_entry_value): New function.
3211 (vt_add_function_parameter): Use it.
3212
3213 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3214
3215 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
3216 Include <signal.h>, <ucontext.h>.
3217 (sigill_caught): Define.
3218 (sigill_hdlr): New function.
3219 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
3220 insns can be executed.
3221 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
3222 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
3223
3224 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3225
3226 * config/t-slibgcc-darwin: Move to ...
3227 * config/t-slibgcc-dummy: ... this. Clarify comments.
3228 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
3229 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
3230 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
3231 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
3232 Remove i386/t-crtstuff from tmake_file.
3233 (i[34567]86-*-solaris2*): Remove t-svr4,
3234 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
3235 t-slibgcc-dummy.
3236 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
3237 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
3238 sparc/t-crtfm from tmake_file.
3239 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
3240 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
3241 Remove extra_parts.
3242 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
3243 * config/i386/t-nwld (SHLIB_LINK): Remove.
3244 * config/i386/t-rtems-i386: Rename to ...
3245 * config/i386/t-rtems: ... this.
3246 ($(T)crti.o, $(T)crtn.o): Remove.
3247 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
3248 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
3249 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
3250 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
3251 EXTRA_MULTILIB_PARTS): Remove.
3252 * config/sparc/t-sol2-64: Likewise.
3253 * config/sparc/t-sol2: Remove.
3254 * config/sparc/t-crtin: Remove.
3255 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
3256 * config/i386/gmon-sol2.c: Remove.
3257 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
3258 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
3259 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
3260 * config/i386/sol2-gc1.asm: Remove.
3261 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
3262 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
3263 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
3264 * config/t-slibgcc-sld: Remove.
3265
3266 2011-06-01 Jakub Jelinek <jakub@redhat.com>
3267
3268 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
3269 base_type_for_mode with op_mode instead of mode.
3270
3271 2011-06-01 Paul Brook <paul@cpodesourcery.com>
3272
3273 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
3274 Cortex-A15.
3275 * config/arm/arm-tune.md: Regenerate.
3276 * config/arm/arm-tables.opt: Regenerate.
3277 * config/arm/arm.c (FL_DIV): Rename...
3278 (FL_THUMB_DIV): ... to this.
3279 (FL_ARM_DIV): Define.
3280 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
3281 (arm_arch_hwdiv): Remove.
3282 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
3283 (arm_issue_rate): Add cortexr5.
3284 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
3285 __ARM_ARCH_EXT_IDIV__.
3286 (TARGET_IDIV): Define.
3287 (arm_arch_hwdiv): Remove.
3288 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
3289 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
3290 (divsi3, udivsi3): New patterns.
3291 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
3292 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
3293
3294 2011-06-01 Martin Jambor <mjambor@suse.cz>
3295
3296 * ipa-utils.c (ipa_dfs_info): New field scc_no.
3297 * ipa-utils.c (searchc): Set scc_no.
3298
3299 2011-06-01 Martin Jambor <mjambor@suse.cz>
3300
3301 * ipa-utils.c (searchc_env): New field allow_overwritable.
3302 (searchc): do not ignore edges to overwritable nodes if indicated
3303 by env->allow_overwritable.
3304 (ipa_reduced_postorder): Set env.allow_overwritable.
3305
3306 2011-06-01 Richard Guenther <rguenther@suse.de>
3307
3308 * tree.c (free_lang_data): Do not reset boolean_type_node nor
3309 char_type_node.
3310 * lto-streamer.c (lto_record_common_node): Take node pointer,
3311 do not register types.
3312 (lto_preload_common_nodes): Explicitly skip preloading nodes
3313 that differ between frontends.
3314
3315 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
3316
3317 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
3318 NON_FLOAT_REGS.
3319
3320 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
3321
3322 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
3323 parameter value for dump. Dump cost on outermost call only.
3324 (rs6000_memory_move_cost): Dump cost on outermost call only.
3325
3326 2011-05-31 Jakub Jelinek <jakub@redhat.com>
3327
3328 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
3329 DW_OP_GNU_convert ops.
3330
3331 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
3332 cselib_preserve_constants.
3333 (cselib_lookup_1): If cselib_preserve_constants,
3334 a new VALUE is being created for REG and there is a VALUE for the
3335 same register in wider mode, add another loc with lowpart SUBREG of
3336 the wider VALUE.
3337 (cselib_subst_to_values): Handle ENTRY_VALUE.
3338 * var-tracking.c (replace_expr_with_values): Return NULL for
3339 ENTRY_VALUE too.
3340 * dwarf2out.c (convert_descriptor_to_signed): New function.
3341 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
3342 instead of two shifts.
3343 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
3344 the right mode if needed.
3345 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
3346 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
3347 convert_descriptor_to_signed.
3348 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
3349 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
3350
3351 PR target/48688
3352 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
3353
3354 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
3355
3356 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
3357 of X87MODEI12 and SWI48x instead of SSEMODEI24.
3358 (SWI248x): New mode iterator, rename from X87MODEI.
3359 (X87MODEI): Remove mode iterator.
3360 (X87MODEI12): Ditto.
3361 (SSEMODEI24): Ditto.
3362
3363 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
3364
3365 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
3366 * doc/invoke.texi: Document max-vartrack-expr-depth.
3367 * var-tracking.c (EXPR_DEPTH): New.
3368 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
3369
3370 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
3371
3372 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
3373 * config/i386/sse.md: Add n to negated FMA pattern names.
3374
3375 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
3376
3377 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
3378
3379 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
3380
3381 * gengtype-state.c (read_state_params_structs): Initialize previous.
3382
3383 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
3384
3385 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
3386 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
3387
3388 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
3389
3390 * config/i386/i386.md (*movtf_internal): Avoid allocating general
3391 registers. Penalize F*r->o alternative to prevent partial memory
3392 stalls. Slightly penalize *roF->*r alternative. Generate SSE
3393 CONST_DOUBLE immediates when optimizing function for size. Do not move
3394 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
3395 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
3396 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
3397 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
3398 alternatives.
3399 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
3400
3401 (fp_register_operand splitters): Use fp_register_operand
3402 constraint. Do not use FP_REG_P in insn condition.
3403 (any_fp_register_operand splitters): Use any_fp_register_operand
3404 constraint. Do not use ANY_FP_REG_P in insn condition.
3405
3406 2011-05-31 Jan Hubicka <jh@suse.cz>
3407
3408 * cgraph.h (cgraph_inline_failed_t): Give enum a name
3409 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
3410 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
3411 (lto_output_edge): Use output_enum and var_len_unsigned.
3412 (lto_output_varpool_node): Likewise.
3413 (input_overwrite_node): Do not take resolution parameter;
3414 extract it from a bitpack.
3415 (input_node): Do not read resolution; use input_enum and
3416 var_len_unsigned.
3417 (input_varpool_node): Likewise.
3418 (input_edge): Likewise.
3419 (input_cgraph_1): Likewise.
3420
3421 2011-05-31 Richard Guenther <rguenther@suse.de>
3422
3423 * gimple.c (gimple_register_canonical_type): Do not register
3424 any types via gimple_register_type.
3425
3426 2011-05-31 Jan Hubicka <jh@suse.cz>
3427
3428 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
3429 of thunks.
3430
3431 2011-05-31 Jakub Jelinek <jakub@redhat.com>
3432
3433 PR rtl-optimization/49235
3434 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
3435 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
3436
3437 2011-05-31 Ira Rosen <ira.rosen@linaro.org>
3438
3439 PR tree-optimization/49093
3440 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
3441 data references.
3442
3443 2011-05-31 Dodji Seketeli <dodji@redhat.com>
3444
3445 PR debug/49047
3446 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
3447 for concrete functions containing the code of cloned functions.
3448
3449 2011-05-31 Richard Guenther <rguenther@suse.de>
3450
3451 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
3452 to ...
3453 (forward_propagate_into_comparison_1): ... this.
3454 (forward_propagate_comparison): Rename to ...
3455 (forward_propagate_into_comparison): ... this. Split out
3456 real forward propagation code to ...
3457 (forward_propagate_comparison): ... this.
3458 (forward_propagate_into_gimple_cond): Remove looping.
3459 (forward_propagate_into_cond): Likewise.
3460 (simplify_not_neg_expr): Return whether we have done something.
3461 (simplify_gimple_switch): Likewise.
3462 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
3463 (ssa_forward_propagate_and_combine): ... this. Re-structure
3464 to do a forward forward-propagation walk on BBs and a backward
3465 stmt combining walk on BBs. Consistently re-scan changed statements.
3466 (pass_forwprop): Adjust.
3467
3468 2011-05-30 Ian Lance Taylor <iant@google.com>
3469
3470 * godump.c (go_format_type): Correct length of name added to
3471 obstack for anonymous field.
3472
3473 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
3474
3475 PR target/49186
3476 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
3477 part of the second operand is 0.
3478
3479 2011-05-30 Uros Bizjak <ubizjak@gmail.com>
3480
3481 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
3482 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
3483 to memory for !TARGET_MEMORY_MISMATCH_STALL.
3484 (*movdf_internal_rex64): Do not penalize F->r alternative.
3485 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
3486 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
3487 when optimizing function for size. Do not move CONST_DOUBLEs
3488 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
3489 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
3490 SUBREGs. Do not check for MEM_P operands in the insn condition,
3491 check for ANY_FP_REGNO_P instead.
3492 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
3493 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
3494 function for speed.
3495 * config/i386/i386.c (ix86_option_override_internal): Do not
3496 set TARGET_INTEGER_DFMODE_MOVES here.
3497
3498 2011-05-30 H.J. Lu <hongjiu.lu@intel.com>
3499
3500 PR target/49168
3501 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
3502
3503 2011-05-30 Jakub Jelinek <jakub@redhat.com>
3504
3505 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
3506 DW_TAG_rvalue_reference_type even for
3507 -gdwarf-4 -fno-debug-types-section.
3508
3509 2011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3510
3511 PR tree-optimization/46728
3512 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
3513 (build_and_insert_binop): New.
3514 (gimple_expand_builtin_pow): Reorder args for
3515 build_and_insert_call; use build_and_insert_binop; add more
3516 optimizations for fractional exponents.
3517
3518 2011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
3519
3520 PR bootstrap/49190
3521
3522 Revert:
3523 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
3524
3525 * tree.h (struct tree_identifier): Inherit from tree_typed, not
3526 tree_common.
3527 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
3528 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
3529 TS_BASE instead of TS_COMMON.
3530 * varasm.c (assemble_name): Remove assert.
3531
3532 2011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
3533
3534 * config.gcc: Keep obselete list sorted.
3535
3536 2011-05-30 Jakub Jelinek <jakub@redhat.com>
3537 Eric Botcazou <ebotcazou@adacore.com>
3538
3539 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
3540 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
3541 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
3542 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
3543 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
3544
3545 2011-05-30 Richard Guenther <rguenther@suse.de>
3546
3547 * gimple.c (gimple_types_compatible_p_1): Compare record
3548 and union type members properly.
3549
3550 2011-05-30 Richard Guenther <rguenther@suse.de>
3551
3552 PR tree-optimization/49210
3553 * ipa-split.c (split_function): Care for the case where the call
3554 result is not trivially convertible to the result holding variable.
3555
3556 2011-05-30 Richard Guenther <rguenther@suse.de>
3557
3558 PR tree-optimization/49218
3559 * tree-vrp.c (adjust_range_with_scev): Properly check whether
3560 overflow occured.
3561
3562 2011-05-30 Richard Guenther <rguenther@suse.de>
3563
3564 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
3565 New function split out from ...
3566 (forward_propagate_into_gimple_cond): ... here. Adjust.
3567 (forward_propagate_into_cond): Likewise.
3568 (forward_propagate_comparison): Also propagate into
3569 comparisons on assignment RHS. Change return value to
3570 behave similar to forward_propagate_into_cond.
3571 (tree_ssa_forward_propagate_single_use_vars): Handle
3572 strict-overflow warnings properly for forward_propagate_comparison.
3573
3574 2011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3575
3576 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
3577 from plugin linker.
3578 * configure: Regenerate.
3579
3580 2011-05-30 Ira Rosen <ira.rosen@linaro.org>
3581
3582 PR tree-optimization/49199
3583 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
3584 non-reduction operands are either defined in the loop or by induction.
3585
3586 2011-05-29 Xinliang David Li <davidxl@google.com>
3587
3588 * opts-global.c (handle_common_deferred_options): Handle new options.
3589 * passes.c (register_one_dump_file): Call register_pass_name.
3590 (execute_one_pass): Check explicit enable/disable flag.
3591 (passr_hash): New function.
3592 (passr_eq): Ditto.
3593 (register_pass_name): Ditto.
3594 (get_pass_by_name): Ditto.
3595 (pass_hash): Ditto.
3596 (pass_eq): Ditto.
3597 (enable_pass): Ditto.
3598 (disable_pass): Ditto.
3599 (is_pass_explicitly_enabled_or_disabled): Ditto.
3600
3601 2011-05-29 Uros Bizjak <ubizjak@gmail.com>
3602
3603 * config/i386/i386.md (*movoi_internal_avx): Use
3604 standard_sse_constant_opcode for alternative 0.
3605 (*movti_internal_sse): Ditto.
3606 (*movti_internal_rex64): Use standard_sse_constant_opcode for
3607 alternative 2.
3608 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
3609 sselog1 type moves.
3610 (*movsi_internal): Ditto.
3611 (*movdi_internal): Ditto. Add ssecvt type moves.
3612
3613 2011-05-29 Eric Botcazou <ebotcazou@adacore.com>
3614
3615 PR target/48830
3616 * rtlanal.c (simplify_subreg_regno): Adjust comment.
3617
3618 2011-05-29 Jakub Jelinek <jakub@redhat.com>
3619
3620 PR rtl-optimization/49095
3621 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
3622 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
3623
3624 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
3625
3626 PR target/43995
3627 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
3628 recurse_p argument. Only follow register copies if it is set,
3629 and prevent mips_find_pic_call_symbol from recursing.
3630 (mips_find_pic_call_symbol): Add a recurse_p argument.
3631 Pass it to mips_pic_call_symbol_from_set.
3632 (mips_annotate_pic_calls): Update accordingly.
3633
3634 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
3635
3636 * emit-rtl.c (try_split): Use a loop to search for
3637 NOTE_INSN_CALL_ARG_LOCATIONs.
3638
3639 2011-05-29 Richard Guenther <rguenther@suse.de>
3640
3641 PR tree-optimization/49217
3642 * ipa-pure-const.c (propagate_pure_const): Fix typos.
3643
3644 2011-05-28 Jan Hubicka <jh@suse.cz>
3645
3646 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
3647 length.
3648 (string_slot_free): Remove
3649 (create_output_block): Initialize obstack.
3650 (destroy_output_block): Free obstack.
3651 (lto_string_index): Add PERSISTENT parameter; do not duplicate
3652 the string unless it needs to be added into the hash.
3653 (lto_output_string_with_length): Add persistent attribute;
3654 handle NULL strings.
3655 (lto_output_string): Add PERSISTENT parameter.
3656 (output_string_cst, output_identifier): Simplify.
3657 (lto_output_location_bitpack): Update.
3658 (lto_output_builtin_tree): Update.
3659 * lto-streamer.h (struct output_block): Add obstack.
3660 (lto_output_string, lto_output_string_with_length): Remove
3661 declarations; functions are static now.
3662
3663 2011-05-28 Jan Hubicka <jh@suse.cz>
3664
3665 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
3666 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
3667 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
3668 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
3669 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
3670 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
3671 unpack_ts_decl_with_vis_value_fields,
3672 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
3673 lto_get_builtin_tree): Use enum and variable length i/o.
3674 * basic-block.h (profile_status_d): Add PROFILE_LAST.
3675 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
3676 New functions.
3677 (bp_pack_enum, bp_unpack_enum): New macros.
3678
3679 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
3680
3681 * genrecog.c: Remove redundant forward declarations.
3682
3683 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
3684
3685 * config.gcc: Deprecate mips*-*-openbsd*.
3686
3687 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
3688
3689 PR bootstrap/49195
3690 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
3691 for match_op_dup.
3692
3693 2011-05-27 Andrew Pinski <pinskia@gmail.com>
3694
3695 PR middle-end/48981
3696 * gengtype.c (vec_prefix_type): New function.
3697 (note_def_vec): Use vec_prefix_type and change the length
3698 attribute to be based on the prefix.
3699 * vec.c: Include coretypes.h before vec.h.
3700 (struct vec_prefix): Remove.
3701 (vec_gc_p_reserve): Change the offsetof to sizeof.
3702 (vec_gc_p_reserve_exact): Likewise.
3703 (vec_heap_p_reserve): Likewise.
3704 (vec_heap_p_reserve_exact): Likewise.
3705 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
3706 (vec_stack_p_reserve): Change the offsetof to sizeof.
3707 (vec_stack_p_reserve_exact): Likewise.
3708 * vec.h (struct vec_prefix): New struct definition.
3709 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
3710 (VEC_T_GTY(T,B)): Likewise.
3711 (DEF_VEC_FUNC_P(T)): Use prefix field.
3712 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
3713 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
3714
3715 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3716
3717 PR tree-optimization/46728
3718 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
3719 (powi_as_mults): Add gimple_set_location.
3720 (build_and_insert_call): New.
3721 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
3722 0.5, 0.25, 0.75, 1./3., or 1./6.
3723
3724 2011-05-27 Alexander Monakov <amonakov@ispras.ru>
3725
3726 * doc/contrib.texi: Update copyright years.
3727 (Contributors): Add Zdenek Sojka.
3728
3729 2011-05-27 Nathan Froyd <froydnj@codesourcery.com>
3730
3731 * c-decl.c (c_push_function_context): Copy the current statement
3732 list stack.
3733 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
3734 (finish_struct): Call building_stmt_list_p instead of checking
3735 cur_stmt_list.
3736 * c-parser.c (c_parser_postfix_expression): Likewise.
3737 * c-typeck.c (c_end_compound_stmt): Likewise.
3738 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
3739 * tree-iterator.c (stmt_list_cache): Change to a VEC.
3740 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
3741 (free_stmt_list): Likewise.
3742 * tree.h (struct tree_statement_list): Include typed_tree instead
3743 of tree_common.
3744 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
3745 as TS_TYPED instead of TS_COMMON.
3746
3747 2011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3748 Uros Bizjak <ubizjak@gmail.com>
3749
3750 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
3751 (HAVE_AS_IX86_TLSGDPTL): Define.
3752 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
3753 (HAVE_AS_IX86_TLSLDMPLT): Define.
3754 * configure: Regenerate.
3755 * config.in: Regenerate.
3756 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
3757 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
3758 TARGET_SUN_TLS, use @tlsgdplt or @plt.
3759 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
3760 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
3761 @tlsldmplt or @plt.
3762 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
3763
3764 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
3765
3766 * sched-int.h (struct _haifa_deps_insn_data): New members cond
3767 and reverse_cond.
3768 (INSN_COND, INSN_REVERSE_COND): New macros.
3769 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
3770 once.
3771 (sched_get_condition_with_rev): Cache the results, and look them up
3772 if possible.
3773 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
3774 are clobbered by the current insn.
3775 * target.def (exposed_pipline): New sched data hook.
3776 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
3777 * doc/tm.texi: Regenerate.
3778
3779 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3780
3781 PR tree-optimization/49170
3782 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
3783 sincos or cexp.
3784
3785 2011-05-27 Richard Guenther <rguenther@suse.de>
3786
3787 PR middle-end/49189
3788 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
3789 of comparisons.
3790
3791 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
3792
3793 * haifa-sched.c (sched_scan_info): Remove.
3794 (schedule_block): Call sched_extend_luids rather than sched_init_luids
3795 with NULL args.
3796 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
3797 Remove functions.
3798 (sched_scan): Remove.
3799 (sched_extend_luids): Renamed from luids_extend_insn and no longer
3800 static. All callers changed.
3801 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
3802 static. All callers changed.
3803 (sched_init_luids): Remove all arguments except the first. All
3804 callers changed. Don't use sched_scan.
3805 (haifa_init_h_i_d): Likewise.
3806 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
3807 manually rather than using sched_init_luids. Likewise with
3808 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
3809 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
3810 rather than sched_init_luids with NULL args.
3811 * sel-sched-ir.c (new_insns): Remove variable.
3812 (sched_scan): New static function, previously in haifa-sched.c. Remove
3813 all arguments but the first two; all callers changed.
3814 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
3815 rather than sched_init_luids.
3816 (sel_init_bbs): Remove second argument. All callers changed.
3817 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
3818 with NULL arguments.
3819 (create_insn_rtx_from_pattern): Likewise.
3820 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
3821 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
3822 (sched_init_insn_luid, sched_extend_luids): Declare.
3823 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
3824 declarations.
3825
3826 2011-05-27 Richard Guenther <rguenther@suse.de>
3827
3828 PR middle-end/49177
3829 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
3830 A CMP B ? (T) true : (T) false for non-integral types T again.
3831
3832 2011-05-27 Jan Hubicka <jh@suse.cz>
3833
3834 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
3835 so 0 means NULL string.
3836 (lto_output_string_with_length): ... here.
3837 (lto_output_string, output_string_cst, output_identifier): Update
3838 handling of NULL strings.
3839 (lto_output_location_bitpack): New function.
3840 (lto_output_location): Use it.
3841 (lto_output_tree_ref): Use output_record_start.
3842 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
3843 len values.
3844 * lto-streamer-in.c (string_for_index): Break out from ...; offset
3845 values by 1.
3846 (input_string_internal): ... here;
3847 (input_string_cst, input_identifier, lto_input_string): Update handling
3848 of NULL strings.
3849 (lto_input_location_bitpack): New function
3850 (lto_input_location): Use it.
3851 (unpack_ts_type_common_value_fields): Pack align & alias in var len
3852 values.
3853 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
3854 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
3855 (bp_pack_value): Sanity check the value range.
3856 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
3857 New functions.
3858 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
3859 New functions.
3860
3861 2011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
3862
3863 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
3864 call_arg_location instructions down the floor.
3865
3866 2011-05-26 Vladimir Makarov <vmakarov@redhat.com>
3867
3868 PR rtl-optimization/49154
3869 * ira.c (setup_pressure_classes): Process class without sublcasses
3870 as a candidate for pressure classes.
3871
3872 2011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
3873
3874 PR rtl-optimization/48575
3875 * genrecog.c (position_type): New enum.
3876 (position): New structure.
3877 (decision): Use position structure instead of a string.
3878 (root_pos, peep2_insn_pos_list): New variables.
3879 (next_position, compare_positions): New functions.
3880 (new_decision): Use position structures instead of strings.
3881 (maybe_both_true): Likewise.
3882 (change_state): Likewise.
3883 (write_tree): Likewise.
3884 (make_insn_sequence): Likewise.
3885
3886 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
3887
3888 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
3889 TS_BASE instead of TS_COMMON.
3890 (find_decls_types_r): Check for TS_TYPED structure before looking at
3891 TREE_TYPE.
3892 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
3893 Add chain field.
3894 (BLOCK_CHAIN): Use new chain field.
3895
3896 2011-05-26 Pat Haugen <pthaugen@us.ibm.com>
3897
3898 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
3899 moves expensive on Power7 also.
3900
3901 2011-05-26 Richard Guenther <rguenther@suse.de>
3902
3903 * fold-const.c (fold_unary_loc): Remove bogus code.
3904
3905 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
3906
3907 * tree.h (struct tree_identifier): Inherit from tree_typed, not
3908 tree_common.
3909 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
3910 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
3911 TS_BASE instead of TS_COMMON.
3912 * varasm.c (assemble_name): Remove assert.
3913
3914 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
3915
3916 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
3917 substituted first.
3918 * libgcc-std.ver: Delete file.
3919
3920 2011-05-26 Richard Guenther <rguenther@suse.de>
3921
3922 PR tree-optimization/48702
3923 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
3924 only when we know the base address is within bounds.
3925 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
3926 assume the base address of TARGET_MEM_REFs is in bounds.
3927
3928 2011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3929
3930 PR target/49099
3931 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
3932 declaration in TARGET_SOLARIS.
3933
3934 2011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
3935
3936 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
3937 The instruction is then expanded explicitly.
3938 (supported_compare): Callable instruction.
3939 (compare): Likewise.
3940
3941 2011-05-26 Jakub Jelinek <jakub@redhat.com>
3942
3943 PR c++/49165
3944 * gimplify.c (shortcut_cond_r): Don't special case
3945 COND_EXPRs if they have void type on one of their arms.
3946
3947 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
3948
3949 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
3950 to reduce duplication, and to achieve a slightly more logical order
3951 of operations.
3952
3953 2011-05-26 Jakub Jelinek <jakub@redhat.com>
3954
3955 PR tree-optimization/49161
3956 * tree-vrp.c (struct case_info): New type.
3957 (compare_case_labels): Sort case_info structs instead of
3958 trees, and not primarily by CASE_LABEL uids but by
3959 label_for_block indexes.
3960 (find_switch_asserts): Put case labels into struct case_info
3961 array instead of TREE_VEC, adjust sorting, compare label_for_block
3962 values instead of CASE_LABELs.
3963
3964 2011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3965
3966 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
3967 ("orndi3_neon"): Likewise.
3968 ("bic<mode>3_neon"): Likewise.
3969
3970 2011-05-26 Ira Rosen <ira.rosen@linaro.org>
3971
3972 PR tree-optimization/49038
3973 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
3974 Ensure at least one epilogue iteration if required by data
3975 accesses with gaps.
3976 * tree-vectorizer.h (struct _loop_vec_info): Add new field
3977 to mark loops that require peeling for gaps.
3978 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
3979 (vect_get_known_peeling_cost): Take peeling for gaps into
3980 account.
3981 (vect_transform_loop): Generate epilogue if required by data
3982 access with gaps.
3983 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
3984 loop as requiring an epilogue if there are gaps in the end of
3985 the strided group.
3986
3987 2011-05-25 Ian Lance Taylor <iant@google.com>
3988
3989 * godump.c (go_format_type): Output the first field with a usable
3990 Go type, if any.
3991
3992 2011-05-25 Ian Lance Taylor <iant@google.com>
3993
3994 * godump.c (go_format_type): Check for invalid type names, pointer
3995 target types, and struct field types.
3996
3997 2011-05-25 Jason Merrill <jason@redhat.com>
3998
3999 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
4000
4001 2011-05-25 Uros Bizjak <ubizjak@gmail.com>
4002
4003 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
4004
4005 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
4006
4007 * config/i386/i386.md (*movqi_extv_1)): Put back
4008 "register_operand" check in "type" calculation.
4009 (*movqi_extzv_2): Likewise.
4010
4011 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
4012
4013 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
4014
4015 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
4016
4017 PR bootstrap/49160
4018 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
4019 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
4020 __divxc3, __divtc3): Wrap definitions in #ifndef.
4021
4022 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
4023
4024 PR target/49142
4025 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
4026 "register_operand" check and replace q_regs_operand with
4027 QIreg_operand in "type" calculation.
4028 (*movqi_extv_1): Likewise.
4029 (*movqi_extzv_2_rex64): Likewise.
4030 (*movqi_extzv_2): Likewise.
4031
4032 * config/i386/predicates.md (QIreg_operand): New.
4033
4034 2011-05-25 Richard Guenther <rguenther@suse.de>
4035
4036 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
4037 type-based offset disambiguation, streamline MEM_REF and
4038 TARGET_MEM_REF handling.
4039
4040 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
4041
4042 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
4043 (bdesc_special_args): Add pause intrinsic.
4044
4045 * config/i386/i386.md (UNSPEC_PAUSE): New.
4046 (pause): Likewise.
4047 (*pause): Likewise.
4048 * config/i386/ia32intrin.h (__pause): Likewise.
4049
4050 * doc/extend.texi (X86 Built-in Functions): Add documentation for
4051 pause intrinsic.
4052
4053 2011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4054
4055 PR tree-optimization/46728
4056 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
4057 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
4058
4059 2011-05-25 Nathan Froyd <froydnj@codesourcery.com>
4060
4061 * tree.h (struct tree_exp): Inherit from struct tree_typed.
4062 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
4063 instead of TS_COMMON.
4064
4065 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
4066
4067 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
4068 LIBGCC2_GNU_PREFIX is defined.
4069 (__N): New macro.
4070 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
4071 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
4072 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
4073 __clz_tab): Define using __N.
4074 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
4075 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
4076 * target.def (libfunc_gnu_prefix): New hook.
4077 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
4078 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
4079 * doc/tm.texi: Regenerate.
4080 * system.h (LIBGCC2_GNU_PREFIX): Poison.
4081 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
4082 account.
4083 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
4084 (init_optabs): Likewise for the bswap libfuncs.
4085 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
4086 and divide.
4087 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
4088 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
4089 * libgcc-std.ver: Remove.
4090 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
4091 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
4092 libgcc-std.ver.
4093 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
4094 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
4095 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
4096 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
4097 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
4098 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
4099 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
4100 * config/fixed-bit.h (FIXED_OP): Define differently depending on
4101 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
4102 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
4103
4104 2011-05-25 Jan Hubicka <jh@suse.cz>
4105
4106 * lto-streamer-out.c (output_record_start): Use lto_output_enum
4107 (lto_output_tree): Use output_record_start.
4108 * lto-streamer-in.c (input_record_start): Use lto_input_enum
4109 (lto_get_pickled_tree): Use input_record_start.
4110 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
4111 (lto_value_range_error): New function.
4112 * lto-streamer.h (lto_value_range_error): Declare.
4113 (lto_output_int_in_range, lto_input_int_in_range): New functions.
4114 (lto_output_enum, lto_input_enum): New macros.
4115
4116 2011-05-25 Eric Botcazou <ebotcazou@adacore.com>
4117
4118 * common.opt (flag_stack_usage_info): New variable.
4119 (-Wstack-usage): New option.
4120 * doc/invoke.texi (Warning options): Document -Wstack-usage.
4121 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
4122 <OPT_fstack_usage>: Likewise.
4123 * toplev.c (output_stack_usage): Handle -Wstack-usage.
4124 * calls.c (expand_call): Test flag_stack_usage_info variable instead
4125 of flag_stack_usage.
4126 (emit_library_call_value_1): Likewise.
4127 * explow.c (allocate_dynamic_stack_space): Likewise.
4128 * function.c (instantiate_virtual_regs ): Likewise.
4129 (prepare_function_start): Likewise.
4130 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
4131 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
4132 * config/arm/arm.c (arm_expand_prologue): Likewise.
4133 (thumb1_expand_prologue): Likewise.
4134 * config/avr/avr.c (expand_prologue): Likewise.
4135 * config/i386/i386.c (ix86_expand_prologue): Likewise.
4136 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
4137 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
4138 * config/mips/mips.c (mips_expand_prologue): Likewise.
4139 * config/pa/pa.c (hppa_expand_prologue): Likewise.
4140 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
4141 * config/s390/s390.c (s390_emit_prologue): Likewise.
4142 * config/sh/sh.c (sh_expand_prologue): Likewise.
4143 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4144 * config/spu/spu.c (spu_expand_prologue): Likewise.
4145
4146 2011-05-25 Richard Guenther <rguenther@suse.de>
4147
4148 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
4149 (gimple_canonical_types_compatible_p): Likewise.
4150
4151 2011-05-25 Jan Hubicka <jh@suse.cz>
4152
4153 PR middle-end/49062
4154 * ipa.c (function_and_variable_visibility): Only add to same
4155 comdat group list if DECL_ONE_ONLY.
4156
4157 2011-05-25 Andrey Belevantsev <abel@ispras.ru>
4158
4159 PR rtl-optimization/49014
4160 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
4161
4162 2011-05-25 Jakub Jelinek <jakub@redhat.com>
4163
4164 PR target/49128
4165 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
4166
4167 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
4168
4169 PR rtl-optimization/48757
4170 * ira-build.c (loop_with_eh_edge_p): Rename to
4171 loop_with_complex_edge_p, check edges on complexity, make function
4172 conditional.
4173 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
4174 conditional.
4175
4176 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
4177
4178 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
4179 force flag_ira_share_save_slots to 0.
4180
4181 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
4182
4183 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
4184 (vt_initialize): Set PROLOGUE_BB unconditionally.
4185 Add block comment about CFA_BASE_RTX machinery.
4186 Reset FP_CFA_OFFSET to -1 on all invalid paths.
4187 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
4188
4189 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
4190
4191 PR objc/48187
4192 * c-parser.c (c_parser_objc_class_instance_variables): More robust
4193 parsing of syntax error in ObjC instance variable lists. In
4194 particular, avoid an infinite loop if there is a stray ']'.
4195 Updated error message.
4196
4197 2011-05-24 Ian Lance Taylor <iant@google.com>
4198
4199 * godump.c (go_define): Don't accept a string immediately after
4200 another operand.
4201
4202 2011-05-24 Ian Lance Taylor <iant@google.com>
4203
4204 * godump.c (struct godump_container): Add invalid_hash field.
4205 (go_format_type): Return false if type is found in invalid_hash.
4206 (go_output_typedef): Add invalid type to invalid_hash.
4207 (go_finish): Create and delete invalid_hash.
4208
4209 2011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4210
4211 PR tree-optimization/46728
4212 * tree-ssa-math-opts.c (powi_table): New.
4213 (powi_lookup_cost): New.
4214 (powi_cost): New.
4215 (powi_as_mults_1): New.
4216 (powi_as_mults): New.
4217 (gimple_expand_builtin_powi): New.
4218 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
4219 (gate_cse_sincos): Remove sincos/cexp restriction.
4220
4221 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4222
4223 PR target/3746
4224 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
4225 mips-tdump native.
4226 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
4227 * mips-tdump.c: Likewise.
4228
4229 2011-05-24 H.J. Lu <hongjiu.lu@intel.com>
4230
4231 PR target/49128
4232 * config/i386/driver-i386.c (host_detect_local_cpu): Always
4233 add -mno-XXX. Handle FMA.
4234
4235 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
4236
4237 PR rtl-optimization/48633
4238 * ira-build.c (loop_with_eh_edge_p): New function.
4239 (mark_loops_for_removal): Use it.
4240
4241 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
4242
4243 PR rtl-optimization/48971
4244 * ira.c (setup_pressure_classes): Don't check register move cost
4245 for classes with one registers. Don't add pressure class if there
4246 is a pressure class with the same available hard registers.
4247 Check contains_reg_of_mode. Fix a typo in collecting
4248 temp_hard_regset. Ignore hard registers not belonging to a class.
4249
4250 2011-05-24 Uros Bizjak <ubizjak@gmail.com>
4251
4252 PR target/49133
4253 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
4254
4255 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
4256 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4257
4258 PR gcov-profile/48845
4259 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
4260
4261 2011-05-24 Richard Guenther <rguenther@suse.de>
4262
4263 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
4264 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
4265 (gimple_types_compatible_p_1): Adjust.
4266 (iterative_hash_canonical_type): Do not bother about complete vs.
4267 incomplete types.
4268 (gimple_canonical_types_compatible_p): Likewise.
4269
4270 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4271
4272 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
4273
4274 2011-05-24 Richard Guenther <rguenther@suse.de>
4275
4276 PR bootstrap/49078
4277 * gimple.c (gimple_register_canonical_type): Revert
4278 previous change.
4279 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
4280 does not for a tree for the case where it matters. Cache
4281 pointer-type alias-sets.
4282
4283 2011-05-24 Joseph Myers <joseph@codesourcery.com>
4284
4285 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
4286 (OBJS): Remove options.o, opts-common.o and prefix.o.
4287 (OBJS-libcommon-target): New.
4288 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
4289 (BACKEND): Include libcommon-target.a.
4290 (MOSTLYCLEANFILES): Include libcommon-target.a.
4291 (libcommon-target.a): New.
4292 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
4293 prefix.o.
4294
4295 2011-05-23 Joseph Myers <joseph@codesourcery.com>
4296
4297 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
4298 parts of output shared with the driver.
4299 * optc-gen.awk: Don't generate parts of output not shared with the
4300 driver.
4301 * opth-gen.awk: Remove GCC_DRIVER conditionals.
4302 * doc/options.texi (SourcerInclude): Mention options-save.c.
4303 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
4304 (OBJS): Add options-save.o.
4305 (options-save.c, options-save.o): New.
4306 (options.o): Update dependencies.
4307 (gcc-options.o): Remove.
4308 (mostlyclean): Remove options-save.c.
4309
4310 2011-05-23 Jakub Jelinek <jakub@redhat.com>
4311
4312 PR debug/49032
4313 * dbxout.c: Include cgraph.h.
4314 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
4315 and without value expr, return NULL if no varpool node exists for
4316 it or if it is not needed.
4317 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
4318
4319 PR c/49120
4320 * c-decl.c (start_decl): Convert expr to void_type_node.
4321
4322 2011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
4323
4324 PR rtl-optimization/48826
4325 * emit-rtl.c (try_split): When splitting a call that is followed
4326 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
4327
4328 2011-05-23 Jakub Jelinek <jakub@redhat.com>
4329
4330 * cfgexpand.c (expand_debug_expr): For unused non-addressable
4331 parameters passed in memory prefer using DECL_INCOMING_RTL over
4332 the pseudos it will be copied into.
4333
4334 2011-05-23 H.J. Lu <hongjiu.lu@intel.com>
4335
4336 PR target/47315
4337 * config/i386/i386.c (ix86_option_override_internal): Save the
4338 initial options after checking vzeroupper.
4339
4340 2011-05-23 David Li <davidxl@google.com>
4341
4342 PR tree-optimization/48988
4343 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
4344 Initialize has_valid_pred for each pred chain.
4345
4346 2011-05-23 Richard Guenther <rguenther@suse.de>
4347
4348 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
4349 (iterative_hash_gimple_type): Always hash type names.
4350
4351 2011-05-23 Nathan Froyd <froydnj@codesourcery.com>
4352
4353 * c-typeck.c (build_function_call_vec): Tweak call to
4354 check_function_arguments.
4355
4356 2011-05-23 Richard Guenther <rguenther@suse.de>
4357
4358 PR tree-optimization/49115
4359 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
4360 is not necessarily carried out, do not claim it kills the ref.
4361 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
4362
4363 2011-05-23 Richard Guenther <rguenther@suse.de>
4364
4365 PR middle-end/15419
4366 * builtins.c (fold_builtin_memory_op): Be less restrictive about
4367 what pointer types we accept for folding.
4368
4369 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4370
4371 * gthr-gnat.c: Remove.
4372 * gthr-gnat.h: Remove.
4373 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
4374 * config/t-freebsd (LIB2ADDEH): Likewise.
4375 * config/t-linux (LIB2ADDEH): Likewise.
4376 * config/t-sol2 (LIB2ADDEH): Likewise.
4377 * config/ia64/t-vms (LIB2ADDEH): Likewise.
4378 * configure.ac (target_thread_file): Remove gnat handling.
4379 * configure: Regenerate.
4380 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
4381
4382 2011-05-23 Tristan Gingold <gingold@adacore.com>
4383 Eric Botcazou <ebotcazou@adacore.com>
4384
4385 * gcov.c (create_file_names): If no object directory is specified,
4386 keep the directory of the file.
4387
4388 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4389
4390 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
4391 * configure: Regenerate.
4392
4393 2011-05-23 Jakub Jelinek <jakub@redhat.com>
4394
4395 PR middle-end/48973
4396 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
4397 failed and the comparison has a single bit signed type, use
4398 constm1_rtx instead of const1_rtx for true value.
4399 (do_store_flag): If ops->type is single bit signed type, disable
4400 signel bit test optimization and pass -1 instead of 1 as last
4401 parameter to emit_store_flag_force.
4402
4403 2011-05-23 Tom de Vries <tom@codesourcery.com>
4404
4405 PR target/45098
4406 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
4407 function.
4408 (infer_loop_bounds_from_undefined): Use new function.
4409
4410 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
4411
4412 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
4413 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
4414 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
4415 and -O0 otherwise.
4416 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
4417
4418 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
4419
4420 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
4421 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
4422 returns true.
4423
4424 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
4425
4426 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
4427
4428 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
4429
4430 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
4431 UNSPEC_MOVE_PIC pattern.
4432
4433 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
4434
4435 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
4436 (sparc-*-rtems*): Likewise.
4437 (sparc64-*-elf*): Likewise.
4438 (sparc64-*-rtems*): Likewise.
4439 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
4440 * config/sparc/t-crtin: New file.
4441 * config/sparc/t-sol2 (crti.o): Delete rule.
4442 (crtn.o): Likewise.
4443 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
4444 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
4445 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
4446 (ENDFILE_SPEC): Add crtn.o.
4447
4448 2011-05-22 Tom de Vries <tom@codesourcery.com>
4449
4450 PR middle-end/48689
4451 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
4452 CODE_CONTAINS_STRUCT (TS_COMMON).
4453
4454 2011-05-22 Jakub Jelinek <jakub@redhat.com>
4455
4456 PR middle-end/49029
4457 * expmed.c (extract_fixed_bit_field): Test whether target can be used
4458 only after deciding which mode to use.
4459
4460 2011-05-22 Tom de Vries <tom@codesourcery.com>
4461
4462 PR target/45098
4463 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
4464 for call to get_shiftadd_cost.
4465
4466 2011-05-22 Uros Bizjak <ubizjak@gmail.com>
4467
4468 PR target/49104
4469 * config/i386/cpuid.h (bit_MMXEXT): New define.
4470
4471 2011-05-22 Nick Clifton <nickc@redhat.com>
4472
4473 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
4474 initialisation of non-existant args[2] element. Use args[] array
4475 not arg[] array to pass arguments to build_function_type_list.
4476
4477 2011-05-22 Ira Rosen <ira.rosen@linaro.org>
4478
4479 PR tree-optimization/49087
4480 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
4481
4482 2011-05-21 Jason Merrill <jason@redhat.com>
4483
4484 PR c++/49092
4485 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
4486 static storage duration.
4487
4488 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
4489
4490 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
4491 frame pointer.
4492
4493 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
4494
4495 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
4496 false if there are call-saved registers here...
4497 (sparc_can_use_return_insn_p): ...but here instead.
4498 (save_or_restore_regs): Fix thinko.
4499 (sparc_expand_prologue): Use current_function_is_leaf.
4500 (sparc_frame_pointer_required): Likewise.
4501
4502 2011-05-21 Nick Clifton <nickc@redhat.com>
4503
4504 PR target/49098
4505 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
4506
4507 2011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
4508
4509 * gengtype.c (walk_type): Implemented "atomic" GTY option.
4510 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
4511
4512 2011-05-21 Joseph Myers <joseph@codesourcery.com>
4513
4514 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
4515 * optc-gen.awk: Move common code to opt-read.awk.
4516 * opth-gen.awk: Likewise.
4517 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
4518
4519 2011-05-20 Nathan Froyd <froydnj@codesourcery.com>
4520
4521 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
4522
4523 2011-05-20 Tom de Vries <tom@codesourcery.com>
4524
4525 PR target/45098
4526 * tree-ssa-loop-ivopts.c: Include expmed.h.
4527 (get_shiftadd_cost): New function.
4528 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
4529
4530 2011-05-20 Jakub Jelinek <jakub@redhat.com>
4531
4532 PR bootstrap/49086
4533 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
4534 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
4535
4536 2011-05-20 Joseph Myers <joseph@codesourcery.com>
4537
4538 * Makefile.in: Update comment referring to $(OBJS-common).
4539
4540 2011-05-20 Ian Lance Taylor <iant@google.com>
4541
4542 * godump.c (go_output_typedef): Put enum constants in the macro
4543 hash table to avoid duplicate Go const definitions.
4544
4545 2011-05-20 Joseph Myers <joseph@codesourcery.com>
4546
4547 * Makefile.in (LIBDEPS): Add libcommon.a.
4548 (LIBS): Likewise.
4549 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
4550 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
4551 pretty-print.o and version.o.
4552 (OBJS-libcommon): New.
4553 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
4554 (BACKEND): Add libcommon.a.
4555 (MOSTLYCLEANFILES): Likewise.
4556 (libcommon.a): New.
4557 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
4558 (cpp$(exeext)): Likewise.
4559 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
4560 pretty-print.o and input.o.
4561 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
4562 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
4563 (errors.o): Remove.
4564 (mips-tfile): Don't explicitly use version.o.
4565 (mips-tdump): Likewise.
4566 (gcov.o): Depend on $(DIAGNOSTIC_H).
4567 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
4568 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
4569 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
4570 * gcov-dump.c: Include intl.h and diagnostic.h.
4571 (main): Initialize diagnostics.
4572 * gcov.c: Include diagnostic.h.
4573 (fnotice): Remove.
4574 (main): Initialize diagnostics.
4575 * lto-wrapper.c: Include diagnostic.h.
4576 (main): Initialize diagnostics.
4577
4578 2011-05-20 Michael Matz <matz@suse.de>
4579
4580 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
4581
4582 2011-05-20 Michael Matz <matz@suse.de>
4583 Richard Guenther <rguenther@suse.de>
4584
4585 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
4586 use lto_streamer_cache_append directly instead of returning a VEC.
4587 (preload_common_node): Remove.
4588 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
4589 track seen nodes.
4590 (lto_streamer_cache_create): Call lto_preload_common_nodes.
4591
4592 2011-05-20 Richard Guenther <rguenther@suse.de>
4593
4594 PR tree-optimization/49079
4595 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
4596 MEM_REFs correctly for the trailing array access detection.
4597 Special case constants the same way as decls for overall size
4598 constraining.
4599
4600 2011-05-20 Uros Bizjak <ubizjak@gmail.com>
4601
4602 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
4603 argument expansion.
4604
4605 2011-05-20 Jakub Jelinek <jakub@redhat.com>
4606
4607 PR tree-optimization/49073
4608 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
4609 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
4610 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
4611
4612 2011-05-20 Richard Guenther <rguenther@suse.de>
4613
4614 PR middle-end/48849
4615 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
4616 of pointer types the same way the middle-end does.
4617
4618 2011-05-20 Richard Guenther <rguenther@suse.de>
4619
4620 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
4621 or pointer-to chains. Delay all fixup to uniquify_nodes.
4622
4623 2011-05-19 Quentin Neill <quentin.neill@amd.com>
4624
4625 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
4626 (fma4_fmaddsub): Likewise
4627
4628 2011-05-19 Jan Hubicka <jh@suse.cz>
4629
4630 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
4631 (GIMPLE_TYPE_PAIR_SIZE): New macro.
4632 (type_pair_cache): New static var.
4633 (lookup_type_pair): Use fixed sized custom hash; make inline.
4634 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
4635 calls of lookup_type_pair.
4636 (print_gimple_types_stats): Remove cache stats.
4637 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
4638 and gtc_ob.
4639
4640 2011-05-19 Uros Bizjak <ubizjak@gmail.com>
4641
4642 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
4643 when TARGET_RDRND is active.
4644 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
4645 Generate dummy SImode target register when target is NULL.
4646
4647 2011-05-19 Joseph Myers <joseph@codesourcery.com>
4648
4649 * config/arm/arm-fpus.def: New.
4650 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
4651 arm-fpus.def.
4652 * config/arm/arm-tables.opt: Regenerate.
4653 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
4654 (arm_option_override): Don't decode FPU name to string here.
4655 * config/arm/arm.opt (mfpu=): Use Enum.
4656 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
4657 Update dependencies.
4658
4659 2011-05-19 Joseph Myers <joseph@codesourcery.com>
4660
4661 * collect2.c: Include diagnostic.h.
4662 (fatal_perror, fatal, error, fancy_abort): Remove.
4663 (main): Set progname. Call xmalloc_set_program_name and
4664 diagnostic_initialize.
4665 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
4666 scan_libraries, resolve_lib_name): Call fatal_error instead of
4667 fatal and fatal_perror.
4668 * collect2.h (error, fatal, fatal_perror): Don't declare.
4669 * tlink.c: Include diagnostic-core.h.
4670 (recompile_files): Call fatal_error instead of fatal_perror.
4671 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
4672 pretty-print.o and input.o.
4673 (collect2.o, tlink.o): Update dependencies.
4674
4675 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4676
4677 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
4678
4679 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4680
4681 PR target/40483
4682 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
4683 COMDAT group syntax, both SPARC and x86 variants.
4684 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
4685 * configure: Regenerate.
4686 * config/sol2.h (TARGET_SOLARIS): Define.
4687 (PUSHSECTION_FORMAT): Remove.
4688 (SECTION_NAME_FORMAT): Define.
4689 * config/sol2.c: Include hashtab.h.
4690 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
4691 expansion, using SECTION_NAME_FORMAT.
4692 (solaris_comdat_htab): New variable.
4693 (struct comdat_entry): Define.
4694 (comdat_hash): New function.
4695 (comdat_eq): New function.
4696 (solaris_elf_asm_comdat_section): New function.
4697 (solaris_define_comdat_signature): New function.
4698 (solaris_code_end): New function.
4699 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
4700 (solaris_code_end): Declare.
4701 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
4702 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
4703 solaris_code_end.
4704 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
4705 Remove ATTRIBUTE_UNUSED.
4706 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
4707 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
4708 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
4709 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
4710 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
4711 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
4712 (PUSHSECTION_FORMAT): Remove.
4713 (SECTION_NAME_FORMAT): Redefine.
4714
4715 2011-05-19 Kai Tietz <ktietz@redhat.com>
4716
4717 * tree-cfg.c (verify_gimple_assign_binary): Barf on
4718 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
4719 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
4720
4721 2011-05-19 Anatoly Sokolov <aesok@post.ru>
4722 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4723
4724 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
4725
4726 2011-05-19 Richard Guenther <rguenther@suse.de>
4727
4728 PR middle-end/48985
4729 * tree-object-size.c (addr_object_size): If the pointed-to
4730 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
4731
4732 2011-05-19 Richard Guenther <rguenther@suse.de>
4733
4734 * gimple.c (gimple_types_compatible_p_1): Compare names of
4735 the types themselves.
4736 (iterative_hash_gimple_type): And hash them that way.
4737 (gimple_register_type_1): If we register a main variant properly
4738 initialize the leader to ourselves.
4739
4740 2011-05-19 Tom de Vries <tom@codesourcery.com>
4741
4742 PR target/45098
4743 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
4744 get_loop_invariant_expr_id.
4745 (get_loop_invariant_expr_id): Use get_expr_id.
4746 (parm_decl_cost): New function.
4747 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
4748 Improve bound cost estimation. Use different inv_expr_id for elim and
4749 express cases.
4750
4751 2011-05-19 Tom de Vries <tom@codesourcery.com>
4752
4753 PR target/45098
4754 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
4755 cost_base.cost == 0.
4756
4757 2011-05-18 H.J. Lu <hongjiu.lu@intel.com>
4758
4759 PR target/49002
4760 * config/i386/sse.md
4761 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
4762 load cast.
4763
4764 2011-05-18 Jakub Jelinek <jakub@redhat.com>
4765
4766 PR tree-optimization/49039
4767 * tree-vrp.c (extract_range_from_binary_expr): For
4768 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
4769 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
4770
4771 2011-05-18 Tom de Vries <tom@codesourcery.com>
4772
4773 PR target/45098
4774 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
4775
4776 2011-05-18 Uros Bizjak <ubizjak@gmail.com>
4777
4778 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
4779 (*tls_global_dynamic_64): Ditto.
4780 (*tls_local_dynamic_base_32_gnu): Ditto.
4781 (*tls_local_dynamic_base_64): Ditto.
4782 (tls_initial_exec_64_sun): Ditto.
4783
4784 2011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
4785
4786 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
4787 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
4788 bf592-none.
4789 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
4790 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
4791 * config/bfin/bfin.c (bfin_cpus): Add bf592.
4792 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
4793 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
4794 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
4795 * config/bfin/elf.h (LIB_SPEC): Add bf592.
4796
4797 2011-05-18 Joseph Myers <joseph@codesourcery.com>
4798
4799 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
4800 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
4801 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
4802 target_thread_pointer, arm_structure_size_boundary, struct
4803 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
4804 struct abi_name, arm_all_abis): Remove.
4805 (arm_option_override) Don't process most enumerated option values here.
4806 Don't process target_fpe_name here. Work with integer not string for
4807 structure size boundary; use separate diagnostics for each case.
4808 * config/arm/arm.h (enum float_abi_type, enum
4809 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
4810 to arm-opts.h.
4811 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
4812 arm_structure_size_boundary): Remove.
4813 * config/arm/arm.opt (mabi=): Use Enum and Init.
4814 (arm_abi_type): New Enum and EnumValue entries.
4815 (mfloat-abi=): Use Enum and Init.
4816 (float_abi_type): New Enum and EnumValue entries.
4817 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
4818 (mfp16-format=): Use Enum and Init.
4819 (arm_fp16_format_type): New Enum and EnumValue entries.
4820 (mstructure-size-boundary=): Use UInteger and Init.
4821 (mtp=): Use Enum and Init.
4822 (arm_tp_type): New Enum and EnumValue entries.
4823
4824 2011-05-18 Richard Guenther <rguenther@suse.de>
4825
4826 PR tree-optimization/49018
4827 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
4828 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
4829 gimple_has_side_effects.
4830
4831 2011-05-18 Richard Guenther <rguenther@suse.de>
4832
4833 * gimple.c (gimple_register_type_1): New function, split out from ...
4834 (gimple_register_type): ... here. Avoid infinite recursion.
4835
4836 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
4837
4838 PR tree-optimization/41881
4839 * tree-vectorizer.h (struct _loop_vec_info): Add new field
4840 reduction_chains along with a macro for its access.
4841 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
4842 (destroy_loop_vec_info): Free reduction chains.
4843 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
4844 (vect_is_slp_reduction): New function.
4845 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
4846 (vect_create_epilog_for_reduction): Support SLP reduction chains.
4847 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
4848 definition types for reduction chains.
4849 (vect_supported_load_permutation_p): Don't allow permutations for
4850 reduction chains.
4851 (vect_analyze_slp_instance): Support reduction chains.
4852 (vect_analyze_slp): Try to build SLP instance from reduction chains.
4853 (vect_get_constant_vectors): Handle reduction chains.
4854 (vect_schedule_slp_instance): Mark the first statement of the
4855 reduction chain as reduction.
4856
4857 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
4858
4859 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
4860 names for group elements access.
4861 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
4862 reduction chains as well. Remove data reference and interleaving
4863 related words from the fields names.
4864 * tree-vect-loop.c (vect_transform_loop): Use new names for group
4865 elements access.
4866 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
4867 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
4868 vect_update_interleaving_chain, vect_same_range_drs,
4869 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
4870 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
4871 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
4872 vect_analyze_group_access, vect_analyze_data_ref_access,
4873 vect_create_data_ref_ptr, vect_transform_strided_load,
4874 vect_record_strided_load_vectors): Likewise.
4875 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
4876 vect_model_load_cost, vectorizable_store, vectorizable_load,
4877 vect_remove_stores, new_stmt_vec_info): Likewise.
4878 * tree-vect-slp.c (vect_build_slp_tree,
4879 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
4880
4881 2011-05-18 Richard Guenther <rguenther@suse.de>
4882
4883 PR middle-end/48989
4884 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
4885 operand verification.
4886 (verify_gimple_assign_binary): Likewise.
4887 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
4888 to non-1-precision BOOLEAN_TYPEs.
4889
4890 2011-05-18 Tom de Vries <tom@codesourcery.com>
4891
4892 PR target/45098
4893 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
4894
4895 2011-05-18 Jakub Jelinek <jakub@redhat.com>
4896
4897 PR tree-optimization/49000
4898 * tree-ssa.c (execute_update_addresses_taken): Call
4899 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
4900 be rewritten and decl has been marked for renaming, reset
4901 the debug stmt.
4902
4903 2011-05-17 Joseph Myers <joseph@codesourcery.com>
4904
4905 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
4906 enum_opts_set when testing if attributes have set -mfpmath=.
4907
4908 2011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
4909
4910 * config/mips/mips.c (mips_handle_option): Remove unused variable.
4911
4912 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
4913
4914 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
4915 info->entry with 0
4916 * tree-inline.c (maybe_inline_call_in_expr): Initialize
4917 id.transform_lang_insert_block with NULL.
4918
4919 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
4920
4921 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
4922 (output_fp_compare): Change args 3 and 4 to bool.
4923 (ix86_expand_call): Change arg 6 to bool.
4924 (ix86_attr_length_immediate_default): Change arg 2 to bool.
4925 (ix86_attr_length_vex_default): Change arg 3 to bool.
4926 * config/i386/i386.md: Update all uses.
4927 * config/i386/i386.c: Ditto.
4928 (ix86_flags_dependent): Change return type to bool.
4929
4930 2011-05-17 Richard Guenther <rguenther@suse.de>
4931
4932 * gimple.c (type_hash_pair_compare): Fix comparison.
4933
4934 2011-05-17 Richard Guenther <rguenther@suse.de>
4935
4936 * gimple.c (iterative_hash_gimple_type): Simplify singleton
4937 case some more, fix final hash value of the non-singleton case.
4938
4939 2011-05-17 Richard Guenther <rguenther@suse.de>
4940
4941 PR bootstrap/49013
4942 Revert
4943 2011-05-16 Richard Guenther <rguenther@suse.de>
4944
4945 * gimple.c (gimple_types_compatible_p_1): Use names of the
4946 type itself, not its main variant.
4947 (iterative_hash_gimple_type): Likewise.
4948
4949 2011-05-17 Richard Guenther <rguenther@suse.de>
4950
4951 * gimple.c (gimple_register_canonical_type): Use the main-variant
4952 leader for computing the canonical type.
4953
4954 2011-05-17 Nick Clifton <nickc@redhat.com>
4955
4956 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
4957 moves.
4958
4959 * config/rx/rx.md: Add peephole to remove redundant extensions
4960 after loads.
4961 (bitset_in_memory): Use rx_restricted_mem_operand.
4962 (bitinvert_in_memory): Likewise.
4963 (bitclr_in_memory): Likewise.
4964
4965 2011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
4966 Nick Clifton <nickc@redhat.com>
4967
4968 * config/rx/rx.md: Add peepholes to match a register move followed
4969 by a comparison of the moved register. Replace these with an
4970 addition of zero that does both actions in one instruction.
4971
4972 2011-05-17 Jakub Jelinek <jakub@redhat.com>
4973
4974 PR target/48986
4975 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
4976 predicate to allow CONST_INT.
4977 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
4978
4979 2011-05-16 Joseph Myers <joseph@codesourcery.com>
4980
4981 * opts-common.c (opt_enum_arg_to_value): New.
4982 * opts.h (opt_enum_arg_to_value): Declare.
4983 * config/i386/i386.opt (fpmath): Remove.
4984 (mfpmath=): Use Enum, Init and Save.
4985 (fpmath_unit): New Enum and EnumValue entries.
4986 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
4987 name for function fpmath state.
4988 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
4989 * config/i386/i386.c: Include diagnostic.h.
4990 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
4991 (ix86_target_string): Take enum fpmath_unit value instead of string.
4992 (ix86_debug_options): Update call to ix86_target_string.
4993 (ix86_option_override_internal): Don't process fpmath strings here.
4994 (x86_function_specific_save, ix86_function_specific_restore):
4995 Don't handle fpmath state specially.
4996 (ix86_function_specific_print): Pass fpmath state to
4997 ix86_target_string instead of printing in this function.
4998 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
4999 Handle enum attributes.
5000 (IX86_ATTR_ENUM, ix86_opt_enum): New.
5001 (ix86_valid_target_attribute_tree): Update option_strings
5002 handling. Handle fpmath as enum option.
5003 (ix86_can_inline_p): Update field names for function fpmath state.
5004 (ix86_expand_builtin): Update call to ix86_target_string.
5005 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
5006 (ix86_fpmath): Remove.
5007 * config/i386/t-i386 (i386.o): Update dependencies.
5008
5009 2011-05-16 Joseph Myers <joseph@codesourcery.com>
5010
5011 PR preprocessor/48677
5012 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
5013 from decoded_options[0], not from itself.
5014
5015 2011-05-16 Uros Bizjak <ubizjak@gmail.com>
5016
5017 * config/i386/constraints.md (z): New constraint.
5018 * config/i386/i386.c (c): New mode attribute.
5019 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
5020 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
5021 constraint for operand 0.
5022 (*call_vzeroupper): Ditto.
5023 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
5024 (*call_rex64_ms_sysv_vzeroupper): Ditto.
5025 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
5026 Use "lzm" constraint for operand 0.
5027 (*call_pop_vzeroupper): Ditto.
5028 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
5029 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
5030 constraint for operand 0.
5031 (*sibcall_vzeroupper): Ditto.
5032 (*sibcall_rex64_ms_sysv): Ditto.
5033 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
5034 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
5035 *sibcall_pop_1. Use "Uz" constraint for operand 0.
5036 (*sibcall_pop_vzeroupper): Ditto.
5037 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
5038 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
5039 mode iterator. Use "<c>zm" constraint for operand 1.
5040 (*call_value_vzeroupper): Ditto.
5041 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
5042 for operand 1.
5043 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
5044 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
5045 *call_value_pop_1. Use "lzm" constraint for operand 1.
5046 (*call_value_pop_vzeroupper): Ditto.
5047 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
5048 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
5049 mode iterator. Use "Uz" constraint for operand 1.
5050 (*sibcall_value_vzeroupper): Ditto.
5051 (*sibcall_value_rex64_ms_sysv): Ditto.
5052 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
5053 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
5054 constraint for operand 1.
5055 (*sibcall_value_pop_vzeroupper): Ditto.
5056 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
5057 and "z" constraint for operand 2.
5058 (*tls_global_dynamic_32_gnu): Ditto.
5059 (*tls_local_dynamic_base_32_gnu): Ditto.
5060 (*tls_local_dynamic_base_64): Ditto.
5061 (*tls_local_dynamic_32_once): Ditto.
5062 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
5063 Update all callers.
5064 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
5065
5066 2011-05-16 Richard Guenther <rguenther@suse.de>
5067
5068 * gimple.c (gimple_types_compatible_p_1): Use names of the
5069 type itself, not its main variant.
5070 (iterative_hash_gimple_type): Likewise.
5071
5072 2011-05-16 Richard Guenther <rguenther@suse.de>
5073
5074 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
5075 always visit pointer target and function result and argument types.
5076
5077 2011-05-16 Jason Merrill <jason@redhat.com>
5078
5079 PR c++/48999
5080 * tree-inline.c (copy_statement_list): Put back recursion.
5081
5082 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
5083
5084 PR target/27663
5085 PR target/41076
5086 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
5087 * config/avr/avr.md ("*ior<mode>qi.byte0",
5088 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
5089
5090 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
5091
5092 PR target/45099
5093 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
5094 register is needed for a function argument.
5095
5096 2011-05-16 Richard Guenther <rguenther@suse.de>
5097
5098 * gimple.c (struct type_hash_pair): New type.
5099 (type_hash_pair_compare): New function.
5100 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
5101
5102 2011-05-16 Revital Eres <revital.eres@linaro.org>
5103
5104 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
5105
5106 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
5107
5108 * config/i386/i386.md (floating point move splitters): Fix
5109 usage of standard_80387_constant_p.
5110 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
5111
5112 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
5113
5114 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
5115
5116 2011-05-14 Eric Botcazou <ebotcazou@adacore.com>
5117
5118 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
5119 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
5120 (tree_ssa_lim_finalize): Likewise.
5121
5122 2011-05-14 Uros Bizjak <ubizjak@gmail.com>
5123
5124 * config/i386/constraint.md (Yd, Yx): New register constraints.
5125 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
5126 Yd conditional register constraint.
5127 (*movtf_internal): Use standard_sse_constant_opcode.
5128 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
5129 Yx conditional register constraint.
5130 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
5131 Yd conditional register constraint. Use standard_sse_constant_p to
5132 check for valid SSE constants and call standard_sse_constant_opcode to
5133 output SSE insn.
5134 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
5135 constants and call standard_sse_constant_opcode to output SSE insn.
5136 * config/i386/i386.c (ix86_option_ovverride_internal): Set
5137 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
5138 optimize_size is set.
5139 (standard_sse_constant_opcode): Output conditional AVX insn templates.
5140
5141 2011-05-14 Tobias Burnus <burnus@net-b.de>
5142
5143 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
5144
5145 2011-05-13 Martin Jambor <mjambor@suse.cz>
5146
5147 * ipa-prop.c (ipa_cst_from_jfunc): New function.
5148 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
5149 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
5150 (evaluate_conditions_for_ipcp_clone): Removed.
5151 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
5152 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
5153 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
5154
5155 2011-05-13 Eric Botcazou <ebotcazou@adacore.com>
5156
5157 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
5158 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
5159 lieu of MAY_HAVE_DEBUG_STMTS.
5160 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
5161 debug statements if !MAY_HAVE_DEBUG_STMTS.
5162
5163 2011-05-13 Martin Thuresson <martint@google.com>
5164
5165 PR gcov-profile/47793
5166 * libgcov.c (gcov_exit): Support relative profile paths.
5167 * doc/invoke.texi (-fprofile-dir): Update for above change.
5168
5169 2011-05-13 Richard Guenther <rguenther@suse.de>
5170
5171 * gimple.c (gimple_canonical_types_compatible_p): Do not use
5172 type-pair caching, do not compare hashes.
5173
5174 2011-05-13 Nathan Froyd <froydnj@codesourcery.com>
5175
5176 PR middle-end/48965
5177 * tree-cfg.c (edge_to_cases_cleanup): Return true.
5178 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
5179
5180 2011-05-13 Kai Tietz <ktietz@redhat.com>
5181
5182 * gimplify.c (gimplify_expr): Make sure operand is boolified.
5183 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
5184 compatible type for TRUTH_NOT_EXPR.
5185
5186 2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
5187
5188 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
5189 (ix86_hard_regno_mode_ok): Change return value to bool. Use
5190 can_create_pseudo_p ().
5191
5192 2011-05-13 Richard Guenther <rguenther@suse.de>
5193
5194 PR lto/48978
5195 * gimple.c (iterative_hash_gimple_type): Revert change in
5196 pointer target and function result and argument hashing.
5197
5198 2011-05-13 Uros Bizjak <ubizjak@gmail.com>
5199
5200 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
5201 (*movxf_internal_nointeger): Ditto.
5202 (*movdf_internal_rex64): Ditto.
5203 (*movdf_internal): Ditto.
5204 (*movdf_internal_nointeger): Ditto.
5205 (*movsf_internal): Ditto.
5206 (sincos splitters): Use can_create_pseudo ().
5207
5208 2011-05-13 Joseph Myers <joseph@codesourcery.com>
5209
5210 * config/i386/i386-opts.h: New.
5211 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
5212 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
5213 ix86_section_threshold): Remove.
5214 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
5215 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
5216 OPT_mbranch_cost_.
5217 (ix86_option_override_internal): Don't decode strings for options
5218 other than -march=, -mtune= and -mfpmath=. Don't allow for
5219 __attribute__ uses in remaining diagnostics for options with
5220 string arguments. Don't check for integer arguments being negative.
5221 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
5222 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
5223 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
5224 ix86_branch_cost, ix86_section_threshold): Remove.
5225 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
5226 HeaderInclude.
5227 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
5228 but not Var.
5229 (masm=): Use Enum and Init.
5230 (asm_dialect): New Enum and EnumValue entries.
5231 (mbranch-cost=): Use UInteger.
5232 (mlarge-data-threshold=): Use UInteger and Init.
5233 (mcmodel=): Use Enum and Init.
5234 (cmodel): New Enum and EnumValue entries.
5235 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
5236 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
5237 mregparm=): Use UInteger.
5238 (mstringop-strategy=): Use Enum and Init.
5239 (stringop_alg): New Enum and EnumValue entries.
5240 (mtls-dialect=): Use Enum and Init.
5241 (tls_dialect): New Enum and EnumValue entries.
5242 (mabi=): Use Enum and Init.
5243 (calling_abi): New Enum and EnumValue entries.
5244 (mveclibabi=): Use Enum and Init.
5245 (ix86_veclibabi): New Enum and EnumValue entries.
5246
5247 2011-05-13 Nick Clifton <nickc@redhat.com>
5248
5249 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
5250 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
5251
5252 2011-05-13 Kai Tietz <ktietz@redhat.com>
5253
5254 PR middle-end/48984
5255 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
5256 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
5257 (gimple_boolify): Check for cast for boolean_type_node instead for
5258 BOOLEAN_TYPE.
5259
5260 2011-05-13 Richard Guenther <rguenther@suse.de>
5261
5262 PR tree-optimization/48172
5263 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
5264 multiplying by number of iterations for equal step.
5265 (vect_create_cond_for_alias_checks): Likewise.
5266
5267 2011-05-13 Andreas Schwab <schwab@redhat.com>
5268
5269 * configure.ac: Use AS_HELP_STRING throughout.
5270 * configure: Regenerate.
5271
5272 2011-05-12 H.J. Lu <hongjiu.lu@intel.com>
5273
5274 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
5275 (ix86_emit_restore_regs_using_mov): Likewise.
5276 (ix86_emit_restore_sse_regs_using_mov): Likewise.
5277
5278 2011-05-12 Anatoly Sokolov <aesok@post.ru>
5279
5280 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
5281 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
5282 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
5283 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
5284 RTX_OK_FOR_OLO10_P): ...here.
5285 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
5286 SYMBOLIC_CONST.
5287
5288 2011-05-12 Kai Tietz <ktietz@redhat.com>
5289
5290 * gimplify.c (gimple_boolify): Re-boolify expression
5291 arguments even if expression type is of kind BOOLEAN_TYPE.
5292 (gimplify_boolean_expr): Removed.
5293 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
5294 and XOR. Additional take care that we keep expression's type.
5295 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
5296 of TRUTH_AND|OR|XOR_EXPR.
5297
5298 2011-05-12 Jakub Jelinek <jakub@redhat.com>
5299
5300 PR tree-optimization/48975
5301 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
5302 on all bbs here and free and clear ifc_bbs at the end.
5303
5304 2011-05-12 Richard Guenther <rguenther@suse.de>
5305
5306 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
5307 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
5308 until after simple checks.
5309 (gimple_types_compatible_p): Likewise.
5310 (iterative_hash_gimple_type): Always hash pointer targets
5311 and function return and argument types.
5312 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
5313 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
5314 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
5315 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
5316 completely in the simple compare section.
5317 (gimple_register_canonical_type): Query the cache again after
5318 registering.
5319
5320 2011-05-12 Richard Guenther <rguenther@suse.de>
5321
5322 PR tree-optimization/48172
5323 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
5324 the number of iterations from the segment size calculation.
5325 (vect_create_cond_for_alias_checks): Adjust.
5326
5327 2011-05-12 Jakub Jelinek <jakub@redhat.com>
5328
5329 PR debug/48967
5330 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
5331 if validate_subreg fails.
5332
5333 2011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
5334
5335 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
5336 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
5337 early.
5338
5339 2011-05-12 DJ Delorie <dj@redhat.com>
5340
5341 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
5342 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
5343 created builtin into rx_builtins array.
5344 (rx_builtin_decl): New function.
5345 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
5346
5347 2011-05-12 DJ Delorie <dj@redhat.com>
5348 Nick Clifton <nickc@redhat.com>
5349
5350 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
5351 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
5352 (rx_is_legitimate_address): Add pre-decrement and post-increment
5353 addressing in HImode and QImode. Fix test for out of range
5354 REG+INT addressing.
5355 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
5356 (rx_align_for_label): Test label before extracting its usage count.
5357 (rx_adjust_insn_lengths): Fix selection of insn codes.
5358 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5359
5360 2011-05-11 Jason Merrill <jason@redhat.com>
5361
5362 * tree.c (type_hash_canon): Use struct tree_type_non_common.
5363
5364 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
5365
5366 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
5367 reindent the subsequent block.
5368
5369 2011-05-11 Satoru Takabayashi <satorux@google.com>
5370 Paul Pluzhnikov <ppluzhnikov@google.com>
5371
5372 * doc/install.texi (Configuration): Document --with-linker-hash-style.
5373 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
5374 * config.in: Add LINKER_HASH_STYLE.
5375 * configure.ac: Add --with-linker-hash-style.
5376 * configure: Regenerate.
5377
5378 2011-05-11 Richard Guenther <rguenther@suse.de>
5379
5380 PR middle-end/48964
5381 * gimple.c (iterative_hash_canonical_type): Fix typo.
5382
5383 2011-05-11 Uros Bizjak <ubizjak@gmail.com>
5384
5385 * config/i386/i386.c (legitimize_tls_address)
5386 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
5387 expanders directly for TARGET_GNU2_TLS. Determine pic and
5388 __tls_get_addr symbol reference here. Update call to
5389 gen_tls_global_dynamic_{32,64} for added arguments.
5390 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
5391 expanders directly for TARGET_GNU2_TLS. Determine
5392 __tls_get_addr symbol reference here. Update call to
5393 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
5394 unique UNSPEC REG_EQUIV to libcall block.
5395 (ix86_tls_get_addr): Declare static.
5396 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
5397 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
5398 Do not determine pic and __tls_get_addr symbol reference here. Do not
5399 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
5400 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
5401 (tls_global_dynamic_64): Add operand 2. Do not determine
5402 __tls_get_addr symbol reference here. Do not call
5403 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
5404 (tls_local_dynamic_base64): Ditto for operand 1.
5405
5406 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
5407
5408 * function.c (expand_function_start): Initialize stack_check_probe_note
5409 only if the generic stack checking mechanism is used.
5410
5411 2011-05-11 Richard Guenther <rguenther@suse.de>
5412
5413 PR tree-optimization/15256
5414 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
5415 (A & B) | C, combine (A op CST1) op CST2.
5416 (tree_ssa_forward_propagate_single_use_vars): Only bother to
5417 visit assigns that have uses.
5418
5419 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
5420
5421 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
5422 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
5423 (unpack_ts_type_common_value_fields): ...this. Update comment.
5424 (unpack_value_fields): Adjust for renaming.
5425 (lto_input_ts_type_tree_pointers): Split into...
5426 (lto_input_ts_type_common_tree_pointer): ...this and...
5427 (lto_input_ts_type_non_common_tree_pointers): ...this.
5428 (lto_input_tree_pointers): Adjust for above split.
5429 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
5430 (pack_ts_type_common_value_fields): ...this. Update comment.
5431 (lto_output_ts_type_tree_pointers): Split into...
5432 (lto_output_ts_type_common_tree_pointers): ...this and...
5433 (lto_output_ts_type_non_common_tree_pointers): ...this.
5434 (lto_output_tree_pointers): Adjust for above split.
5435 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
5436 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
5437 * stor-layout.c (vector_type_mode): Adjust location of mode field.
5438 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
5439 Define.
5440 (struct tree_type): Split into...
5441 (struct tree_type_common: ...this and...
5442 (struct tree_type_with_lang_specific): ...this and...
5443 (struct tree_type_non_common): ...this. Adjust accessor macros
5444 accordingly.
5445 (TYPE_VALUES_RAW): Define.
5446 (union tree_node): Update for above changes.
5447 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
5448 TS_TYPE_NON_COMMON.
5449 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
5450 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
5451 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
5452 * treestructu.def (TS_TYPE): Remove.
5453 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
5454 Define.
5455
5456 2011-05-11 Jakub Jelinek <jakub@redhat.com>
5457
5458 PR debug/48159
5459 * tree-ssa.c (reset_debug_uses): New function.
5460 * tree-flow.h (reset_debug_uses): New prototype.
5461 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
5462 * tree-loop-distribution.c (generate_loops_for_partition): Call
5463 reset_debug_uses on the stmts that will be removed. Keep around
5464 all debug stmts, don't count them as bits in partition bitmap.
5465 (generate_builtin): Don't count debug stmts or labels as bits in
5466 partition bitmap.
5467
5468 2011-05-11 Richard Guenther <rguenther@suse.de>
5469
5470 * gimple.c (gimple_type_hash_1): Merge with ...
5471 (gimple_type_hash): ... this.
5472 (gtc_visit): Remove mode parameter and simplify accordingly.
5473 (gimple_types_compatible_p_1): Likewise.
5474 (gimple_types_compatible_p): Likewise.
5475 (iterative_hash_gimple_type): Likewise.
5476 (visit): Likewise.
5477 (gimple_type_eq): Adjust.
5478
5479 2011-05-11 Revital Eres <revital.eres@linaro.org>
5480
5481 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
5482 enters the branch create an anti edge in the opposite direction
5483 to prevent the creation of reg-moves.
5484 * modulo-sched.c: Adjust comment to reflect the fact we are
5485 scheduling closing branch.
5486 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
5487 (stage_count): New field in struct partial_schedule.
5488 (calculate_stage_count): New function.
5489 (normalize_sched_times): Rename to reset_sched_times and handle
5490 incrementing the sched time of the nodes by a constant value
5491 passed as parameter.
5492 (duplicate_insns_of_cycles): Skip closing branch.
5493 (sms_schedule_by_order): Schedule closing branch.
5494 (ps_insn_find_column): Handle closing branch.
5495 (sms_schedule): Call reset_sched_times and adjust the code to
5496 support scheduling of the closing branch.
5497 (ps_insert_empty_row): Update calls to normalize_sched_times
5498 and rotate_partial_schedule functions.
5499
5500 2011-05-11 Richard Guenther <rguenther@suse.de>
5501
5502 PR middle-end/48953
5503 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
5504
5505 2011-05-11 Joseph Myers <joseph@codesourcery.com>
5506
5507 * opts.c (finish_options): Move warning settings from process_options.
5508 * toplev.c (process_options): Move warning settings to finish_options.
5509
5510 2011-05-11 Richard Guenther <rguenther@suse.de>
5511
5512 PR tree-optimization/18041
5513 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
5514 (simplify_bitwise_binary): ... this. Handle operand conversions
5515 by applying them to the result instead.
5516 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
5517
5518 2011-05-11 Richard Guenther <rguenther@suse.de>
5519
5520 * gimple.c (gimple_canonical_types_compatible_p): Split out
5521 from gimple_types_compatible_p and friends. Do not recurse
5522 to pointed-to types.
5523 (gimple_canonical_type_eq): Use it.
5524 (iterative_hash_canonical_type): Split out from
5525 iterative_hash_gimple_type and friends. Do not recurse
5526 to pointed-to types.
5527 (gimple_canonical_type_hash): Use it, allocate the hash here.
5528
5529 2011-05-11 Revital Eres <revital.eres@linaro.org>
5530
5531 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
5532 recognizing doloop.
5533
5534 2011-05-11 Revital Eres <revital.eres@linaro.org>
5535
5536 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
5537 instead of PREV_INSN.
5538
5539 2011-05-11 Revital Eres <revital.eres@linaro.org>
5540
5541 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
5542 * loop-doloop.c (doloop_condition_get): Likewise.
5543 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
5544 (doloop_end): New.
5545 * config/arm/arm.md (*addsi3_compare0): Remove "*".
5546
5547 2011-05-10 Nathan Froyd <froydnj@codesourcery.com>
5548
5549 * tree.def (CASE_LABEL_EXPR): Add an operand.
5550 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
5551
5552 2011-05-10 Joseph Myers <joseph@codesourcery.com>
5553
5554 * c-decl.c (c_override_global_bindings_to_false): Remove.
5555 (global_bindings_p): Don't check
5556 c_override_global_bindings_to_false.
5557 * c-tree.h (c_override_global_bindings_to_false): Remove.
5558 * c-typeck.c (composite_type): Don't set
5559 c_override_global_bindings_to_false.
5560
5561 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
5562
5563 PR target/48857, 48495
5564 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
5565 (VSX_MODE): Ditto.
5566 (VSX_MOVE_MODE): Ditto.
5567 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
5568 VSX vector types. Add V2DImode.
5569 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
5570 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
5571 (MODES_TIEABLE_P): Ditto.
5572
5573 * config/rs6000/rs6000.c (rs6000_emit_move): Use
5574 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
5575 VSX_VECTOR_MODE.
5576 (init_cumulative_args): Ditto.
5577 (rs6000_function_arg_boundary): Ditto.
5578 (rs6000_function_arg_advance_1): Ditto.
5579 (rs6000_function_arg): Ditto.
5580 (rs6000_function_ok_for_sibcall): Ditto.
5581 (emit_frame_save): Ditto.
5582 (rs6000_function_value): Ditto.
5583 (rs6000_libcall_value): Ditto.
5584
5585 2011-05-10 Joseph Myers <joseph@codesourcery.com>
5586
5587 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
5588 i386/darwin-lib.h to $libgcc_tm_file.
5589 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
5590
5591 2011-05-10 Joseph Myers <joseph@codesourcery.com>
5592
5593 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
5594
5595 2011-05-10 Joseph Myers <joseph@codesourcery.com>
5596
5597 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
5598 * config/rs6000/rs6000-tables.opt: New file (generated).
5599 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
5600 rs6000/rs6000-tables.opt to extra_options.
5601 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
5602 * config/rs6000/rs6000.c (rs6000_select): Remove.
5603 (processor_target_table): Move contents to rs6000-cpus.def.
5604 (darwin_rs6000_override_options): Check
5605 global_options_set.x_rs6000_cpu_index instead of
5606 rs6000_select[1].string.
5607 (rs6000_option_override_internal): Likewise.
5608 (rs6000_handle_option): Don't assert that global structures are in
5609 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
5610 (rs6000_default_cpu): New variable.
5611 (rs6000_file_start): Set it instead of local default_cpu. Check
5612 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
5613 global_options_set.x_rs6000_tune_index instead of rs6000_select.
5614 (rs6000_darwin_file_start): Check rs6000_default_cpu and
5615 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
5616 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
5617 rs6000_select): Remove.
5618 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
5619 Remove.
5620 (mcpu=, mtune=): Use Var, Init, Enum and Save.
5621 * config/rs6000/t-rs6000
5622 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
5623 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
5624 global_options_set.x_rs6000_cpu_index instead of
5625 rs6000_select[1].string.
5626 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
5627 global_options_set.x_rs6000_cpu_index instead of
5628 rs6000_select[1].string.
5629
5630 2011-05-10 Joseph Myers <joseph@codesourcery.com>
5631
5632 * config.gcc (libgcc_tm_file): Define instead of including files
5633 from ../../libgcc/config/ in tm_file.
5634 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
5635 * configure: Regenerate.
5636 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
5637 libgcc_tm.h, cs-libgcc_tm.h): New.
5638 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
5639 (clean): Remove libgcc_tm.h.
5640 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
5641 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
5642 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
5643
5644 2011-05-10 Georg-Johann Lay <avr@gjlay.de>
5645
5646 PR target/48896
5647 * config/avr/avr.c (avr_ret_register): Return unsigned int
5648 instead of int.
5649 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
5650 it to avr_libcall_value.
5651 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
5652 expand_expr.
5653 (avr_expand_binop_builtin): Ditto.
5654 (avr_expand_unop_builtin): Ditto.
5655
5656 2011-05-10 DJ Delorie <dj@redhat.com>
5657
5658 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
5659 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
5660 * config/rx/rx.c (rx_align_for_label): Add label and
5661 uses_threshold parameters. Do not align when the label is not
5662 used enough.
5663 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
5664
5665 2011-05-10 Richard Guenther <rguenther@suse.de>
5666
5667 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
5668 a series of conversions and apply foldings similar to what
5669 fold-const does.
5670 (tree_ssa_forward_propagate_single_use_vars): Call it.
5671
5672 2011-05-10 Jakub Jelinek <jakub@redhat.com>
5673
5674 PR tree-optimization/48611
5675 PR tree-optimization/48794
5676 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
5677 referenced from RESX or EH_DISPATCH arguments.
5678
5679 PR debug/48928
5680 * dfp.c (decimal_to_decnumber): Handle conversion from
5681 dconst{1,2,m1,half}.
5682
5683 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
5684
5685 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
5686 for !flag_prefer_avx128.
5687 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
5688
5689 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
5690
5691 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
5692 (fold_ternary_loc): Use expr_location_or.
5693
5694 2011-05-09 H.J. Lu <hongjiu.lu@intel.com>
5695
5696 PR debug/48853
5697 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
5698 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
5699 Pmode and mem_mode is not VOIDmode.
5700
5701 2011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
5702
5703 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
5704 TYPE_QUAL_RESTRICT): Convert to enum.
5705
5706 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
5707
5708 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
5709 (const_pow2_1_to_8_operand): Ditto.
5710 (const_pow2_1_to_128_operand): Ditto.
5711 (const_pow2_1_to_32768_operand): Ditto.
5712 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
5713 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
5714 in insn constraint to check integer value of operand 3.
5715 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
5716
5717 (PINSR_MODE): New mode iterator.
5718 (sse2p4_1): New mode attribute.
5719 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
5720 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
5721 iterator. Use const_int_operand instead of
5722 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
5723 exact_log2 in insn constraint to check integer value of operand 3.
5724
5725 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
5726
5727 * config/i386/sse.md (blendbits): Remove mode attribute.
5728 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
5729 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
5730 Check integer value of operand 3 in insn constraint.
5731
5732 2011-05-09 Richard Guenther <rguenther@suse.de>
5733
5734 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
5735 for diagnostics.
5736 (lto_symtab_merge): Likewise. Do not register types here.
5737 (lto_symtab_merge_decls_2): Likewise.
5738 (lto_symtab_merge_decls_1): Likewise.
5739 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
5740 * gimple.c (enum gtc_mode): Declare.
5741 (gimple_types_compatible_p): Make static.
5742
5743 2011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5744
5745 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
5746 temporary register to match Pmode.
5747
5748 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
5749
5750 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
5751 and *vec_concatv4si_1_avx.
5752
5753 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
5754
5755 PR rtl-optimization/48927
5756 * ira-conflicts.c (commutative_constraint_p): Use
5757 recog_data.alternative_enabled_p to disable alternatives where
5758 "enabled" attribute is false.
5759 (get_dup_num): Ditto.
5760 * ira-lives.c (single_reg_class): Ditto.
5761 (ira_implicitly_set_insn_hard_regs): Ditto.
5762
5763 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
5764
5765 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
5766 (dataflow_set_preserve_mem_locs): Likewise.
5767
5768 2011-05-09 Philipp Thomas <pth@suse.de>
5769
5770 * config/mep/mep.c (mep_validate_vliw): Syntax description
5771 should not be translated.
5772
5773 2011-05-09 Joseph Myers <joseph@codesourcery.com>
5774
5775 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
5776 * config/mips/mips-tables.opt: New file (generated).
5777 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
5778 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
5779 MIPS_ARCH_OPTION_NATIVE): Define.
5780 * config/mips/mips.c (mips_cpu_info_table): Move contents to
5781 mips-cpus.def.
5782 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
5783 mips_parse_cpu): Remove.
5784 (mips_cpu_info_from_opt, mips_default_arch): New.
5785 (mips_handle_option): Don't assert that global structures are in
5786 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
5787 (mips_option_override): Use new variables and functions to set
5788 state of these options. Use strcmp to check for individual CPU names.
5789 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
5790 definition.
5791 * config/mips/mips.opt (march=): Use ToLower and Enum.
5792 (mips): Use ToLower, Enum and Var.
5793 (mtune=): Use ToLower and Enum.
5794 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
5795
5796 2011-05-08 Jan Hubicka <jh@suse.cz>
5797
5798 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
5799 Arrange type pairs to be UID ordered.
5800 (gimple_lookup_type_leader): Make inline.
5801
5802 2011-05-09 Nick Clifton <nickc@redhat.com>
5803
5804 PR target/48899
5805 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
5806 PROCESSOR_DEFAULT.
5807
5808 PR target/48897
5809 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
5810 variable 's'.
5811
5812 2011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
5813
5814 * combine.c (simplify_comparison): Abstract out parts into...
5815 (simplify_compare_const): ... new function.
5816 (try_combine): Generalize parallel arithmetic/compare combining
5817 to call simplify_compare_const() and CANONICALIZE_COMPARE().
5818
5819 2011-05-08 Jan Hubicka <jh@suse.cz>
5820
5821 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
5822 (cgraph_create_virtual_clone): Call hooks once virtual clone
5823 is finished.
5824 * cgraph.h (cgraph_clone_node): Update prototype.
5825 * ipa-cp.c (ipcp_estimate_growth): Use
5826 estimate_ipcp_clone_size_and_time.
5827 * ipa-inline-transform.c (clone_inlined_nodes): Update.
5828 * lto-cgraph.c (input_node): Update.
5829 * ipa-inline.c (recursive_inlining): Update.
5830 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
5831 (evaluate_conditions_for_known_args): Break out from ...
5832 (evaluate_conditions_for_edge): ... here.
5833 (evaluate_conditions_for_ipcp_clone): New function.
5834 (inline_node_duplication_hook): Update clone summary based
5835 on parameter map.
5836 (estimate_callee_size_and_time): Rename to ...
5837 (estimate_node_size_and_time): take NODE instead of EDGE;
5838 take POSSIBLE_TRUTHS as argument.
5839 (estimate_callee_size_and_time): Update.
5840 (estimate_ipcp_clone_size_and_time): New function.
5841 (do_estimate_edge_time): Update.
5842
5843 2011-05-08 Richard Guenther <rguenther@suse.de>
5844
5845 PR middle-end/48908
5846 PR middle-end/48905
5847 * expmed.c (expand_shift_1): Compute adjusted constant shift
5848 amount manually.
5849
5850 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
5851
5852 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
5853
5854 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
5855
5856 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
5857
5858 2011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
5859
5860 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
5861
5862 2011-05-07 Jan Hubicka <jh@suse.cz>
5863
5864 * ipa-inline-transform.c (inline_call): Account when program size
5865 decreases.
5866 * ipa-inline.c (relative_time_benefit): New function.
5867 (edge_badness): Reorganize to be power 2 based; fix thinko when
5868 computing badness for negative growth; update comments to match
5869 reality; better dumps.
5870
5871 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
5872
5873 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
5874 type to bool and adjust comment.
5875 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
5876 (fold_mathfn_compare): Remove calls to global_bindings_p.
5877 (fold_inf_compare): Likewise.
5878 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
5879 * c-tree.h (global_bindings_p): Adjust prototype.
5880 * c-decl.c (global_bindings_p): Return bool and simplify.
5881
5882 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
5883
5884 PR tree-optimization/48837
5885 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
5886 when accumulator transformation is performed.
5887
5888 2011-05-06 Jan Hubicka <jh@suse.cz>
5889
5890 * i386.h (ix86_tune_indices): Add
5891 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
5892 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
5893 * i386.c (initial_ix86_tune_features): Add
5894 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5895 (software_prefetching_beneficial_p): Remove predicate.
5896 (ix86_option_override_internal): Use new macro.
5897
5898 2011-05-06 Jan Hubicka <jh@suse.cz>
5899
5900 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
5901
5902 2011-05-06 Jan Hubicka <jh@suse.cz>
5903
5904 * cgraph.c (cgraph_add_thunk): Create real function node instead
5905 of alias node; finalize it and mark needed/reachale; arrange visibility
5906 to be right and add it into the corresponding same comdat group list.
5907 (dump_cgraph_node): Dump thunks.
5908 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
5909 cgraph_function_with_gimple_body_p,
5910 cgraph_first_function_with_gimple_body,
5911 cgraph_next_function_with_gimple_body): New functions.
5912 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
5913 New macros.
5914 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
5915 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
5916 * cgraphunit.c (cgraph_finalize_function): Only look into possible
5917 devirtualization when optimizing.
5918 (verify_cgraph_node): Verify thunks.
5919 (cgraph_analyze_function): Analyze thunks.
5920 (cgraph_mark_functions_to_output): Output thunks only in combination
5921 with function they are assigned to.
5922 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
5923 alias into normal node.
5924 (assemble_thunks): New functoin.
5925 (cgraph_expand_function): Use it.
5926 * lto-cgraph.c (lto_output_node): Stream thunks.
5927 (input_overwrite_node): Stream in thunks.
5928 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
5929 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
5930 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
5931 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
5932 (inline_analyze_function): Do not care about thunk jump functions.
5933 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
5934 * ipa-prop.c (ipa_prop_write_jump_functions): Use
5935 cgraph_function_with_gimple_body_p.
5936 * passes.c (do_per_function_toporder): Use
5937 cgraph_function_with_gimple_body_p.
5938 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
5939 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
5940 (function_called_by_processed_nodes_p): Likewise.
5941
5942 2011-05-06 Joseph Myers <joseph@codesourcery.com>
5943
5944 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
5945 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
5946 entries.
5947 (mabi=): Replace with separate entries for mabi=altivec,
5948 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
5949 mabi=ieeelongdouble and mabi=ibmlongdouble.
5950 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
5951 check for -mabi=spe without SPE ABI support here.
5952 (rs6000_handle_option): Replace OPT_mabi_ handling with
5953 OPT_mabi_altivec and OPT_mabi_spe handling.
5954
5955 2011-05-06 Cary Coutant <ccoutant@google.com>
5956
5957 * dwarf2out.c (contains_subprogram_definition): New function.
5958 (should_move_die_to_comdat): Call it.
5959
5960 2011-05-06 Jeff Law <law@redhat.com>
5961
5962 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
5963 remove_ctrl_stmt_and_useless_edges.
5964 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
5965 (fixup_template_block, thread_single_edge): Likewise.
5966 (mark_threaded_blocks): Use THREAD_TARGET.
5967
5968 2011-05-06 Alan Modra <amodra@gmail.com>
5969
5970 PR target/48900
5971 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
5972 const0_rtx as the arg to the dummy __tls_get_addr libcall.
5973
5974 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
5975
5976 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
5977 constraint modifier to "r".
5978
5979 2011-05-06 Joseph Myers <joseph@codesourcery.com>
5980
5981 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
5982 fall through for OPT_mcmodel_.
5983
5984 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5985
5986 * config/s390/s390.c (s390_asm_trampoline_template): Comment
5987 instruction sizes.
5988 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
5989
5990 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5991
5992 PR target/47930
5993 * config/arm/arm.opt (marm): Document it.
5994 (mthumb): Reject negative variant.
5995
5996 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
5997
5998 PR target/48898
5999 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
6000 Fix typo in "ccvt" variable name.
6001
6002 2011-05-06 Tristan Gingold <gingold@adacore.com>
6003
6004 PR target/48895
6005 * config/vms/vms-ar.c (main): Remove cwd variable.
6006
6007 2011-05-06 Jakub Jelinek <jakub@redhat.com>
6008
6009 PR debug/48902
6010 * var-tracking.c (prepare_call_arguments): Move else before #endif.
6011
6012 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
6013
6014 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
6015 * gimplify.c (gimplify_switch_expr): Likewise.
6016 * omp-low.c (expand_omp_sections): Likewise.
6017 * tree-eh.c (lower_try_finally_switch): Likewise.
6018 (lower_eh_dispatch): Likewise.
6019 * tree.h (build_case_label): Declare.
6020 * tree.c (build_case_label): Define.
6021
6022 2011-05-05 Jason Merrill <jason@redhat.com>
6023
6024 PR c++/40975
6025 * tree-inline.c (copy_tree_r): Use copy_statement_list.
6026 (copy_statement_list): Don't recurse.
6027 * stor-layout.c (copy_self_referential_tree_r): Don't allow
6028 STATEMENT_LIST.
6029
6030 2011-05-05 Joseph Myers <joseph@codesourcery.com>
6031
6032 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
6033 through from -mfpu= handling.
6034 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
6035
6036 2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
6037
6038 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
6039 POST_MODIFY.
6040
6041 2011-05-05 Steve Ellcey <sje@cup.hp.com>
6042
6043 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
6044 for 11.31.
6045 (hppa[12]*-*-hpux11*): Ditto.
6046 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
6047 * config/ia64/hpux-unix2003.h: New.
6048 * config/pa/pa-hpux1131.opt: New.
6049 * config/pa/pa-hpux1131.h: New.
6050 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
6051 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
6052 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
6053
6054 2011-05-05 Jakub Jelinek <jakub@redhat.com>
6055
6056 PR debug/48853
6057 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
6058 instead of mode as 3rd argument to recursive call.
6059 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
6060 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
6061 VOIDmode.
6062 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
6063 don't give up if mode is Pmode and mem_mode is not VOIDmode.
6064 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
6065 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
6066
6067 2011-05-05 Julian Brown <julian@codesourcery.com>
6068
6069 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
6070 parenthesis in D-register case.
6071
6072 2011-05-05 Joseph Myers <joseph@codesourcery.com>
6073
6074 * opt-functions.awk (var_type_struct): Handle Enum options.
6075 * optc-gen.awk: Don't check range of variables of character type.
6076 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
6077 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
6078 rs6000_sdata_name, rs6000_explicit_options): Remove.
6079 (rs6000_option_override_internal): Check for -malign-power here.
6080 Use global_options_set instead of rs6000_explicit_options.
6081 (rs6000_parse_fpu_option): Remove.
6082 (rs6000_handle_option): Access variables via opts and opts_set
6083 pointers. Use error_at and warning_at. Add fall-through
6084 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
6085 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
6086 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
6087 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
6088 here. Don't use rs6000_parse_fpu_option.
6089 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
6090 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
6091 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
6092 (mrecip=): Use Var.
6093 (mspe): Use Var and Save.
6094 (mtraceback=): Use Enum and Var.
6095 (rs6000_traceback_type): New Enum and EnumValue entries.
6096 (mfloat-gprs=): Use Enum, Var and Save.
6097 (rs6000_float_gprs): New Enum and EnumValue entries.
6098 (mlong-double-): use Var and Save.
6099 (msched-costly-dep=, minsert-sched-nops=): Use Var.
6100 (malign-): Use Enum and Var.
6101 (rs6000_alignment_flags): New Enum and EnumValue entries.
6102 (mfpu=): Use Enum.
6103 (fpu_type_t): New Enum and EnumValue entries.
6104 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6105 global_options_set instead of rs6000_explicit_options.
6106 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6107 global_options_set instead of rs6000_explicit_options.
6108 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6109 global_options_set instead of rs6000_explicit_options.
6110 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6111 global_options_set instead of rs6000_explicit_options.
6112 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
6113 global_options_set instead of rs6000_explicit_options.
6114 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
6115 global_options_set instead of rs6000_explicit_options.
6116 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
6117 definition.
6118 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
6119 global_options_set instead of rs6000_explicit_options.
6120 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
6121 (rs6000_cmodel): New Enum and EnumValue entries.
6122 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
6123 global_options_set instead of rs6000_explicit_options.
6124 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
6125 (mtls-size=): Use Enum and Var.
6126 (rs6000_tls_size): New Enum and EnumValue entries.
6127
6128 2011-05-05 Michael Matz <matz@suse.de>
6129
6130 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
6131 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
6132 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
6133 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
6134 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
6135 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
6136 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
6137 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
6138 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
6139 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
6140 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
6141 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
6142 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
6143 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
6144 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
6145 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
6146
6147 2011-05-05 Richard Guenther <rguenther@suse.de>
6148
6149 * expmed.c (expand_variable_shift): Rename to ...
6150 (expand_shift_1): ... this. Take an expanded shift amount.
6151 For rotates recurse directly not building trees for the shift amount.
6152 (expand_variable_shift): Wrap around expand_shift_1.
6153 (expand_shift): Adjust.
6154
6155 2011-05-05 Jakub Jelinek <jakub@redhat.com>
6156
6157 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
6158
6159 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
6160
6161 * tree.h (get_pending_sizes): Remove prototype.
6162 (put_pending_size): Likewise.
6163 (put_pending_sizes): Likewise.
6164 * stor-layout.c (pending_sizes): Delete.
6165 (get_pending_sizes): Likewise.
6166 (put_pending_size): Likewise.
6167 (put_pending_sizes): Likewise.
6168 (variable_size): Do not call put_pending_size and tidy up.
6169 * function.h (struct function): Remove dont_save_pending_sizes_p.
6170 * lto-streamer-in.c (input_function): Do not stream it.
6171 * lto-streamer-out.c (output_function): Likewise.
6172 * tree-inline.c (initialize_cfun): Do not copy it.
6173 * c-decl.c (store_parm_decls): Do not set it.
6174 * omp-low.c (create_task_copyfn): Likewise.
6175 * tree-optimize.c (tree_rest_of_compilation): Likewise.
6176
6177 2011-05-05 Uros Bizjak <ubizjak@gmail.com>
6178
6179 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
6180 conditions.
6181 (*movdf_internal): Ditto.
6182 (*movdf_internal_nointeger): Ditto.
6183 (*movsf_internal): Ditto.
6184
6185 2011-05-05 Joseph Myers <joseph@codesourcery.com>
6186
6187 * c-decl.c (finish_decl): Don't call get_pending_sizes.
6188 (grokparm): Add parameter expr. Pass it to grokdeclarator.
6189 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
6190 (c_variable_size): Remove.
6191 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
6192 call put_pending_sizes.
6193 (get_parm_info): Add parameter expr. Use it to set
6194 arg_info->pending_sizes.
6195 (store_parm_decls): Use arg_info->pending_sizes instead or calling
6196 get_pending_sizes.
6197 * c-parser.c (c_parser_parms_declarator): Update call to
6198 c_parser_parms_list_declarator.
6199 (c_parser_parms_list_declarator): Take parameter expr. Update
6200 call to push_parm_decl. Update recursive call. Don't call
6201 get_pending_sizes. Update calls to get_parm_info.
6202 (c_parser_objc_method_definition): Update calls to
6203 c_parser_objc_method_decl and objc_start_method_definition.
6204 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
6205 (c_parser_objc_method_decl): Add parameter expr. Update call to
6206 grokparm.
6207 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
6208 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
6209 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
6210
6211 2011-05-05 Michael Hope <michael.hope@linaro.org>
6212
6213 PR pch/45979
6214 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
6215 __ARM_EABI__ hosts.
6216
6217 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6218
6219 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
6220 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
6221 (spu_output_mi_thunk): New function.
6222
6223 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6224
6225 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
6226 targetm.asm_out.print_operand.
6227 * config/sol2.c: Include target.h.
6228
6229 2011-05-04 Jan Hubicka <jh@suse.cz>
6230
6231 * ipa-inline.c (reset_edge_caches): New function.
6232 (update_caller_keys): Add check_inlinablity_for; do not
6233 reset edge caches; remove now unnecesary loop.
6234 (update_callee_keys): Add comments; reset node_growth_cache of callee.
6235 (update_all_callee_keys): Likewise.
6236 (inline_small_functions): Sanity check cache; update code
6237 recomputing it.
6238
6239 2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
6240
6241 PR rtl-optimization/47612
6242 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
6243 as the last insn of the sequence to be moved.
6244
6245 2011-05-04 Tobias Burnus <burnus@net-b.de>
6246
6247 PR fortran/48864
6248 * doc/invoke.texi (Ofast): Document that it
6249 enables Fortran's -fno-protect-parens.
6250
6251 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
6252
6253 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
6254
6255 2011-05-04 Eric Botcazou <ebotcazou@adacore.com>
6256
6257 * stor-layout.c (variable_size): Do not issue errors.
6258
6259 2011-05-04 Richard Guenther <rguenther@suse.de>
6260
6261 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
6262 for array-ref indices.
6263 (tree_coverage_counter_addr): Likewise.
6264 (build_fn_info_type): Use size_int for index types.
6265 (build_gcov_info): Likewise.
6266
6267 2011-05-04 Richard Guenther <rguenther@suse.de>
6268
6269 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
6270 to build_int_cst.
6271 * c-typeck.c (really_start_incremental_init): Use bitsize_int
6272 for constructor indices.
6273 (push_init_level): Likewise.
6274
6275 2011-05-04 Richard Guenther <rguenther@suse.de>
6276
6277 * explow.c (promote_mode): Move variable declarations before code.
6278
6279 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
6280
6281 * tree.h (build_function_type_array): Declare.
6282 (build_varargs_function_type_array): Declare.
6283 (build_function_type_vec, build_varargs_function_type_vec): Define.
6284 * tree.c (build_function_type_array_1): New function.
6285 (build_function_type_array): New function.
6286 (build_varargs_function_type_array): New function.
6287
6288 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
6289
6290 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
6291 before setting STMT_VINFO_TYPE.
6292
6293 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6294
6295 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
6296 instead of spu_pass_by_reference.
6297
6298 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6299
6300 * calls.c (emit_library_call_value_1): Invoke
6301 promote_function_mode hook on libcall arguments.
6302 * explow.c (promote_function_mode, promote_mode): Handle TYPE
6303 argument being NULL.
6304 * targhooks.c (default_promote_function_mode): Lisewise.
6305 * config/s390/s390.c (s390_promote_function_mode): Likewise.
6306 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
6307
6308 * doc/tm.texi: Document that TYPE argument might be NULL.
6309
6310 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
6311
6312 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
6313
6314 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
6315
6316 From Bernd Schmidt
6317 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
6318
6319 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6320
6321 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
6322 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
6323 Move ...
6324 * mips-tfile.c: ... here.
6325 Don't include coretypes.h, tm.h, filenames.h.
6326 (saber_stop): Remove definition and all calls.
6327 [__SABER__]: Remove.
6328 (__LINE__): Remove default.
6329 (Size_t, Ptrdiff_t): Remove definitions.
6330 Replace by size_t, ptrdiff_t.
6331 [!MIPS_DEBUGGING_INFO]: Remove.
6332 (SHASH_SIZE, THASH_SIZE): Remove defaults.
6333 (progname): Add const.
6334 (STATIC): Remove.
6335 Replace all uses by static.
6336 (ALIGN_SYMTABLE_OFFSET): Remove default.
6337 * mips-tdump.c: Don't include coretypes.h, tm.h.
6338 Remove !MIPS_IS_STAB guard.
6339 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
6340 $(TM_H), filenames.h dependencies.
6341 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
6342
6343 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
6344
6345 From Jie Zhang
6346 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
6347 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
6348
6349 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
6350
6351 From Bernd Schmidt
6352 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
6353 account and save/restore RETS.
6354 (PROFILE_BEFORE_PROLOGUE): Define.
6355 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
6356 the push insn to use predecrement.
6357
6358 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
6359
6360 From Jie Zhang
6361 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
6362
6363 2011-05-04 Nick Clifton <nickc@redhat.com>
6364
6365 * config/mn10300/mn10300.c: Include cfgloop.h.
6366 (DUMP): New macro.
6367 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
6368 Lcc or a FLcc insn into the instruction stream.
6369 (mn10300_block_contains_call): New function. Returns true if the
6370 given basic block contains a CALL insn.
6371 (mn10300_loop_contains_call_insn): New function. Returns true if
6372 the given loop contains a CALL insn.
6373 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
6374 to use the SETLB and Lcc or FLcc insns.
6375 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
6376 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
6377 * config/mn10300/mn10300.opt (msetlb): New option. Used to
6378 disable the SETLB optimization.
6379 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
6380 __SETLB__ or __NO_SETLB__.
6381 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
6382 (movsf_internal): Handle MDR register.
6383 (cmpsi): Make visible.
6384 (setlb): New pattern.
6385 (Lcc): New pattern.
6386 (FLcc): New pattern.
6387
6388 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
6389
6390 PR target/48860
6391 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
6392 for reg<->xmm moves.
6393 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
6394 (vec_concatv2di_rex64_sse): Ditto.
6395 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
6396 (*vec_extractv2di_1_rex64): Ditto.
6397
6398 Revert:
6399 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
6400
6401 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
6402 reg<->xmm moves.
6403 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
6404
6405 2011-05-04 Richard Guenther <rguenther@suse.de>
6406
6407 * tree.h (int_const_binop): Remove notrunc argument.
6408 * fold-const.c (int_const_binop): Remove notrunc argument. Always
6409 create integer constants that are properly truncated.
6410 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
6411 (const_binop): Remove zero notrunc argument to int_const_binop.
6412 (size_binop_loc): Likewise.
6413 (fold_div_compare): Likewise.
6414 (maybe_canonicalize_comparison_1): Likewise.
6415 (fold_comparison): Likewise.
6416 (fold_binary_loc): Likewise.
6417 (multiple_of_p): Likewise.
6418 * expr.c (store_constructor): Likewise.
6419 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
6420 (maybe_fold_stmt_addition): Likewise.
6421 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
6422 * stor-layout.c (layout_type): Likewise.
6423 * tree-data-ref.c (tree_fold_divides_p): Likewise.
6424 * tree-sra.c (build_ref_for_offset): Likewise.
6425 (build_user_friendly_ref_for_offset): Likewise.
6426 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
6427 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
6428 * tree-ssa-loop-niter.c (inverse): Likewise.
6429 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
6430 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
6431 * tree-switch-conversion.c (check_range): Likewise.
6432 (build_constructors): Likewise.
6433 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
6434 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
6435 (extract_range_from_assert): Likewise.
6436 (vrp_int_const_binop): Likewise.
6437 (extract_range_from_binary_expr): Likewise.
6438 (extract_range_from_unary_expr): Likewise.
6439 (check_array_ref): Likewise.
6440 (find_case_label_range): Likewise.
6441 (simplify_div_or_mod_using_ranges): Likewise.
6442 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
6443 comparing case labels for merging.
6444
6445 2011-05-03 Mark Wielaard <mjw@redhat.com>
6446
6447 * dwarf2out.c (debug_str_hash_forced): Removed.
6448 (gen_label_for_indirect_string): Removed.
6449 (get_debug_string_label): Removed.
6450 (AT_string_form): Generate label directly.
6451 (output_indirect_string): Test indirect_string_node for
6452 DW_FORM_strp instead of checking label and refcount.
6453 (prune_indirect_string): Removed.
6454 (prune_unused_types): Don't check debug_str_hash_forced or
6455 call prune_indirect_string.
6456
6457 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
6458
6459 PR other/48093
6460 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
6461
6462 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
6463
6464 PR debug/47994
6465 PR debug/47919
6466 * combine.c (try_combine): Skip debug insns at m_split tests.
6467
6468 2011-04-26 Mark Wielaard <mjw@redhat.com>
6469
6470 PR42288
6471 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
6472 when info_section_emitted.
6473
6474 2011-05-03 Joseph Myers <joseph@codesourcery.com>
6475
6476 * config/mips/mips-opts.h: New.
6477 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
6478 to mips-opts.h.
6479 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
6480 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
6481 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
6482 via opts pointer.
6483 * config/mips/mips.h (enum mips_code_readable_setting): Move to
6484 mips-opts.h.
6485 (mips_abi, mips_code_readable): Don't declare.
6486 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
6487 (mabi=): Use Enum and Var.
6488 (mips_abi): New Enum and EnumValue entries.
6489 (mcode-readable=): Use Enum and Var.
6490 (mips_code_readable_setting): New Enum and EnumValue entries.
6491 (mr10k-cache-barrier=): Use Enum and Var.
6492 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
6493
6494 2011-05-03 Jan Hubicka <jh@suse.cz>
6495
6496 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
6497 replace hash by pointer map.
6498 (cgraph_node_set_element_def, cgraph_node_set_element,
6499 const_cgraph_node_set_element, varpool_node_set_element_def,
6500 varpool_node_set_element, const_varpool_node_set_element): Remove.
6501 (free_cgraph_node_set, free_varpool_node_set): New function.
6502 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
6503 * tree-emutls.c: Free varpool node set.
6504 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
6505 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
6506 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
6507 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
6508 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
6509 Move here from ipa.c; implement using pointer_map
6510 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
6511 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
6512 debug_cgraph_node_set, varpool_node_set_new,
6513 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
6514 dump_varpool_node_set, debug_varpool_node_set):
6515 Move to ipa-uitls.c.
6516 * passes.c (ipa_write_summaries): Update.
6517
6518 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
6519
6520 From Mike Frysinger:
6521 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
6522 bf542/bf544/bf547/bf548/bf549.
6523
6524 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
6525
6526 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
6527
6528 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
6529
6530 From Bernd Schmidt:
6531 * config/bfin/bfin.md (MOVCC): New mode_macro.
6532 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
6533 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
6534 comments from generated assembly.
6535
6536 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
6537
6538 From Bernd Schmidt
6539 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
6540 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
6541 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
6542 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
6543 * config/bfin/lib1funcs.asm (___muldi3): New function.
6544
6545 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6546
6547 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
6548 build_function_type_list instead of build_function_type.
6549 Rearrange initialization of `args' to do so.
6550
6551 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6552
6553 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
6554 instead of build_function_type.
6555
6556 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6557
6558 * config/rs6000/rs6000.c (spe_init_builtins): Call
6559 build_function_type_list instead of build_function_type.
6560 (paired_init_builtins, altivec_init_builtins): Likewise.
6561 (builtin_function_type): Likewise.
6562
6563 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6564
6565 * config/sh/sh.c (sh_media_init_builtins): Call
6566 build_function_type_list instead of build_function_type.
6567
6568 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6569
6570 * config/sparc/sparc.c (sparc_file_end): Call
6571 build_function_type_list instead of build_function_type.
6572
6573 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6574
6575 * config/alpha/alpha.c (alpha_init_builtins): Call
6576 build_function_type_list instead of build_function_type.
6577
6578 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6579
6580 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
6581 build_function_type_list instead of build_function_type.
6582
6583 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6584
6585 * config/iq2000/i2000.c (iq2000_init_builtins): Call
6586 build_function_type_list instead of build_function_type.
6587 Delete `endlink' variable.
6588
6589 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6590
6591 * config/avr/avr.c (avr_init_builtins): Call
6592 build_function_type_list instead of build_function_type.
6593
6594 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6595
6596 * config/picochip/picochip.c (picochip_init_builtins): Call
6597 build_function_type_list instead of build_function_type.
6598 Delete `endlink' variable.
6599
6600 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6601
6602 * config/bfin/bfin.c (bfin_init_builtins): Call
6603 build_function_type_list instead of build_function_type.
6604
6605 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
6606
6607 From Bernd Schmidt
6608 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
6609 that's not CONST_INT. Seemingly redundant check is due to PR39768.
6610
6611 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
6612
6613 From Jie Zhang:
6614 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
6615 libbffastfp overrides libgcc when -mfast-fp.
6616
6617 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
6618
6619 Originally from Bernd Schmidt
6620 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
6621 * config/bfin/bfin.c (override_options): Test it and error if
6622 TARGET_FDPIC.
6623
6624 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
6625
6626 Originally From Bernd Schmidt
6627 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
6628 FD-PIC.
6629
6630 2011-05-03 Jeff Law <law@redhat.com>
6631
6632 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
6633 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
6634 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
6635 than accessing AUX field directly. Free the AUX field before
6636 clearing it.
6637 (thread_block, thread_through_loop_header): Likewise.
6638 (thread_single_edge, mark_threaded_blocks): Likewise.
6639 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
6640 (register_jump_thread): Do not attempt to thread to a NULL edge.
6641
6642 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
6643
6644 * function.c (init_function_start): Call decide_function_section.
6645 * varasm.c (decide_function_section): New function.
6646 (assemble_start_function): When not using
6647 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
6648 or first_function_block_is_cold.
6649 * rtl.h (decide_function_section): Declare.
6650
6651 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
6652 Jakub Jelinek <jakub@redhat.com>
6653
6654 PR target/48774
6655 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
6656 only succeed if req_mode is the same as set_mode.
6657
6658 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
6659
6660 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
6661 * genemit.c (gen_exp): Handle RETURN.
6662 * emit-rtl.c (verify_rtx_sharing): Likewise.
6663 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
6664 * rtl.c (copy_rtx): RETURN is shared.
6665 * rtl.h (enum global_rtl_index): Add GR_RETURN.
6666 (ret_rtx): New.
6667 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
6668 * config/s390/s390.c (s390_emit_epilogue): Likewise.
6669 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
6670 * config/cris/cris.c (cris_expand_return): Likewise.
6671 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
6672 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
6673 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
6674 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
6675 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
6676 Likewise.
6677 * config/v850/v850.c (expand_epilogue): Likewise.
6678 * config/bfin/bfin.c (bfin_expand_call): Likewise.
6679 * config/arm/arm.md (epilogue): Likewise.
6680 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
6681 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
6682 variable to ret_reg.
6683
6684 2011-05-03 Richard Guenther <rguenther@suse.de>
6685
6686 PR lto/48846
6687 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
6688 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
6689 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
6690
6691 2011-05-03 Richard Guenther <rguenther@suse.de>
6692
6693 * c-decl.c (grokdeclarator): Instead of looking at
6694 TREE_OVERFLOW check if the constant fits in the index type.
6695
6696 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
6697
6698 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
6699 (vec_store_lanes<mode><mode>): Likewise.
6700
6701 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
6702
6703 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
6704 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
6705 convert_optab_index values.
6706 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
6707 * genopinit.c (optabs): Initialize the new optabs.
6708 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
6709 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
6710 (expand_STORE_LANES): New functions.
6711 * tree.h (build_array_type_nelts): Declare.
6712 * tree.c (build_array_type_nelts): New function.
6713 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
6714 (vect_model_load_cost): Likewise.
6715 (vect_store_lanes_supported, vect_load_lanes_supported)
6716 (vect_record_strided_load_vectors): Declare.
6717 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
6718 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
6719 (vect_transform_strided_load): Split out statement recording into...
6720 (vect_record_strided_load_vectors): ...this new function.
6721 * tree-vect-stmts.c (create_vector_array, read_vector_array)
6722 (write_vector_array, create_array_ref): New functions.
6723 (vect_model_store_cost): Add store_lanes_p argument.
6724 (vect_model_load_cost): Add load_lanes_p argument.
6725 (vectorizable_store): Try to use store-lanes functions for
6726 interleaved stores.
6727 (vectorizable_load): Likewise load-lanes and loads.
6728 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
6729 to vect_model_store_cost.
6730 (vect_build_slp_tree): Likewise vect_model_load_cost.
6731
6732 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
6733
6734 * hooks.h (hook_bool_mode_uhwi_false): Declare.
6735 * hooks.c (hook_bool_mode_uhwi_false): New function.
6736 * target.def (array_mode_supported_p): New hook.
6737 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
6738 * doc/tm.texi: Regenerate.
6739 * stor-layout.c (mode_for_array): New function.
6740 (layout_type): Use it.
6741 * config/arm/arm.c (arm_array_mode_supported_p): New function.
6742 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
6743
6744 2011-05-03 Eric Botcazou <ebotcazou@adacore.com>
6745
6746 PR target/48723
6747 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
6748 for -fstack-check if the size to allocate is negative.
6749
6750 2011-05-02 Lawrence Crowl <crowl@google.com>
6751
6752 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
6753 (timevar_cond_start): New for starting a timer only when it is not
6754 already running.
6755 (timevar_cond_stop): New for stopping a timer when it was not already
6756 running.
6757
6758 * timevar.c (timevar_stop): Enable start/stop timers to start again.
6759 (timevar_cond_start): New as above.
6760 (timevar_cond_stop): New as above.
6761
6762 * timevar.def: Add start/stop timers for compiler phases,
6763 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
6764 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
6765 and TV_PHASE_FINALIZE.
6766 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
6767 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
6768 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
6769 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
6770 Make unused TV_OVERLOAD into a start/stop timer.
6771
6772 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
6773 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
6774 to indicate that they are start/stop timers.
6775
6776 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
6777 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
6778 Move initialization to do_compile.
6779 (do_compile): Add initialization from above.
6780 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
6781
6782 * c-decl.c (c_write_global_declarations): Add start/stop of
6783 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
6784
6785 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
6786 or TV_PARSE_INLINE, as appropriate.
6787 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
6788 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
6789
6790 2011-05-02 Jason Merrill <jason@redhat.com>
6791
6792 PR c++/40975
6793 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
6794
6795 2011-05-02 Simon Martin <simartin@users.sourceforge.net>
6796
6797 PR c/35445
6798 * c-decl.c (finish_decl): Only create a composite if the types are
6799 compatible.
6800
6801 2011-05-02 Joseph Myers <joseph@codesourcery.com>
6802
6803 * config/fr30/fr30-protos.h (Mmode): Don't define.
6804 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
6805 definition where used.
6806 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
6807 define. Expand definitions where used.
6808 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
6809 Expand definitions where used.
6810 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
6811 rx_function_arg, rx_function_arg_advance,
6812 rx_function_arg_boundary): Expand definitions of those macros.
6813 * config/v850/v850-protos.h (Mmode): Don't define. Expand
6814 definition where used.
6815
6816 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
6817
6818 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
6819 reg<->xmm moves.
6820 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
6821 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
6822 with *movv2sf_internal_rex64_avx.
6823 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
6824 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
6825 Use %v prefix in insn mnemonic to handle TARGET_AVX.
6826 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
6827 "vex" in "prefix" attribute calculation.
6828 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
6829
6830 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
6831
6832 PR target/47951
6833 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
6834 inputs match the output.
6835
6836 2011-05-02 Andreas Schwab <schwab@linux-m68k.org>
6837
6838 PR target/47955
6839 * config/m68k/m68k.c (m68k_expand_prologue): Set
6840 current_function_static_stack_size.
6841
6842 2011-05-02 Jan Hubicka <jh@suse.cz>
6843
6844 * lto-streamer.c (lto_streamer_cache_insert_1,
6845 lto_streamer_cache_lookup, lto_streamer_cache_create,
6846 lto_streamer_cache_delete): Use pointer map instead of hashtable.
6847 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
6848
6849 2011-05-02 Joseph Myers <joseph@codesourcery.com>
6850
6851 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
6852 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
6853 config/m68k/t-opts: New files.
6854 * config/m68k/m68k-tables.opt: New file (generated).
6855 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
6856 extra_options and m68k/t-opts to tmake_file.
6857 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
6858 (all_isas): Initialize using m68k-isas.def.
6859 (all_microarchs): Initialize using m68k-microarchs.def.
6860 (m68k_find_selection): Remove.
6861 (m68k_handle_option): Don't assert that global structures are in
6862 use. Use error_at. Access variables via opts pointer. Don't
6863 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
6864 directly for -m68020-40 and -m68020-60.
6865 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
6866 m68k_tune_entry here.
6867 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
6868 to m68k-opts.h.
6869 (m68k_library_id_string): Remove declaration.
6870 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
6871 (m68k_library_id_string): New Variable.
6872 (march=, mcpu=, mtune=): Use Enum and Var.
6873
6874 2011-05-02 Richard Guenther <rguenther@suse.de>
6875
6876 * varasm.c (output_constructor_regular_field): Compute zero-based
6877 index with double-ints. Make sure to ICE instead of producing
6878 wrong code.
6879 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
6880 in asserts. Properly use a signed type.
6881
6882 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
6883
6884 * config/i386/sse.md (V): New mode iterator.
6885 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
6886 TARGET_SSE2.
6887 (V_256): Rename from AVX256MODE.
6888 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
6889 condition to all users.
6890 (VF1): Ditto.
6891 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
6892 condition to all users.
6893 (VF_128): Make V4SF mode unconditional.
6894 (VF_256): Rename from AVX256MODEF2P.
6895 (VI4F_128): Rename from SSEMODE4S.
6896 (VI8F_128): Rename from SSEMODE2D.
6897 (VI4F_256): Rename from AVX256MODE8P.
6898 (VI8F_256): Rename from AVX256MODE4P.
6899 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
6900 (ssescalarmodesuffix): Remove SF and DF modes.
6901 (SSEMODE124): Remove.
6902 (SSEMODE1248): Ditto.
6903 (SSEMODEF2P): Ditto.
6904 (AVXMODEF2P): Ditto.
6905 (AVXMODEFDP): Ditto.
6906 (AVXMODEFSP): Ditto.
6907 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
6908 unconditional.
6909 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
6910 unconditional.
6911 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
6912 xop_pcmov_<mode>256. Use V mode iterator.
6913
6914 Adjust RTX patterns globally for renamed mode attributes.
6915
6916 2011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6917
6918 * haifa-sched.c (sched_emit_insn): Emit insn before first
6919 non-scheduled insn. Inform back-end about new insn. Add
6920 new insn to scheduled_insns list.
6921
6922 2011-05-02 Richard Guenther <rguenther@suse.de>
6923
6924 PR tree-optimization/48822
6925 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
6926 (process_scc): Indicate which iteration we start.
6927
6928 2011-05-02 Jan Hubicka <jh@suse.cz>
6929
6930 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
6931 (lto_section_overrun): New.
6932 * lto-section-out.c (append_block): Rename to ...
6933 (lto_append_block): ... this one; export.
6934 (lto_output_1_stream): Move lto lto-streamer.h
6935 (lto_output_data_stream): Update.
6936 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
6937 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
6938 functions.
6939
6940 2011-05-02 Richard Guenther <rguenther@suse.de>
6941
6942 * tree.c (tree_code_counts): New global array.
6943 (record_node_allocation_statistics): Count individual tree codes.
6944 (dump_tree_statistics): Dump individual code stats.
6945
6946 2011-05-01 Jan Hubicka <jh@suse.cz>
6947
6948 * ipa-inline.c (caller_growth_limits): Fix thinko when
6949 looking for largest stack frame.
6950 * ipa-inline.h (dump_inline_summary): Declare.
6951 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
6952 on stack usage.
6953 (dump_inline_summary): Export.
6954 (debug_inline_summary): Declare as DEBUG_FUNCTION.
6955
6956 2011-05-01 Anatoly Sokolov <aesok@post.ru>
6957
6958 * reginfo.c (memory_move_cost): Change rclass argument type form
6959 'enum reg_class' to reg_class_t.
6960 * reload.h (memory_move_cost): Update prototype.
6961 * postreload.c reload_cse_simplify_set): Change type dclass var to
6962 reg_class_t.
6963 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
6964 Update prototype.
6965 (ira_allocate_and_set_costs): Change aclass argument type form
6966 'enum reg_class' to reg_class_t.
6967 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6968 Change aclass argument type to reg_class_t.
6969 (update_conflict_hard_reg_costs): Change type aclass and pref vars
6970 to reg_class_t.
6971 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
6972 memory_move_cost call.
6973
6974 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
6975 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
6976 Change type tmp var to reg_class_t.
6977
6978 2011-04-30 Jan Hubicka <jh@suse.cz>
6979
6980 * ipa-inline.c (can_inline_edge_p): Disregard limits when
6981 inlining into function with flatten attribute.
6982 (want_inline_small_function_p): Be more realistic about inlining
6983 cold calls where callee size grows.
6984
6985 2011-04-30 Jan Hubicka <jh@suse.cz>
6986
6987 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
6988 flags.
6989
6990 2011-04-30 Anatoly Sokolov <aesok@post.ru>
6991
6992 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
6993 PRINT_OPERAND_PUNCT_VALID_P): Remove.
6994 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
6995 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
6996 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
6997 (print_operand): Rename to...
6998 (sparc_print_operand): ...this. Make static. Adjust
6999 sparc_print_operand function call.
7000 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
7001 functions.
7002
7003 2011-04-30 Jan Hubicka <jh@suse.cz>
7004
7005 PR middle-end/48752
7006 * ipa-inline.c (early_inliner): Disable when doing late
7007 addition of function.
7008
7009 2011-04-30 Jakub Jelinek <jakub@redhat.com>
7010
7011 * dwarf2out.c (get_address_mode): New inline.
7012 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
7013 if not dwarf_strict emit
7014 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
7015 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
7016 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
7017 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
7018 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
7019 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
7020 mem_loc_descriptor callers.
7021 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
7022 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
7023 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
7024 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
7025 (base_types): New variable.
7026 (get_base_type_offset, calc_base_type_die_sizes,
7027 base_type_for_mode, mark_base_types, base_type_cmp,
7028 move_marked_base_types): New functions.
7029 (calc_die_sizes): Assert that die_offset is 0 or equal to
7030 next_die_offset.
7031 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
7032 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
7033 callers. If not dwarf_strict, call mem_loc_descriptor even for
7034 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
7035 (gen_subprogram_die): Don't give up on call site parameters
7036 with non-integral or large integral modes. Adjust
7037 mem_loc_descriptor callers.
7038 (prune_unused_types): Call prune_unused_types_mark on base_types
7039 vector entries.
7040 (resolve_addr): Call mark_base_types.
7041 (dwarf2out_finish): Call move_marked_base_types.
7042
7043 PR tree-optimization/48809
7044 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
7045 type.
7046 (gen_inbound_check): Don't compute index_expr - range_min in utype
7047 again, instead reuse SSA_NAME initialized in build_arrays.
7048 Remove two useless gsi_for_stmt calls.
7049
7050 2011-04-29 Jeff Law <law@redhat.com>
7051
7052 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
7053
7054 2011-04-29 Martin Jambor <mjambor@suse.cz>
7055
7056 * cgraph.h (cgraph_postorder): Remove declaration.
7057 * ipa-utils.h (ipa_free_postorder_info): Declare.
7058 (ipa_reverse_postorder): Likewise.
7059 * cgraphunit.c: Include ipa-utils.h.
7060 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
7061 * ipa-inline.c: Include ipa-utils.h.
7062 (ipa_inline): Update call to ipa_reverse_postorder.
7063 * ipa-pure-const.c (propagate_pure_const): Update call to
7064 ipa_reduced_postorder and ipa_print_order. Call
7065 ipa_free_postorder_info to clean up.
7066 (propagate_nothrow): Likewise.
7067 * ipa-reference.c (propagate): Removed a useless call to
7068 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
7069 and ipa_print_order. Call ipa_free_postorder_info to clean up.
7070 * ipa.c: Include ipa-utils.h.
7071 (ipa_profile): Update call to ipa_reverse_postorder.
7072 (cgraph_postorder): Moved to...
7073 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
7074 (ipa_utils_print_order): Renamed to ipa_print_order.
7075 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
7076 comments.
7077 (ipa_free_postorder_info): New function.
7078 * passes.c: Include ipa-utils.h.
7079 (do_per_function_toporder): Update call to ipa_reverse_postorder.
7080 (ipa_write_summaries): Likewise.
7081 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
7082 (cgraphunit.o): Likewise.
7083 (ipa.o): Likewise.
7084 (ipa-inline.o): Likewise.
7085
7086 2011-04-29 Jan Hubicka <jh@suse.cz>
7087
7088 * gcc.dg/tree-ssa/inline-10.c: New testcase.
7089 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
7090 * ipa-inline.h (clause_t): Turn into unsigned int.
7091 * ipa-inline-analysis.c (add_clause): Do more simplification.
7092 (and_predicates): Shortcut more cases.
7093 (predicates_equal_p): Move forward; check that clauses are properly
7094 ordered.
7095 (or_predicates): Shortcut more cases.
7096 (edge_execution_predicate): Rewrite as...
7097 (set_cond_stmt_execution_predicate): ... this function; handle
7098 __builtin_constant_p.
7099 (set_switch_stmt_execution_predicate): New .
7100 (compute_bb_predicates): New.
7101 (will_be_nonconstant_predicate): Update TODO.
7102 (estimate_function_body_sizes): Use compute_bb_predicates
7103 and free them later, always try to estimate if stmt is constant.
7104 (estimate_time_after_inlining, estimate_size_after_inlining):
7105 Gracefully handle optimized out edges.
7106 (read_predicate): Fix off by one error.
7107
7108 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
7109
7110 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
7111
7112 2011-04-27 Xinliang David Li <davidxl@google.com>
7113
7114 * tree-profile.c (init_ic_make_global_vars): Set
7115 tls attribute on ic vars.
7116 * coverage.c (coverage_end_function): Initialize
7117 function_list with zero.
7118
7119 2011-04-29 Richard Guenther <rguenther@suse.de>
7120
7121 * builtins.c (fold_builtin_classify_type): Use integer_type_node
7122 for the type of the result.
7123 (fold_builtin_isascii): Likewise.
7124 (fold_builtin_toascii): Use integer_type_node where appropriate.
7125 (fold_builtin_logb): Likewise.
7126 (fold_builtin_frexp): Likewise.
7127 (fold_builtin_strstr): Likewise.
7128 (fold_builtin_strpbrk): Likewise.
7129 (fold_builtin_fputs): Likewise.
7130 (fold_builtin_sprintf): Likewise.
7131 (fold_builtin_snprintf): Likewise.
7132 (fold_builtin_printf): Likewise.
7133 (do_mpfr_remquo): Use a proper type for the assigned constant.
7134 (do_mpfr_lgamma_r): Likewise.
7135 * dwarf2out.c (resolve_one_addr): Use size_int.
7136 * except.c (init_eh): Likewise.
7137 (assign_filter_values): Use integer_type_node for filter values.
7138 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
7139 indices.
7140 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
7141 for EH region numbers.
7142 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
7143 for the shift amount.
7144
7145 2011-04-29 Richard Guenther <rguenther@suse.de>
7146
7147 * expr.h (expand_shift): Rename to ...
7148 (expand_variable_shift): ... this.
7149 (expand_shift): Take a constant shift amount.
7150 * expmed.c (expand_shift): Rename to ...
7151 (expand_variable_shift): ... this.
7152 (expand_shift): New wrapper around expand_variable_shift.
7153 * expr.c (convert_move, emit_group_load_1, emit_group_store,
7154 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
7155 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
7156 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
7157 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
7158 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
7159 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
7160 emit_store_flag_1, emit_store_flag): Likewise.
7161 * builtins.c (expand_builtin_signbit): Likewise.
7162 * calls.c (load_register_parameters): Likewise.
7163 * function.c (assign_parm_setup_block): Likewise.
7164 * lower-subreg.c (resolve_shift_zext): Likewise.
7165 * optabs.c (widen_bswap, expand_abs_nojump,
7166 expand_one_cmpl_abs_nojump, expand_float): Likewise.
7167 * spu/spu.c (spu_expand_extv): Likewise.
7168 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
7169
7170 2011-04-29 Richard Guenther <rguenther@suse.de>
7171
7172 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
7173 for the remapped region number.
7174 * predict.c (build_predict_expr): Use integer_type_node for the
7175 predict kind.
7176 * fold-const.c (fold_binary_loc): Use integer_type_node for
7177 the shift amount. Use a proper type for the PLUS_EXPR operand.
7178
7179 2011-04-29 Michael Matz <matz@suse.de>
7180
7181 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
7182 other trees that just builtins.
7183 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
7184
7185 2011-04-29 Richard Guenther <rguenther@suse.de>
7186
7187 * tree-nested.c (get_trampoline_type): Use size_int.
7188 (get_nl_goto_field): Likewise.
7189 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
7190 for all indexes.
7191 (lower_eh_constructs_2): Likewise.
7192 (lower_resx): Likewise.
7193 (lower_eh_dispatch): Likewise.
7194 * tree-mudflap.c (mf_build_string): Use size_int.
7195 (mudflap_register_call): Use integer_type_node for the flag.
7196 (mudflap_enqueue_constant): Use size_int.
7197 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
7198 instead of rebuilding it.
7199
7200 2011-04-29 Richard Guenther <rguenther@suse.de>
7201
7202 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
7203 Handle OBJ_TYPE_REF.
7204 (find_func_aliases_for_call): Use it more consistently.
7205
7206 2011-04-29 Alexandre Oliva <aoliva@redhat.com>
7207
7208 * haifa-sched.c (last_nondebug_scheduled_insn): New.
7209 (rank_for_schedule): Use it.
7210 (schedule_block): Set it.
7211
7212 2011-04-28 David Li <davidxl@google.com>
7213
7214 * tree.c (crc32_string): Use crc32_byte.
7215 (crc32_byte): New function.
7216 * tree.h (crc32_byte): New function.
7217 * gcov.c (read_graph_file): Handle new cfg_cksum.
7218 (read_count_file): Ditto.
7219 * profile.c (instrument_values): Ditto.
7220 (get_exec_counts): Ditto.
7221 (read_profile_edge_counts): Ditto.
7222 (compute_branch_probabilities): Ditto.
7223 (compute_value_histograms): Ditto.
7224 (branch_prob): Ditto.
7225 (end_branch_prob): Ditto.
7226 * coverage.c (read_counts_file): Ditto.
7227 (get_coverage_counts): Ditto.
7228 (tree_coverage_counter_addr): Ditto.
7229 (coverage_checksum_string): Ditto.
7230 (coverage_begin_output): Ditto.
7231 (coverage_end_function): Ditto.
7232 (build_fn_info_type): Ditto.
7233 (build_fn_info_value): Ditto.
7234 * libgcov.c (gcov_exit): Ditto.
7235 * gcov-dump.c (tag_function): Ditto.
7236 (compute_checksum): Remove.
7237
7238 2011-04-29 Alan Modra <amodra@gmail.com>
7239
7240 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
7241 unspec plus offset. Tidy macho code.
7242
7243 2011-04-29 Martin Jambor <mjambor@suse.cz>
7244
7245 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
7246 node instead of a decl. Update all callers.
7247 * cgraph.h: Update declaration.
7248
7249 2011-04-28 Ira Rosen <ira.rosen@linaro.org>
7250
7251 PR tree-optimization/48765
7252 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
7253 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
7254 to indicate if loop aware SLP is being used. Scan the statements
7255 and update the vectorization factor according to the type of
7256 vectorization before statement analysis.
7257 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
7258 pass it to vect_analyze_loop_operations.
7259 (vectorizable_reduction): Set number of copies to 1 in case of pure
7260 SLP statement.
7261 * tree-vect-stmts.c (vectorizable_conversion,
7262 vectorizable_assignment, vectorizable_shift,
7263 vectorizable_operation, vectorizable_type_demotion,
7264 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
7265 Likewise.
7266 (vectorizable_condition): Move the check that it is not SLP
7267 vectorization before the number of copies check.
7268 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
7269 to vectorize the loop using SLP.
7270
7271 2011-04-28 Jakub Jelinek <jakub@redhat.com>
7272
7273 PR middle-end/48597
7274 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
7275 inline asm.
7276
7277 2011-04-28 Joseph Myers <joseph@codesourcery.com>
7278
7279 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
7280 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
7281 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
7282 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
7283 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
7284 linux*.h headers.
7285 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
7286 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
7287 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
7288 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
7289 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
7290 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
7291 REG_NAME.
7292 * config/i386/linux.h (REG_NAME): Don't define.
7293 * config/i386/linux64.h (REG_NAME): Don't define.
7294 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
7295 Undefine before defining.
7296
7297 2011-04-28 Jan Hubicka <jh@suse.cz>
7298
7299 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
7300 nonconstant_names array.
7301 (estimate_function_body_sizes): Build nonconstant_names array; handle
7302 BUILT_IN_CONSTANT_P.
7303
7304 2011-04-28 Richard Guenther <rguenther@suse.de>
7305
7306 PR bootstrap/48804
7307 Revert
7308 2011-04-28 Richard Guenther <rguenther@suse.de>
7309
7310 * tree-ssa-structalias.c (solve_constraints): Build succ graph
7311 as late as possible.
7312
7313 2011-04-28 Richard Guenther <rguenther@suse.de>
7314
7315 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
7316 (debug_constraint): Do it here.
7317 (dump_constraints): And here.
7318 (rewrite_constraints): And here.
7319 (dump_constraint_edge): Remove.
7320 (dump_constraint_graph): Rewrite to produce DOT output.
7321 (solve_constraints): Build succ graph as late as possible.
7322 Dump constraint graphs before and after solving.
7323
7324 2011-04-28 Richard Guenther <rguenther@suse.de>
7325
7326 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
7327 New function split out from ...
7328 (find_func_aliases): ... here. Call it.
7329 (find_func_aliases_for_call): Likewise.
7330
7331 2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
7332
7333 * internal-fn.h (internal_fn_name_array): Declare.
7334 (internal_fn_flags_array): Likewise.
7335
7336 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
7337
7338 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
7339 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
7340 Move from sse.md.
7341 (ssemodefsuffix): Remove.
7342 (ssevecmodesuffix): New mode attribute.
7343 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
7344 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
7345 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
7346 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
7347 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
7348 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
7349 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
7350 ssemodesuffix mode attribute.
7351 (float splitters): Use ssevecmodesuffix mode attribute.
7352 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
7353 (sseinsmode): Rename from avxvecmode.
7354 (avxsizesuffix): Rename from avxmodesuffix.
7355 (sseintvecmode): Rename from avxpermvecmode.
7356 (ssedoublevecmode): Rename from ssedoublesizemode.
7357 (ssehalfvecmode): Rename from avxhalfvecmode.
7358 (ssescalarmode): Rename from avxscalarmode.
7359 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
7360 templates for ssemodesuffix mode attribute.
7361 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
7362 mode attribute.
7363
7364 Adjust RTX patterns globally for renamed mode attributes.
7365
7366 2011-04-27 Jan Hubcika <jh@suse.cz>
7367
7368 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
7369 * ipa-inline-analysis.c: Include alloc-pool.h.
7370 (edge_predicate_pool): New.
7371 (trye_predicate_p): New function
7372 (false_predicate_p): New function.
7373 (add_clause): Sanity check that false clauses are "optimized";
7374 never add clauses to predicate that is already known to be false.
7375 (and_predicate): Use flase_predicate_p.
7376 (evaulate_predicate): Rename to ...
7377 (evaluate_predicate): ... this one; update all callers; assert
7378 that false is not listed among possible truths.
7379 (dump_predicate): Use true_predicate_p.
7380 (account_size_time): Use false_predicate_p.
7381 (evaulate_conditions_for_edge): Rename to ...
7382 (evaluate_conditions_for_edge) ... this one.
7383 (edge_set_predicate): New function.
7384 (inline_edge_duplication_hook): Duplicate edge predicates.
7385 (inline_edge_removal_hook): Free edge predicates.
7386 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
7387 (dump_inline_summary): Update.
7388 (estimate_function_body_sizes): Set edge predicates.
7389 (estimate_calls_size_and_time): Handle predicates.
7390 (estimate_callee_size_and_time): Update.
7391 (remap_predicate): Add toplev_predicate; update comment.
7392 (remap_edge_predicates): New function.
7393 (inline_merge_summary): Compute toplev predicate; update.
7394 (read_predicate): New function.
7395 (read_inline_edge_summary): Use it.
7396 (inline_read_section): Likewise.
7397 (write_predicate): New function.
7398 (write_inline_edge_summary): Use it.
7399 (inline_write_summary): Likewise.
7400 (inline_free_summary): Free alloc pool and edge summary vec.
7401
7402 2011-04-27 Richard Guenther <rguenther@suse.de>
7403
7404 * tree-ssa-structalias.c (changed_count): Remove.
7405 (changed): Use a bitmap.
7406 (unify_nodes): Adjust.
7407 (do_sd_constraint): Likewise.
7408 (do_ds_constraint): Likewise.
7409 (do_complex_constraint): Likewise.
7410 (solve_graph): Likewise.
7411
7412 2011-04-27 Jan Hubicka <jh@suse.cz>
7413
7414 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
7415
7416 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
7417
7418 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
7419 (avx_vperm2f128_*_operand): Ditto.
7420 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
7421 Use avx_vpermilp_parallel in insn condition.
7422 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
7423 Use avx_vperm2f128_parallel in insn condition.
7424
7425 2011-04-27 Richard Guenther <rguenther@suse.de>
7426
7427 * Makefile.in (tree-ssa-structalias.o): Remove
7428 gt-tree-ssa-structalias.h dependency.
7429 (GTFILES): Remove tree-ssa-structalias.c.
7430 * tree.c (allocate_decl_uid): New function.
7431 (make_node_stat): Use it.
7432 (copy_node_stat): Likewise.
7433 * tree.h (allocate_decl_uid): Declare.
7434 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
7435 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
7436 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
7437 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7438 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
7439 (struct heapvar_map): Likewise.
7440 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
7441 heapvar_insert): Likewise.
7442 (make_heapvar_for): Rename to ...
7443 (make_heapvar): ... this. Simplify.
7444 (fake_var_decl_obstack): New global var.
7445 (build_fake_var_decl): New function.
7446 (make_constraint_from_heapvar): Adjust.
7447 (handle_lhs_call): Likewise.
7448 (create_function_info_for): Likewise.
7449 (intra_create_variable_infos): Likewise.
7450 (init_alias_vars): Allocate fake_var_decl_obstack.
7451 (init_alias_heapvars, delete_alias_heapvars): Remove.
7452 (compute_points_to_sets): Do not call init_alias_heapvars.
7453 (ipa_pta_execute): Likewise.
7454 (delete_points_to_sets): Free fake_var_decl_obstack.
7455
7456 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7457
7458 * config/spu/divmovti4.c (union qword_UTItype): New data type.
7459 (si_from_UTItype, si_to_UTItype): New functions.
7460 (__udivmodti4): Use them to implement type-punning.
7461 * config/spu/multi3.c (union qword_TItype): New data type.
7462 (si_from_TItype, si_to_TItype): New functions.
7463 (__multi3): Use them to implement type-punning.
7464
7465 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7466
7467 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
7468
7469 2011-04-27 Jan Hubicka <jh@suse.cz>
7470
7471 * ipa-prop.c (function_insertion_hook_holder): New holder.
7472 (ipa_add_new_function): New function.
7473 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
7474 Register/deregister holder.
7475
7476 2011-04-27 Richard Guenther <rguenther@suse.de>
7477
7478 PR tree-optimization/48772
7479 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
7480
7481 2011-04-27 Richard Guenther <rguenther@suse.de>
7482
7483 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
7484 TARGET_MEM_REF handling.
7485
7486 2011-04-27 Nick Clifton <nickc@redhat.com>
7487
7488 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
7489 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
7490 (REG_CLASS_NAMES): Likewise.
7491 (REG_CLASS_CONTENTS): Likewise.
7492 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
7493 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
7494 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
7495 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
7496 (EVEN_REGS): New macro. Alias for QUAD_REGS.
7497 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
7498 duplicate register classes.
7499 (frv_class_likely_spilled_p): Likewise.
7500 (frv_register_move_cost): Likewise.
7501
7502 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
7503 end of the regno_reg_class array.
7504
7505 2011-04-27 Jakub Jelinek <jakub@redhat.com>
7506
7507 PR c/48742
7508 * c-typeck.c (build_binary_op): Don't wrap arguments if
7509 int_operands is true.
7510
7511 2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
7512
7513 PR target/48767
7514 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
7515 targetm.calls.must_pass_in_stack for void type.
7516
7517 2011-04-26 Jan Hubicka <jh@suse.cz>
7518
7519 * cgraphbuild.c (build_cgraph_edges): Update call
7520 of cgraph_create_edge and cgraph_create_indirect_edge.
7521 * cgraph.c (cgraph_create_edge_including_clones,
7522 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
7523 cgraph_update_edges_for_call_stmt_node): Do not take nest
7524 argument; do not initialize call_stmt_size/time.
7525 (dump_cgraph_node): Do not dump nest.
7526 (cgraph_clone_edge): Do not take loop_nest argument;
7527 do not propagate it; do not clone call_stmt_size/time.
7528 (cgraph_clone_node): Likewise.
7529 (cgraph_create_virtual_clone): Update.
7530 * cgraph.h (struct cgraph_edge): Remove
7531 call_stmt_size/call_stmt_time/loop_nest.
7532 (cgraph_create_edge, cgraph_create_indirect_edge,
7533 cgraph_create_edge_including_clones, cgraph_clone_node): Update
7534 prototype.
7535 * tree-emutls.c (gen_emutls_addr): Update.
7536 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
7537 loop_nest; handle indirect calls, too.
7538 (clone_inlined_nodes): Do not care about updating inline summaries.
7539 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
7540 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
7541 stream call_stmt_size/call_stmt_time/loop_nest.
7542 * ipa-inline.c (edge_badness): Update.
7543 (ipa_inline): dump summaries after inlining.
7544 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
7545 New.
7546 (inline_edge_summary): New function.
7547 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
7548 (inline_edge_removal_hook): Handle edge summaries.
7549 (inline_edge_duplication_hook): New hook.
7550 (inline_summary_alloc): Alloc hooks.
7551 (initialize_growth_caches): Do not register removal hooks.
7552 (free_growth_caches); Do not free removal hook.
7553 (dump_inline_edge_summary): New function.
7554 (dump_inline_summary): Use it.
7555 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
7556 (inline_update_callee_summaries): New function.
7557 (inline_merge_summary): Use it.
7558 (do_estimate_edge_time, do_estimate_edge_growth): Update.
7559 (read_inline_edge_summary): New function.
7560 (inline_read_section): Use it.
7561 (write_inline_edge_summary): New function.
7562 (inline_write_summary): Use it.
7563 (inline_free_summary): Free edge new holders.
7564 * tree-inline.c (copy_bb): Update.
7565
7566 2011-04-26 Jason Merrill <jason@redhat.com>
7567
7568 * tree-eh.c (lower_try_finally_switch): Create the label along with
7569 the CASE_LABEL_EXPR.
7570
7571 2011-04-26 David S. Miller <davem@davemloft.net>
7572 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7573
7574 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
7575 * configure: Regenerate.
7576
7577 2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
7578
7579 PR target/48258
7580 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
7581 reduction.
7582 (VEC_reduc): New code iterator and splitters for vector reduction.
7583 (VEC_reduc_name): Ditto.
7584 (VEC_reduc_rtx): Ditto.
7585 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
7586 (reduc_<VEC_reduc_name>_v4sf): Ditto.
7587
7588 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
7589 support for extracting SF on VSX.
7590
7591 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
7592 generating xscvspdp.
7593 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
7594 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
7595 double add, minimum, maximum vector reduction.
7596 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
7597 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
7598 optimize double vector reduction.
7599 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
7600
7601 2011-04-26 Joseph Myers <joseph@codesourcery.com>
7602
7603 * config/fr30/fr30.h (inhibit_libc): Don't define.
7604 * config/m32r/m32r-protos.h: Correct comment.
7605 * config/v850/v850.h (GHS_default_section_names,
7606 GHS_current_section_names): Use tree, not union tree_node *.
7607
7608 2011-04-26 Xinliang David Li <davidxl@google.com>
7609
7610 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
7611 * c-family/c-opts.c (c_common_handle_option): Set
7612 warn_maybe_uninitialized.
7613 * opts.c (common_handle_option): Ditto.
7614 * common.opt: New option.
7615 * tree-ssa.c (warn_uninit): Add one more parameter.
7616 (warn_uninitialized_var): Pass warning code.
7617 * tree-flow.h: Interface change.
7618
7619 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7620
7621 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
7622 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
7623 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
7624
7625 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7626
7627 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
7628 * config/mips/mips.opt (mmips-tfile): Remove.
7629
7630 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
7631 mips-tdump reference to ...
7632 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
7633 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
7634 reference by Tru64 UNIX.
7635
7636 2011-04-26 Jakub Jelinek <jakub@redhat.com>
7637
7638 PR debug/48768
7639 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
7640 is error_mark_node, set value to NULL.
7641
7642 PR tree-optimization/48734
7643 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
7644 if return value from maybe_fold_*_comparsions isn't something
7645 the code is prepared to handle.
7646
7647 2011-04-26 Uros Bizjak <ubizjak@gmail.com>
7648
7649 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
7650 mode check.
7651 (ext_QIreg_nomode_operands): Remove.
7652 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
7653 (*andsi_1): Ditto.
7654 (*andhi_1): Ditto.
7655
7656 2011-04-26 Andrew Stubbs <ams@codesourcery.com>
7657
7658 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
7659
7660 2011-04-26 Richard Guenther <rguenther@suse.de>
7661
7662 * c-typeck.c (build_unary_op): Do not expand array-refs via
7663 pointer arithmetic. Only adjust qualifiers for function types.
7664
7665 2011-04-26 Richard Guenther <rguenther@suse.de>
7666
7667 PR middle-end/48694
7668 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
7669 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
7670 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
7671 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
7672
7673 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
7674
7675 * doc/extend.texi: Document __underlying_type.
7676
7677 2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
7678
7679 * config/rs6000/titan.md (automata_option "progress"): Remove.
7680
7681 2011-04-25 Jeff Law <law@redhat.com>
7682
7683 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
7684
7685 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
7686
7687 * system.h (ENUM_BITFIELD): Remove.
7688
7689 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
7690 Eric Botcazou <ebotcazou@adacore.com>
7691
7692 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
7693 for STORE_FLAG_VALUE==-1 case.
7694
7695 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
7696
7697 PR target/43804
7698 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
7699 LEGITIMATE_PIC_OPERAND_P.
7700
7701 2011-04-24 Jan Hubicka <jh@suse.cz>
7702
7703 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
7704 WPA hack.
7705 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
7706 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
7707 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
7708 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
7709 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
7710 Sanity check predicate length.
7711 (remap_predicate): Likewise; sanity check jump functions.
7712 (inline_read_section, inline_write_summary): Sanity check
7713 predicate length.
7714
7715 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
7716
7717 PR other/48748
7718 * doc/extend.texi (Type Traits): Document __is_standard_layout,
7719 __is_literal_type, and __is_trivial; update throughout about
7720 possibly cv-qualified void types.
7721
7722 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
7723
7724 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
7725 testsuite and make it version agnostic.
7726
7727 2011-04-22 Jan Hubicka <jh@suse.cz>
7728
7729 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
7730
7731 2011-04-23 Jakub Jelinek <jakub@redhat.com>
7732
7733 PR c/48685
7734 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
7735 to VOID_TYPE even around MODIFY_EXPR.
7736
7737 2011-04-22 Mike Stump <mikestump@comcast.net>
7738
7739 * gensupport.c (read_md_rtx): Fix typo in comment.
7740 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
7741 comment.
7742
7743 2011-04-22 Jan Hubicka <jh@suse.cz>
7744
7745 * gengtype.c (open_base_files): Add ipa-inline.h include.
7746 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
7747 ipa-prop.c; update all uses.
7748 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
7749 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
7750 merge summary of inlined function into former caller.
7751 * ipa-inline.c (max_benefit): Remove.
7752 (edge_badness): Compensate for removal of benefits.
7753 (update_caller_keys): Use
7754 reset_node_growth_cache/reset_edge_growth_cache.
7755 (update_callee_keys): Likewise.
7756 (update_all_callee_keys): Likewise.
7757 (inline_small_functions): Do not collect max_benefit; do not reset
7758 estimated_growth; call free_growth_caches and initialize_growth_caches.
7759 * ipa-inline.h (struct condition, type clause_t, struct predicate,
7760 struct size_time_entry): New structures.
7761 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
7762 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
7763 and estimated_growth.
7764 (edge_growth_cache_entry): New structure.
7765 (node_growth_cache, edge_growth_cache): New global vars.
7766 (estimate_growth): Turn into inline.
7767 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
7768 initialize_growth_caches, free_growth_caches): Declare.
7769 (estimate_edge_growth): Rewrite.
7770 (estimate_edge_time): Implement as inline cache lookup.
7771 (reset_node_growth_cache, reset_edge_growth_cache): New inline
7772 functions.
7773 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
7774 (NUM_CONDITIONS): New constant.
7775 (predicate_conditions): New enum.
7776 (IS_NOT_CONSTANT): New constant.
7777 (edge_removal_hook_holder): New var.
7778 (node_growth_cache, edge_growth_cache): New global vars.
7779 (true_predicate, single_cond_predicate, false_predicate,
7780 not_inlined_predicate, add_condition, add_clause, and_predicates,
7781 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
7782 dump_clause, dump_predicate, account_size_time,
7783 evaulate_conditions_for_edge): New functions.
7784 (inline_summary_alloc): Move to heap.
7785 (inline_node_removal_hook): Clear condition and entry vectors.
7786 (inline_edge_removal_hook): New function.
7787 (initialize_growth_caches, free_growth_caches): New function.
7788 (dump_inline_summary): Update.
7789 (edge_execution_predicate): New function.
7790 (will_be_nonconstant_predicate): New function.
7791 (estimate_function_body_sizes): Compute BB and constantness predicates.
7792 (compute_inline_parameters): Do not clear estimated_growth.
7793 (estimate_edge_size_and_time): New function.
7794 (estimate_calls_size_and_time): New function.
7795 (estimate_callee_size_and_time): New function.
7796 (remap_predicate): New function.
7797 (inline_merge_summary): New function.
7798 (do_estimate_edge_time): New function based on...
7799 (estimate_edge_time): ... this one.
7800 (do_estimate_edge_growth): New function.
7801 (do_estimate_growth): New function based on....
7802 (estimate_growth): ... this one.
7803 (inline_analyze_function): Analyze after deciding on jump functions.
7804 (inline_read_section): New function.
7805 (inline_read_summary): Use it.
7806 (inline_write_summary): Write all the new data.
7807 * ipa-prop.c (ipa_get_param_decl_index): Export.
7808 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
7809 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
7810 Declare.
7811 (ipa_get_lattice): Move here from ipa-cp.c
7812 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
7813 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
7814 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
7815 cgraph_edge_inlinable_p): Remove.
7816 * cgraphunit.c: Include ipainline.h
7817 (cgraph_process_new_functions): Update call of
7818 compute_inline_parameters.
7819
7820 2011-04-22 Richard Guenther <rguenther@suse.de>
7821
7822 * tree.c (build_int_cst): Properly create canonicalized integer
7823 constants.
7824 (build_int_cst_type): Remove scary comments.
7825
7826 2011-04-22 Xinliang David Li <davidxl@google.com>
7827
7828 * toplev.c (process_options): Enable -Werror=coverage-mismatch
7829 by default when -Wno-error is not specified.
7830 * opts-global.c (decode_options): Remove call to
7831 control_warning_options.
7832
7833 2011-04-22 Jakub Jelinek <jakub@redhat.com>
7834
7835 PR tree-optimization/48717
7836 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
7837 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
7838
7839 2011-04-22 Joseph Myers <joseph@codesourcery.com>
7840
7841 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
7842 definition where used.
7843
7844 2011-04-22 Jakub Jelinek <jakub@redhat.com>
7845
7846 PR c/48716
7847 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
7848 TREE_STATIC variables declared inside of some OpenMP construct.
7849
7850 2011-04-22 Martin Jambor <mjambor@suse.cz>
7851
7852 PR middle-end/48585
7853 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
7854
7855 2011-04-22 Alexander Monakov <amonakov@ispras.ru>
7856
7857 PR c/36750
7858 * c-typeck.c (pop_init_level): Do not warn about initializing
7859 with ` = {0}'.
7860
7861 2011-04-22 Alan Modra <amodra@gmail.com>
7862
7863 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
7864 when returning call_cookie.
7865 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
7866 pointers, to functions with no more vector args than the current
7867 function, and some non-local calls for ABI_V4.
7868 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
7869 sibcall_nonlocal_aix64): Combine to ..
7870 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
7871 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
7872 (sibcall_value_nonlocal_aix<mode>): ..likewise.
7873 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
7874 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
7875 operand.
7876 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
7877 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
7878 sibcall_value_symbolic_64): Delete.
7879
7880 2011-04-21 Xinliang David Li <davidxl@google.com>
7881
7882 * cgraph.h: Remove pid.
7883 * cgraph.c: Remove pid.
7884 * value-prof.c (init_node_map): New function.
7885 (del_node_map): New function.
7886 (find_func_by_funcdef_no): New function.
7887 (gimple_ic_transform): Call new function.
7888 * cgraphunit.c (cgraph_finalize_function): Remove pid.
7889 * function.c (get_last_funcdef_no): New function.
7890 * function.h (get_last_funcdef_no): New function.
7891 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
7892 to libgcov function.
7893 (tree-profiling): Call node map init and delete function.
7894
7895 2011-04-21 Ian Lance Taylor <iant@google.com>
7896
7897 * godump.c (go_format_type): Use exported Go name for anonymous
7898 field name.
7899
7900 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
7901
7902 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
7903 Call builtin_function_type_list instead of builtin_function_type.
7904 (UNARY, BINARY, TRINARY, QUAD): Likewise.
7905
7906 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
7907
7908 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
7909 build_function_type_list instead of build_function_type.
7910 Delete variable `endlink'.
7911
7912 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
7913
7914 * config/s390/s390.c (s390_init_builtins): Call
7915 build_function_type_list instead of build_function_type.
7916
7917 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
7918
7919 * config/ia64/ia64.c (ia64_init_builtins): Call
7920 build_function_type_list instead of builtin_function_type.
7921
7922 2011-04-21 Easwaran Raman <eraman@google.com>
7923
7924 * cfgexpand.c (stack_var): Remove OFFSET...
7925 (add_stack_var): ...and its reference here...
7926 (expand_stack_vars): ...and here.
7927 (stack_var_cmp): Sort by descending order of size.
7928 (partition_stack_vars): Change heuristic.
7929 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
7930 (dump_stack_var_partition): Add newline after each partition.
7931
7932 2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
7933 Jeff Law <law@redhat.com>
7934
7935 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
7936 * gengtype.c (matching_file_name_substitute): Likewise.
7937
7938 2011-04-21 Richard Guenther <rguenther@suse.de>
7939
7940 PR lto/48703
7941 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
7942
7943 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
7944
7945 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
7946
7947 2011-04-21 Richard Guenther <rguenther@suse.de>
7948
7949 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
7950 file name.
7951
7952 2011-04-21 Richard Guenther <rguenther@suse.de>
7953
7954 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
7955 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
7956 Use DECL_P, not SSA_VAR_P.
7957 (ptr_derefs_may_alias_p): Likewise.
7958 (ptr_deref_may_alias_ref_p_1): Likewise.
7959 (decl_refs_may_alias_p): Likewise.
7960 (refs_may_alias_p_1): Likewise.
7961 (ref_maybe_used_by_call_p_1): Likewise.
7962 (call_may_clobber_ref_p_1): Likewise.
7963 (indirect_ref_may_alias_decl_p): Assume indirect refrences
7964 are either MEM_REF or TARGET_MEM_REF.
7965 (indirect_refs_may_alias_p): Likewise.
7966 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
7967 for MEM_EXPR of indirect calls.
7968
7969 2011-04-21 Tristan Gingold <gingold@adacore.com>
7970
7971 * vmsdbgout.c (write_srccorr): Compute file length from the string.
7972 (dst_file_info_struct): Remove flen field.
7973 (lookup_filename): Remove code that set flen field.
7974
7975 2011-04-21 Tristan Gingold <gingold@adacore.com>
7976
7977 * config/ia64/ia64.c (ia64_start_function): Add a guard.
7978
7979 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
7980
7981 PR target/48708
7982 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
7983 vec_extract and vec_concat for non-SSE4_1 targets.
7984
7985 2011-04-21 Richard Guenther <rguenther@suse.de>
7986
7987 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
7988 return statements.
7989
7990 2011-04-21 Joseph Myers <joseph@codesourcery.com>
7991
7992 * config/i386/cygming.h (union tree_node, TREE): Don't define or
7993 undefine.
7994 (FILE): Don't undefine.
7995
7996 2011-04-21 Joseph Myers <joseph@codesourcery.com>
7997
7998 * config/alpha/alpha.c (struct machine_function): Use rtx, not
7999 struct rtx_def *.
8000 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
8001 struct rtx_def *.
8002 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
8003 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
8004 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
8005 rtx_def *.
8006 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
8007 definitions where used.
8008 * config/microblaze/microblaze.h (struct microblaze_args): Use
8009 rtx, not struct rtx_def *.
8010 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
8011 rtx_def *.
8012 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
8013 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
8014 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
8015 not struct rtx_def *.
8016 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
8017 struct rtx_def *.
8018 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
8019 rtx_def *.
8020 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
8021
8022 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
8023
8024 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
8025 operand_equal_p to compare DR_BASE_ADDRESSes.
8026 (vect_check_interleaving): Likewise.
8027
8028 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
8029
8030 PR target/46329
8031 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
8032 for all Neon struct constants.
8033
8034 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
8035
8036 * target.def (legitimate_constant_p): New hook.
8037 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
8038 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
8039 * doc/tm.texi: Regenerate.
8040 * hooks.h (hook_bool_mode_rtx_true): Declare.
8041 * hooks.c (hook_bool_mode_rtx_true): Define.
8042 * system.h (LEGITIMATE_CONSTANT_P): Poison.
8043 * calls.c (precompute_register_parameters): Replace uses of
8044 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
8045 (emit_library_call_value_1): Likewise.
8046 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
8047 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
8048 * ira-costs.c (scan_one_insn): Likewise.
8049 * recog.c (general_operand, immediate_operand): Likewise.
8050 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
8051 * reload1.c (init_eliminable_invariants): Likewise.
8052
8053 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
8054 mode argument.
8055 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
8056 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
8057 argument.
8058 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8059 * config/alpha/predicates.md (input_operand): Update call to
8060 alpha_legitimate_constant_p.
8061
8062 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
8063 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
8064 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
8065 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8066 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
8067 (arm_legitimate_constant_p): New functions.
8068 (arm_cannot_force_const_mem): Make static.
8069
8070 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
8071
8072 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
8073 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
8074 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
8075 instead of bfin_legitimate_constant_p.
8076 (bfin_legitimate_constant_p): Make static. Add a mode argument.
8077 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8078
8079 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
8080
8081 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
8082
8083 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
8084 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
8085 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8086 (frv_legitimate_constant_p): Make static. Add a mode argument.
8087
8088 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
8089 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
8090 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
8091
8092 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
8093 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
8094 * config/i386/i386.c (legitimate_constant_p): Rename to...
8095 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
8096 argument.
8097 (ix86_cannot_force_const_mem): Update accordingly.
8098 (ix86_legitimate_address_p): Likewise.
8099 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8100 * config/i386/i386.md: Update commentary.
8101
8102 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
8103 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
8104 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8105 (ia64_legitimate_constant_p): Make static. Add a mode argument.
8106
8107 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
8108
8109 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
8110 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
8111 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8112 (lm32_legitimate_constant_p): Make static. Add a mode argument.
8113
8114 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
8115 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
8116 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
8117
8118 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
8119 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8120 (m32r_legitimate_constant_p): New function.
8121
8122 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
8123 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
8124 LEGITIMATE_CONSTANT_P.
8125 (LEGITIMATE_CONSTANT_P): Delete.
8126 * config/m68k/m68k.c (m68k_expand_prologue): Call
8127 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
8128 (m68k_legitimate_constant_p): New function.
8129 * config/m68k/m68k.md: Update comments.
8130
8131 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
8132 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8133 (mcore_legitimate_constant_p): New function.
8134
8135 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
8136 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
8137 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
8138 Add a mode argument.
8139 (mep_legitimate_address): Update accordingly.
8140 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8141
8142 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
8143 Delete.
8144 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
8145 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
8146 static. Check OP's mode for VOIDmode.
8147 (microblaze_legitimate_constant_p): New function.
8148 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8149
8150 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
8151 * config/mips/mips.c (mips_legitimate_constant_p): New function.
8152 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
8153 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8154 * config/mips/predicates.md: Update comments.
8155
8156 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
8157 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
8158 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8159 (mmix_legitimate_constant_p): Make static, return a bool, and take
8160 a mode argument.
8161 (mmix_print_operand_address): Update accordingly.
8162
8163 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
8164 Delete.
8165 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
8166 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
8167 static. Add a mode argument.
8168 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8169
8170 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
8171
8172 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
8173 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8174 (pa_legitimate_constant_p): New function.
8175
8176 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
8177
8178 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
8179 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8180 (pdp11_legitimate_constant_p): New function.
8181
8182 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
8183 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8184 (rs6000_legitimate_constant_p): New function.
8185
8186 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
8187 (rx_legitimate_constant_p): ...this.
8188 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
8189 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
8190 (rx_legitimate_constant_p): ...this.
8191 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8192 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
8193
8194 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
8195 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
8196 * config/s390/s390.c (legitimate_constant_p): Rename to...
8197 (s390_legitimate_constant_p): ...this. Make static, return a bool,
8198 and add a mode argument.
8199 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8200
8201 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
8202
8203 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
8204 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8205 (sh_legitimate_constant_p): New function.
8206
8207 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
8208 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
8209 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8210 (legitimate_constant_p): Rename to...
8211 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
8212 argument.
8213 (constant_address_p): Update accordingly.
8214
8215 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
8216 argument and return a bool.
8217 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
8218 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8219 (spu_legitimate_constant_p): Add a mode argument and return a bool.
8220 (spu_rtx_costs): Update accordingly.
8221 * config/spu/predicates.md (vec_imm_operand): Likewise.
8222
8223 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
8224
8225 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
8226 * config/v850/v850.c (v850_legitimate_constant_p): New function.
8227 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8228
8229 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
8230 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
8231 * config/vax/vax.c (legitimate_constant_p): Likewise.
8232
8233 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
8234 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8235 (xtensa_legitimate_constant_p): New function.
8236
8237 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
8238
8239 * target.def (cannot_force_const_mem): Add a mode argument.
8240 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
8241 * doc/tm.texi: Regenerate.
8242 * hooks.h (hook_bool_mode_rtx_false): Declare.
8243 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
8244 (hook_bool_mode_const_rtx_true): Likewise.
8245 (hook_bool_mode_rtx_false): New function.
8246 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
8247 to be non-VOID. Update call to cannot_force_const_mem.
8248 (find_reloads): Update accordingly.
8249 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
8250 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
8251 argument.
8252 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
8253 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
8254 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
8255 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
8256 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
8257 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
8258 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
8259 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
8260 (m68k_cannot_force_const_mem): ...this new function.
8261 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
8262 argument.
8263 (mips_const_insns, mips_legitimize_const_move): Update calls.
8264 (mips_secondary_reload_class): Likewise.
8265 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
8266 (pa_cannot_force_const_mem): ...this new function.
8267 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
8268 (rs6000_cannot_force_const_mem): ...this new function.
8269 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
8270 argument.
8271 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
8272 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
8273 to...
8274 (xtensa_cannot_force_const_mem): ...this new function.
8275
8276 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
8277
8278 * config/mips/mips.c (mips16_build_function_stub): Call
8279 build_function_type_list instead of build_function_type.
8280 (mips16_build_call_stub): Likewise.
8281
8282 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
8283
8284 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
8285 instead of build_function_type.
8286
8287 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
8288
8289 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
8290 instead of build_function_type.
8291
8292 2011-04-20 Uros Bizjak <ubizjak@gmail.com>
8293
8294 PR target/48678
8295 * config/i386/i386.md (insv): Change operand 0 constraint to
8296 "register_operand". Change operand 1 and 2 constraint to
8297 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
8298 * config/i386/sse.md (sse4_1_pinsrb): Export.
8299 (sse2_pinsrw): Ditto.
8300 (sse4_1_pinsrd): Ditto.
8301 (sse4_1_pinsrq): Ditto.
8302 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
8303 * config/i386/i386.c (ix86_expand_pinsr): New.
8304
8305 2011-04-20 Easwaran Raman <eraman@google.com>
8306
8307 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
8308 containing union type only with -fstrict-aliasing.
8309
8310 2011-04-20 Jim Meyering <meyering@redhat.com>
8311
8312 Remove useless if-before-free tests.
8313 * calls.c (expand_call, save_area): Likewise.
8314 * cfgcleanup.c (try_forward_edges): Likewise.
8315 * collect2.c (collect_execute): Likewise.
8316 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
8317 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
8318 * coverage.c (coverage_checksum_string): Likewise.
8319 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
8320 * cselib.c (cselib_init): Likewise.
8321 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
8322 (df_set_clean_cfg): Likewise.
8323 * function.c (free_after_compilation): Likewise.
8324 * gcc.c (do_spec_1, main): Likewise.
8325 * gcov.c (create_file_names): Likewise.
8326 * gensupport.c (identify_predicable_attribute): Likewise.
8327 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
8328 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
8329 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
8330 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
8331 * ipa-pure-const.c (local_pure_const): Likewise.
8332 * ipa-reference.c (propagate): Likewise.
8333 * ira-costs.c (free_ira_costs): Likewise.
8334 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
8335 * matrix-reorg.c (mat_free): Likewise.
8336 * prefix.c (get_key_value): Likewise.
8337 * profile.c (compute_value_histograms): Likewise.
8338 * reload1.c (free_reg_equiv): Likewise.
8339 * sched-deps.c (free_deps): Likewise.
8340 * sel-sched-ir.c (fence_clear): Likewise.
8341 * sese.c (set_rename, if_region_set_false_region): Likewise.
8342 * tree-data-ref.c (free_rdg): Likewise.
8343 * tree-eh.c (lower_try_finally): Likewise.
8344 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
8345 * tree-ssa-live.c (delete_var_map): Likewise.
8346 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
8347 * tree-ssa-pre.c (phi_trans_add): Likewise.
8348
8349 2011-04-20 Jakub Jelinek <jakub@redhat.com>
8350
8351 PR tree-optimization/48611
8352 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
8353 beyond ERT_MUST_NOT_THROW region.
8354
8355 2011-04-20 Catherine Moore <clm@codesourcery.com>
8356
8357 * config/mips/mips.opt (mfix-24k): New.
8358 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
8359 * config/mips/mips.md (length): Increase by 4 for stores if
8360 fixing 24K errata.
8361 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
8362 all noreorder if fixing 24K errata.
8363 * doc/invoke.texi: Document mfix-24k.
8364
8365 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
8366
8367 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
8368 quad-word modes, reduce to 9-bit index range when above 1016 limit.
8369
8370 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
8371
8372 * config/arm/arm.c (arm_gen_constant): Move movw support ....
8373 (const_ok_for_op): ... to here.
8374
8375 2011-04-20 Kai Tietz <ktietz@redhat.com>
8376
8377 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
8378 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
8379
8380 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
8381
8382 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
8383
8384 2011-04-20 Richard Guenther <rguenther@suse.de>
8385
8386 PR tree-optimization/47892
8387 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
8388 are if-convertible.
8389
8390 2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
8391
8392 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
8393
8394 2011-04-20 Tristan Gingold <gingold@adacore.com>
8395
8396 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
8397
8398 2011-04-20 Georg-Johann Lay <avr@gjlay.de>
8399
8400 PR target/18145
8401
8402 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
8403 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
8404 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
8405 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
8406 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
8407
8408 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
8409 New prototype.
8410
8411 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
8412 (avr_asm_named_section, avr_asm_output_aligned_common,
8413 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
8414 New functions to update...
8415 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
8416 (avr_asm_init_sections): Overwrite section callbacks for
8417 data_section, bss_section.
8418 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
8419 from here to...
8420 (avr_file_end): ...here.
8421
8422 2011-04-20 Richard Guenther <rguenther@suse.de>
8423
8424 PR middle-end/48695
8425 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
8426 objects and types here. Adjust for their offset before comparing.
8427
8428 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
8429
8430 * tree-vect-stmts.c (vectorizable_store): Only chain one related
8431 statement per copy.
8432
8433 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
8434
8435 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
8436 (GIMPLE_H): Include $(INTERNAL_FN_H).
8437 (OBJS-common): Add internal-fn.o.
8438 (internal-fn.o): New rule.
8439 * internal-fn.def: New file.
8440 * internal-fn.h: Likewise.
8441 * internal-fn.c: Likewise.
8442 * gimple.h: Include internal-fn.h.
8443 (GF_CALL_INTERNAL): New gf_mask.
8444 (gimple_statement_call): Put fntype into a union with a new
8445 internal_fn field.
8446 (gimple_build_call_internal): Declare.
8447 (gimple_build_call_internal_vec): Likewise.
8448 (gimple_call_same_target_p): Likewise.
8449 (gimple_call_internal_p): New function.
8450 (gimple_call_internal_fn): Likewise.
8451 (gimple_call_fntype): Return null for internal calls.
8452 (gimple_call_set_fntype): Assert that the function is not internal.
8453 (gimple_call_set_fn): Likewise.
8454 (gimple_call_set_fndecl): Likewise.
8455 (gimple_call_set_internal_fn): New function.
8456 (gimple_call_addr_fndecl): Handle null functions.
8457 (gimple_call_return_type): Likewise null types.
8458 * gimple.c (gimple_build_call_internal_1): New function.
8459 (gimple_build_call_internal): Likewise.
8460 (gimple_build_call_internal_vec): Likewise.
8461 (gimple_call_same_target_p): Likewise.
8462 (gimple_call_flags): Handle calls to internal functions.
8463 (gimple_call_fnspec): New function.
8464 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
8465 (gimple_has_side_effects): Handle null functions.
8466 (gimple_rhs_has_side_effects): Likewise.
8467 (gimple_call_copy_skip_args): Handle calls to internal functions.
8468 * cfgexpand.c (expand_call_stmt): Likewise.
8469 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
8470 * gimple-fold.c (gimple_fold_call): Handle null functions.
8471 (gimple_fold_stmt_to_constant_1): Don't fold
8472 calls to internal functions.
8473 * gimple-low.c (gimple_check_call_args): Handle calls to internal
8474 functions.
8475 * gimple-pretty-print.c (dump_gimple_call): Likewise.
8476 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
8477 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
8478 (do_warn_unused_result): Likewise.
8479 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
8480 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
8481 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
8482 the target of a call.
8483 (initialize_hash_element): Update accordingly.
8484 (hashable_expr_equal_p): Use gimple_call_same_target_p.
8485 (iterative_hash_hashable_expr): Handle calls to internal functions.
8486 (print_expr_hash_elt): Likewise.
8487 * tree-ssa-pre.c (can_value_number_call): Likewise.
8488 (eliminate): Handle null functions.
8489 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
8490 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
8491 (find_func_aliases): Likewise.
8492 * value-prof.c (gimple_ic_transform): Likewise.
8493 (gimple_indirect_call_to_profile): Likewise.
8494 * lto-streamer-in.c (input_gimple_stmt): Likewise.
8495 * lto-streamer-out.c (output_gimple_stmt): Likewise.
8496
8497 2011-04-19 Jan Hubicka <jh@suse.cz>
8498
8499 * ipa-inline-transform.c (save_inline_function_body): Add comments.
8500 * ipa-inline.c (inline_small_functions): Compute summaries first,
8501 populate heap later.
8502
8503 2011-04-19 Jan Hubicka <jh@suse.cz>
8504
8505 * cgraph.h (save_inline_function_body): Remove.
8506 * ipa-inline-transform.c: New file, broke out of...
8507 * ipa-inline.c: ... this one; Update toplevel comment.
8508 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
8509 make global.
8510 (update_noncloned_frequencies): Move to ipa-inline-transform.c
8511 (cgraph_mark_inline_edge): Rename to inline_call; move to
8512 ipa-inline-transform.c.
8513 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
8514 move to ipa-inline-transform.c
8515 (recursive_inlining, inline_small_functions, flatten_function,
8516 ipa_inline, inline_always_inline_functions,
8517 early_inline_small_functions): Update.
8518 (inline_transform): Move to ipa-inline-transform.c.
8519 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
8520 Declare.
8521 * Makefile.in (ipa-inline-transform.o): New file.
8522 * cgraphunit.c (save_inline_function_body): Move to
8523 ipa-inline-transform.c
8524
8525 2011-04-19 DJ Delorie <dj@redhat.com>
8526
8527 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
8528 registers if we already know there aren't any.
8529 (m32c_emit_epilogue): Don't emit a barrier here.
8530 (m32c_emit_eh_epilogue): Likewise.
8531 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
8532 operands at expand time.
8533 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
8534 int" wchar type.
8535 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
8536 duplicates. Provide aliases instead.
8537 * config/m32c/prologue.md (eh_return): Emit a barrier here.
8538 (eh_epilogue): Add a "(return)" here as a hint to other parts of
8539 the compiler.
8540
8541 2011-04-19 Anatoly Sokolov <aesok@post.ru>
8542
8543 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
8544 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
8545 (general_or_i64_p, sparc_register_move_cost): New function.
8546
8547 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8548
8549 * doc/install.texi (Configuration, --enable-threads): Remove mach.
8550 Add lynx, mipssde. Sort table.
8551
8552 2011-04-19 Xinliang David Li <davidxl@google.com>
8553
8554 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
8555 not negative.
8556
8557 2011-04-19 Jakub Jelinek <jakub@redhat.com>
8558
8559 PR target/48678
8560 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
8561 is a SUBREG with non-MODE_INT mode inside of it.
8562
8563 2011-04-19 Martin Jambor <mjambor@suse.cz>
8564
8565 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
8566 also according to actual contants.
8567 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
8568 (gimple_fold_call): Use it.
8569 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
8570
8571 2011-04-19 Martin Jambor <mjambor@suse.cz>
8572
8573 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
8574 non-pointer assignments.
8575
8576 2011-04-19 Martin Jambor <mjambor@suse.cz>
8577
8578 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
8579 account anc_offset and otr_type from the indirect edge info.
8580 * ipa-prop.c (get_ancestor_addr_info): New function.
8581 (compute_complex_ancestor_jump_func): Assignment analysis moved to
8582 get_ancestor_addr_info, call it.
8583 (ipa_note_param_call): Do not initialize information about polymorphic
8584 calls, return the indirect call graph edge. Remove the last
8585 parameter, adjust all callers.
8586 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
8587 parameters. Initialize polymorphic information in the indirect edge.
8588
8589 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
8590
8591 PR lto/48148
8592 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
8593 the types if they have different enumeration identifiers.
8594
8595 2011-04-19 Jan Hubicka <jh@suse.cz>
8596
8597 * cgraph.h (cgraph_optimize_for_size_p): Declare.
8598 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
8599 * predict.c (cgraph_optimize_for_size_p): Break out from ...
8600 (optimize_function_for_size_p) ... here.
8601
8602 2011-04-19 Richard Guenther <rguenther@suse.de>
8603
8604 PR lto/48207
8605 * tree.c (free_lang_data): Do not reset the decl-assembler-name
8606 langhook.
8607
8608 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
8609
8610 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
8611 if DECL_NO_INLINE_WARNING_P is set on the function.
8612
8613 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
8614
8615 PR fortran/47976
8616 * reload1.c (inc_for_reload): Return void. All callers changed.
8617 (emit_input_reload_insns): Don't try to delete previous output
8618 reloads to a register, or record spill_reg_store for autoincs.
8619
8620 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
8621
8622 * gengtype.h: Updated copyright year.
8623 (struct input_file_st): Add inpisplugin field.
8624 (type_fileloc): New function.
8625 * gengtype.c
8626 (write_typed_struct_alloc_def): Add gcc_assert.
8627 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
8628 (write_typed_alloc_defns): Don't output for plugin files.
8629 (input_file_by_name): Clear inpisplugin field.
8630 (main): Set inpisplugin field for plugin files.
8631
8632 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
8633
8634 * gengtype-state.c (string_eq): New.
8635 (read_state): Use string_eq instead of strcmp when creating the
8636 state_ident_tab.
8637
8638 2011-04-19 Wei Guozhi <carrot@google.com>
8639
8640 PR target/47855
8641 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
8642 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
8643 linkage.
8644 * config/arm/constraints.md (Uu): New constraint.
8645 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
8646
8647 2011-04-19 Tristan Gingold <gingold@adacore.com>
8648
8649 * config.gcc (-*-*-*vms): Added.
8650 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
8651 definitions moved.
8652 * config/vms/vms-ld.c: New file.
8653 * config/vms/vms-ar.c: New file.
8654 * config/vms/t-vmsnative: New file.
8655
8656 2011-04-18 Xinliang David Li <davidxl@google.com>
8657
8658 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
8659
8660 2011-04-18 Jakub Jelinek <jakub@redhat.com>
8661
8662 PR middle-end/48661
8663 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
8664 if TREE_TYPE (v) is non-NULL.
8665
8666 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
8667 gimple_get_virt_mehtod_for_binfo.
8668 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
8669 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
8670 callers.
8671 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
8672
8673 2011-04-18 Michael Matz <matz@suse.de>
8674 Steve Ellcey <sje@cup.hp.com>
8675
8676 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
8677 use its mode as source mode if it isn't VOIDmode.
8678
8679 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
8680
8681 * doc/passes.texi: Fill crossref nodes.
8682
8683 2011-04-18 Jim Meyering <meyering@redhat.com>
8684
8685 Fix doubled-word typos in comments and strings
8686 * config/alpha/vms-unwind.h: s/for for/for/
8687 * config/arm/unwind-arm.h: Likewise.
8688 * config/microblaze/microblaze.c: Likewise.
8689 * config/sh/constraints.md: s/in in/in/
8690 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
8691
8692 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
8693
8694 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
8695 (AVX_FLOAT_MODE_P): Ditto.
8696 (AVX128_VEC_FLOAT_MODE_P): Ditto.
8697 (AVX256_VEC_FLOAT_MODE_P): Ditto.
8698 (AVX_VEC_FLOAT_MODE_P): Ditto.
8699 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
8700 (UNSPEC_MASKSTORE): Ditto.
8701 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
8702 Merge from <sse>_movmsk<ssemodesuffix> and
8703 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
8704 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
8705 iterator.
8706 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
8707 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
8708 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
8709
8710 2011-04-18 Jan Hubicka <jh@suse.cz>
8711
8712 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
8713
8714 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
8715 (want_inline_function_called_once_p): Break out the logic from
8716 ipa_inline.
8717 (edge_badness): Ensure that profile is not misupdated.
8718 (lookup_recursive_calls): Prioritize by call frequencies.
8719 (inline_small_functions): Move program size estimates here;
8720 actually process whole queue even when unit growth has been
8721 met. (to properly compute inline_failed reasons and for the
8722 case unit size decrease.) Revisit comments on recursive inlining.
8723 (ipa_inline): Remove unit summary code; first inline hot calls
8724 of functions called once, cold calls next.
8725 (order, nnodes): Remove unused variables.
8726 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
8727 (GTFILES): Remove ipa-inline.c
8728 * sel-sched.c (fill_insns): Silence uninitialized var warning.
8729
8730 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
8731
8732 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
8733
8734 2011-04-18 Jie Zhang <jie@codesourcery.com>
8735 Richard Earnshaw <rearnsha@arm.com>
8736
8737 * arm.c (neon_builtin_type_bits): Remove.
8738 (typedef enum neon_builtin_mode): New.
8739 (T_MAX): Don't define.
8740 (typedef enum neon_builtin_datum): Remove bits, codes[],
8741 num_vars and base_fcode. Add mode, code and fcode.
8742 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
8743 VAR10): Change accordingly.
8744 (neon_builtin_data[]): Change accordingly
8745 (arm_init_neon_builtins): Change accordingly.
8746 (neon_builtin_compare): Remove.
8747 (locate_neon_builtin_icode): Remove.
8748 (arm_expand_neon_builtin): Change accordingly.
8749
8750 * arm.h (enum arm_builtins): Move to ...
8751 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
8752
8753 * arm.c (arm_builtin_decl): Declare.
8754 (TARGET_BUILTIN_DECL): Define.
8755 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
8756 (arm_builtin_decls[]): New.
8757 (arm_init_neon_builtins): Store builtin declarations in
8758 arm_builtin_decls[].
8759 (arm_init_tls_builtins): Likewise.
8760 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
8761 (arm_builtin_decl): New.
8762
8763 2011-04-18 Richard Guenther <rguenther@suse.de>
8764
8765 * tree.c (upper_bound_in_type): Build properly canonicalized
8766 INTEGER_CSTs.
8767 (lower_bound_in_type): Likewise.
8768
8769 2011-04-18 Richard Guenther <rguenther@suse.de>
8770
8771 * gimple.h (gimple_call_addr_fndecl): New function.
8772 (gimple_call_fndecl): Use it.
8773 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
8774 for direct calls.
8775 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
8776 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
8777
8778 2011-04-18 Richard Guenther <rguenther@suse.de>
8779
8780 PR middle-end/48650
8781 * tree.c (build_string): STRING_CST is now derived from tree_typed.
8782
8783 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
8784
8785 PR lto/48492
8786 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
8787 DECL_IN_CONSTANT_POOL without RTL.
8788
8789 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
8790 Ira Rosen <ira.rosen@linaro.org>
8791
8792 PR target/48252
8793 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
8794 to match neon_vzip/vuzp/vtrn_internal.
8795 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
8796 outputs explicitly dependent on both inputs.
8797 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
8798
8799 2011-04-18 Jakub Jelinek <jakub@redhat.com>
8800
8801 PR tree-optimization/48616
8802 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
8803 whether the shift is by scalar or vector based on whether all SLP
8804 scalar stmts have the same rhs.
8805
8806 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
8807
8808 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
8809 memory operands.
8810
8811 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
8812
8813 PR target/43700
8814 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
8815 registers.
8816
8817 2011-04-17 Jan Hubicka <jh@suse.cz>
8818
8819 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
8820 * cgrpahunit.c (cgraph_finalize_function): Do not set
8821 finalized_by_frontend.
8822 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
8823 finalized_by_frontend.
8824
8825 2011-04-17 Jan Hubicka <jh@suse.cz>
8826
8827 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
8828 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
8829 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
8830 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
8831 method.
8832 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
8833 gimple-fold.c
8834 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
8835
8836 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
8837
8838 PR lto/48538
8839 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
8840 is non-null before accessing it.
8841 (input_cgraph): Remove trailing spaces.
8842
8843 2011-04-17 Revital Eres <revital.eres@linaro.org>
8844
8845 * params.def (sms-min-sc): New param flag.
8846 * modulo-sched.c (sms_schedule): Use it.
8847 * doc/invoke.texi (sms-min-sc): Document it.
8848
8849 2011-04-17 Jan Hubicka <jh@suse.cz>
8850
8851 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
8852 present, also set gimple_call_set_cannot_inline.
8853 * ipa-inline.c: Update toplevel comment.
8854 (MAX_TIME): Remove.
8855 (cgraph_clone_inlined_nodes): Fix linebreaks.
8856 (cgraph_check_inline_limits): Restructure to ...
8857 (caller_growth_limits): ... this one; be more tolerant
8858 on growth in nested inline chains; add explanatory comment;
8859 fix stack accounting thinko introduced by previous patch.
8860 (cgraph_default_inline_p): Remove.
8861 (report_inline_failed_reason): New function.
8862 (can_inline_edge_p): New function.
8863 (can_early_inline_edge_p): New function.
8864 (leaf_node_p): Move upwards in file.
8865 (want_early_inline_function_p): New function.
8866 (want_inline_small_function_p): New function.
8867 (want_inline_self_recursive_call_p): New function.
8868 (cgraph_edge_badness): Rename to ...
8869 (edge_badness) ... this one; fix linebreaks.
8870 (update_edge_key): Update call of edge_baddness; add
8871 detailed dump about queue updates.
8872 (update_caller_keys): Use can_inline_edge_p and
8873 want_inline_small_function_p.
8874 (cgraph_decide_recursive_inlining): Rename to...
8875 (recursive_inlining): Use can_inline_edge_p and
8876 want_inline_self_recursive_call_p; simplify and remove no longer
8877 valid FIXME.
8878 (cgraph_set_inline_failed): Remove.
8879 (add_new_edges_to_heap): Use can_inline_edge_p and
8880 want_inline_small_function_p.
8881 (cgraph_decide_inlining_of_small_functions): Rename to ...
8882 (inline_small_functions): ... this one; cleanup; use
8883 can/want predicates; cleanup debug ouput; work edges till fibheap
8884 is exhausted and do not stop once unit growth is reached; remove
8885 later loop processing remaining edges.
8886 (cgraph_flatten): Rename to ...
8887 (flatten_function): ... this one; use can_inline_edge_p
8888 and can_early_inline_edge_p predicates.
8889 (cgraph_decide_inlining): Rename to ...
8890 (ipa_inline): ... this one; remove unreachable nodes before
8891 inlining functions called once; simplify the pass.
8892 (cgraph_perform_always_inlining): Rename to ...
8893 (inline_always_inline_functions): ... this one; use
8894 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
8895 (cgraph_decide_inlining_incrementally): Rename to ...
8896 (early_inline_small_functions): ... this one; simplify
8897 using new predicates; cleanup; make dumps prettier.
8898 (cgraph_early_inlining): Rename to ...
8899 (early_inliner): newer inline regular functions into always-inlines;
8900 fix updating of call stmt summaries.
8901 (pass_early_inline): Update for new names.
8902 (inline_transform): Fix formating.
8903 (gate_cgraph_decide_inlining): Rename to ...
8904 (pass_ipa_inline): ... this one.
8905 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
8906 * ipa-inline-analysis.c (dump_inline_summary): Update.
8907 (compute_inline_parameters): Do not compute disregard_inline_limits;
8908 look for mismatching arguments.
8909 (estimate_growth): Fix handlig of non-trivial self recursion.
8910 (inline_read_summary): Do not read info->disregard_inline_limits.
8911 (inline_write_summary): Do not write info->disregard_inline_limits.
8912 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
8913 and move all checks into can_inline_edge_p predicate; re-enable code
8914 comparing optimization levels.
8915 (expand_call_inline): Do not test inline_forbidden_into_p.
8916 * Makefile.in (ipa-inline.o): Update arguments.
8917
8918 2011-04-17 Revital Eres <revital.eres@linaro.org>
8919
8920 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
8921
8922 2011-04-17 Revital Eres <revital.eres@linaro.org>
8923
8924 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
8925
8926 2011-04-17 Michael Matz <matz@suse.de>
8927
8928 PR tree-optimization/48622
8929 PR lto/48645
8930 * ipa-inline-analysis.c (inline_read_summary): Read size/time
8931 in same order as they're written.
8932
8933 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8934
8935 * config/pa/predicates.md: Reorganize and simplify predicates.
8936 Eliminate duplicate code checks.
8937 (arith_operand): Rename to arith14_operand
8938 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
8939 * config/pa/pa.md: Use renamed operands.
8940 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
8941 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
8942 arith11_operand, adddi3_operand, indexed_memory_operand,
8943 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
8944 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
8945 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
8946 move_dest_operand, move_src_operand, prefetch_cc_operand,
8947 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
8948 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
8949 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
8950 div_operand, int5_operand, movb_comparison_operator,
8951 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
8952 arith_double_operand, ireg_operand, lhs_lshift_operand,
8953 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
8954 integer_store_memory_operand): Likewise.
8955 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
8956 (integer_store_memory_operand, read_only_operand,
8957 function_label_operand, borx_reg_operand,
8958 non_hard_reg_operand): Likewise.
8959 (eq_neq_comparison_operator): Delete unused operator.
8960 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
8961 function_label_operand.
8962 (emit_move_sequence): Likewise.
8963
8964 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
8965
8966 * config/i386/sse.md (sseunpackmode): New mode attribute.
8967 (ssepackmode): Ditto.
8968 (vec_pack_trunc_<mode>): Macroize expander from
8969 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
8970 (vec_unpacks_lo_<mode>): Macroize expander from
8971 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
8972 (vec_unpacks_hi_<mode>): Macroize expander from
8973 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
8974 (vec_unpacku_lo_<mode>): Macroize expander from
8975 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
8976 (vec_unpacku_hi_<mode>): Macroize expander from
8977 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
8978 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
8979 ix86_expand_sse4_unpack.
8980 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
8981
8982 2011-04-16 Jan Hubicka <jh@suse.cz>
8983
8984 * cgraphbuild.c: Include ipa-inline.h.
8985 (reset_inline_failed): Use initialize_inline_failed.
8986 * cgraph.c: Include ipa-inline.h.
8987 (cgraph_create_node_1): Do not initialize estimated_growth.
8988 (initialize_inline_failed): More to ipa-inline-analysis.c
8989 (dump_cgraph_node): Do not dump inline flags.
8990 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
8991 and disregard_inline_limits flags.
8992 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
8993 time, size, estimated_growth.
8994 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
8995 Update.
8996 * cgraphunit.c (cgraph_decide_is_function_needed): Use
8997 DECL_DISREGARD_INLINE_LIMITS.
8998 (cgraph_analyze_function): Do not initialize
8999 node->local.disregard_inline_limits.
9000 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
9001 inlinable, versionable and disregard_inline_limits.
9002 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
9003 cgraph_check_inline_limits, cgraph_default_inline_p,
9004 cgraph_edge_badness, update_caller_keys, update_callee_keys,
9005 add_new_edges_to_heap): Update.
9006 (cgraph_decide_inlining_of_small_function): Update; set
9007 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
9008 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
9009 cgraph_decide_inlining_incrementally): Update.
9010 * ipa-inline.h (inline_summary): Add inlinable, versionable,
9011 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
9012 time, size and estimated_growth parameters.
9013 (estimate_edge_growth): Update.
9014 (initialize_inline_failed): Declare.
9015 * ipa-split.c: Include ipa-inline.h
9016 (execute_split_functions): Update.
9017 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
9018 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
9019 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
9020 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
9021 estimated_growth to INT_MIN.
9022 (inline_node_duplication_hook): Likewise.
9023 (dump_inline_summary): Dump new fields.
9024 (compute_inline_parameters): Update.
9025 (estimate_edge_time, estimate_time_after_inlining,
9026 estimate_size_after_inlining, estimate_growth, inline_read_summary,
9027 inline_write_summary):
9028 (initialize_inline_failed): Move here from cgraph.c.
9029 * tree-sra.c: Include ipa-inline.h.
9030 (ipa_sra_preliminary_function_checks): Update.
9031 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
9032 ipa-inline.h.
9033
9034 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
9035
9036 * config/i386/sse.md (V16): New mode iterator.
9037 (VI1, VI8): Ditto.
9038 (AVXMODEQI, AVXMODEDI): Remove.
9039 (sse2, sse3): New mode attribute.
9040 (mov<mode>): Use V16 mode iterator.
9041 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
9042 (push<mode>1): Use V16 mode iterator.
9043 (movmisalign<mode>): Ditto.
9044 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
9045 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
9046 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
9047 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
9048 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
9049 avx_movdqu<avxmodesuffix>.
9050 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
9051 *avx_movdqu<avxmodesuffix>.
9052 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
9053 avx_lddqu<avxmodesuffix>.
9054 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
9055 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
9056 avx_movnt<AVXMODEDI:mode>.
9057 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
9058 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
9059
9060 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
9061
9062 PR target/48629
9063 * haifa-sched.c (prune_ready_list, schedule_block): Use
9064 sched_pressure_p rather than flag_sched_pressure.
9065
9066 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
9067
9068 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
9069 cgraph_get_node instead of cgraph_get_create_node.
9070
9071 2011-04-15 Jakub Jelinek <jakub@redhat.com>
9072
9073 * cfgexpand.c (expand_debug_expr): Use
9074 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
9075
9076 2011-04-15 Michael Matz <matz@suse.de>
9077
9078 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
9079 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
9080 * function.c (gimplify_parameters): Ditto.
9081 * gimplify.c (gimplify_vla_decl): Ditto.
9082
9083 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
9084 (gimple_call_set_alloca_for_var): New inline function.
9085 (gimple_call_alloca_for_var_p): Ditto.
9086 * gimple.c (gimple_build_call_from_tree): Remember
9087 CALL_ALLOCA_FOR_VAR_P state.
9088 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
9089
9090 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
9091 calls if they were for VLA objects.
9092
9093 2011-04-15 Martin Jambor <mjambor@suse.cz>
9094
9095 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
9096 of ADR_EXPRs.
9097
9098 2011-04-15 Martin Jambor <mjambor@suse.cz>
9099
9100 PR middle-end/48601
9101 * tree-emutls.c (lower_emutls_function_body): Call
9102 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
9103 result is non-NULL.
9104
9105 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
9106
9107 * c-decl.c (detect_field_duplicates): Call
9108 objc_detect_field_duplicates instead of objc_get_interface_ivars.
9109
9110 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
9111
9112 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
9113 * gimple.c (gimple_asm_clobbers_memory_p): Define.
9114 * ipa-pure-const.c (check_stmt): Call it.
9115 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
9116
9117 2011-04-15 Richard Guenther <rguenther@suse.de>
9118
9119 PR tree-optimization/48290
9120 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
9121 Properly decide inhibiting propagation based on the valueized
9122 operand. Do loop-closed SSA form preserving here ...
9123 (init_copy_prop): ... not here.
9124
9125 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
9126
9127 PR target/48612
9128 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
9129 (*ieee_smax<mode>3): Likewise.
9130
9131 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9132
9133 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
9134 Replace match_operand with match_dup for the third operand in
9135 these expanders.
9136
9137 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
9138
9139 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
9140 to track processing of conditionals. Update all callers.
9141 (try_combine, simplify_if_then_else): Update.
9142
9143 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
9144
9145 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
9146 -fsched-pressure.
9147
9148 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
9149
9150 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
9151 instead of match_operand for operand 3.
9152
9153 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
9154
9155 * recog.h (insn_operand_data): Add an "allows_mem" field.
9156 * genoutput.c (output_operand_data): Initialize it.
9157 * optabs.c (maybe_legitimize_operand_same_code): New function.
9158 (maybe_legitimize_operand): Use it when matching the original
9159 op->value.
9160
9161 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
9162
9163 * gimplify.c: Fix issues in comments throughout.
9164 (voidify_wrapper_expr): Fix long line.
9165 (build_stack_save_restore): Likewise.
9166 (gimplify_loop_expr): Likewise.
9167 (gimplify_compound_lval): Likewise.
9168 (gimplify_init_ctor_eval): Likewise.
9169 (gimplify_modify_expr_rhs): Likewise.
9170 (omp_notice_threadprivate_variable): Likewise.
9171
9172 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
9173
9174 * cfgexpand.c (expand_call_stmt): Convert the function type to the
9175 original one if this is not a builtin function.
9176
9177 2011-04-14 Jakub Jelinek <jakub@redhat.com>
9178
9179 PR target/48605
9180 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
9181 offset it as needed based on top 2 bits in operands[3], change
9182 MEM mode to SFmode and mask those 2 bits away from operands[3].
9183
9184 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
9185
9186 * c-parser.c (c_parser_objc_protocol_definition): Updated for
9187 change from objc_declare_protocols() to objc_declare_protocol().
9188
9189 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
9190
9191 * config/i386/sse.md (sse4_1): New mode attribute.
9192 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
9193 avx_blend<ssemodesuffix><avxmodesuffix> and
9194 sse4_1_blend<ssemodesuffix> using VF mode iterator.
9195 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
9196 avx_blendv<ssemodesuffix><avxmodesuffix> and
9197 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
9198 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
9199 avx_dp<ssemodesuffix><avxmodesuffix> and
9200 sse4_1_dp<ssemodesuffix> using VF mode iterator.
9201 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
9202 (sse4_1_packusdw): Merge with *avx_packusdw.
9203 (sse4_1_pblendvb): Merge with *avx_pblendvb.
9204 (sse4_1_pblendw): Merge with *avx_pblendw.
9205 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
9206 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
9207 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
9208 VF mode iterator.
9209 (sse4_1_round<ssescalarmodesuffix>): Merge with
9210 *avx_round<ssescalarmodesuffix>.
9211 (aesenc): Merge with *avx_aesenc.
9212 (aesenclast): Merge with *avx_aesenclast.
9213 (aesdec): Merge with *avx_aesdec.
9214 (aesdeclast): Merge with *avx_aesdeclast.
9215 (pclmulqdq): Merge with *pclmulqdq.
9216 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
9217 New predicate.
9218 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
9219
9220 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
9221
9222 PR middle-end/48608
9223 * cfgexpand.c (get_decl_align_unit): Renamed to ...
9224 (align_local_variable): This. Update DECL_ALIGN.
9225 (add_stack_var): Updated.
9226 (expand_one_stack_var): Likewise.
9227
9228 2011-04-14 Richard Guenther <rguenther@suse.de>
9229
9230 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
9231 Remove.
9232 (dse_initialize_block_local_data, dse_leave_block,
9233 record_voperand_set, get_stmt_uid): Likewise.
9234 (dse_possible_dead_store_p): Allow any kind of killing stmt.
9235 (dse_optimize_stmt): Remove voperand set handling code.
9236 Simplify and improve to handle any kind of killing stmt.
9237 (dse_record_phi): Remove.
9238 (dse_enter_block): Simplify.
9239 (tree_ssa_dse): Likewise.
9240 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
9241
9242 2011-04-14 Jan Hubicka <jh@suse.cz>
9243
9244 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
9245 * cgraph.h (struct inline_summary): Move to ipa-inline.h
9246 (cgraph_local_info): Remove inline_summary.
9247 * ipa-cp.c: Include ipa-inline.h.
9248 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
9249 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
9250 accesor.
9251 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
9252 (input_overwrite_node): Do not set inline summary.
9253 (input_node): Do not stream inline summary.
9254 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
9255 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
9256 growth; we do not have inline parameters computed for that anyway.
9257 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
9258 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
9259 (inline_summary_t): New type and VECtor.
9260 (debug_inline_summary, dump_inline_summaries): Declare.
9261 (inline_summary): Use VOCtor.
9262 (estimate_edge_growth): Kill hack computing call stmt size directly.
9263 * lto-section-in.c (lto_section_name): Add inline section.
9264 * ipa-inline-analysis.c: Include lto-streamer.h
9265 (node_removal_hook_holder, node_duplication_hook_holder): New holders
9266 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
9267 (inline_summary_vec): Define.
9268 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
9269 dump_inline_summaries): New functions.
9270 (estimate_function_body_sizes): Properly compute size/time of outgoing
9271 calls.
9272 (compute_inline_parameters): Alloc inline_summary; do not compute
9273 size/time of incomming calls.
9274 (estimate_edge_time): Avoid missing time summary hack.
9275 (inline_read_summary): Read inline summary info.
9276 (inline_write_summary): Write inline summary info.
9277 (inline_free_summary): Free all hooks and inline summary vector.
9278 * lto-streamer.h: Add LTO_section_inline_summary section.
9279 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
9280 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
9281
9282 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
9283
9284 * tree-vectorizer.h (vect_strided_store_supported): Add a
9285 HOST_WIDE_INT argument.
9286 (vect_strided_load_supported): Likewise.
9287 (vect_permute_store_chain): Return void.
9288 (vect_transform_strided_load): Likewise.
9289 (vect_permute_load_chain): Delete.
9290 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
9291 count argument. Check that the count is a power of two.
9292 (vect_strided_load_supported): Likewise.
9293 (vect_permute_store_chain): Return void. Update after above changes.
9294 Assert that the access is supported.
9295 (vect_permute_load_chain): Likewise.
9296 (vect_transform_strided_load): Return void.
9297 * tree-vect-stmts.c (vectorizable_store): Update calls after
9298 above interface changes.
9299 (vectorizable_load): Likewise.
9300 (vect_analyze_stmt): Don't check for strided powers of two here.
9301
9302 2011-04-14 Richard Guenther <rguenther@suse.de>
9303
9304 PR tree-optimization/48590
9305 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
9306 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
9307 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
9308 BUILT_IN_STACK_SAVE.
9309 * tree-ssa-dce.c (propagate_necessity): Handle
9310 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
9311
9312 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
9313
9314 * c-parser.c (c_parser_objc_class_declaration): Updated call to
9315 objc_declare_class.
9316
9317 2011-04-14 Richard Guenther <rguenther@suse.de>
9318
9319 * tree.h (get_object_alignment_1): Declare.
9320 * builtins.c (get_object_alignment_1): Split out worker from ...
9321 (get_object_alignment): ... here.
9322 * fold-const.c (get_pointer_modulus_and_residue): Use
9323 get_object_alignment_1.
9324
9325 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
9326
9327 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
9328 type parameter.
9329 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
9330 parameter. Generalise code to handle arrays as well as vectors.
9331 (vect_setup_realignment): Update accordingly.
9332 * tree-vect-stmts.c (vectorizable_store): Likewise.
9333 (vectorizable_load): Likewise.
9334
9335 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
9336
9337 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
9338 within the per-copy loop.
9339
9340 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
9341
9342 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
9343 in the dump file.
9344
9345 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
9346
9347 * doc/options.texi (Negative): Explicitly mention that the
9348 Negative chain must be circular.
9349
9350 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
9351
9352 * function.h (block_chainon): Declare.
9353 * function.c (block_chainon): Define.
9354
9355 2011-04-14 Anatoly Sokolov <aesok@post.ru>
9356 Eric Weddington <eric.weddington@atmel.com>
9357 Georg-Johann Lay <avr@gjlay.de>
9358
9359 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
9360 New Includes
9361 (avr_init_builtins, avr_expand_builtin,
9362 avr_expand_delay_cycles, avr_expand_unop_builtin,
9363 avr_expand_binop_builtin ): New functions.
9364 (avr_builtin_id): New enum
9365 (struct avr_builtin_description): New struct
9366 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
9367 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
9368
9369 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
9370 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
9371 UNSPECV_DELAY_CYCLES): new enumeration values
9372 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
9373 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
9374 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
9375 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
9376 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
9377 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
9378 "fmulsu"): New insns
9379
9380 * config/avr/avr-c.c: fix line endings
9381 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
9382 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
9383 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
9384 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
9385 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
9386
9387 * doc/extend.texi (AVR Built-in Functions): New node
9388 (Target Builtins): Add documentation of AVR
9389 built-in functions.
9390
9391 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
9392
9393 PR target/44643
9394 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
9395 alone. Error if non-const data has attribute progmem.
9396
9397 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
9398
9399 * tree.h (struct tree_constructor): Include tree_typed instead of
9400 tree_common.
9401 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
9402 TS_TYPED instead of TS_COMMON.
9403
9404 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
9405
9406 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
9407 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
9408 (sse2_psadbw): Merge with *avx_psadbw.
9409 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
9410 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
9411 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
9412 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
9413 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
9414 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
9415 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
9416 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
9417 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
9418 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
9419 (ssse3_palignrti): Merge with *avx_palignrti.
9420
9421 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
9422
9423 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
9424 * tree-ssanames.c (fini_ssanames): VEC_free it.
9425 (make_ssa_name_fn): Update for VECness of free_ssanames.
9426 (release_ssa_name, release_dead_ssa_names): Likewise.
9427 * tree.h (struct tree_ssa_name): Include tree_typed instead of
9428 tree_common.
9429 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
9430 TS_TYPED instead of TS_COMMON.
9431
9432 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
9433
9434 * postreload-gcse.c (gcse_after_reload_main): Add calls to
9435 statistics_counter_event.
9436 * tree-ssa-copyrename.c (stats): Define.
9437 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
9438 statistics_counter_event.
9439 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
9440 (bswap_stats, widen_mul_stats): Define.
9441 (insert_reciprocals): Increment rdivs_inserted.
9442 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
9443 rfuncs_inserted. Add calls to statistics_counter_event.
9444 (execute_cse_sincos_1): Increment inserted.
9445 (execute_cse_sincos): Zeroize sincos_stats. Add call to
9446 statistics_counter_event.
9447 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
9448 of bswap_stats. Add calls to statistics_counter_event.
9449 (convert_mult_to_widen): Increment widen_mults_inserted.
9450 (convert_plusminus_to_widen): Increment maccs_inserted.
9451 (convert_mult_to_fma): Increment fmas_inserted.
9452 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
9453 calls to statistics_counter_event.
9454
9455 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
9456
9457 PR rtl-optimization/48455
9458 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
9459 `temp_costs->mem_cost'.
9460
9461 2011-04-13 Jan Hubicka <jh@suse.cz>
9462
9463 * ipa-inline.h: New file.
9464 * ipa-inline-analysis.c: New file. Broken out of ...
9465 * ipa-inline.c: ... this file; update toplevel comment;
9466 include ipa-inline.h
9467 (inline_summary): Move to ipa-inline.h
9468 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
9469 ipa-inline-analysis.c.
9470 (cgraph_estimate_time_after_inlining): Rename to
9471 estiamte_time_after_inlining; move to ipa-inline-analysis.c
9472 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
9473 to estimate_edge_growth.
9474 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
9475 rename to estimate_size_after_inlining.
9476 (cgraph_mark_inline_edge): Update for new naming convention.
9477 (cgraph_check_inline_limits): Likewise.
9478 (cgraph_edge_badness): Likewise.
9479 (cgraph_decide_recursive_inlining): Likewise.
9480 (cgraph_decide_inlining_of_small_functions): Likewise.
9481 (cgraph_decide_inlining_incrementally): Likewise.
9482 (cgraph_estimate_growth): Rename to estimate_growth; move to
9483 ipa-inline-analysis.c.
9484 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
9485 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
9486 (compute_inline_parameters): Likewise.
9487 (compute_inline_parameters_for_current): Likewise.
9488 (pass_inline_parameters): Likewise.
9489 (inline_indirect_intraprocedural_analysis): Likewise.
9490 (analyze_function): Rename to inline_analyze_function; likewise.
9491 (add_new_function): Move to ipa-inline-analysis.c.
9492 (inline_generate_summary): Likewise.
9493 (inline_read_summary): Likewise.
9494 (inline_write_summary): Likewise.
9495 * Makefile.in (ipa-inline-analysis.c): New file.
9496
9497 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9498
9499 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
9500 * configure: Regenerate.
9501
9502 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
9503
9504 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
9505 instead of tree_common.
9506 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
9507 Likewise.
9508 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
9509 TS_TYPED rather than TS_COMMON.
9510 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
9511
9512 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
9513
9514 PR target/45263
9515 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
9516 r20 around calls of __tablejump_elpm__
9517
9518 2011-04-13 Jakub Jelinek <jakub@redhat.com>
9519
9520 PR middle-end/48591
9521 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
9522 NULL.
9523 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
9524
9525 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
9526
9527 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
9528 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
9529 (cfi_vec): New typedef.
9530 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
9531 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
9532 (cie_cfi_vec): New static variable.
9533 (cie_cfi_head): Delete.
9534 (add_cfi): Accept a cfi_vec * as first argument. All callers and
9535 declaration changed. Use vector rather than list operations.
9536 (new_cfi): Don't initialize the dw_cfi_next field.
9537 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
9538 rather than list operations.
9539 (lookup_cfa): Use vector rather than list operations.
9540 (output_cfis): New argument upto. Accept a cfi_vec rather than
9541 a dw_cfi_ref list head as argument. All callers changed.
9542 Iterate over the vector using upto as a maximum index.
9543 (output_all_cfis): New static function.
9544 (output_fde): Use vector rather than list operations. Use the
9545 new upto argument for output_cfis rather than manipulating a
9546 list.
9547 (dwarf2out_begin_prologue): Change initializations to match
9548 new struct members.
9549 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
9550 from the vector length rather than searching for the end of a list.
9551 Use output_all_cfis.
9552 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
9553
9554 2011-04-13 Nick Clifton <nickc@redhat.com>
9555
9556 * config/rx/rx.md (movmemsi): Do not use this pattern when
9557 volatile pointers are involved.
9558
9559 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
9560
9561 * config/i386/sse.md (pinsrbits): Remove.
9562 (sse2_packsswb): Merge with *avx_packsswb.
9563 (sse2_packssdw): Merge with *avx_packssdw.
9564 (sse2_packuswb): Merge with *avx_packuswb.
9565 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
9566 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
9567 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
9568 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
9569 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
9570 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
9571 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
9572 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
9573 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
9574 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
9575 (sse2_loadld): Merge with *avx_loadld.
9576 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
9577 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
9578 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
9579 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
9580 (vec_concatv2di): Merge with *vec_concatv2di_avx.
9581
9582 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
9583
9584 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
9585 calling TREE_CHAIN.
9586 * print-tree.c (print_node): Likewise.
9587 * tree-inline.c (copy_tree_r): Likewise.
9588 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
9589 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
9590 instead of TS_COMMON.
9591 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
9592 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
9593 (copy_node_stat): Zero TREE_CHAIN only if necessary.
9594 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
9595 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
9596 ...and these...
9597 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
9598 * tree.h: ...here.
9599 (TREE_CHAIN): Check for a TS_COMMON structure.
9600 (TREE_TYPE): Check for a TS_TYPED structure.
9601
9602 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
9603
9604 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
9605 cgraph_get_create_node instead of cgraph_node.
9606
9607 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
9608
9609 * c-parser.c (c_parser_initelt): Updated call to
9610 objc_build_message_expr.
9611 (c_parser_postfix_expression): Likewise.
9612
9613 2011-04-12 Kai Tietz <ktietz@redhat.com>
9614
9615 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
9616 MASK_MS_BITFIELD_LAYOUT bit.
9617
9618 2011-04-12 Jakub Jelinek <jakub@redhat.com>
9619
9620 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
9621 assert it is always true.
9622 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
9623 moves.
9624
9625 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
9626
9627 * c-parser.c (c_lex_one_token): Rewritten conditional used when
9628 compiling Objective-C to be more efficient.
9629
9630 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
9631
9632 * opts-common.c (decode_cmdline_options_to_array): Remove variable
9633 argv_copied.
9634
9635 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
9636
9637 * recog.h, genoutput.c, optabs.c: Revert last patch.
9638
9639 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9640
9641 PR target/48090
9642 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
9643
9644 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
9645
9646 * recog.h (insn_operand_data): Add an "allows_mem" field.
9647 * genoutput.c (output_operand_data): Initialize it.
9648 * optabs.c (maybe_legitimize_operand_same_code): New function.
9649 (maybe_legitimize_operand): Use it when matching the original
9650 op->value.
9651
9652 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
9653
9654 * genpreds.c (process_define_predicate): Move most processing
9655 to gensupport.c. Continue to validate the expression.
9656 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
9657 (process_define_predicate): Move processing to gensupport.c.
9658 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
9659 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
9660 (compute_predicate_codes): Moved from genrecog.c. Add lineno
9661 argument.
9662 (valid_predicate_name_p): New function, split out from old
9663 genpreds.c:process_define_predicate.
9664 (process_define_predicate): New function, combining code from
9665 old genpreds.c and genrecog.c functions.
9666 (process_rtx): Call it for DEFINE_PREDICATE and
9667 DEFINE_SPECIAL_PREDICATE.
9668
9669 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
9670
9671 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
9672 size of a '%A' memory reference.
9673 (T_DREG, T_QREG): New neon_builtin_type_bits.
9674 (arm_init_neon_builtins): Assert that the load and store operands
9675 are neon_struct_operands.
9676 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
9677 (NEON_ARG_MEMORY): New builtin_arg.
9678 (neon_dereference_pointer): New function.
9679 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
9680 Handle NEON_ARG_MEMORY.
9681 (arm_expand_neon_builtin): Update after above interface changes.
9682 Use NEON_ARG_MEMORY for loads and stores.
9683 * config/arm/predicates.md (neon_struct_operand): New predicate.
9684 * config/arm/iterators.md (V_two_elem): Tweak formatting.
9685 (V_three_elem): Use BLKmode for accesses that have no associated mode.
9686 (V_four_elem): Tweak formatting.
9687 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
9688 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
9689 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
9690 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
9691 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
9692 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
9693 (neon_vst4<mode>): Replace pointer operand with a memory operand.
9694 Use %A in the output template.
9695 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
9696 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
9697 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
9698 the width of the memory access. Remove post-increment.
9699 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
9700
9701 2011-04-12 Nick Clifton <nickc@redhat.com>
9702
9703 * config/v850/v850.c (expand_prologue): Do not use the CALLT
9704 instruction for interrupt handlers if the target is the basic V850
9705 architecture.
9706 (expand_epilogue): Likewise.
9707
9708 2011-04-12 Jakub Jelinek <jakub@redhat.com>
9709
9710 PR rtl-optimization/48549
9711 * combine.c (propagate_for_debug): Also stop after BB_END of
9712 this_basic_block. Process LAST and just stop processing after it.
9713 (combine_instructions): If last_combined_insn has been deleted,
9714 set last_combined_insn to its PREV_INSN.
9715
9716 2011-04-12 Richard Guenther <rguenther@suse.de>
9717
9718 PR tree-optimization/46076
9719 * gimple.h (struct gimple_statement_call): Add fntype field.
9720 (gimple_call_fntype): Adjust.
9721 (gimple_call_set_fntype): New function.
9722 * gimple.c (gimple_build_call_1): Set the call function type.
9723 * gimplify.c (gimplify_call_expr): Preserve the function
9724 type the frontend used for the call.
9725 (gimplify_modify_expr): Likewise.
9726 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
9727 function type.
9728 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
9729 function type.
9730 * tree-ssa.c (useless_type_conversion_p): Function pointer
9731 conversions are useless.
9732
9733 2011-04-12 Martin Jambor <mjambor@suse.cz>
9734
9735 * cgraph.h (cgraph_node): Remove function declaration.
9736 (cgraph_create_node): Declare.
9737 (cgraph_get_create_node): Likewise.
9738 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
9739 Updated all callers.
9740 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
9741 the decl does not already exist. Call cgraph_get_create_node instead
9742 of cgraph_node.
9743 (cgraph_get_create_node): New function.
9744 (cgraph_same_body_alias): Update comment.
9745 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
9746 assert it does not return NULL.
9747 (cgraph_update_edges_for_call_stmt): Likewise.
9748 (cgraph_clone_edge): Likewise.
9749 (cgraph_create_virtual_clone): Likewise.
9750 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
9751 instead of cgraph_node.
9752 (cgraph_add_new_function): Call cgraph_create_node or
9753 cgraph_get_create_node instead of cgraph_node.
9754 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
9755 instead of cgraph_node.
9756 (record_eh_tables): Likewise.
9757 (mark_address): Likewise.
9758 (mark_load): Likewise.
9759 (build_cgraph_edges): Call cgraph_get_create_node instead
9760 of cgraph_node.
9761 (rebuild_cgraph_edges): Likewise.
9762 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
9763 instead of cgraph_node.
9764 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
9765 cgraph_node.
9766 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
9767 cgraph_create_node instead of cgraph_node.
9768 * c-decl.c (finish_function): Call cgraph_get_create_node instead
9769 of cgraph_node.
9770 * lto-cgraph.c (input_node): Likewise.
9771 * lto-streamer-in.c (input_function): Likewise.
9772 * varasm.c (mark_decl_referenced): Likewise.
9773 (assemble_alias): Likewise.
9774
9775 2011-04-12 Martin Jambor <mjambor@suse.cz>
9776
9777 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
9778 instead of cgraph_node and assert it does not return NULL.
9779 * lto-streamer-in.c (lto_read_body): Likewise.
9780 * omp-low.c (new_omp_context): Likewise.
9781 (create_task_copyfn): Likewise.
9782 * tree-emutls.c (lower_emutls_function_body): Likewise.
9783 * matrix-reorg.c (transform_allocation_sites): Likewise.
9784
9785 2011-04-12 Jakub Jelinek <jakub@redhat.com>
9786
9787 PR c/48552
9788 * c-typeck.c (build_asm_expr): Error out on attempts to use
9789 void type outputs or inputs for constraints that allow reg or
9790 don't allow memory.
9791
9792 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
9793 Richard Earnshaw <rearnsha@arm.com>
9794
9795 PR target/48250
9796 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
9797 to use sign-magnitude offsets. Reject unsupported unaligned
9798 cases. Add detailed description in comments.
9799 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
9800 condition from TARGET_32BIT to TARGET_ARM.
9801
9802 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
9803
9804 * tree.h (struct typed_tree): New.
9805 (struct tree_common): Include it instead of tree_base.
9806 (TREE_TYPE): Update for new location of type field.
9807 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
9808 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
9809 (union tree_node): Add typed field.
9810 * treestruct.def (TS_TYPED): New.
9811 * lto-streamer.c (check_handled_ts_structures): Handle it.
9812 * tree.c (MARK_TS_TYPED): New macro.
9813 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
9814
9815 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
9816
9817 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
9818 (force_nonfallthru): Do not alter the loop nest if no basic block
9819 was created.
9820
9821 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
9822
9823 * config/i386/sse.md (VI): New mode iterator.
9824 (SSEMODEI): Remove.
9825 (AVX256MODEI): Ditto.
9826 (AVXMODEF4P): Ditto.
9827 (avxvecpsmode): Ditto.
9828 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
9829 (sse2_andnot<mode>3): New expander.
9830 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
9831 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
9832 (<any_logic:code><mode>3): Use VI mode iterator.
9833 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
9834 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
9835 (*andnottf3): Handle AVX three-operand constraints.
9836 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
9837
9838 2011-04-11 Joseph Myers <joseph@codesourcery.com>
9839 Robert Millan <rmh@gnu.org>
9840
9841 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
9842 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
9843 GNU_USER_DYNAMIC_LINKER64): Define.
9844 (REG_NAME): Don't undefine.
9845 (MD_UNWIND_SUPPORT): Undefine.
9846 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
9847 (REG_NAME): Don't undefine.
9848 (MD_UNWIND_SUPPORT): Undefine.
9849 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
9850
9851 2011-04-11 Joseph Myers <joseph@codesourcery.com>
9852
9853 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
9854 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
9855
9856 2011-04-11 Xinliang David Li <davidxl@google.com>
9857
9858 * value-profile.c (check_ic_target): New function.
9859 (gimple_ic_transform): Sanity check indirect call target.
9860 * gimple-low.c (gimple_check_call_args): Interface change.
9861 (gimple_check_call_matching_types): New function.
9862 * tree-inline.c (tree_can_inline_p): Call new function.
9863
9864 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
9865
9866 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
9867 tree-pretty-print.h & realmpfr.h.
9868
9869 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
9870
9871 PR middle-end/48464
9872 * ira.c (setup_pressure_classes): Fix typo in loop condition.
9873 (setup_allocno_and_important_classes): Ditto.
9874
9875 2011-04-11 Joseph Myers <joseph@codesourcery.com>
9876
9877 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
9878 GNU_USER_DYNAMIC_LINKER.
9879 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
9880 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9881 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
9882 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
9883 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
9884 GNU_USER_TARGET_OS_CPP_BUILTINS.
9885 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
9886 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9887 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
9888 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9889 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
9890 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
9891 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
9892 GNU_USER_TARGET_OS_CPP_BUILTINS.
9893 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9894 GNU_USER_DYNAMIC_LINKER.
9895 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
9896 GNU_USER_TARGET_OS_CPP_BUILTINS.
9897 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
9898 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9899 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
9900 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9901 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
9902 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
9903 GNU_USER_DYNAMIC_LINKER64): Remove.
9904 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
9905 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9906 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9907 GNU_USER_DYNAMIC_LINKER.
9908 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
9909 GNU_USER_TARGET_OS_CPP_BUILTINS.
9910 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
9911 GNU_USER_TARGET_OS_CPP_BUILTINS.
9912 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
9913 to GNU_USER_TARGET_OS_CPP_BUILTINS.
9914 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
9915 GNU_USER_TARGET_OS_CPP_BUILTINS.
9916 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
9917 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
9918 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
9919 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
9920 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9921 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9922 GNU_USER_DYNAMIC_LINKER.
9923 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
9924 GNU_USER_TARGET_OS_CPP_BUILTINS.
9925 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
9926 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9927 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9928 GNU_USER_DYNAMIC_LINKER.
9929 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
9930 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9931 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
9932 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9933 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9934 GNU_USER_DYNAMIC_LINKER.
9935 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
9936 GNU_USER_DYNAMIC_LINKERN32.
9937 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
9938 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
9939 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
9940 GNU_USER_DYNAMIC_LINKER32.
9941 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
9942 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9943 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9944 GNU_USER_DYNAMIC_LINKER.
9945 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
9946 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9947 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
9948 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9949 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
9950 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
9951 GNU_USER_DYNAMIC_LINKER32.
9952 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
9953 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
9954 GNU_USER_DYNAMIC_LINKER.
9955 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
9956 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9957 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
9958 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
9959 GNU_USER_DYNAMIC_LINKER64.
9960 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
9961 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9962 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9963 GNU_USER_DYNAMIC_LINKER.
9964 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
9965 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9966 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9967 GNU_USER_DYNAMIC_LINKER.
9968 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
9969 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9970 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
9971 GNU_USER_DYNAMIC_LINKER32.
9972 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
9973 GNU_USER_DYNAMIC_LINKER64.
9974 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
9975 GNU_USER_DYNAMIC_LINKER64.
9976 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
9977 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9978 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
9979 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9980 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
9981
9982 2011-04-11 Joseph Myers <joseph@codesourcery.com>
9983
9984 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
9985 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
9986 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
9987 GNU_USER_DYNAMIC_LINKER.
9988 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
9989 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
9990 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
9991 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
9992 GNU_USER_DYNAMIC_LINKER64.
9993 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
9994 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
9995 GNU_USER_LINK_EMULATION.
9996 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
9997 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
9998 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
9999 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
10000 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
10001 CPP_SPEC, CC1_SPEC): Remove.
10002 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
10003 (GNU_USER_DYNAMIC_LINKER): Define.
10004 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
10005 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
10006 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
10007 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
10008 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
10009 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
10010 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
10011 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
10012 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
10013 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
10014 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
10015 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
10016 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
10017 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
10018 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
10019 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
10020 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
10021 GNU_USER_DYNAMIC_LINKER.
10022 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
10023 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
10024 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
10025 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
10026 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
10027 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
10028 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
10029 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
10030 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
10031 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
10032
10033 2011-04-11 Kai Tietz <ktietz@redhat.com>
10034
10035 PR target/9601
10036 PR target/11772
10037 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
10038 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
10039 comment.
10040 (ix86_is_msabi_thiscall): Removed.
10041 (ix86_is_type_thiscall): Likewise.
10042 (ix86_get_callcvt): New function.
10043 (ix86_comp_type_attributes): Simplify check.
10044 (ix86_function_regparm): Use ix86_get_callcvt for calling
10045 convention attribute checks.
10046 (ix86_return_pops_args): Likewise.
10047 (ix86_static_chain): Likewise.
10048 (x86_this_parameter): Likewise.
10049 (x86_output_mi_thunk): Likewise.
10050 (ix86_function_type_abi): Optimize check for types without attributes.
10051 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
10052 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
10053 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
10054 by flag-values.
10055 (IX86_BASE_CALLCVT): Helper macro.
10056 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
10057 Use ix86_get_callcvt for calling convention attribute checks and avoid
10058 symbol-decoration for stdcall in TARGET_RTD case.
10059 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
10060 Likewise.
10061 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
10062 for declaration.
10063
10064 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
10065
10066 * config/i386/sse.md (VI_128): New mode iterator.
10067 (VI12_128): Rename from SSEMODE12.
10068 (VI14_128): Rename from SSEMODE14.
10069 (VI124_128): New mode iterator.
10070 (VI24_128): Rename from SSEMODE248.
10071 (VI248_128): Rename from SSEMODE248.
10072 (SSEMODE124C8): Remove.
10073 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
10074 (*sse2_<plusminus_insn><mode>3): Merge with
10075 *avx_<plusminus_insn><mode>3.
10076 (*mulv8hi3): Merge with *avx_mulv8hi3.
10077 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
10078 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
10079 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
10080 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
10081 (ashr<mode>3): Merge with *avx_ashr<mode>3.
10082 (lshr<mode>3): Merge with *avx_lshr<mode>3.
10083 (ashl<mode>3): Merge with *avx_ashl<mode>3.
10084 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
10085 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
10086 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
10087 (*<smaxmin:code>v8hi3): Ditto.
10088 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
10089 (*<smaxmin:code>v16qi3): Ditto.
10090 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
10091 (*sse2_eq<mode>3): Ditto.
10092 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
10093 (*sse2_gt<mode>3): Ditto.
10094 (vcondv2di): Split out of vcond<mode>.
10095 (vconduv2di): Split out of vcondu<mode>.
10096
10097 2011-04-11 Richard Guenther <rguenther@suse.de>
10098
10099 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
10100 before calling tree_low_cst.
10101
10102 2011-04-11 Richard Guenther <rguenther@suse.de>
10103
10104 * stor-layout.c (layout_type): Compute all array index size operations
10105 in the original type.
10106 (initialize_sizetypes): Add comment.
10107 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
10108
10109 2011-04-11 Joseph Myers <joseph@codesourcery.com>
10110
10111 * common.opt (Tbss=, Tdata=, Ttext=): New options.
10112
10113 2011-04-11 Martin Jambor <mjambor@suse.cz>
10114
10115 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
10116 of cgraph_node, handle NULL return value.
10117 (cgraph_global_info): Likewise.
10118 (cgraph_rtl_info): Likewise.
10119 * tree-inline.c (estimate_num_insns): Likewise.
10120 * gimplify.c (unshare_body): Likewise.
10121 (unvisit_body): Likewise.
10122 (gimplify_body): Likewise.
10123 * predict.c (optimize_function_for_size_p): Likewise.
10124 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
10125 (call_may_clobber_ref_p_1): Likewise.
10126 * varasm.c (function_section_1): Likewise.
10127 (assemble_start_function): Likewise.
10128
10129 2011-04-11 Martin Jambor <mjambor@suse.cz>
10130
10131 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
10132 of cgraph_node.
10133 * final.c (rest_of_clean_state): Likewise.
10134 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
10135 * passes.c (pass_init_dump_file): Likewise.
10136 (execute_all_ipa_transforms): Likewise.
10137 (function_called_by_processed_nodes_p): Likewise.
10138 * predict.c (maybe_hot_frequency_p): Likewise.
10139 (probably_never_executed_bb_p): Likewise.
10140 (compute_function_frequency): Likewise.
10141 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
10142 (unnest_nesting_tree_1): Likewise.
10143 (lower_nested_functions): Likewise.
10144 * tree-optimize.c (execute_fixup_cfg): Likewise.
10145 (tree_rest_of_compilation): Likewise.
10146 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
10147 * tree-sra.c (ipa_early_sra): Likewise.
10148 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
10149 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
10150 * ipa.c (record_cdtor_fn): Likewise.
10151 * ipa-inline.c (cgraph_early_inlining): Likewise.
10152 (compute_inline_parameters_for_current): Likewise.
10153 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
10154 * ipa-pure-const.c (local_pure_const): Likewise.
10155 * ipa-split.c (split_function): Likewise.
10156 (execute_split_functions): Likewise.
10157 * cgraphbuild.c (build_cgraph_edges): Likewise.
10158 (rebuild_cgraph_edges): Likewise.
10159 (cgraph_rebuild_references): Likewise.
10160 (remove_cgraph_callee_edges): Likewise.
10161 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
10162 (verify_cgraph_node): Likewise.
10163 (cgraph_analyze_functions): Likewise.
10164 (cgraph_preserve_function_body_p): Likewise.
10165 (save_inline_function_body): Likewise.
10166 (save_inline_function_body): Likewise.
10167 * tree-inline.c (copy_bb): Likewise.
10168 (optimize_inline_calls): Likewise.
10169
10170 2011-04-11 Martin Jambor <mjambor@suse.cz>
10171
10172 PR tree-optimization/48195
10173 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
10174 ipa_check_create_edge_args.
10175 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
10176 ipa_check_create_edge_args.
10177 * ipa-inline.c (inline_generate_summary): Do not call
10178 ipa_check_create_node_params and ipa_check_create_edge_args.
10179 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
10180 ipa_check_create_edge_args.
10181
10182 2011-04-09 Anatoly Sokolov <aesok@post.ru>
10183
10184 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
10185 instead of loop.
10186 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10187 * function.c (record_hard_reg_sets): Likewise.
10188 * ira.c (compute_regs_asm_clobbered): Likewise.
10189 * sched-deps.c (sched_analyze_1): Likewise.
10190 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
10191
10192 2011-04-09 Xinliang David Li <davidxl@google.com>
10193
10194 PR tree-optimization/PR48484
10195 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
10196 has_valid_pred lazily
10197
10198 2011-04-09 Duncan Sands <baldrick@free.fr>
10199
10200 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
10201
10202 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
10203
10204 * combine.c (combine_validate_cost): Adjust comments. Set registered
10205 cost of I0 to zero at the end, if any.
10206
10207 2011-04-08 Xinliang David Li <davidxl@google.com>
10208
10209 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
10210 to insane profile data.
10211
10212 2011-04-08 Xinliang David Li <davidxl@google.com>
10213
10214 * ipa-cp.c (ipcp_update_profiling): Correct
10215 negative scale factor due to insane profile data.
10216
10217 2011-04-08 Xinliang David Li <davidxl@google.com>
10218
10219 * final.c (dump_basic_block_info): New function.
10220 (final): Dump basic block.
10221 (final_scan_insn): Remove old dump.
10222
10223 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
10224
10225 PR target/47829
10226 * config.gcc (i386-*-freebsd): Disable unwind table generation for
10227 crtbegin/crtend.
10228
10229 2011-04-08 Michael Matz <matz@suse.de>
10230
10231 PR middle-end/48389
10232 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
10233 functions.
10234 (rebuild_jump_labels): Call rebuild_jump_labels_1.
10235 * rtl.h (rebuild_jump_labels_chain): Declare.
10236 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
10237 insns inserted on edges.
10238
10239 2011-04-08 Joseph Myers <joseph@codesourcery.com>
10240
10241 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
10242 * config/arm/arm-arches.def: New.
10243 * config/arm/arm-opts.h: New.
10244 * config/arm/genopt.sh: New.
10245 * config/arm/arm-tables.opt: New (generated).
10246 * config/arm/arm.c (arm_handle_option, arm_target_help,
10247 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
10248 (all_architectures): Get most table contents from arm-arches.def.
10249 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
10250 arm_selected_tune here.
10251 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
10252 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
10253 (march=, mcpu=, mtune=): Use Enum and Var.
10254 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
10255 (arm.o): Update dependencies.
10256
10257 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
10258
10259 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
10260 of header_file.
10261 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
10262 (write_typed_alloc_defns): Likewise.
10263 (main): Calls write_typed_alloc_defns with output_header.
10264
10265 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
10266
10267 PR inline-asm/48435
10268 * ira-color.c (setup_profitable_hard_regs): Add comments.
10269 Don't take prohibited hard regs into account.
10270 (setup_conflict_profitable_regs): Rename to
10271 get_conflict_profitable_regs.
10272 (check_hard_reg_p): Check prohibited hard regs.
10273
10274 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
10275
10276 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
10277 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
10278 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
10279
10280 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10281
10282 PR target/48366
10283 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
10284 move from floating point to shift amount register.
10285 (emit_move_sequence): Remove secondary reload support for floating
10286 point to shift amount amount register copies.
10287 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
10288 amount register copies.
10289 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
10290 register, return false if mode isn't a scalar integer mode.
10291 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
10292
10293 2011-04-08 Richard Guenther <rguenther@suse.de>
10294
10295 * gimple.c (gimple_call_flags): Remove kludge.
10296
10297 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
10298
10299 * sel-sched.c (sel_region_init): Move call to
10300 sel_setup_region_sched_flags after setup_current_loop_nest.
10301
10302 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
10303
10304 PR rtl-optimization/48272
10305 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
10306 init_insn_reg_pressure_info. Adjust a caller.
10307 * sched-int.h (init_insn_reg_pressure_info): Declare.
10308 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
10309 when sched-pressure is enabled.
10310
10311 2011-04-08 Richard Guenther <rguenther@suse.de>
10312
10313 * gimple.c (gimple_set_modified): Do not queue calls to
10314 MODIFIED_NORETURN_CALLS here ...
10315 * tree-ssa-operands.c (update_stmt_operands): ... but here.
10316
10317 2011-04-08 Richard Guenther <rguenther@suse.de>
10318
10319 PR lto/48467
10320 * toplev.c (lang_dependent_init): Do not open asm_out_file
10321 in WPA mode, nor perform debug machinery initialization.
10322 (finalize): Do not unlink asm_out_file in WPA mode.
10323
10324 2011-04-08 Richard Guenther <rguenther@suse.de>
10325
10326 * gimple.h (gimple_call_fntype): New function.
10327 (gimple_call_return_type): Use it.
10328 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
10329 * gimple-low.c (gimple_check_call_args): Likewise.
10330 * gimple.c (gimple_call_flags): Likewise.
10331 (gimple_call_arg_flags): Likewise.
10332 (gimple_call_return_flags): Likewise.
10333 * tree-cfg.c (verify_gimple_call): Likewise.
10334 (do_warn_unused_result): Likewise.
10335 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
10336 * value-prof.c (gimple_ic_transform): Fix fndecl check.
10337
10338 2011-04-08 Dmitry Melnik <dm@ispras.ru>
10339
10340 PR rtl-optimization/48235
10341 * sel-sched.c (code_motion_process_successors): Recompute the last
10342 insn in basic block if control flow changed.
10343 (code_motion_path_driver): Ditto. Recompute the first insn as well.
10344 Update condition for ilist_remove.
10345
10346 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
10347
10348 PR rtl-optimization/48302
10349 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
10350 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
10351 it to record added preheader blocks.
10352 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
10353 on to sel_add_loop_preheaders.
10354 (sel_region_init): Move call to setup_current_loop_nest after
10355 sel_init_bbs.
10356
10357 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
10358
10359 PR target/48273
10360 * cfgloop.h (loop_has_exit_edges): New helper.
10361 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
10362 non-clonable.
10363 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
10364 that have no exit edges.
10365
10366 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
10367
10368 PR rtl-optimization/48442
10369 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
10370 all callers. Adjust assert.
10371
10372 2011-04-08 Jakub Jelinek <jakub@redhat.com>
10373
10374 PR tree-optimization/48377
10375 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
10376 is_packed to true even for types with smaller TYPE_ALIGN than
10377 TYPE_SIZE.
10378
10379 2011-04-08 Richard Guenther <rguenther@suse.de>
10380
10381 PR bootstrap/48513
10382 * doc/tm.texi: Re-generate.
10383
10384 2011-04-08 Wei Guozhi <carrot@google.com>
10385
10386 PR target/47855
10387 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
10388 * config/arm/arm.c (arm_attr_length_push_multi): New function.
10389 * config/arm/arm.md (*push_multi): Change the length computation to
10390 call a C function.
10391
10392 2011-04-08 Anatoly Sokolov <aesok@post.ru>
10393
10394 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
10395 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
10396 * doc/tm.texi: Regenerate.
10397 * system.h (ASM_OUTPUT_BSS): Poison.
10398 * varasm.c (asm_output_bss): Remove function.
10399 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
10400
10401 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
10402 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
10403 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
10404 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
10405 Likewise.
10406 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
10407 Likewise.
10408 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
10409 Likewise.
10410 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
10411
10412 2011-04-07 Joseph Myers <joseph@codesourcery.com>
10413
10414 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
10415 EnumValue lines.
10416
10417 2011-04-07 Joseph Myers <joseph@codesourcery.com>
10418
10419 * config/m68k/m68k.c (m68k_handle_option): Don't handle
10420 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
10421 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
10422 OPT_mcpu32.
10423 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
10424 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
10425 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
10426 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
10427 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
10428 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
10429 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
10430 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
10431 options. Don't map other m68k options manually. Don't handle
10432 old-style options as canonical.
10433 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
10434 * doc/install.texi (m68k-*-*): Document binutils version requirement.
10435
10436 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
10437
10438 * basic-block.h (force_nonfallthru): Move to...
10439 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
10440 (force_nonfallthru): ...here.
10441 * cfghooks.c (force_nonfallthru): New function.
10442 * cfgrtl.c (force_nonfallthru): Rename into...
10443 (rtl_force_nonfallthru): ...this.
10444 (commit_one_edge_insertion): Do not set AUX field.
10445 (commit_edge_insertions): Do not discover new basic blocks.
10446 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
10447 (cfg_layout_rtl_cfg_hooks): Likewise.
10448 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
10449 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
10450 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
10451
10452 2011-04-07 Anatoly Sokolov <aesok@post.ru>
10453
10454 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
10455 Remove macros.
10456
10457 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
10458
10459 * config/i386/sse.md: Update copyright year.
10460 (avxcvtvecmode): Remove.
10461 (sse_movhlps): Merge with *avx_movhlps.
10462 (sse_movlhps): Merge with *avx_movlhps.
10463 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
10464 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
10465 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
10466 (sse_loadhps): Merge with *avx_loadhps.
10467 (sse_storelps): Merge with *avx_storelps.
10468 (sse_loadlps): Merge with *avx_loadlps.
10469 (sse_movss): Merge with *avx_movss.
10470 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
10471 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
10472 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
10473 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
10474 (vec_set<mode>_0): Ditto.
10475 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
10476 (sse4_1_insertps): Merge with *avx_insertps.
10477 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
10478 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
10479 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
10480 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
10481 (sse2_storehpd): Merge with *avx_storehpd.
10482 (sse2_loadhpd): Merge with *avx_loadhpd.
10483 (sse2_loadlpd): Merge with *avx_loadlpd.
10484 (sse2_movsd): Merge with *avx_movsd.
10485 (*vec_concatv2df): Merge with *vec_concatv2df.
10486
10487 2011-04-07 Jakub Jelinek <jakub@redhat.com>
10488
10489 PR debug/48343
10490 * combine.c (combine_instructions): Add last_combined_insn,
10491 update it if insn is after it, pass it to all try_combine calls.
10492 (try_combine): Add last_combined_insn parameter, pass it instead of
10493 i3 to propagate_for_debug.
10494
10495 2011-04-07 Nick Clifton <nickc@redhat.com>
10496
10497 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
10498 to handle MDR <-> data register transfers.
10499 (movhi_internal): Likewise.
10500
10501 2011-04-07 Alan Modra <amodra@gmail.com>
10502
10503 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
10504 previous stack info.
10505
10506 2011-04-07 Tom de Vries <tom@codesourcery.com>
10507
10508 PR target/43920
10509 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
10510 flow_find_cross_jump. Swap variables to implement backward replacement.
10511 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
10512
10513 2011-04-07 Tom de Vries <tom@codesourcery.com>
10514
10515 PR target/43920
10516 * cfgcleanup.c (walk_to_nondebug_insn): New function.
10517 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
10518 and bb2.
10519 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
10520 src1 or src2. Redirect edges to the last basic block. Update
10521 frequency and count on multiple basic blocks in case of fallthru.
10522
10523 2011-04-07 Tom de Vries <tom@codesourcery.com>
10524
10525 PR target/43920
10526 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
10527 function.
10528 (old_insns_match_p): Change return type. Replace return false/true
10529 with return dir_none/dir_both. Use can_replace_by.
10530 (flow_find_cross_jump): Add dir_p parameter. Init replacement
10531 direction from dir_p. Register replacement direction in dir, last_dir
10532 and afterlast_dir. Handle new return type of old_insns_match_p using
10533 merge_dir. Return replacement direction in dir_p.
10534 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
10535 return type of old_insns_match_p.
10536 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
10537 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
10538 flow_find_cross_jump.
10539 * basic-block.h (enum replace_direction): New type.
10540 (flow_find_cross_jump): Add parameter to declaration.
10541
10542 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
10543
10544 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
10545 (AVXMODEDCVTPS2DQ): Ditto.
10546 (VEC_FLOAT_MODE): Ditto.
10547 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
10548 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
10549 (<any_logic:code><mode>3): Use VF mode iterator.
10550 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
10551 Use VF mode iterator.
10552 (copysign<mode>3): Use VF mode iterator.
10553 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
10554 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
10555 (*<any_logic:code><MODEF:mode>3): Merge with
10556 *avx_<any_logic:code><MODEF:mode>3.
10557 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
10558 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
10559 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
10560 (avx_cvtdq2ps<avxmodesuffix>): Remove.
10561 (sse2_cvtdq2ps): Use %v modifier.
10562 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
10563 (avx_cvtps2dq<avxmodesuffix>): Remove.
10564 (sse2_cvtps2dq): Use %v modifier.
10565 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
10566 (avx_cvttps2dq<avxmodesuffix>): Remove.
10567 (sse2_cvttps2dq): Use %v modifier.
10568 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
10569 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
10570 (sse2_cvtsd2siq): Fix insn template.
10571 (sse2_cvtsd2siq_2): Ditto.
10572 (sse2_cvttsd2siq): Ditto.
10573 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
10574 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
10575
10576 2011-04-06 Joseph Myers <joseph@codesourcery.com>
10577
10578 * gcov-io.c: Use GCC Runtime Library Exception.
10579
10580 2011-04-06 Jakub Jelinek <jakub@redhat.com>
10581
10582 PR debug/48466
10583 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
10584 as base_reg whatever register reg has been eliminated to, instead
10585 of hardcoding STACK_POINTER_REGNUM.
10586
10587 2011-04-06 Joseph Myers <joseph@codesourcery.com>
10588
10589 * doc/tm.texi.in: Document C target hooks as separate from general
10590 target hooks.
10591 * doc/tm.texi: Regenerate.
10592 * genhooks.c (struct hook_desc): Add docname field.
10593 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
10594 docname field.
10595 (hook_array): Include c-target.def.
10596 (emit_documentation): Use docname field in output.
10597 (emit_init_macros): Take docname argument. Only emit definitions
10598 for hooks matching docname.
10599 (main): Expect additional arguments in all cases. Pass argument
10600 to emit_init_macros.
10601 * target.def: Move initial macro definitions and comments to
10602 target-hooks-macros.h.
10603 (gcc_targetcm): Move to c-family/c-target.def.
10604 * target.h (targetcm): Move declaration to c-family/c-target.h.
10605 * targhooks.c (default_handle_c_option): Move to
10606 c-family/c-opts.c.
10607 * targhooks.h (default_handle_c_option): Move declaration to
10608 c-family/c-common.h.
10609 * target-hooks-macros.h: New file.
10610 * config.gcc (target_has_targetcm): Define and use to add to
10611 c_target_objs and cxx_target_objs.
10612 * config/default-c.c: New file.
10613 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
10614 of target.h and target-def.h.
10615 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
10616 (darwin_objc_construct_string, darwin_cfstring_ref_p,
10617 darwin_check_cfstring_format_arg): Make static.
10618 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
10619 TARGET_STRING_OBJECT_REF_TYPE_P,
10620 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
10621 * config/darwin-protos.h (darwin_objc_construct_string,
10622 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
10623 declare.
10624 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
10625 TARGET_STRING_OBJECT_REF_TYPE_P,
10626 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
10627 * config/t-darwin (darwin-c.o): Update dependencies.
10628 * system.h (TARGET_HAS_TARGETCM): Poison.
10629 * Makefile.in (TARGET_H): Update.
10630 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
10631 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
10632 (default-c.o): New target.
10633 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
10634 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
10635 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
10636 c-target.def.
10637 (build/genhooks.o): Update dependencies.
10638
10639 2011-04-06 Richard Guenther <rguenther@suse.de>
10640
10641 * ipa-inline.c (enum inlining_mode): Remove.
10642 (cgraph_flatten): Use some other token.
10643 (cgraph_edge_early_inlinable_p): New function, split out from ...
10644 (cgraph_perform_always_inlining): New function, split out from ...
10645 (cgraph_decide_inlining_incrementally): ... here.
10646 (cgraph_mark_inline_edge): Adjust.
10647 (cgraph_early_inlining): Re-structure.
10648 (pass_early_inline): Require SSA form.
10649
10650 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
10651 Julian Brown <julian@codesourcery.com>
10652 Mark Shinwell <shinwell@codesourcery.com>
10653
10654 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
10655 LO_REGS only for Thumb-1.
10656 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
10657 be used in short instructions when optimising for size on Thumb-2.
10658
10659 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
10660
10661 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
10662 associated with user returns to be preserved.
10663
10664 2011-04-06 Tristan Gingold <gingold@adacore.com>
10665
10666 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
10667 symbol_queue_size, DBXOUT_DECR_NESTING,
10668 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
10669 if XCOFF_DEBUGGING_INFO.
10670
10671 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
10672
10673 * config/i386/i386.md (attribute isa): New.
10674 (attribute enabled): New.
10675 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
10676 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
10677 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
10678 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
10679 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
10680 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
10681 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
10682 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
10683
10684 * config/i386/sse.md (VF): New mode iterator.
10685 (VF1): Ditto.
10686 (VF2): Ditto.
10687 (VF_128): Ditto.
10688 (SSEMODEF4): Remove.
10689 (attribute sse): Handle V8SF and V4DF modes.
10690 (<absneg:code><mode>2): Use VF mode iterator.
10691 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
10692 mode iterator.
10693 (<plusminus_insn><mode>3): Use VF mode iterator.
10694 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
10695 Use VF mode iterator.
10696 (<sse>_vm<plusminus_insn><mode>3): Merge with
10697 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
10698 (mul<mode>3): Use VF mode iterator.
10699 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
10700 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
10701 mode iterator.
10702 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
10703 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
10704 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
10705 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
10706 mode iterator.
10707 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
10708 Use VF1 mode iterator.
10709 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
10710 (sqrt<VF2:mode>2): New expander.
10711 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
10712 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
10713 and sqrtv2df2. Use VF mode iterator.
10714 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
10715 mode iterator.
10716 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
10717 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
10718 Use VF1 mode iterator.
10719 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
10720 (<smaxmin:code><mode>3): Use VF mode iterator.
10721 (*<smaxmin:code><mode>3_finite): Merge with
10722 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
10723 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
10724 (<sse>_vm<smaxmin:code><mode>2): Merge with
10725 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
10726 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
10727 mode iterator.
10728 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
10729 mode iterator.
10730 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
10731 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
10732 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
10733 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
10734 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
10735 VF mode iterator.
10736 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
10737 Use VF_128 mode iterator.
10738 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
10739 mode iterator.
10740 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
10741 VF_128 mode iterator.
10742 (vcond<mode>): Use VF mode iterator.
10743 * config/i386/predicates.md (sse_comparison_operator): Merge with
10744 avx_comparison_float_operator. Do not declare as special_predicate.
10745 * config/i386/i386.c (struct builtin_description): Update for renamed
10746 compare patterns.
10747 (ix86_expand_args_builtin): Ditto.
10748 (ix86_expand_sse_compare_mask): Ditto.
10749
10750 2011-04-06 Richard Guenther <rguenther@suse.de>
10751
10752 * tree-inline.c (estimate_num_insns): For calls simply account
10753 for all passed arguments and a used return value.
10754
10755 2011-04-06 Richard Guenther <rguenther@suse.de>
10756
10757 PR tree-optimization/47663
10758 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
10759 call_stmt_time fields.
10760 (cgraph_edge_inlinable_p): Declare.
10761 (cgraph_edge_recursive_p): New inline function.
10762 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
10763 (cgraph_clone_edge): Copy it.
10764 * ipa-inline.c (cgraph_estimate_edge_time): New function.
10765 Account for call stmt time.
10766 (cgraph_estimate_time_after_inlining): Take edge argument.
10767 (cgraph_estimate_edge_growth): Account call stmt size.
10768 (cgraph_estimate_size_after_inlining): Take edge argument.
10769 (cgraph_mark_inline_edge): Adjust.
10770 (cgraph_check_inline_limits): Likewise.
10771 (cgraph_recursive_inlining_p): Remove.
10772 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
10773 (cgraph_decide_recursive_inlining): Take edge argument and
10774 adjust.
10775 (cgraph_decide_inlining_of_small_functions): Do not avoid
10776 diags for recursive inlining here.
10777 (cgraph_flatten): Adjust.
10778 (cgraph_decide_inlining_incrementally): Likewise.
10779 (estimate_function_body_sizes): Remove call cost handling.
10780 (compute_inline_parameters): Initialize caller edge call costs.
10781 (cgraph_estimate_edge_growth): New function.
10782 (cgraph_estimate_growth): Use it.
10783 (cgraph_edge_badness): Likewise.
10784 (cgraph_check_inline_limits): Take an edge argument.
10785 (cgraph_decide_inlining_of_small_functions): Adjust.
10786 (cgraph_decide_inlining): Likewise.
10787 * tree-inline.c (estimate_num_insns): Only account for call
10788 return value if it is used.
10789 (expand_call_inline): Avoid diagnostics on recursive inline
10790 functions here.
10791 * lto-cgraph.c (lto_output_edge): Output edge call costs.
10792 (input_edge): Input edge call costs.
10793
10794 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10795
10796 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
10797
10798 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
10799
10800 * doc/invoke.texi (Spec Files): Fix typo.
10801
10802 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
10803
10804 * profile.c (branch_prob): Move declaration of local variable. Remove
10805 obsolete ??? comment. Expand the location explicitly instead of using
10806 the LOCATION_FILE and LOCATION_LINE macros.
10807
10808 2011-04-06 Wei Guozhi <carrot@google.com>
10809
10810 PR target/47855
10811 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
10812 (arm_cond_branch): Likewise.
10813 (arm_cond_branch_reversed): Likewise.
10814 (arm_jump): Likewise.
10815 (push_multi): Likewise.
10816 * config/arm/constraints.md (Py): New constraint.
10817
10818 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10819
10820 PR bootstrap/48471
10821 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
10822 Move these...
10823 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
10824 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
10825 #ifdef DBX_DEBUGGING_INFO.
10826
10827 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
10828
10829 PR bootstrap/48403
10830 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
10831 if old and new states differ.
10832
10833 2011-04-05 Joseph Myers <joseph@codesourcery.com>
10834
10835 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
10836 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
10837 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
10838 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
10839 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
10840 mcfv4e): Use Alias.
10841 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
10842 ColdFire options to -mcpu= options.
10843
10844 2011-04-05 Jeff Law <law@redhat.com>
10845
10846 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
10847 check if BB is a successor of LOOP->header and return
10848 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
10849
10850 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
10851
10852 * cprop.c (struct reg_use): Remove.
10853 (reg_use_table): Make an array of RTX.
10854 (find_used_regs, constprop_register, local_cprop_pass,
10855 bypass_block): Simplify users of reg_use_table.
10856 (cprop_insn): Likewise. Iterate if copy propagation succeeded
10857 on one of the uses found by find_used_regs.
10858
10859 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10860
10861 PR bootstrap/48469
10862 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
10863 declaration.
10864
10865 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10866
10867 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
10868 as an rtx.
10869 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
10870
10871 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
10872
10873 PR middle-end/48441
10874 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
10875
10876 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10877
10878 * combine.c: Include obstack.h.
10879 (struct insn_link): Define.
10880 (uid_log_links): Adjust type.
10881 (FOR_EACH_LOG_LINK): New macro.
10882 (insn_link_obstack): Declare.
10883 (alloc_insn_link): Define.
10884 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
10885 type of link variables.
10886 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
10887 (try_combine, record_promoted_values, distribute_notes): Likewise.
10888 (distribute_links): Likewise. Tweak prototype.
10889 (clear_log_links): Delete.
10890 (adjust_for_new_dest): Call alloc_insn_link.
10891 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
10892
10893 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10894
10895 * gcse.c (modify_mem_list): Convert to an array of VECs.
10896 (canon_modify_mem_list, compute_transp): Tweak formatting.
10897 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
10898 (load_killed_in_block_p): Likewise.
10899 (record_last_mem_set_info): Likewise.
10900 (clear_modify_mem_tables): Likewise.
10901
10902 2011-04-05 Tom de Vries <tom@codesourcery.com>
10903
10904 PR middle-end/48461
10905 * function.c (emit_use_return_register_into_block): Only define if
10906 HAVE_return.
10907
10908 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
10909
10910 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
10911
10912 2011-04-05 Joseph Myers <joseph@codesourcery.com>
10913
10914 * config/rx/rx-opts.h: New.
10915 * config/rx/rx.c (rx_cpu_type): Remove.
10916 (rx_handle_option): Don't assert that global structures are in
10917 use. Access variables via opts pointer. Defer most handling of
10918 OPT_mint_register_. Use error_at.
10919 (rx_option_override): Handle deferred OPT_mint_register_ here.
10920 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
10921 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
10922 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
10923 (rx_cpu_types): New Enum and EnumValue entries.
10924 (mint-register=): Use Defer and use Var accordingly.
10925
10926 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10927
10928 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
10929 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
10930 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
10931 Move these...
10932 (debug_free_queue, debug_nesting, symbol_queue_index):
10933 ...and these...
10934 * dbxout.c: ...to here. Make static.
10935
10936 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10937
10938 * gcse.c (modify_pair): Define. Define a VEC of it.
10939 (canon_modify_mem_list): Convert to an array of VECs.
10940 (free_insn_expr_list_list): Delete.
10941 (clear_modify_mem_tables): Call VEC_free instead.
10942 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
10943 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
10944 (canon_list_insert, compute_transp): Likewise.
10945
10946 2011-04-05 Tom de Vries <tom@codesourcery.com>
10947
10948 PR target/43920
10949 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
10950 for size.
10951
10952 2011-04-05 Tom de Vries <tom@codesourcery.com>
10953
10954 PR target/43920
10955 * function.c (emit_use_return_register_into_block): New function.
10956 (thread_prologue_and_epilogue_insns): Use
10957 emit_use_return_register_into_block.
10958
10959 2011-04-05 Tom de Vries <tom@codesourcery.com>
10960
10961 PR target/43920
10962 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
10963 insn.
10964
10965 2011-04-05 Tom de Vries <tom@codesourcery.com>
10966
10967 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
10968
10969 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
10970
10971 * config/arm/arm.md (define_constants for unspec): Replace with
10972 define_c_enum.
10973 (define_constants for unspecv): Replace with define_c_enum.
10974 * config/arm/neon.md (define_constants for unspec): Replace with
10975 define_c_enum.
10976
10977 2011-04-04 Richard Henderson <rth@redhat.com>
10978
10979 PR bootstrap/48400
10980 * dwarf2out.c (output_line_info): Always emit line info from
10981 at least one section.
10982 (dwarf2out_init): Create text_section_line_info here ...
10983 (set_cur_line_info_table): ... not here.
10984
10985 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
10986
10987 PR target/48380
10988 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
10989 not called.
10990
10991 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
10992
10993 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
10994
10995 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
10996 (expr_equiv_p): Remove.
10997 (insert_set_in_table): Look at <dest, src> pair instead of expr.
10998 (hash_scan_set): Update call to insert_set_in_table.
10999 (dump_hash_table): Dump <dest, src> pair.
11000 (lookup_set): Simplify. Lookup <dest, src> pair.
11001 (compute_transp): Remove, fold heavily simplified code into...
11002 (compute_local_properties): ...here. Expect COMP and TRANSP
11003 unconditionally.
11004 (find_avail_set): Take set directly from struct expr.
11005 (find_bypass-set): Likewise.
11006 (bypass_block): Likewise.
11007 (cprop_insn): Likewise. Remove redundant INSN_P test.
11008
11009 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
11010 checks on form of COND from find_implicit_sets to here.
11011 (find_implicit_sets): Cleanup control flow. Split critical edges
11012 if it exposes implicit sets. Allocate/resize implicit_sets as
11013 necessary.
11014 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
11015 changed something. Run df_analyze after find_implicit_sets if any
11016 edges were split. Do not allocate implicit_sets here.
11017
11018 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
11019 (gcse_obstack): Renamed to cprop_obstack.
11020 (GNEW, GNEWVEC, GNEWVAR): Remove.
11021 (gmalloc): Remove.
11022 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
11023 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
11024 (gcse_alloc): Likewise, and rename to cprop_alloc.
11025 (alloc_gcse_men, free_gcse_mem): Remove.
11026 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
11027 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
11028 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
11029
11030 * cprop.c (oprs_not_set_p): Remove.
11031 (mark_set, mark_clobber): Remove.
11032 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
11033 (reg_not_set_p): New function.
11034 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
11035 (cprop_insn): Likewise.
11036 (cprop_jump): Use FOR_EACH_EDGE.
11037
11038 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
11039
11040 PR bootstrap/48403
11041 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
11042 (rank_for_schedule): Use scheduled_insns vector instead of
11043 last_scheduled_insn.
11044 (ok_for_early_queue_removal): Likewise.
11045 (queue_to_ready): Search forward in nonscheduled_insns_begin if
11046 we have a dbg_cnt.
11047 (choose_ready): Likewise.
11048 (commit_schedule): Use VEC_iterate.
11049 (schedule_block): Initialize nonscheduled_insns_begin. If we have
11050 a dbg_cnt, use it and ensure the first insn is in the ready list.
11051 (haifa_sched_init): Allocate scheduled_insns.
11052 (sched_extend_ready_list): Don't allocate it; reserve space.
11053 (haifa_sched_finish): Free it.
11054
11055 2011-04-04 Joseph Myers <joseph@codesourcery.com>
11056
11057 * optc-gen.awk: Always remove type from Variable entry before
11058 recording in var_seen.
11059
11060 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
11061
11062 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
11063 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
11064 call to tidy_fallthru_edges.
11065
11066 2011-04-04 Joseph Myers <joseph@codesourcery.com>
11067
11068 * doc/options.texi (ToLower): Document.
11069 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
11070 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
11071 * opts.h (cl_option): Add cl_tolower field.
11072 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
11073 arguments with lowercase strings.
11074 * config/rx/rx.opt (mcpu=): Add ToLower.
11075 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
11076 argument.
11077
11078 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
11079
11080 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
11081
11082 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
11083
11084 * config/vax/vax.c: Include reload.h.
11085
11086 2011-04-04 Anatoly Sokolov <aesok@post.ru>
11087
11088 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
11089 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
11090 (sparc_preferred_reload_class): New function.
11091
11092 2011-04-04 Jakub Jelinek <jakub@redhat.com>
11093
11094 PR debug/48401
11095 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
11096 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
11097
11098 2011-04-03 Nathan Froyd <froydnj@codesourcery.com>
11099
11100 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
11101 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
11102
11103 2011-04-03 Anatoly Sokolov <aesok@post.ru>
11104
11105 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
11106 (ASM_OUTPUT_ALIGNED_BSS): Define.
11107
11108 2011-04-03 Michael Matz <matz@suse.de>
11109
11110 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
11111 and next_slot members.
11112 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
11113 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
11114 (lto_streamer_cache_append): Declare.
11115 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
11116 unsigned index, remove offset parameter, ensure that we append
11117 or update existing entries.
11118 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
11119 parameter, update next_slot for append.
11120 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
11121 parameter.
11122 (lto_streamer_cache_insert_at): Likewise.
11123 (lto_streamer_cache_append): New function.
11124 (lto_streamer_cache_lookup): Use unsigned index.
11125 (lto_streamer_cache_get): Likewise.
11126 (lto_record_common_node): Don't test tree_node_can_be_shared.
11127 (preload_common_node): Adjust call to lto_streamer_cache_insert.
11128 (lto_streamer_cache_delete): Don't free offsets member.
11129 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
11130 (lto_output_string_with_length): Use lto_output_data_stream.
11131 (lto_output_tree_header): Remove ix parameter, don't write it.
11132 (lto_output_builtin_tree): Likewise.
11133 (lto_write_tree): Adjust callers to above, don't track and write
11134 offset, write unsigned index.
11135 (output_unreferenced_globals): Don't emit all global vars.
11136 (write_global_references): Use unsigned indices.
11137 (lto_output_decl_state_refs): Likewise.
11138 (write_symbol): Likewise.
11139 * lto-streamer-in.c (lto_input_chain): Move earlier.
11140 (input_function): Use unsigned index.
11141 (input_alias_pairs): Don't read and then ignore all global vars.
11142 (lto_materialize_tree): Remove ix_p parameter, don't read index,
11143 don't pass it back, use lto_streamer_cache_append.
11144 (lto_register_var_decl_in_symtab): Use unsigned index.
11145 (lto_register_function_decl_in_symtab): Likewise.
11146 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
11147 index.
11148 (lto_get_builtin_tree): Don't read index, use
11149 lto_streamer_cache_append.
11150 (lto_read_tree): Adjust call to lto_materialize_tree.
11151
11152 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
11153 don't use function calls in arguments to MIN.
11154
11155 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
11156 twice.
11157
11158 * gimple.c (gimple_type_leader_entry): Mark deletable.
11159
11160 2011-04-03 Alan Modra <amodra@gmail.com>
11161
11162 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
11163
11164 2011-04-03 Michael Matz <matz@suse.de>
11165
11166 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
11167 an integer.
11168 * tree.h (tree_decl_non_common.vindex): Adjust comment.
11169
11170 2011-04-03 Michael Matz <matz@suse.de>
11171
11172 * cgraphbuild.c (record_reference): Canonicalize constructor values.
11173 * gimple-fold.c (canonicalize_constructor_val): Accept being called
11174 without function context.
11175 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
11176 current_function_decl and cfun.
11177
11178 2011-04-03 Michael Matz <matz@suse.de>
11179
11180 * tree.c (decl_init_priority_insert): Don't create entry for
11181 default priority.
11182 (decl_fini_priority_insert): Ditto.
11183 (fields_compatible_p, find_compatible_field): Remove.
11184 * tree.h (fields_compatible_p, find_compatible_field): Remove.
11185 * gimple.c (gimple_compare_field_offset): Adjust block comment.
11186
11187 2011-04-03 Eric Botcazou <ebotcazou@adacore.com>
11188
11189 * combine.c (try_combine): Remove useless local variable.
11190
11191 2011-04-03 Richard Guenther <rguenther@suse.de>
11192 Ira Rosen <ira.rosen@linaro.org>
11193
11194 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
11195 non-variable offsets and compare the remaining bases of the two
11196 accesses instead of looking for exact same data-ref.
11197
11198 2011-04-02 Kai Tietz <ktietz@redhat.com>
11199
11200 PR target/48416
11201 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
11202
11203 * i386.c (ix86_is_msabi_thiscall): New helper function.
11204 (ix86_is_type_thiscall): New helper function.
11205 (ix86_comp_type_attributes): Handle thiscall for method-functions
11206 special.
11207 (init_cumulative_args): Likewise.
11208 (find_drap_reg): Likewise.
11209 (ix86_static_chain): Likewise.
11210 (x86_this_parameter): Likewise.
11211 (x86_output_mi_thunk): Likewise.
11212
11213 2011-04-01 Olivier Hainque <hainque@adacore.com>
11214 Nicolas Setton <setton@adacore.com>
11215 Eric Botcazou <ebotcazou@adacore.com>
11216
11217 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
11218 (add_gnat_descriptive_type_attribute): New function.
11219 (gen_array_type_die): Call it.
11220 (gen_enumeration_type_die): Likewise.
11221 (gen_struct_or_union_type_die): Likewise.
11222 (modified_type_die): Likewise.
11223 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
11224 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
11225 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
11226
11227 2011-04-01 Jakub Jelinek <jakub@redhat.com>
11228
11229 PR bootstrap/48148
11230 * dwarf2out.c (resolve_addr): Don't call force_decl_die
11231 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
11232
11233 Revert:
11234 2011-03-17 Richard Guenther <rguenther@suse.de>
11235
11236 PR bootstrap/48148
11237 * lto-cgraph.c (input_overwrite_node): Clear the abstract
11238 origin for decls in other ltrans units.
11239 (input_varpool_node): Likewise.
11240
11241 2011-04-01 Jakub Jelinek <jakub@redhat.com>
11242
11243 PR middle-end/48335
11244 * expr.c (expand_assignment): Handle all possibilities
11245 if TO_RTX is CONCAT.
11246 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
11247 (store_split_bit_field): If SUBREG_REG (op0) or
11248 op0 itself has smaller mode than word, return it
11249 for offset 0 and const0_rtx for out-of-bounds stores.
11250 If word is const0_rtx, skip it.
11251
11252 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
11253
11254 * config/h8300/h8300.c (print_operand_address): Rename to...
11255 (h8300_print_operand_address): ...this. Make static. Adjust comments.
11256 Call h8300_print_operand and h8300_print_operand_address instead of
11257 print_operand and print_operand_address. Declare.
11258 (print_operand): Renake to...
11259 (h8300_print_operand): ...this. Make static. Adjust comments.
11260 Call h8300_print_operand instead of print_operand. Declare.
11261 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
11262 (h8300_register_move_cost): Likewise.
11263 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
11264 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
11265 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
11266 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
11267 * config/h8300/h8300-protos.h (print_operand): Delete.
11268 (print_operand_address): Delete.
11269
11270 2011-04-01 Richard Henderson <rth@redhat.com>
11271
11272 PR 48400
11273 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
11274 in strict mode before dwarf4. Re-order tests to early out
11275 before switching sections.
11276
11277 2011-04-01 Nathan Froyd <froydnj@codesourcery.com>
11278
11279 * config/h8300/constraints.md: New file.
11280 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
11281 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
11282 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
11283 * config/h8300/predicates.md (bit_operand): Likewise.
11284 (incdec_operand): Use satisfies_constraint_M and
11285 satisfies_constraint_O. Don't use C code block.
11286 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
11287 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
11288 (compute_mov_length): Use satisfies_constraint_G.
11289 (fix_bit_operand): Use satisfies_constraint_U.
11290 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
11291 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
11292 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
11293 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
11294 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
11295 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
11296 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11297 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
11298 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
11299 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
11300 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
11301 (EXTRA_MEMORY_CONSTRAINT): Delete.
11302
11303 2011-04-01 Andrew Pinski <pinskia@gmail.com>
11304 Michael Meissner <meissner@linux.vnet.ibm.com>
11305
11306 PR target/48262
11307 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
11308 operands, as per the specifications.
11309
11310 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
11311 (vec_extract_evenv4sf): Ditto.
11312 (vec_extract_evenv8hi): Ditto.
11313 (vec_extract_evenv16qi): Ditto.
11314 (vec_extract_oddv4si): Ditto.
11315
11316 2011-03-31 Mark Wielaard <mjw@redhat.com>
11317
11318 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
11319 high_pc attribute if the CU has no associated code. Only output
11320 DW_AT_entry_pc for CU if not generating strict dwarf and
11321 dwarf_version < 4.
11322
11323 2011-04-01 Bernd Schmidt <bernds@codesourcery.com>
11324
11325 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
11326 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
11327 out of ...
11328 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
11329 * final.c (final_start_function): Call the new function rather
11330 than using a NULL argument for dwarf2out_frame_debug.
11331
11332 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
11333 that contains the prologue.
11334
11335 * haifa-sched.c (queue_insn): New arg REASON. All callers
11336 changed. Print it in debugging output.
11337
11338 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
11339
11340 * sched-ebb.c (begin_schedule_ready): Remove second argument.
11341 Split most of the code into...
11342 (begin_move_insn): ... here. New function.
11343 (ebb_sched_info): Add a pointer to it.
11344 * haifa-sched.c (scheduled_insns): New static variable.
11345 (sched_extend_ready_list): Allocate it.
11346 (schedule_block): Use it to record the order of scheduled insns.
11347 Perform RTL changes to move insns only after all scheduling
11348 decisions have been made.
11349 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
11350 begin_move_insn field.
11351 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
11352 * sched-int.h (struct haifa_sched_info): Remove second argument
11353 from begin_schedule_ready hook. Add new member begin_move_insn.
11354 * sched-rgn.c (begin_schedule_ready): Remove second argument.
11355 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
11356
11357 * haifa-sched.c (prune_ready_list): New function, broken out of
11358 schedule_block.
11359 (schedule_block): Use it.
11360
11361 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11362
11363 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
11364
11365 2011-04-01 Kai Tietz <ktietz@redhat.com>
11366
11367 * config.gcc (*-*-mingw*): Allow as option the
11368 posix threading model.
11369 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
11370 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
11371 definition.
11372 (CPP_SPEC): Add pthread/no-pthread handling.
11373 (LIB_SPEC): Likewise.
11374 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
11375 (LIB_SPEC): Likewise.
11376 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
11377 flag to pass -pthread option for shared libgcc build.
11378 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
11379 for shared libgcc build.
11380 * config/i386/t-mingw-pthread: New file.
11381 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
11382 New define to enable use of library pthread by default.
11383 * config/i386/mingw.opt (pthread): New driver option.
11384 (no-pthread): New driver option.
11385 * config/i386/cygming.opt: Make sure trailing empty line is retained.
11386 * config/i386/mingw-w64.opt: Likewise.
11387
11388 2011-04-01 Gary Funck <gary@intrepid.com>
11389
11390 * c-decl.c (grokdeclarator): Fix formatting.
11391
11392 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
11393
11394 * expr.c (emit_block_move_via_movmem): Use n_generator_args
11395 instead of n_operands.
11396 (set_storage_via_setmem): Likewise.
11397 * optabs.c (maybe_gen_insn): Likewise.
11398 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
11399 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
11400 (mips_expand_builtin_direct): Likewise.
11401 * config/spu/spu.c (expand_builtin_args): Likewise.
11402
11403 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
11404
11405 * recog.h (insn_data_d): Add n_generator_args.
11406 * genoutput.c (data): Likewise.
11407 (output_insn_data): Print it.
11408 (max_opno, num_dups): Delete.
11409 (scan_operands): Just fill in "d->operand[...]".
11410 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
11411
11412 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
11413
11414 * gensupport.h (pattern_stats): New structure.
11415 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
11416 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
11417 (max_operand_1, max_operand_vec): Delete.
11418 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
11419
11420 2011-03-31 Nathan Froyd <froydnj@codesourcery.com>
11421
11422 * emit-rtl.c (emit_pattern_after_setloc): New function.
11423 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
11424 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
11425 (emit_pattern_after): New function.
11426 (emit_insn_after, emit_jump_insn_after): Call it.
11427 (emit_call_insn_after, emit_debug_insn_after): Likewise.
11428 (emit_pattern_before_setloc): New function.
11429 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
11430 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
11431 Likewise.
11432 (emit_pattern_before): New function.
11433 (emit_insn_before, emit_jump_insn_before): Call it.
11434 (emit_call_insn_before, emit_debug_insn_before): Likewise.
11435
11436 2011-03-31 Richard Henderson <rth@redhat.com>
11437
11438 * dwarf2out.c (dw_separate_line_info_ref): Remove.
11439 (dw_separate_line_info_entry): Remove.
11440 (enum dw_line_info_opcode): New.
11441 (dw_line_info_entry): Use it.
11442 (dw_line_info_table, dw_line_info_table_p): New.
11443 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
11444 (line_info_table, line_info_label_num): Remove.
11445 (line_info_table_in_use): Remove.
11446 (separate_line_info_table): Remove.
11447 (separate_line_info_table_allocated): Remove.
11448 (separate_line_info_table_in_use): Remove.
11449 (LINE_INFO_TABLE_INCREMENT): Remove.
11450 (line_info_label_num): New.
11451 (cur_line_info_table): New.
11452 (text_section_line_info, cold_text_section_line_info): New.
11453 (separate_line_info): New.
11454 (SEPARATE_LINE_CODE_LABEL): Remove.
11455 (print_dwarf_line_table): Remove.
11456 (debug_dwarf): Don't dump it.
11457 (output_one_line_info_table): New.
11458 (output_line_info): Use it.
11459 (new_line_info_table): New.
11460 (set_cur_line_info_table): New.
11461 (dwarf2out_switch_text_section): Use it.
11462 (dwarf2out_begin_function): Likewise.
11463 (push_dw_line_info_entry): New.
11464 (dwarf2out_source_line): Rewrite for new line info tables.
11465 (dwarf2out_init): Remove dead initailizations.
11466
11467 2011-03-31 Joseph Myers <joseph@codesourcery.com>
11468
11469 * opts.h (cl_option): Add comments to fields. Add bit-fields for
11470 various flags.
11471 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
11472 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
11473 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
11474 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
11475 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
11476 * opt-functions.awk (flag_init, switch_bit_fields): New.
11477 (switch_flags): Don't handle flags moved to bit-fields. Don't
11478 generate CL_MISSING_OK or CL_SAVE.
11479 * optc-gen.awk: Update to generate bit-field output as well as
11480 flags field.
11481 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
11482 bit-field instead of CL_REJECT_DRIVER flag.
11483 * opts-common.c (generate_canonical_option,
11484 decode_cmdline_option): Use bit-fields instead of CL_* flags.
11485 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
11486 instead of CL_REJECT_NEGATIVE flag.
11487 * toplev.c (print_switch_values): Use cl_report bit-field instead
11488 of CL_REPORT flag.
11489
11490 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
11491
11492 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
11493 a zero minimum index only if it is redundant.
11494
11495 2011-03-31 Vladimir Makarov <vmakarov@redhat.com>
11496
11497 PR rtl-optimization/48381
11498 * ira-color.c (assign_hard_reg): Use hard reg set intersection
11499 instead of ira_class_hard_reg_index for calculating conflicting
11500 hard registers.
11501
11502 2011-03-31 Steven Bosscher <steven@gcc.gnu.org>
11503
11504 * cprop.c: Clean up hash table building.
11505 (reg_avail_info): Remove.
11506 (oprs_available_p): Remove.
11507 (record_last_reg_set_info): Remove.
11508 (record_last_set_info): Remove.
11509 (reg_available_p): New function.
11510 (gcse_constant_p): Do not treat unfolded conditions as constants.
11511 (make_set_regs_unavailable): New function.
11512 (hash_scan_set): Simplify with new reg_available_p.
11513 (compute_hash_table_work): Traverse insns stream only once.
11514 Do not compute reg_avail_info. Traverse insns in reverse order.
11515 Record implicit sets after recording explicit sets from the block.
11516
11517 2011-03-31 Michael Matz <matz@suse.de>
11518
11519 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
11520
11521 2011-03-31 Anatoly Sokolov <aesok@post.ru>
11522
11523 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
11524 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
11525 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11526 (h8300_mode_dependent_address_p): New function.
11527 (h8300_get_index): Make static.
11528
11529 2011-03-31 Jeff Law <law@redhat.com>
11530
11531 * reload1.c (elimination_effects): Fix typo in recent change.
11532
11533 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
11534 typo potentially leading to null pointer dereference.
11535
11536 * caller-save.c (new_saved_hard_reg): Eliminate return value.
11537 (setup_save_areas): Corresponding changes to avoid useless
11538 assignments.
11539
11540 * jump.c (reversed_comparison_code_parts): Avoid successive return
11541 statements when REVERSE_CONDITION is defined.
11542
11543 * expr.c (expand_assignment): Avoid useless assignments.
11544 (expand_expr_real_1): Likewise.
11545 (expand_expr_real_2): Avoid useless statements.
11546
11547 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
11548
11549 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
11550
11551 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
11552 statements.
11553
11554 * stmt.c (expand_expr_stmt): Avoid useless assignment.
11555
11556 2011-03-31 Joseph Myers <joseph@codesourcery.com>
11557
11558 PR target/47109
11559 * doc/tm.texi.in (TARGET_VERSION): Remove.
11560 * doc/tm.texi: Regenerate.
11561 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
11562 * collect2.c (main): Don't use TARGET_VERSION.
11563 * mips-tdump.c (main): Don't use TARGET_VERSION.
11564 * mips-tfile.c (main): Don't use TARGET_VERSION.
11565 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
11566 * config/rs6000/vxworksae.h: Remove.
11567 * config/alpha/alpha.h (TARGET_VERSION): Remove.
11568 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
11569 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
11570 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
11571 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
11572 * config/arm/arm.h (TARGET_VERSION): Remove.
11573 * config/arm/coff.h (TARGET_VERSION): Remove.
11574 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
11575 * config/arm/elf.h (TARGET_VERSION): Remove.
11576 * config/arm/freebsd.h (TARGET_VERSION): Remove.
11577 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
11578 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
11579 * config/arm/pe.h (TARGET_VERSION): Remove.
11580 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
11581 * config/arm/semi.h (TARGET_VERSION): Remove.
11582 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
11583 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
11584 * config/arm/vxworks.h (TARGET_VERSION): Remove.
11585 * config/avr/avr.h (TARGET_VERSION): Remove.
11586 * config/bfin/bfin.h (TARGET_VERSION): Remove.
11587 * config/fr30/fr30.h (TARGET_VERSION): Remove.
11588 * config/frv/frv.h (TARGET_VERSION): Remove.
11589 * config/h8300/h8300.h (TARGET_VERSION): Remove.
11590 * config/i386/cygwin.h (TARGET_VERSION): Remove.
11591 * config/i386/darwin.h (TARGET_VERSION): Remove.
11592 * config/i386/darwin64.h (TARGET_VERSION): Remove.
11593 * config/i386/djgpp.h (TARGET_VERSION): Remove.
11594 * config/i386/freebsd.h (TARGET_VERSION): Remove.
11595 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
11596 * config/i386/gnu.h (TARGET_VERSION): Remove.
11597 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
11598 * config/i386/i386elf.h (TARGET_VERSION): Remove.
11599 * config/i386/linux.h (TARGET_VERSION): Remove.
11600 * config/i386/linux64.h (TARGET_VERSION): Remove.
11601 * config/i386/lynx.h (TARGET_VERSION): Remove.
11602 * config/i386/mingw32.h (TARGET_VERSION): Remove.
11603 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
11604 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
11605 * config/i386/netware.h (TARGET_VERSION): Remove.
11606 * config/i386/nto.h (TARGET_VERSION): Remove.
11607 * config/i386/openbsd.h (TARGET_VERSION): Remove.
11608 * config/i386/vxworks.h (TARGET_VERSION): Remove.
11609 * config/ia64/elf.h (TARGET_VERSION): Remove.
11610 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
11611 * config/ia64/hpux.h (TARGET_VERSION): Remove.
11612 * config/ia64/linux.h (TARGET_VERSION): Remove.
11613 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
11614 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
11615 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
11616 * config/lm32/lm32.h (TARGET_VERSION): Remove.
11617 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
11618 * config/m32c/m32c.h (TARGET_VERSION): Remove.
11619 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
11620 * config/m32r/m32r.h (TARGET_VERSION): Remove.
11621 * config/m68k/linux.h (TARGET_VERSION): Remove.
11622 * config/m68k/m68k.h (TARGET_VERSION): Remove.
11623 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
11624 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
11625 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
11626 * config/mep/mep.h (TARGET_VERSION): Remove.
11627 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
11628 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
11629 * config/mips/iris6.h (MACHINE_TYPE): Remove.
11630 * config/mips/linux.h (TARGET_VERSION): Remove.
11631 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
11632 * config/mips/vxworks.h (TARGET_VERSION): Remove.
11633 * config/mmix/mmix.h (TARGET_VERSION): Remove.
11634 * config/mn10300/linux.h (TARGET_VERSION): Remove.
11635 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
11636 * config/pa/pa.h (TARGET_VERSION): Remove.
11637 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
11638 * config/picochip/picochip.h (TARGET_VERSION): Remove.
11639 * config/rs6000/aix.h (TARGET_VERSION): Remove.
11640 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
11641 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
11642 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
11643 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
11644 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
11645 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
11646 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
11647 * config/rs6000/linux.h (TARGET_VERSION): Remove.
11648 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
11649 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
11650 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
11651 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
11652 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
11653 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
11654 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
11655 * config/s390/linux.h (TARGET_VERSION): Remove.
11656 * config/s390/s390.h (TARGET_VERSION): Remove.
11657 * config/s390/tpf.h (TARGET_VERSION): Remove.
11658 * config/score/score.h (TARGET_VERSION): Remove.
11659 * config/sh/linux.h (TARGET_VERSION): Remove.
11660 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
11661 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
11662 * config/sh/sh.h (TARGET_VERSION): Remove.
11663 * config/sh/sh64.h (TARGET_VERSION): Remove.
11664 * config/sh/superh.h (TARGET_VERSION): Remove.
11665 * config/sh/vxworks.h (TARGET_VERSION): Remove.
11666 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
11667 * config/sparc/linux.h (TARGET_VERSION): Remove.
11668 * config/sparc/linux64.h (TARGET_VERSION): Remove.
11669 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
11670 TARGET_NAME32, TARGET_NAME): Remove.
11671 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
11672 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
11673 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
11674 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
11675 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
11676 * config/spu/spu.h (TARGET_VERSION): Remove.
11677 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
11678 * config/v850/v850.h (TARGET_VERSION): Remove.
11679 * config/vax/linux.h (TARGET_VERSION): Remove.
11680 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
11681 * config/xtensa/elf.h (TARGET_VERSION): Remove.
11682 * config/xtensa/linux.h (TARGET_VERSION): Remove.
11683
11684 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
11685
11686 PR target/48142
11687 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
11688 frame-related from frame-unrelated adjustments to the stack pointer.
11689
11690 2011-03-31 Jakub Jelinek <jakub@redhat.com>
11691
11692 * common.opt (fdebug-types-section): Move earlier.
11693 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
11694
11695 2011-03-31 Andreas Tobler <andreast@fgznet.ch>
11696
11697 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
11698 var.
11699
11700 2011-03-30 Nathan Froyd <froydnj@codesourcery.com>
11701
11702 * tree.h (CASE_CHAIN): Define.
11703 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
11704 (gimple_redirect_edge_and_branch): Likewise.
11705
11706 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
11707
11708 PR middle-end/48367
11709 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
11710 calculation.
11711
11712 2011-03-30 Jeff Law <law@redhat.com>
11713
11714 * PR bootstrap/48371
11715 * reload1.c (reload): Fix botch in last change.
11716
11717 * reload.h (struct reload): Fix typo introduced in last change.
11718
11719 2011-03-30 Joseph Myers <joseph@codesourcery.com>
11720
11721 * config/arm/arm.opt (mhard-float, msoft-float): Mark
11722 Undocumented. Remove help text.
11723 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
11724 -mhard-float.
11725
11726 2011-03-30 Joseph Myers <joseph@codesourcery.com>
11727
11728 * doc/options.texi (NegativeAlias): Document.
11729 (Alias): Mention NegativeAlias.
11730 * opt-functions.awk: Handle NegativeAlias.
11731 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
11732 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
11733 * opts.h (CL_NEGATIVE_ALIAS): Define.
11734 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
11735 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
11736 OPT_mspe_.
11737 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
11738 Alias entries.
11739 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
11740 mno-spe and mno-isel instead of mspe=no and -misel=no.
11741
11742 2011-03-29 Mark Wielaard <mjw@redhat.com>
11743
11744 * common.opt (fdebug-types-section): New flag.
11745 * doc/invoke.texi: Document new -fno-debug-types-section flag.
11746 * dwarf2out.c (use_debug_types): New define.
11747 (struct die_struct): Mark die_id with GTY desc use_debug_types.
11748 (print_die): Guard output of type unit signatures using
11749 use_debug_types.
11750 (build_abbrev_table): Replace assert of dwarf_version >= 4
11751 with assert on use_debug_types.
11752 (size_of_die): Likewise.
11753 (unmark_dies): Likewise.
11754 (value_format): Decide AT_ref_external form on use_debug_types.
11755 (output_die): Replace dwarf_version version check guard with
11756 use_debug_types where appropriate.
11757 (modified_type_die): Likewise.
11758 (gen_reference_type_die): Likewise.
11759 (dwarf2out_start_source_file): Likewise.
11760 (dwarf2out_end_source_file): Likewise.
11761 (prune_unused_types_walk_attribs): Likewise.
11762 (dwarf2out_finish): Likewise.
11763
11764 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
11765
11766 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
11767
11768 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
11769
11770 PR rtl-optimization/48332
11771 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
11772 mode of input operand N and modeN to its actual mode.
11773
11774 2011-03-30 Jeff Law <law@redhat.com>
11775
11776 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
11777 define accessor macro.
11778 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
11779 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
11780 (reg_equiv_init): Likewise.
11781 (reg_equivs_size): New variable.
11782 (reg_equiv_init_size): Remove.
11783 (allocate_initial_values): Move prototype to here from....
11784 * integrate.h (allocate_initial_values): Remove prototype.
11785 * integrate.c: Include reload.h.
11786 (allocate_initial_values): Corresponding changes.
11787 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
11788 (fix_reg_equiv_init, no_equiv): Corresponding changes.
11789 (update_equiv_regs): Corresponding changes.
11790 (ira): Corresponding changes.
11791 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
11792 (push_secondary_reload): Corresponding changes.
11793 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
11794 (make_memloc, find_reloads_address): Corresponding changes.
11795 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
11796 (find_reloads_address_1): Corresponding changes.
11797 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
11798 (refers_to_regno_for_reload_p): Corresponding changes.
11799 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
11800 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
11801 * reload1.c: Include ggc.h.
11802 (grow_reg_equivs): New function.
11803 (replace_pseudos_in, reload): Corresponding changes.
11804 (calculate_needs_all_insns, alter_regs): Corresponding changes.
11805 (eliminate_regs_1, elimination_effects): Corresponding changes.
11806 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
11807 (delete_output_reload): Likewise.
11808 * caller-save.c (mark_referenced_regs): Corresponding changes.
11809 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
11810 * frv/predicates.md (frv_load_operand): Corresponding changes.
11811 * microblaze/microblaze.c (double_memory_operand): Corresponding
11812 changes.
11813 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
11814 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
11815 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
11816 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
11817 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
11818 changes.
11819 * pa/pa.c (emit_move_sequence): Corresponding changes.
11820 * vax/vax.c (nonindexed_address_p): Corresponding changes.
11821
11822 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
11823
11824 PR target/47551
11825 * config/arm/arm.c (coproc_secondary_reload_class): Handle
11826 structure modes. Don't check neon_vector_mem_operand for
11827 vector or structure modes.
11828
11829 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
11830 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11831
11832 PR target/43590
11833 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
11834 operand 1 and reshuffle the operands to match.
11835 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
11836
11837 2011-03-30 Christian Schüler <cschueler@gmx.de>
11838
11839 PR driver/48208
11840 * config/c.opt (F): Added 'Driver' to -F option.
11841
11842 PR driver/48260
11843 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
11844 handler function.
11845 * config/darwin.opt: Added '-arch' option.
11846
11847 2011-03-30 Nick Clifton <nickc@redhat.com>
11848
11849 * config/rx/rx.md: Add peepholes and patterns to combine
11850 extending loads and simple arithmetic instructions.
11851 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
11852 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
11853 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
11854 modes to use pre-decrement and post-increment addressing.
11855 (rx_is_restricted_memory_address): Add range checking of REG+INT
11856 addresses.
11857 (rx_print_operand): Add support for %Q. Fix handling of %Q.
11858 (rx_memory_move_cost): Adjust cost of stores.
11859 (rx_adjust_insn_length): New function.
11860
11861 2011-03-30 Jakub Jelinek <jakub@redhat.com>
11862
11863 PR c/48305
11864 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
11865 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
11866 matching arg00/arg01 types.
11867
11868 2011-03-30 Eric Botcazou <ebotcazou@adacore.com>
11869
11870 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
11871 last_location to UNKNOWN_LOCATION.
11872
11873 2011-03-30 H.J. Lu <hongjiu.lu@intel.com>
11874
11875 PR target/48349
11876 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
11877 FLOAT_SSE_REGS.
11878
11879 2011-03-30 Joseph Myers <joseph@codesourcery.com>
11880 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11881
11882 PR bootstrap/48337
11883 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
11884 Init(PROCESSOR_V7).
11885 (sparc_cpu): Likewise.
11886 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
11887 PROCESSOR_V7.
11888
11889 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
11890
11891 PR target/48336
11892 PR middle-end/48342
11893 PR rtl-optimization/48345
11894 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
11895 hard regs for given mode from profitable regs when doing secondary
11896 allocation.
11897
11898 2011-03-29 Jeff Law <law@redhat.com>
11899
11900 PR bootstrap/48327
11901 * tree-ssa-threadupdate.c (struct redirection_data): Remove
11902 do_not_duplicate field.
11903 (lookup_redirection_data): Corresponding changes.
11904 (create_duplicates): Always create a template block.
11905 (redirect_edges): Remove code which reused the original block
11906 when it was going to become unreachable code.
11907 (thread_block): Don't set do_not_duplicate field.
11908
11909 2011-03-29 Joseph Myers <joseph@codesourcery.com>
11910
11911 * lto-opts.c (register_user_option_p, lto_register_user_option):
11912 Make type argument unsigned.
11913 * lto-streamer.h (lto_register_user_option): Make type argument
11914 unsigned.
11915 * opth-gen.awk: Make CL_* macros unsigned.
11916 * opts-common.c (find_opt): Make lang_mask argument unsigned.
11917 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
11918 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
11919 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
11920 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
11921 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
11922 (find_opt): Make lang_mask argument unsigned.
11923
11924 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
11925
11926 PR rtl-optimization/48331
11927 PR rtl-optimization/48334
11928 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
11929 for any used algorithm.
11930
11931 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
11932
11933 * ira-conflicts.c (build_object_conflicts): Add unused attribute
11934 to parent_max.
11935
11936 2011-03-29 Uros Bizjak <ubizjak@gmail.com>
11937
11938 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
11939 (alpha_option_override): Don't set alpha_sr_alias_set.
11940 (emit_frame_store_1): Use gen_frame_mem rather than calling
11941 set_mem_alias_set.
11942 (alpha_expand_epilogue): Ditto.
11943
11944 2011-03-29 Ira Rosen <ira.rosen@linaro.org>
11945
11946 PR tree-optimization/48290
11947 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
11948 vectorization, check that relevant phis in the basic block after
11949 the inner loop are really inner loop's exit phis.
11950
11951 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
11952
11953 PR debug/48190
11954 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
11955 (cached_dw_loc_list_def): New structure.
11956 (cached_dw_loc_list): New typedef.
11957 (cached_dw_loc_list_table): New variable.
11958 (cached_dw_loc_list_table_hash): New function.
11959 (cached_dw_loc_list_table_eq): Likewise.
11960 (add_location_or_const_value_attribute): Take a bool cache_p.
11961 Cache the list when the parameter is true.
11962 (gen_formal_parameter_die): Update caller.
11963 (gen_variable_die): Likewise.
11964 (dwarf2out_finish): Likewise.
11965 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
11966 while generating debug info for the decl.
11967 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
11968 (dwarf2out_init): Initialize cached_dw_loc_list_table.
11969 (resolve_addr): Cache the result of resolving a chain of
11970 location lists.
11971
11972 2011-03-28 Vladimir Makarov <vmakarov@redhat.com>
11973
11974 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
11975 conflict object hard regset nodes have intersecting hard reg sets.
11976
11977 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
11978 after regstat_init_n_sets_and_refs.
11979
11980 * ira.c: Add more comments at the top.
11981 (setup_stack_reg_pressure_class, setup_pressure_classes):
11982 Add comments how we compute the register pressure classes.
11983 (setup_allocno_and_important_classes): Add more comments.
11984 (setup_class_translate_array, reorder_important_classes)
11985 (setup_reg_class_relations): Add comments.
11986
11987 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
11988 start of the file.
11989
11990 * ira-color.c: Add 2011 to the Copyright line.
11991 (assign_hard_reg): Add more comments.
11992 (improve_allocation): Ditto.
11993
11994 * ira-costs.c: Add 2011 to the Copyright line.
11995 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
11996 comments.
11997 (setup_regno_cost_classes_by_mode): Ditto.
11998
11999 Initial patches from ira-improv branch:
12000
12001 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
12002
12003 * ira-build.c (ira_create_object): Remove initialization of
12004 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
12005 (ira_create_allocno): Remove initialization of
12006 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
12007 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
12008 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
12009 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
12010 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
12011 Initialize ALLOCNO_ADD_DATA.
12012 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
12013 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
12014 ALLOCNO_REG.
12015 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
12016 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
12017
12018 * ira.c (ira_reallocate): Remove.
12019 (setup_pressure_classes): Call
12020 ira_init_register_move_cost_if_necessary. Use
12021 ira_register_move_cost instead of ira_get_register_move_cost.
12022 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
12023 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
12024
12025 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
12026 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
12027 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
12028 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
12029 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
12030 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
12031 Fix formatting.
12032 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
12033 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
12034 (struct allocno_color_data): New.
12035 (allocno_color_data_t): New typedef.
12036 (allocno_color_data): New definition.
12037 (ALLOCNO_COLOR_DATA): New macro.
12038 (struct object_color_data): New.
12039 (object_color_data_t): New typedef.
12040 (object_color_data): New definition.
12041 (OBJECT_COLOR_DATA): New macro.
12042 (update_copy_costs, calculate_allocno_spill_cost): Call
12043 ira_init_register_move_cost_if_necessary. Use
12044 ira_register_move_cost instead of ira_get_register_move_cost.
12045 (move_spill_restore, update_curr_costs): Ditto.
12046 (allocno_spill_priority): Make it inline.
12047 (color_pass): Allocate and free allocno_color_dat and object_color_data.
12048 (struct coalesce_data, coalesce_data_t): New.
12049 (allocno_coalesce_data): New definition.
12050 (ALLOCNO_COALESCE_DATA): New macro.
12051 (merge_allocnos, coalesced_allocno_conflict_p): Use
12052 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
12053 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
12054 (coalesce_allocnos): Ditto.
12055 (setup_coalesced_allocno_costs_and_nums): Ditto.
12056 (collect_spilled_coalesced_allocnos): Ditto.
12057 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
12058 (setup_slot_coalesced_allocno_live_ranges): Ditto.
12059 (coalesce_spill_slots): Ditto.
12060 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
12061 free allocno_coalesce_data.
12062
12063 * ira-conflicts.c: Fix formatting.
12064 (process_regs_for_copy): Call
12065 ira_init_register_move_cost_if_necessary. Use
12066 ira_register_move_cost instead of ira_get_register_move_cost.
12067 (build_object_conflicts): Optimize.
12068
12069 * ira-costs.c (record_reg_classes): Optimize. Call
12070 ira_init_register_move_cost_if_necessary. Use
12071 ira_register_move_cost, ira_may_move_in_cost, and
12072 ira_may_move_out_cost instead of ira_get_register_move_cost and
12073 ira_get_may_move_cost.
12074 (record_address_regs): Ditto.
12075 (scan_one_insn): Optimize.
12076 (find_costs_and_classes): Optimize.
12077 (process_bb_node_for_hard_reg_moves): Call
12078 ira_init_register_move_cost_if_necessary. Use
12079 ira_register_move_cost instead of ira_get_register_move_cost.
12080
12081 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
12082 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
12083 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
12084 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
12085 definitions.
12086 (ira_initiate_emit_data, ira_finish_emit_data)
12087 (create_new_allocno): New functions.
12088 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
12089 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
12090 Use ira_register_move_cost instead of ira_get_register_move_cost.
12091
12092 * ira-int.h: Fix some comments.
12093 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
12094 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
12095 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
12096 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
12097 add_data.
12098 (struct ira_allocno): Make mode and aclass a bitfield. Move other
12099 bitfield after mode. Make hard_regno a short int. Make
12100 hard_regno short. Remove first_coalesced_allocno and
12101 next_coalesced_allocno. Move mem_optimized_dest_p,
12102 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
12103 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
12104 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
12105 temp, colorable_p. Add new member add_data.
12106 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
12107 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
12108 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
12109 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
12110 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
12111 (ALLOCNO_ADD_DATA): New macro.
12112 (ira_emit_data_t): New typedef.
12113 (struct ira_emit_data): New. Move mem_optimized_dest_p,
12114 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
12115 from struct ira_allocno.
12116 (ALLOCNO_EMIT_DATA): New macro.
12117 (ira_allocno_emit_data, allocno_emit_reg): New.
12118 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
12119 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
12120 (OBJECT_ADD_DATA): New macro.
12121 (ira_reallocate): Remove.
12122 (ira_initiate_emit_data, ira_finish_emit_data): New.
12123 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
12124 (ira_init_register_move_cost_if_necessary): New.
12125 (ira_object_conflict_iter_next): Merge into
12126 ira_object_conflict_iter_cond.
12127 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
12128
12129 * ira-live.c (process_single_reg_class_operands): Call
12130 ira_init_register_move_cost_if_necessary. Use
12131 ira_register_move_cost instead of ira_get_register_move_cost.
12132
12133 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
12134
12135 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
12136
12137 * ira-costs.c: Fix formatting.
12138 (cost_classes, cost_classes_num): Remove.
12139 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
12140 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
12141 (cost_classes_del, cost_classes_htab): New.
12142 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
12143 (initiate_regno_cost_classes, setup_cost_classes): New.
12144 (setup_regno_cost_classes_by_aclass): New.
12145 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
12146 (record_reg_classes): Use regno_cost_classes instead of
12147 cost_classes. Move checking opposite operand up.
12148 (record_address_regs): Use regno_cost_classes
12149 instead of cost_classes.
12150 (scan_one_insn): Ditto. Use always general register.
12151 (print_allocno_costs): Use regno_cost_classes instead of
12152 cost_classes.
12153 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
12154 (find_costs_and_classes): Set up cost classes for each registers.
12155 Use also their mode for this. Use regno_cost_classes instead of
12156 cost_classes.
12157 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
12158 cost_classes.
12159 (free_ira_costs, ira_init_costs): Don't use cost_classes.
12160 (ira_costs, ira_set_pseudo_classes): Call
12161 initiate_regno_cost_classes and finish_regno_cost_classes.
12162
12163 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
12164
12165 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
12166
12167 * target.def (ira_cover_classes): Remove.
12168
12169 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
12170
12171 * doc/tm.texi.in: Ditto.
12172
12173 * ira-conflicts.c: Remove mentioning cover classes from the file.
12174 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
12175 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
12176
12177 * targhooks.c (default_ira_cover_classes): Remove.
12178
12179 * targhooks.h (default_ira_cover_classes): Ditto.
12180
12181 * haifa-sched.c: Remove mentioning cover classes from the file.
12182 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
12183 ira_pressure_classes and ira_pressure_classes_num instead of
12184 ira_reg_class_cover_size and ira_reg_class_cover. Use
12185 sched_regno_pressure_class instead of sched_regno_cover_class.
12186 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
12187 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
12188
12189 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
12190 classes from the file.
12191 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
12192 (struct object_hard_regs, struct object_hard_regs_node): New.
12193 (struct ira_object): New members profitable_hard_regs,
12194 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
12195 (struct ira_allocno): Rename cover_class to aclass. Rename
12196 cover_class_cost and updated_cover_class_cost to class_cost and
12197 updated_class_cost. Remove splay_removed_p and
12198 left_conflict_size. Add new members colorable_p.
12199 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
12200 (ALLOCNO_COLORABLE_P): New macro.
12201 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
12202 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
12203 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
12204 (OBJECT_...): Rename parameter C to O.
12205 (OBJECT_PROFITABLE_HARD_REGS): New macro.
12206 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
12207 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
12208 (struct target_ira_int): New members x_ira_max_memory_move_cost,
12209 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
12210 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
12211 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
12212 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
12213 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
12214 x_ira_reg_class_subunion.
12215 (ira_max_memory_move_cost, ira_max_register_move_cost)
12216 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
12217 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
12218 (ira_important_class_nums, ira_reg_class_superunion): New macros.
12219 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
12220 (ira_reg_class_union): Rename to ira_reg_class_subunion.
12221 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
12222 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
12223 (ira_tune_allocno_costs_and_cover_classes): Rename to
12224 ira_tune_allocno_costs.
12225 (ira_debug_hard_regs_forest): New.
12226 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
12227 (ira_object_conflict_iter_next): Fix comments.
12228 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
12229 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
12230 cover_class to aclass.
12231 (ira_allocate_and_accumulate_costs): Ditto.
12232 (ira_allocate_and_set_or_copy_costs): Ditto.
12233
12234 * opts.c (decode_options): Remove ira_cover_class check.
12235
12236 * ira-color.c: Remove mentioning cover classes from the file. Use
12237 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
12238 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
12239 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
12240 (splay-tree.h): Remove include.
12241 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
12242 before copy_freq_compare_func.
12243 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
12244 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
12245 New definitions.
12246 (hard_regs_roots, hard_regs_node_vec): Ditto.
12247 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
12248 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
12249 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
12250 (create_new_object_hard_regs_node): Ditto.
12251 (add_new_object_hard_regs_node_to_forest): Ditto.
12252 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
12253 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
12254 Ditto.
12255 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
12256 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
12257 (remove_unused_object_hard_regs_nodes): Ditto.
12258 (enumerate_object_hard_regs_nodes): Ditto.
12259 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
12260 (object_hard_regs_subnode_t): Ditto.
12261 (struct object_hard_regs_subnode): Ditto.
12262 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
12263 (setup_object_hard_regs_subnode_index): Ditto.
12264 (get_object_hard_regs_subnodes_num): Ditto.
12265 (form_object_hard_regs_nodes_forest): Ditto.
12266 (finish_object_hard_regs_nodes_tree): Ditto.
12267 (finish_object_hard_regs_nodes_forest): Ditto.
12268 (allocnos_have_intersected_live_ranges_p): Rename to
12269 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
12270 (pseudos_have_intersected_live_ranges_p): Rename to
12271 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
12272 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
12273 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
12274 (update_copy_costs): Remove assert. Skip cost update if the hard
12275 reg does not belong the class.
12276 (assign_hard_reg): Process only profitable hard regs.
12277 (uncolorable_allocnos_num): Make it scalar.
12278 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
12279 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
12280 and ira_reg_class_max_nregs.
12281 (bucket_allocno_compare_func): Check frequency first.
12282 (sort_bucket): Add compare function as a parameter.
12283 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
12284 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
12285 (push_allocno_to_stack): Rewrite for checking new allocno
12286 colorability.
12287 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
12288 (push_only_colorable): Pass new parameter to sort_bucket.
12289 (push_allocno_to_spill): Remove.
12290 (allocno_spill_priority_compare): Make it inline and rewrite.
12291 (splay_tree_allocate, splay_tree_free): Remove.
12292 (allocno_spill_sort_compare): New function.
12293 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
12294 build and use splay tree. Choose first allocno in uncolorable
12295 allocno bucket to spill. Remove setting spill cost.
12296 (all_conflicting_hard_regs): Remove.
12297 (setup_allocno_available_regs_num): Check only profitable hard
12298 regs. Print info about hard regs nodes.
12299 (setup_allocno_left_conflicts_size): Remove.
12300 (put_allocno_into_bucket): Don't call
12301 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
12302 (improve_allocation): New.
12303 (color_allocnos): Call setup_profitable_hard_regs,
12304 form_object_hard_regs_nodes_forest, improve_allocation,
12305 finish_object_hard_regs_nodes_forest. Setup spill cost.
12306 (print_loop_title): Use pressure classes.
12307 (color_allocnso): Ditto.
12308 (do_coloring): Remove allocation and freeing splay_tree_node_pool
12309 and allocnos_for_spilling.
12310 (ira_sort_regnos_for_alter_reg): Don't setup members
12311 {first,next}_coalesced_allocno.
12312 (color): Remove allocating and freeing removed_splay_allocno_vec.
12313 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
12314 prohibited_class_mode_regs.
12315
12316 * ira-lives.c: Remove mentioning cover classes from the file. Fix
12317 formatting.
12318 (update_allocno_pressure_excess_length): Use pressure classes.
12319 (inc_register_pressure, dec_register_pressure): Check for pressure
12320 class.
12321 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
12322 pressure class. Use ira_reg_class_nregs instead of
12323 ira_reg_class_max_nregs.
12324 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
12325 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
12326 (single_reg_class): Use ira_reg_class_nregs instead of
12327 ira_reg_class_max_nregs.
12328 (process_bb_node_lives): Use pressure classes.
12329
12330 * ira-emit.c: Remove mentioning cover classes from the file. Use
12331 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
12332 (change_loop): Use pressure classes.
12333 (modify_move_list): Call ira_set_allocno_class instead of
12334 ira_set_allocno_cover_class.
12335
12336 * ira-build.c: Remove mentioning cover classes from the file. Use
12337 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
12338 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
12339 ALLOCNO_UPDATED_CLASS_COST instead of
12340 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
12341 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
12342 (ira_create_allocno): Remove initialization of
12343 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
12344 ALLOCNO_COLORABLE_P.
12345 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
12346 Update conflict regs for the objects.
12347 (create_cap_allocno): Remove assert. Don't propagate
12348 ALLOCNO_AVAILABLE_REGS_NUM.
12349 (ira_free_allocno_costs): New function.
12350 (finish_allocno): Change a part of code into call of
12351 ira_free_allocno_costs.
12352 (low_pressure_loop_node_p): Use pressure classes.
12353 (object_range_compare_func): Don't compare classes.
12354 (setup_min_max_conflict_allocno_ids): Ditto.
12355
12356 * loop-invariant.c: Remove mentioning cover classes from the file.
12357 Use ira_pressure_classes and ira_pressure_classes_num instead of
12358 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
12359 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
12360 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
12361 Use reg_allocno_class instead of reg_cover_class.
12362 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
12363 STACK_REG_COVER_CLASS.
12364 (get_regno_cover_class): Rename to get_regno_pressure_class.
12365 (move_loop_invariants): Initialize and finalize regstat.
12366
12367 * ira.c: Remove mentioning cover classes from the file. Add
12368 comments about coloring without cover classes. Use ALLOCNO_CLASS
12369 instead of ALLOCNO_COVER_CLASS. Fix formatting.
12370 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
12371 setup_class_subset_and_memory_move_costs.
12372 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
12373 (setup_cover_and_important_classes): Rename to
12374 setup_allocno_and_important_classes.
12375 (setup_class_translate_array): New.
12376 (setup_class_translate): Call it for allocno and pressure classes.
12377 (cover_class_order): Rename to allocno_class_order.
12378 (comp_reg_classes_func): Use ira_allocno_class_translate instead
12379 of ira_class_translate.
12380 (reorder_important_classes): Set up ira_important_class_nums.
12381 (setup_reg_class_relations): Set up ira_reg_class_superunion.
12382 (print_class_cover): Rename to print_classes. Add parameter.
12383 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
12384 Print pressure classes too.
12385 (find_reg_class_closure): Rename to find_reg_classes. Don't call
12386 setup_reg_subclasses.
12387 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
12388 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
12389 (setup_prohibited_class_mode_regs): Use
12390 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
12391 (clarify_prohibited_class_mode_regs): New function.
12392 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
12393 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
12394 (ira_init_once): Initialize them.
12395 (free_register_move_costs): Process them.
12396 (ira_init): Move calls of find_reg_classes and
12397 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
12398 Call clarify_prohibited_class_mode_regs.
12399 (ira_no_alloc_reg): Remove.
12400 (too_high_register_pressure_p): Use pressure classes.
12401
12402 * sched-deps.c: Remove mentioning cover classes from the file.
12403 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
12404 ira_pressure_classes and ira_pressure_classes_num instead of
12405 ira_reg_class_cover_size and ira_reg_class_cover.
12406 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
12407 sched_regno_pressure_class instead of sched_regno_cover_class.
12408 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
12409 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
12410
12411 * ira.h: Add 2010 to Copyright.
12412 (ira_no_alloc_reg): Remove external.
12413 (struct target_ira): Rename x_ira_hard_regno_cover_class,
12414 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
12415 x_ira_class_translate to x_ira_hard_regno_allocno_class,
12416 x_ira_allocno_classes_num, x_ira_allocno_classes, and
12417 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
12418 x_ira_pressure_classes, x_ira_pressure_class_translate, and
12419 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
12420 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
12421 x_ira_no_alloc_regs.
12422 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
12423 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
12424 ira_allocno_classes_num and ira_allocno_classes.
12425 (ira_class_translate): Rename to ira_allocno_class_translate.
12426 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
12427 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
12428 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
12429 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
12430 (ira_no_alloc_regs): New.
12431
12432 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
12433 classes from the file. Use ALLOCNO_CLASS instead of
12434 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
12435 ALLOCNO_COVER_CLASS_COST.
12436 (regno_cover_class): Rename to regno_aclass.
12437 (record_reg_classes): Use ira_reg_class_subunion instead of
12438 ira_reg_class_union.
12439 (record_address_regs): Check overflow.
12440 (scan_one_insn): Ditto.
12441 (print_allocno_costs): Print total mem cost fore regional allocation.
12442 (print_pseudo_costs): Use REG_N_REFS.
12443 (find_costs_and_classes): Use classes intersected with them on the
12444 1st pass. Check overflow. Use ira_reg_class_subunion instead of
12445 ira_reg_class_union. Use ira_allocno_class_translate and
12446 regno_aclass instead of ira_class_translate and regno_cover_class.
12447 Modify code for finding regno_aclass. Setup preferred classes for
12448 the next pass.
12449 (setup_allocno_cover_class_and_costs): Rename to
12450 setup_allocno_class_and_costs. Use regno_aclass instead of
12451 regno_cover_class. Use ira_set_allocno_class instead of
12452 ira_set_allocno_cover_class.
12453 (init_costs, finish_costs): Use regno_aclass instead of
12454 regno_cover_class.
12455 (ira_costs): Use setup_allocno_class_and_costs instead of
12456 setup_allocno_cover_class_and_costs.
12457 (ira_tune_allocno_costs_and_cover_classes): Rename to
12458 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
12459 by processing objects. Use ira_reg_class_max_nregs instead of
12460 ira_reg_class_nregs.
12461
12462 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
12463
12464 * sched-int.h: Remove mentioning cover classes from the file.
12465 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
12466
12467 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
12468 classes from the file.
12469 (struct reg_pref): Rename coverclass into allocnoclass.
12470 (reg_cover_class): Rename to reg_allocno_class.
12471
12472 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
12473
12474 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
12475
12476 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
12477
12478 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
12479
12480 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
12481
12482 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
12483
12484 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
12485
12486 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
12487
12488 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
12489
12490 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
12491
12492 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
12493 (i386_ira_cover_classes): Ditto.
12494
12495 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
12496
12497 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
12498
12499 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
12500
12501 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
12502
12503 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
12504
12505 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
12506
12507 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
12508 (mips_ira_cover_classes): Ditto.
12509
12510 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
12511
12512 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
12513
12514 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
12515
12516 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
12517
12518 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
12519
12520 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
12521 (IRA_COVER_CLASSES_VSX): Ditto.
12522
12523 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
12524 (rs6000_ira_cover_classes): Ditto.
12525
12526 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
12527
12528 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
12529
12530 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
12531
12532 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
12533
12534 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
12535
12536 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
12537
12538 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
12539
12540 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
12541
12542 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
12543
12544 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
12545
12546 2011-03-29 Jakub Jelinek <jakub@redhat.com>
12547
12548 PR debug/48253
12549 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
12550 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
12551 dw_fde_unlikely_section_end_label, cold_in_std_section,
12552 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
12553 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
12554 fields.
12555 (output_fde): Use dw_fde_second_{begin,end} if second is
12556 true, otherwise dw_fde_{begin,end}.
12557 (output_call_frame_info): Test dw_fde_second_begin != NULL
12558 instead of dw_fde_switched_sections.
12559 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
12560 fields, initialize new fields. Initialize in_std_section
12561 unconditionally from the first partition.
12562 (dwarf2out_end_epilogue): Don't override dw_fde_end when
12563 dw_fde_second_begin is non-NULL.
12564 (dwarf2out_switch_text_section): Stop initializing removed
12565 dw_fde_struct fields, initialize new fields, initialize
12566 also dw_fde_end here. Set dw_fde_switch_cfi even when
12567 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
12568 (struct var_loc_list_def): Add last_before_switch field.
12569 (arange_table, arange_table_allocated, arange_table_in_use,
12570 ARANGE_TABLE_INCREMENT, add_arange): Removed.
12571 (size_of_aranges): Count !in_std_section and !second_in_std_section
12572 hunks in fdes, instead of looking at arange_table_in_use.
12573 (output_aranges): Add aranges_length argument, don't call
12574 size_of_aranges here. Instead of using aranges_table*
12575 emit ranges for fdes when !in_std_section resp.
12576 !second_in_std_section.
12577 (dw_loc_list): Break ranges crossing section switch.
12578 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
12579 use dw_fde_second_end instead of dw_fde_end as end of last range.
12580 (gen_subprogram_die): Don't call add_arange. Use
12581 dw_fde_{begin,end} for first partition and if switched
12582 section dw_fde_second_{begin,end} for the second.
12583 (var_location_switch_text_section_1,
12584 var_location_switch_text_section): New functions.
12585 (dwarf2out_begin_function): Initialize cold_text_section even
12586 when function_section () isn't text_section.
12587 (prune_unused_types): Don't walk arange_table.
12588 (dwarf2out_finish): Don't needlessly test
12589 flag_reorder_blocks_and_partition when testing cold_text_section_used.
12590 If info_section_emitted, call size_of_aranges and if it indicates
12591 non-empty .debug_aranges, call output_aranges with the computed
12592 size. Stop using removed dw_fde_struct fields, use
12593 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
12594 for second.
12595
12596 PR debug/48203
12597 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
12598 create ENTRY_VALUE if incoming or address of incoming's MEM
12599 is a hard REG.
12600 * dwarf2out.c (mem_loc_descriptor): Don't emit
12601 DW_OP_GNU_entry_value of DW_OP_fbreg.
12602 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
12603 on ENTRY_VALUE is able to find the canonical parameter VALUE.
12604 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
12605 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
12606 ENTRY_VALUE_EXPs.
12607 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
12608 is a REG_P or MEM_P with REG_P address, compute hash directly
12609 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
12610 (preserve_only_constants): Don't clear VALUES forwaring
12611 ENTRY_VALUE to some other VALUE.
12612
12613 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
12614
12615 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
12616 instead of GEN_INT.
12617
12618 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
12619
12620 * cfgexpand.c (expand_gimple_cond): Always set the source location and
12621 block before expanding the statement.
12622 (expand_gimple_stmt_1): Likewise. Set them here...
12623 (expand_gimple_stmt): ...and not here. Tidy.
12624 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
12625 unknown.
12626
12627 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
12628
12629 * Makefile.in: New rule for cprop.o.
12630 * gcse.c: Move constant/copy propagation to cprop.c.
12631 (compute_local_properties): Only handle expression tables.
12632 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
12633 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
12634 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
12635 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
12636 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
12637 compute_cprop_data, find_used_regs, try_replace_reg,
12638 find_avail_set, cprop_jump, constprop_register, cprop_insn,
12639 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
12640 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
12641 find_bypass_set, reg_killed_on_edge, bypass_block,
12642 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
12643 execute_rtl_cprop, pass_rtl_cprop): Move to...
12644 * cprop.c: ...here. New file, constant/copy propagation for RTL
12645 moved from gcse.c to here with minor cleanups in duplicated code.
12646
12647 2011-03-28 H.J. Lu <hongjiu.lu@intel.com>
12648
12649 * config/i386/i386.c (flag_opts): Fix a typo in
12650 -mavx256-split-unaligned-store.
12651
12652 2011-03-28 Anatoly Sokolov <aesok@post.ru>
12653
12654 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
12655 LIBCALL_VALUE): Remove macros.
12656 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12657 TARGET_FUNCTION_VALUE_REGNO_P): Define.
12658 (h8300_function_value, h8300_libcall_value,
12659 h8300_function_value_regno_p): New functions.
12660
12661 2011-03-28 Anatoly Sokolov <aesok@post.ru>
12662
12663 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
12664
12665 2011-03-28 Jeff Law <law@redhat.com>
12666
12667 * tree-ssa-threadupdate.c (redirect_edges): Call
12668 create_edge_and_update_destination_phis as needed.
12669 (create_edge_and_update_destination_phis): Accept new BB argument.
12670 All callers updated.
12671 (thread_block): Do not update the profile when threading around
12672 intermediate blocks.
12673 (thread_single_edge): Likewise.
12674 (determine_bb_domination_status): If BB is not a successor of the
12675 loop header, return NONDOMINATING.
12676 (register_jump_thread): Note when we register a jump thread around
12677 an intermediate block.
12678 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
12679 (thread_across_edge): Use it.
12680
12681 2011-03-28 Tristan Gingold <gingold@adacore.com>
12682
12683 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
12684 when for_return is 2.
12685
12686 2011-03-28 Jeff Law <law@redhat.com>
12687
12688 * var-tracking.c (canonicalize_values_mark): Delete unused
12689 lhs assignment.
12690 (canonicalize_values_star, set_variable_part): Likewise.
12691 (clobber_variable_part, delete_variable_part): Likewise.
12692
12693 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
12694
12695 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
12696
12697 2011-03-28 Martin Jambor <mjambor@suse.cz>
12698
12699 * tree-inline.c (expand_call_inline): Do not check that destination
12700 node is analyzed.
12701 (optimize_inline_calls): Assert that destination node is analyzed.
12702 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
12703 not call tree_lowering_passes.
12704 * cgraph.h (cgraph_analyze_function): Declare.
12705 * cgraphunit.c (cgraph_analyze_function): Make public.
12706
12707 2011-03-28 Joseph Myers <joseph@codesourcery.com>
12708
12709 * config/sparc/sparc-opts.h: New.
12710 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
12711 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
12712 (sparc_option_override): Store processor_type enumeration rather
12713 than string in cpu_default. Remove name and enumeration from
12714 cpu_table. Directly default -mcpu then default -mtune from -mcpu
12715 without using sparc_select. Use target_flags_explicit instead of
12716 fpu_option_set.
12717 * config/sparc/sparc.h (enum processor_type): Move to
12718 sparc-opts.h.
12719 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
12720 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
12721 HeaderInclude entry.
12722 (mcpu=, mtune=): Use Var and Enum.
12723 (sparc_processor_type): New Enum and EnumValue entries.
12724
12725 2011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12726 Iain Sandoe <iains@gcc.gnu.org>
12727
12728 PR target/48245
12729 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
12730
12731 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
12732
12733 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
12734 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
12735 Insert new statements at it in lieu of STMT.
12736 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
12737 * tree-vect-stmts.c (vectorizable_store): Likewise.
12738 (vectorizable_load): Likewise.
12739
12740 2011-03-28 Uros Bizjak <ubizjak@gmail.com>
12741
12742 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
12743 (divtf3): Ditto.
12744 (multf3): Ditto.
12745 (subtf3): Ditto.
12746
12747 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
12748
12749 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
12750 unaligned 256bit load/store.
12751 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
12752 (*avx_movdqu<avxmodesuffix>): Likewise.
12753
12754 2011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12755
12756 PR target/48288
12757 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
12758 * config/pa/pa.md (iordi3): Use new predicate in expander.
12759 (iorsi3): Likewise.
12760
12761 2011-03-27 Anatoly Sokolov <aesok@post.ru>
12762
12763 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
12764 FUNCTION_VALUE_REGNO_P): Remove macros.
12765 * config/mips/mips-protos.h (mips_function_value): Remove.
12766 * config/mips/mips.c (mips_function_value): Rename to...
12767 (mips_function_value_1): ... this. Make static. Handle receiving
12768 the function type in 'fn_decl_or_type' argument.
12769 (mips_function_value, mips_libcall_value,
12770 mips_function_value_regno_p): New function.
12771 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12772 TARGET_FUNCTION_VALUE_REGNO_P): Define.
12773
12774 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
12775
12776 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
12777 and -mavx256-split-unaligned-store.
12778 (ix86_option_override_internal): Split 32-byte AVX unaligned
12779 load/store by default.
12780 (ix86_avx256_split_vector_move_misalign): New.
12781 (ix86_expand_vector_move_misalign): Use it.
12782
12783 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
12784 -mavx256-split-unaligned-store.
12785
12786 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
12787 256bit load/store. Generate unaligned store on misaligned memory
12788 operand.
12789 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
12790 256bit load/store.
12791 (*avx_movdqu<avxmodesuffix>): Likewise.
12792
12793 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
12794 -mavx256-split-unaligned-store.
12795
12796 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
12797
12798 PR target/38598
12799 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
12800 Update commentary.
12801
12802 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
12803
12804 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
12805 opno arguments with an expand_operand. Use create_input_operand.
12806 (mips_prepare_builtin_target): Delete.
12807 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
12808 functions.
12809 (mips_expand_builtin_direct): Use create_output_operand and
12810 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
12811 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
12812 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
12813
12814 2011-03-27 Ira Rosen <ira.rosen@linaro.org>
12815
12816 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
12817 function.
12818 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
12819
12820 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
12821
12822 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
12823 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
12824 basic blocks and call commit_edge_insertions directly.
12825 (fixup_abnormal_edges): Move from here to...
12826 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
12827 on the edges and return whether some have actually been inserted.
12828 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
12829 compensation code.
12830
12831 2011-03-26 Andrey Belevantsev <abel@ispras.ru>
12832
12833 PR rtl-optimization/48144
12834 * sel-sched-ir.c (merge_history_vect): Factor out from ...
12835 (merge_expr_data): ... here.
12836 (av_set_intersect): Rename to av_set_code_motion_filter.
12837 Update all callers. Call merge_history_vect when an expression
12838 is found in both sets.
12839 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
12840
12841 2011-03-26 Alan Modra <amodra@gmail.com>
12842
12843 * config/rs6000/predicates.md (word_offset_memref_op): Handle
12844 cmodel medium addresses.
12845 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
12846 64-bit gpr loads and stores.
12847 (rs6000_secondary_reload_ppc64): New function.
12848 * config/rs6000/rs6000-protos.h: Declare it.
12849 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
12850
12851 2011-03-26 Alan Modra <amodra@gmail.com>
12852
12853 PR target/47487
12854 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
12855 GNU Go in traceback table.
12856
12857 2011-03-25 Richard Henderson <rth@redhat.com>
12858
12859 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
12860 if there are exactly 6 operands.
12861 (set_storage_via_setmem): Similarly.
12862
12863 2011-03-25 Kai Tietz <ktietz@redhat.com>
12864
12865 * collect2.c (write_c_file_stat): Handle backslash
12866 as right-hand directory separator.
12867 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
12868 checking just for slash.
12869 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
12870 instead of checking for trailing slash.
12871 * gcc.c (record_temp_file): Use filename_cmp instead
12872 of strcmp.
12873 (do_spec_1): Likewise.
12874 (replace_outfile_spec_function): Likewise.
12875 (is_directory): Use filename_ncmp instead of strncmp.
12876 (print_multilib_info): Likewise.
12877 * gcov.c (find_source): Use filename_cmp instead
12878 instead of strcmp.
12879 (make_gcov_file_name): Fix order of slash/backslash
12880 checks.
12881 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
12882 (add_standard_paths): Likewise.
12883 * mips-tfile.c (saber_stop): Handle backslash.
12884 * prefix.c (update_path): Use filename_ncmp instead of
12885 strncmp.
12886 * profile.c (output_location): Use filename_cmp instead
12887 of strcmp.
12888 * read-md.c (handle_toplevel_file): Handle backslash.
12889 * tlink.c (frob_extension): Likewise.
12890 * tree-cfg.c (same_line_p): Use filename_cmp instead of
12891 strcmp.
12892 * tree-dump.c (dequeue_and_dump): Handle backslash.
12893 * tree.c (get_file_function_name): Likewise.
12894 * gengtype.c (read_input_list): Likewise.
12895 (get_file_realbasename): Likewise.
12896 (get_output_file_with_visibility): Use filename_cmp
12897 instead of strcmp.
12898
12899 2011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
12900
12901 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
12902 case to VFPv1.
12903
12904 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
12905
12906 * fold-const.c (expr_location_or): New function.
12907 (fold_truth_not_expr): Call it.
12908
12909 2011-03-25 Jeff Law <law@redhat.com>
12910
12911 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
12912 va_end.
12913 * c-family/c-common.c (def_fn_type): Likewise.
12914 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
12915 * emit-rtl.c (gen_rtvec): Likewise.
12916 * lto/lto-lang.c (def_fn_type): Likewise.
12917
12918 2011-03-25 Richard Guenther <rguenther@suse.de>
12919
12920 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
12921 also generate copies.
12922 (fini_copy_prop): Handle constant values properly.
12923
12924 2011-03-25 Jakub Jelinek <jakub@redhat.com>
12925
12926 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
12927 mode size instead of bitsize with DWARF2_ADDR_SIZE.
12928 (hash_loc_operands, compare_loc_operands): Handle
12929 DW_OP_GNU_entry_value.
12930
12931 2011-03-25 Kai Tietz <ktietz@redhat.com>
12932
12933 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
12934 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
12935 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
12936 comment and use macro TARGET_64BIT_MS_ABI instead.
12937 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
12938 and change default behavior for 32-bit MS_ABI.
12939 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
12940 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
12941 32-bit, too.
12942 (ix86_cfun_abi): Likewise.
12943 (ix86_maybe_switch_abi): Adjust comment.
12944 (init_cumulative_args): Check for bit-ness in MS_ABI case.
12945 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
12946 instead of checking for SYSV_ABI.
12947 (ix86_nsaved_sseregs): Likewise.
12948 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
12949 to 16 bytes.
12950 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
12951 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
12952 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
12953 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
12954 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
12955
12956 2011-03-25 Richard Guenther <rguenther@suse.de>
12957
12958 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
12959 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
12960 (verify_gimple): Remove.
12961 * tree-cfg.c (verify_gimple_call): Merge verification
12962 from verify_stmts.
12963 (verify_gimple_phi): Merge verification from verify_stmts.
12964 (verify_gimple_label): New function.
12965 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
12966 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
12967 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
12968 (verify_stmts): Rename to verify_gimple_in_cfg.
12969 (verify_gimple_in_cfg): New function.
12970 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
12971 * tree-ssa.c (verify_ssa): Likewise.
12972 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
12973
12974 2011-03-25 Richard Guenther <rguenther@suse.de>
12975
12976 * passes.c (init_optimization_passes): Add FRE pass after
12977 early SRA.
12978
12979 2011-03-25 Bernd Schmidt <bernds@codesourcery.com>
12980 Andrew Stubbs <ams@codesourcery.com>
12981
12982 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
12983 for Cortex-A8.
12984 (arm_movdi_vfp_cortexa8): New pattern.
12985 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
12986 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
12987 instructions when tuning for Cortex-A8. Set attribute "arch".
12988 * config/arm/arm.md: Move include arm-tune.md up a bit.
12989 (define_attr "arch"): Add "onlya8" and "nota8" values.
12990 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
12991
12992 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
12993
12994 PR bootstrap/48282
12995 Revert:
12996 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
12997
12998 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
12999 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
13000 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
13001 * passes.c (init_optimization_passes): Move
13002 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
13003
13004 2011-03-25 Kai Tietz <ktietz@redhat.com>
13005
13006 * c-typeck.c (comptypes_internal): Replace target
13007 hook call of comp_type_attributes by version in tree.c file.
13008 * gimple.c (gimple_types_compatible_p_1): Likewise.
13009 * tree-ssa.c (useless_type_conversion_p): Likewise.
13010 * tree.c (build_type_attribute_qual_variant): Likewise.
13011 (attribute_value_equal): New static helper function.
13012 (comp_type_attributes): New function.
13013 (merge_attributes): Use attribute_value_equal for comparison.
13014 (attribute_list_contained): Likewise.
13015 * tree.h (comp_type_attributes): New prototype.
13016
13017 2011-03-25 Richard Guenther <rguenther@suse.de>
13018
13019 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
13020 of complex types at -O0.
13021 (verify_gimple_assign_binary): Likewise.
13022 (verify_gimple_assign_ternary): Likewise.
13023
13024 2011-03-24 Mark Wielaard <mjw@redhat.com>
13025
13026 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
13027 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
13028
13029 2011-03-24 Mark Wielaard <mjw@redhat.com>
13030
13031 PR debug/48041
13032 * dwarf2out.c (output_abbrev_section): Only write table when
13033 abbrev_die_table_in_use > 1.
13034
13035 2011-02-24 Richard Henderson <rth@redhat.com>
13036
13037 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
13038 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
13039 (alpha_expand_unaligned_load_words): Use extql.
13040 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
13041 (emit_insxl): Handle all modes for consistency.
13042
13043 2011-02-24 Richard Henderson <rth@redhat.com>
13044
13045 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
13046 (alpha_expand_unaligned_load): Likewise.
13047 (alpha_expand_unaligned_store): Likewise.
13048 (alpha_expand_unaligned_load_words): Likewise.
13049 (alpha_expand_unaligned_store_words): Likewise.
13050 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
13051 (alpha_split_lock_test_and_set_12): Likewise.
13052 (print_operand, alpha_fold_builtin_extxx): Likewise.
13053 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
13054 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
13055 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
13056 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
13057 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
13058 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
13059 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
13060 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
13061 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
13062 (extwl, extll, extql): Similarly.
13063 (inswh, inslh, insqh): Similarly.
13064 (mskbl, mskwl, mskll, mskql): Similarly.
13065 (mskwh, msklh, mskqh): Similarly.
13066
13067 2011-02-24 Richard Henderson <rth@redhat.com>
13068
13069 * config/alpha/alpha.md (attribute isa): Add er, ner.
13070 (attribute enabled): Handle them.
13071 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
13072
13073 2011-02-24 Richard Henderson <rth@redhat.com>
13074
13075 * config/alpha/alpha.md (attribute isa): Add vms.
13076 (attribute enabled): Handle it.
13077 (*movsf): Merge *movsf_{nofix,fix,nofp}.
13078 (*movdf): Merge *movdf_{nofix,fix,nofp}.
13079 (*movtf): Rename from *movtf_internal for consistency.
13080 (*movsi): Merge with *movsi_nt_vms.
13081 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
13082 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
13083 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
13084 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
13085
13086 2011-02-24 Richard Henderson <rth@redhat.com>
13087
13088 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
13089 (extendqisi2, extendhisi2): Likewise.
13090 (extendqidi2): Simplify BWX/non-BWX expansions.
13091 (extendhidi2): Similarly.
13092
13093 2011-02-24 Richard Henderson <rth@redhat.com>
13094
13095 * config/alpha/alpha.md (attribute isa): New.
13096 (attribute enabled): New.
13097 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
13098 (zero_extendqisi2, zero_extendqidi2): Similarly.
13099 (zero_extendhisi2, zero_extendhidi2): Similarly.
13100 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
13101
13102 2011-02-24 Richard Henderson <rth@redhat.com>
13103
13104 * config/alpha/predicates.md (input_operand): Revert last change;
13105 update comment to mention 32-bit VMS rather than Windows.
13106
13107 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
13108
13109 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
13110 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
13111 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
13112 * passes.c (init_optimization_passes): Move
13113 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
13114
13115 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
13116
13117 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
13118
13119 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
13120
13121 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
13122 correctly.
13123
13124 2011-03-24 Jakub Jelinek <jakub@redhat.com>
13125
13126 PR debug/48204
13127 * simplify-rtx.c (simplify_const_unary_operation): Call
13128 real_convert when changing mode class with FLOAT_EXTEND.
13129
13130 2011-03-24 Nick Clifton <nickc@redhat.com>
13131
13132 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
13133 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
13134 * config/rx/rx.c (rx_option_override): Set align_jumps,
13135 align_loops and align_labels if not set by the user.
13136 (rx_align_for_label): New function.
13137 (rx_max_skip_for_label): New function.
13138 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
13139 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
13140 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
13141 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
13142 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
13143
13144 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
13145
13146 PR rtl-optimization/48263
13147 * optabs.c (expand_binop_directly): Reinstate convert_modes code
13148 and original commutative_p handling. Use maybe_gen_insn.
13149
13150 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13151
13152 * reload.c (find_reloads_subreg_address): Add address_reloaded
13153 parameter and return true there if the full address has been
13154 reloaded.
13155 (find_reloads_toplev): Pass address_reloaded flag.
13156 (find_reloads_address_1): Don't use address_reloaded parameter.
13157
13158 2011-03-24 Jeff Law <law@redhat.com>
13159
13160 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
13161 unused variable "ann".
13162 (remove_unused_locals): Likewise.
13163
13164 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
13165 statement.
13166
13167 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
13168 after it is freed.
13169
13170 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13171
13172 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
13173 for invalid symbolic addresses.
13174 (s390_secondary_reload): Don't use s390_check_symref_alignment for
13175 larl operands.
13176
13177 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
13178
13179 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
13180 the argument in calls to fold_truth_not_expr.
13181
13182 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
13183
13184 * tree.c (record_node_allocation_statistics): New function.
13185 (make_node_stat, copy_node_stat, build_string): Call it.
13186 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
13187 (build1_stat, build_omp_clause): Likewise.
13188
13189 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
13190
13191 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
13192 last commit.
13193
13194 2011-03-24 Richard Guenther <rguenther@suse.de>
13195
13196 PR tree-optimization/48271
13197 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
13198 blocks that still exist.
13199
13200 2011-03-24 Richard Guenther <rguenther@suse.de>
13201
13202 PR tree-optimization/48270
13203 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
13204 not free datarefs before ddrs.
13205
13206 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
13207
13208 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
13209 from the address built for a reference with variable offset.
13210
13211 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
13212
13213 PR target/48237
13214 * config/i386/i386.md (*movdf_internal_rex64): Do not split
13215 alternatives that can be handled with movq or movabsq insn.
13216 (*movdf_internal): Disable for !TARGET_64BIT.
13217 (*movdf_internal_nointeger): Ditto.
13218 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
13219
13220 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
13221
13222 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
13223 (FUNCTION_ARG_ADVANCE): Likewise.
13224 * tm.texi.in: Change references to them to hook references.
13225 * tm.texi: Regenerate.
13226 * targhooks.c (default_function_arg): Eliminate check for target macro.
13227 (default_function_incoming_arg): Likewise.
13228 (default_function_arg_advance): Likewise.
13229 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
13230 (function_arg_advance): Likewise.
13231 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
13232
13233 2011-03-24 Richard Guenther <rguenther@suse.de>
13234
13235 PR middle-end/48269
13236 * tree-object-size.c (addr_object_size): Do not double-account
13237 for MEM_REF offsets.
13238
13239 2011-03-24 Diego Novillo <dnovillo@google.com>
13240
13241 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
13242 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
13243 (lto_input_data_block): Move from lto-opts.c. Make extern.
13244 Update all users.
13245 (lto_input_string): Rename from input_string. Make extern.
13246 Update all users.
13247 * lto-streamer-out.c (lto_output_string_with_length): Rename from
13248 output_string_with_length.
13249 Output 0 to indicate a non-NULL string. Update all callers to
13250 not emit 0.
13251 (lto_output_string): Rename from output_string. Make extern.
13252 Update all users.
13253 (lto_output_decl_state_streams): Make extern.
13254 (lto_output_decl_state_refs): Make extern.
13255 * lto-streamer.h (lto_input_string): Declare.
13256 (lto_input_data_block): Declare.
13257 (lto_output_string): Declare.
13258 (lto_output_string_with_length): Declare.
13259 (lto_output_decl_state_streams): Declare.
13260 (lto_output_decl_state_refs): Declare.
13261
13262 2011-03-24 Richard Guenther <rguenther@suse.de>
13263
13264 PR tree-optimization/46562
13265 * tree.c (build_invariant_address): New function.
13266 * tree.h (build_invariant_address): Declare.
13267 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
13268 a renamed function moved ...
13269 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
13270 Take valueization callback parameter.
13271 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
13272 * gimple-fold.h: New file.
13273 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
13274 (ccp_fold, fold_const_aggregate_ref,
13275 fold_ctor_reference, fold_nonarray_ctor_reference,
13276 fold_array_ctor_reference, fold_string_cst_ctor_reference,
13277 get_base_constructor): Move ...
13278 * gimple-fold.c: ... here.
13279 (gimple_fold_stmt_to_constant_1): New function
13280 split out from ccp_fold. Take a valueization callback parameter.
13281 Valueize all operands.
13282 (gimple_fold_stmt_to_constant): New wrapper function.
13283 (fold_const_aggregate_ref_1): New function split out from
13284 fold_const_aggregate_ref. Take a valueization callback parameter.
13285 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
13286 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
13287 invariant POINTER_PLUS_EXPRs to invariant form.
13288 (vn_valueize): New function.
13289 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
13290 * tree-vrp.c (vrp_valueize): New function.
13291 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
13292 to fold statements to constants.
13293 * tree-ssa-pre.c (eliminate): Properly guard propagation of
13294 function declarations.
13295 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
13296 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
13297
13298 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
13299
13300 * config/h8300/predicates.md (jump_address_operand): Fix register
13301 mode check.
13302
13303 2011-03-24 Ira Rosen <ira.rosen@linaro.org>
13304
13305 * doc/invoke.texi (max-stores-to-sink): Document.
13306 * params.h (MAX_STORES_TO_SINK): Define.
13307 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
13308 if either vectorization or if-conversion is disabled.
13309 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
13310 tree-vect-data-refs.c vect_equal_offsets.
13311 (dr_equal_offsets_p): New function.
13312 (find_data_references_in_bb): Remove static.
13313 * tree-data-ref.h (find_data_references_in_bb): Declare.
13314 (dr_equal_offsets_p): Likewise.
13315 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
13316 (vect_drs_dependent_in_basic_block): Update calls to
13317 vect_equal_offsets.
13318 (vect_check_interleaving): Likewise.
13319 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
13320 (cond_if_else_store_replacement): Rename to...
13321 (cond_if_else_store_replacement_1): ... this. Change arguments and
13322 documentation.
13323 (cond_if_else_store_replacement): New function.
13324 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
13325 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
13326
13327 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
13328
13329 PR target/46934
13330 * config/arm/arm.md (casesi): Use the gen_int_mode() function
13331 to subtract lower bound instead of GEN_INT().
13332
13333 2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
13334
13335 PR other/48179
13336 PR other/48221
13337 PR other/48234
13338 * doc/extend.texi (Alignment): Move section to match order in TOC.
13339 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
13340 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
13341
13342 2011-03-23 Jeff Law <law@redhat.com>
13343
13344 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
13345 before removing the edge.
13346
13347 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
13348 it may have been freed by redirect_branch_edge or
13349 redirect_edge_succ_nodup.
13350
13351 2011-03-23 Richard Guenther <rguenther@suse.de>
13352
13353 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
13354 (check_va_list_escapes): Likewise.
13355 (check_all_va_list_escapes): Likewise.
13356
13357 2011-03-23 Richard Guenther <rguenther@suse.de>
13358
13359 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
13360 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
13361 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
13362 (alias.o): Likewise.
13363 (ipa-type-escape.o): Remove.
13364 (ipa-struct-reorg.o): Likewise.
13365 (GTFILES): Remove ipa-struct-reorg.c.
13366 * alias.c: Do not include ipa-type-escape.h.
13367 * tree-ssa-alias.c: Likewise.
13368 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
13369 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
13370 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
13371 and ipa-type-escape passes.
13372 * tree-pass.h (pass_ipa_type_escape): Remove.
13373 (pass_ipa_struct_reorg): Likewise.
13374 * ipa-struct-reorg.h: Remove.
13375 * ipa-struct-reorg.c: Likewise.
13376 * ipa-type-escape.h: Likewise.
13377 * ipa-type-escape.c: Likewise.
13378 * doc/invoke.texi (-fipa-struct-reorg): Remove.
13379 (--param struct-reorg-cold-struct-ratio): Likewise.
13380 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
13381 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
13382 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
13383
13384 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13385
13386 * config/s390/2084.md: Enable all insn reservations also for z9_ec
13387 cpu attribute value.
13388 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
13389 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
13390 * config/s390/s390.c (processor_flags_table): New constant array.
13391 (s390_handle_arch_option): Remove.
13392 (s390_handle_option): Remove s390_handle_arch_option invocations
13393 and OPT_mwarn_framesize_ handling.
13394 (s390_option_override): Remove s390_handle_arch_option invocation.
13395 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
13396 warnings.
13397 * config/s390/s390.md (cpu attribute): Add z9_ec value.
13398 * config/s390/s390.opt (s390_tune, s390_arch)
13399 (march=): Replace s390_arch_option enum and values with
13400 processor_type. Set variable name to s390_arch. Set
13401 initialization value.
13402 (mtune=): Replace s390_arch_option with processor_type. Set
13403 variable name to s390_tune. Set initialization value.
13404
13405 2011-03-23 Julian Brown <julian@codesourcery.com>
13406
13407 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
13408 accesses which are not naturally aligned.
13409
13410 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
13411
13412 PR target/47553
13413 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
13414
13415 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
13416
13417 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
13418 parameter from "int" to "enum insn_code".
13419 (expand_operand_type): New enum.
13420 (expand_operand): New structure.
13421 (create_expand_operand): New function.
13422 (create_fixed_operand, create_output_operand): Likewise
13423 (create_input_operand, create_convert_operand_to): Likewise.
13424 (create_convert_operand_from, create_address_operand): Likewise.
13425 (create_integer_operand): Likewise.
13426 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
13427 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
13428 (expand_insn, expand_jump_insn): Likewise.
13429 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
13430 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
13431 (expand_movstr, expand_builtin___clear_cache): Likewise.
13432 (expand_builtin_lock_release): Likewise.
13433 * explow.c (allocate_dynamic_stack_space): Likewise.
13434 (probe_stack_range): Likewise. Allow check_stack to FAIL,
13435 and use the default handling in that case.
13436 * expmed.c (check_predicate_volatile_ok): Delete.
13437 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
13438 (emit_cstore): Likewise.
13439 * expr.c (emit_block_move_via_movmem): Likewise.
13440 (set_storage_via_setmem, expand_assignment): Likewise.
13441 (emit_storent_insn, try_casesi): Likewise.
13442 (emit_single_push_insn): Likewise. Allow the expansion to fail.
13443 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
13444 (expand_vec_shift_expr, expand_binop_directly): Likewise.
13445 (expand_twoval_unop, expand_twoval_binop): Likewise.
13446 (expand_unop_direct, emit_indirect_jump): Likewise.
13447 (emit_conditional_move, vector_compare_rtx): Likewise.
13448 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
13449 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
13450 (expand_sync_lock_test_and_set): Likewise.
13451 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
13452 (emit_unop_insn): Likewise.
13453 (expand_copysign_absneg): Change icode to an insn_code.
13454 (create_convert_operand_from_type): New function.
13455 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
13456 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
13457 (expand_insn, expand_jump_insn): Likewise.
13458 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
13459 than const_int_operand for operand 2.
13460
13461 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13462
13463 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
13464 if possible.
13465
13466 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
13467
13468 * emit-rtl.c (emit_pattern_before_noloc): New function.
13469 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
13470 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
13471 (emit_pattern_after_noloc): New function.
13472 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
13473 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
13474
13475 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
13476
13477 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
13478 (__ffsDI2): Likewise.
13479
13480 2011-03-22 Richard Henderson <rth@redhat.com>
13481
13482 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
13483 of !TARGET_ABI_OPEN_VMS.
13484 (alpha_trampoline_init, alpha_start_function): Likewise.
13485 (alpha_expand_epilogue, alpha_file_start): Likewise.
13486 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
13487 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
13488 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
13489 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
13490 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
13491
13492 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13493
13494 * config/s390/s390-opts.h: New.
13495 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
13496 s390_arch_flags, s390_warn_framesize, s390_stack_size,
13497 s390_stack_guard): Remove.
13498 (s390_handle_arch_option): Return void. Take enum
13499 s390_arch_option value instead of string and searching array.
13500 (s390_handle_option): Don't assert that global structures are in
13501 use. Access variables via opts pointer. Use error_at. Don't use
13502 sscanf for -mstack-guard= or -mstack-size=. Update call to
13503 s390_handle_arch_option.
13504 (s390_option_override): Update call to s390_handle_arch_option.
13505 (s390_emit_prologue): Use %d format for s390_stack_size in
13506 diagnostic. Use %wd for HOST_WIDE_INT.
13507 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
13508 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
13509 * config/s390/s390.opt (config/s390/s390-opts.h): New
13510 HeaderInclude entry.
13511 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
13512 s390_arch_flags, s390_warn_framesize): New Variable entries.
13513 (s390_arch_option): New Enum and EnumValue entries.
13514 (march=): Use Enum instead of Var.
13515 (mstack-guard=, mstack-size=): Use UInteger and Var.
13516 (mtune=): Use Enum.
13517
13518 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13519
13520 * config/score/score.c (score_handle_option): Don't assert that
13521 global structures are in use. Access target_flags via opts
13522 pointer. Use value of -march= option to determine target_flags
13523 settings.
13524 * config/score/score.opt (march=): Use Enum.
13525 (score_arch): New Enum and EnumValue entries.
13526
13527 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13528
13529 * config/mep/mep.c (option_mtiny_specified): Remove.
13530 (mep_option_override): Move register handling for -mivc2 from
13531 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
13532 instead of option_mtiny_specified.
13533 (mep_handle_option): Access target_flags via opts pointer. Don't
13534 assert that global structures are in use. Defer part of -mivc2
13535 handling and move it to mep_option_override.
13536 * config/mep/mep.opt (IVC2): New Mask entry.
13537 (mivc2): Use Var and Defer instead of Mask.
13538
13539 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13540
13541 * config/v850/v850-opts.h: New.
13542 * config/v850/v850.c (small_memory): Replace with
13543 small_memory_physical_max array. Make that array static const.
13544 (v850_handle_memory_option): Take integer value of argument. Take
13545 gcc_options pointer, option text and location. Return void.
13546 Update for changes to small memory structures.
13547 (v850_handle_option): Access target_flags via opts pointer. Don't
13548 assert that global structures are in use. Update calls to
13549 v850_handle_memory_option.
13550 (v850_encode_data_area): Update references to small memory settings.
13551 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
13552 (enum small_memory_type): Move to v850-opts.h.
13553 * config/v850/v850.opt (config/v850/v850-opts.h): New
13554 HeaderInclude entry.
13555 (small_memory_max): New Variable entry.
13556 (msda): Replace by pair of options msda= and msda-. Use UInteger.
13557 (mtda, mzda): Likewise.
13558
13559 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13560
13561 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
13562 pointer. Don't assert that global structures are in use.
13563
13564 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13565
13566 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
13567 via opts pointer. Don't assert that global structures are in use.
13568
13569 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13570
13571 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
13572 (munix=93): Use Var.
13573 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
13574 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
13575 * config/pa/pa-opts.h: New.
13576 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
13577 (pa_handle_option): Don't assert that global structures are in
13578 use. Access target_flags via opts pointer. Don't handle
13579 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
13580 OPT_munix_98 here.
13581 (pa_option_override): Handle deferred OPT_mfixed_range_.
13582
13583 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13584
13585 * config/mn10300/mn10300-opts.h: New.
13586 * config/mn10300/mn10300.c (mn10300_processor,
13587 mn10300_tune_string): Remove.
13588 (mn10300_handle_option): Don't assert that global structures are
13589 in use. Access mn10300_processor via opts pointer. Don't handle
13590 OPT_mtune_ here.
13591 * config/mn10300/mn10300.h (enum processor_type): Move to
13592 mn10300-opts.h.
13593 (mn10300_processor): Remove.
13594 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
13595 HeaderInclude entry.
13596 (mn10300_processor): New Variable entry.
13597 (mtune=): Use Var.
13598
13599 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13600
13601 * config/microblaze/microblaze.c: Don't include opts.h.
13602 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
13603 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
13604 (mno-clearbss): Use Var and Warn.
13605
13606 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13607
13608 * config/m32r/m32r-opts.h: New.
13609 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
13610 (m32r_handle_option): Don't assert that global structures are in
13611 use. Access target_flags and m32r_cache_flush_func via opts
13612 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
13613 OPT_mno_flush_trap here.
13614 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
13615 include of m32r-opts.h.
13616 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
13617 HeaderInclude entry.
13618 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
13619 (mmodel=): Use Enum and Var.
13620 (m32r_model): New Enum and EnumValue entries.
13621 (mno-flush-trap): Use Var.
13622 (msdata=): Use Enum and Var.
13623 (m32r_sdata): New Enum and EnumValue entries.
13624
13625 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13626
13627 * config/m32c/m32c.c: Don't include opts.h.
13628 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
13629 m32c_handle_option): Remove.
13630 (m32c_option_override): Check global_options_set.x_target_memregs
13631 instead of target_memregs_set.
13632 * config/m32c/m32c.h (target_memregs): Remove.
13633 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
13634 variable.
13635
13636 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13637
13638 * config/iq2000/iq2000-opts.h: New.
13639 * config/iq2000/iq2000.c: Don't include opts.h.
13640 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
13641 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
13642 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
13643 HeaderInclude entry.
13644 (iq2000_tune): New Variable entry.
13645 (march=): Add comment. Use Enum.
13646 (iq2000_arch): New Enum and EnumValue entries.
13647 (mcpu=): Use Enum and Var.
13648 (iq2000_tune): New Enum and EnumValue entries.
13649
13650 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13651
13652 * config/ia64/ia64-opts.h: New.
13653 * config/ia64/ia64.c (ia64_tune): Remove.
13654 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
13655 here. Use error_at.
13656 (ia64_option_override): Handle deferred OPT_mfixed_range_.
13657 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
13658 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
13659 HeaderInclude entry.
13660 (ia64_tune): New Variable entry.
13661 (mfixed-range=): Use Defer and Var.
13662 (mtune=): Use Enum and Var.
13663 (ia64_tune): New Enum and EnumValue entries.
13664
13665 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13666
13667 * config/frv/frv-opts.h: New.
13668 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
13669 frv-opts.h.
13670 (frv_cpu_type): Remove.
13671 * config/frv/frv.c: Don't include opts.h.
13672 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
13673 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
13674 (frv_cpu_type): New Variable entry.
13675 (frv_cpu): New Enum and EnumValue entries.
13676
13677 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13678
13679 * config/cris/cris.c (cris_handle_option): Access target_flags via
13680 opts pointer. Don't assert that global structures are in use.
13681 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
13682 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
13683
13684 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13685
13686 * config/bfin/bfin-opts.h: New.
13687 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
13688 bfin_si_revision, bfin_workarounds): Remove.
13689 (bfin_cpus): Make static const.
13690 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
13691 not bfin_lib_id_given.
13692 (bfin_handle_option): Don't set bfin_lib_id_given. Access
13693 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
13694 pointer. Use error_at. Don't assert that global structures are in use.
13695 * config/bfin/bfin.h: Include bfin-opts.h.
13696 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
13697 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
13698 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
13699 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
13700 entries.
13701
13702 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13703
13704 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
13705 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
13706 or -msoft-float here.
13707 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
13708 -msoft-float and -mhard-float.
13709 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
13710 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
13711 msoft-float.
13712 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
13713 -msoft-float.
13714 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
13715 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
13716 not mhard-float.
13717 (LIBGCC_SPEC): Don't handle -msoft-float.
13718 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
13719 -mhard-float.
13720 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
13721 msoft-float.
13722 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
13723 -mfloat-abi=*, not -msoft-float and -mhard-float.
13724 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
13725 -msoft-float.
13726 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
13727 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
13728 mhard-float and msoft-float.
13729 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
13730 mfloat-abi=soft in comments, not mhard-float and msoft-float.
13731 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
13732 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
13733 mhard-float.
13734 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
13735 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
13736 msoft-float.
13737 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
13738 not mhard-float.
13739 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
13740 not msoft-float.
13741
13742 2011-03-22 Richard Henderson <rth@redhat.com>
13743
13744 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
13745 TARGET_ABI_WINDOWS_NT.
13746 (alpha_output_function_end_prologue): Likewise.
13747 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
13748 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
13749 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
13750 (trap, *movsi_nt_vms): Likewise.
13751 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
13752 (*tablejump_osf_nt_internal): Remove.
13753 * config/alpha/predicates.md (input_operand): Only test Pmode.
13754
13755 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13756
13757 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
13758 via opts pointer. Use error_at. Don't assert that global
13759 structures are in use.
13760
13761 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13762
13763 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
13764 (ix86_handle_option): Access ix86_isa_flags and
13765 ix86_isa_flags_explicit via opts pointer. Don't assert that
13766 global structures are in use.
13767 (ix86_function_specific_save, ix86_function_specific_restore):
13768 Update ix86_isa_flags_explicit field name.
13769 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
13770 (ix86_isa_flags_explicit): Rename TargetSave entry to
13771 x_ix86_isa_flags_explicit.
13772
13773 2011-03-22 Richard Henderson <rth@redhat.com>
13774
13775 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
13776 (alpha_option_override, direct_return): Likewise.
13777 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
13778 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
13779 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
13780 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
13781 (alpha_expand_epilogue, alpha_end_function): Likewise.
13782 (alpha_init_libfuncs): Likewise.
13783 (struct machine_function): Remove unicosmk members.
13784 (print_operand) ['t']: Remove.
13785 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
13786 unicosmk_output_module_name, unicosmk_output_common,
13787 current_section_align, unicosmk_output_text_section_asm_op,
13788 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
13789 unicosmk_section_type_flags, unicosmk_unique_section,
13790 unicosmk_asm_named_section, unicosmk_insert_attributes,
13791 unicosmk_output_align, unicosmk_defer_case_vector,
13792 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
13793 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
13794 unicosmk_output_ssib, unicosmk_add_call_info_word,
13795 unicosmk_extern_head, unicosmk_output_default_externs,
13796 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
13797 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
13798 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
13799 * config/alpha/alpha-protos.h: Update.
13800 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
13801 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
13802 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
13803 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
13804 (*mulsi_se, mulvsi3): Likewise.
13805 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
13806 (*divmodsi_internal, call, call_value, realign): Likewise.
13807 (moddi3, umoddi3): Likewise; remove duplicate expander.
13808 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
13809 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
13810 (*movdi_nofix): Remove r/U alternative.
13811 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
13812 * config/alpha/constraints.md ("U"): Remove.
13813 * config/alpha/predicates.md (call_operand"): Don't test
13814 TARGET_ABI_UNICOSMK.
13815
13816 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13817
13818 * target.def (handle_option): Take gcc_options and
13819 cl_decoded_option pointers and location_t.
13820 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
13821 * doc/tm.texi: Regenerate.
13822 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
13823 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
13824 * lto-opts.c (lto_reissue_options): Generate option structure for
13825 targetm.handle_option call.
13826 * opts.c (target_handle_option): Update call to
13827 targetm.handle_option. Remove assertions about values now passed
13828 down to hook.
13829 * targhooks.c (default_target_handle_option): New.
13830 * targhooks.h (default_target_handle_option): Declare.
13831 * config/alpha/alpha.c: Include opts.h.
13832 (alpha_handle_option): Update to new hook interface.
13833 * config/arm/arm.c: Include opts.h.
13834 (arm_handle_option): Update to new hook interface.
13835 * config/arm/t-arm (arm.o): Update dependencies.
13836 * config/bfin/bfin.c: Include opts.h.
13837 (bfin_handle_option): Update to new hook interface.
13838 * config/cris/cris.c: Include opts.h.
13839 (cris_handle_option): Update to new hook interface.
13840 * config/frv/frv.c: Include opts.h.
13841 (frv_handle_option): Update to new hook interface.
13842 * config/i386/i386.c: Include opts.h.
13843 (ix86_handle_option): Update to new hook interface.
13844 (ix86_valid_target_attribute_inner_p): Generate option structure
13845 for call to ix86_handle_option.
13846 * config/i386/t-i386 (i386.o): Update dependencies.
13847 * config/ia64/ia64.c: Include opts.h.
13848 (ia64_handle_option): Update to new hook interface.
13849 * config/ia64/t-ia64 (ia64.o): Update dependencies.
13850 * config/iq2000/iq2000.c: Include opts.h.
13851 (iq2000_handle_option): Update to new hook interface.
13852 * config/m32c/m32c.c: Include opts.h.
13853 (m32c_handle_option): Update to new hook interface.
13854 * config/m32r/m32r.c: Include opts.h.
13855 (m32r_handle_option): Update to new hook interface.
13856 * config/m68k/m68k.c: Include opts.h.
13857 (m68k_handle_option): Update to new hook interface.
13858 * config/mep/mep.c: Include opts.h.
13859 (mep_handle_option): Update to new hook interface.
13860 * config/microblaze/microblaze.c: Include opts.h.
13861 (microblaze_handle_option): Update to new hook interface.
13862 * config/mips/mips.c: Include opts.h.
13863 (mips_handle_option): Update to new hook interface.
13864 * config/mn10300/mn10300.c: Include opts.h.
13865 (mn10300_handle_option): Update to new hook interface.
13866 * config/pa/pa.c: Include opts.h.
13867 (pa_handle_option): Update to new hook interface.
13868 * config/pdp11/pdp11.c: Include opts.h.
13869 (pdp11_handle_option): Update to new hook interface.
13870 * config/rs6000/rs6000.c: Include opts.h.
13871 (rs6000_handle_option): Update to new hook interface.
13872 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
13873 * config/rx/rx.c: Include opts.h.
13874 (rx_handle_option): Update to new hook interface.
13875 * config/s390/s390.c: Include opts.h.
13876 (s390_handle_option): Update to new hook interface.
13877 * config/score/score.c: Include opts.h.
13878 (score_handle_option): Update to new hook interface.
13879 * config/sh/sh.c: Include opts.h.
13880 (sh_handle_option): Update to new hook interface.
13881 * config/sparc/sparc.c: Include opts.h.
13882 (sparc_handle_option): Update to new hook interface.
13883 * config/v850/v850.c: Include opts.h.
13884 (v850_handle_option): Update to new hook interface.
13885
13886 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13887
13888 * gcc.c (driver_unknown_option_callback): Only permit and save
13889 unknown -Wno- options.
13890 (driver_wrong_lang_callback): Save options directly instead of via
13891 driver_unknown_option_callback.
13892
13893 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
13894
13895 * combine.c (simplify_set): Try harder to find the best CC mode when
13896 simplifying a nested COMPARE on the RHS.
13897
13898 2011-03-22 Joseph Myers <joseph@codesourcery.com>
13899
13900 * config/alpha/gnu.h: Remove.
13901 * config/arc: Remove directory.
13902 * config/arm/netbsd.h: Remove.
13903 * config/arm/t-pe: Remove.
13904 * config/crx: Remove directory.
13905 * config/i386/netbsd.h: Remove.
13906 * config/m68hc11: Remove directory.
13907 * config/m68k/uclinux-oldabi.h: Remove.
13908 * config/mcore/mcore-pe.h: Remove.
13909 * config/mcore/t-mcore-pe: Remove.
13910 * config/netbsd-aout.h: Remove.
13911 * config/rs6000/gnu.h: Remove.
13912 * config/sh/sh-symbian.h: Remove.
13913 * config/sh/symbian-base.c: Remove.
13914 * config/sh/symbian-c.c: Remove.
13915 * config/sh/symbian-cxx.c: Remove.
13916 * config/sh/symbian-post.h: Remove.
13917 * config/sh/symbian-pre.h: Remove.
13918 * config/sh/t-symbian: Remove.
13919 * config/svr3.h: Remove.
13920 * config/vax/netbsd.h: Remove.
13921 * config.build: Don't handle i[34567]86-*-pe.
13922 * config.gcc: Remove handling of deprecations for most deprecated
13923 targets.
13924 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
13925 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
13926 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
13927 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
13928 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
13929 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
13930 Remove cases.
13931 * config.host: Don't handle i[34567]86-*-pe.
13932 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
13933 (ASM_SPEC32): Don't handle -mcall-gnu.
13934 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
13935 -mcall-gnu.
13936 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
13937 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
13938 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
13939 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
13940 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
13941 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
13942 conditional on SYMBIAN.
13943 * configure.ac: Don't handle powerpc*-*-gnu*.
13944 * configure: Regenerate.
13945 * doc/extend.texi (interrupt attribute): Don't mention CRX.
13946 * doc/install-old.texi (m6811, m6812): Don't mention.
13947 * doc/install.texi (arc-*-elf*): Don't document multilib option.
13948 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
13949 (m68k-uclinuxoldabi): Don't mention.
13950 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
13951 Remove.
13952 (-mcall-gnu): Remove.
13953 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
13954 families): Remove constraint documentation.
13955
13956 2011-03-22 Marius Strobl <marius@FreeBSD.org>
13957
13958 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
13959 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
13960 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
13961
13962 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
13963
13964 PR target/48226
13965 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
13966 vector when peeking at the next token for vector, don't expand the
13967 keywords.
13968
13969 2011-03-21 Georg-Johann Lay <avr@gjlay.de>
13970
13971 * config/avr/avr-protos.h (expand_epilogue): Change prototype
13972 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
13973 * config/avr/avr.c (init_cumulative_args)
13974 (avr_function_arg_advance): Use it.
13975 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
13976 sibcall epilogues.
13977 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
13978 (avr_function_ok_for_sibcall): ...this new function.
13979 (avr_lookup_function_attribute1): New static Function.
13980 (avr_naked_function_p, interrupt_function_p)
13981 (signal_function_p, avr_OS_task_function_p)
13982 (avr_OS_main_function_p): Use it.
13983 * config/avr/avr.md ("sibcall", "sibcall_value")
13984 ("sibcall_epilogue"): New expander.
13985 ("*call_insn", "*call_value_insn"): New insn.
13986 ("call_insn", "call_value_insn"): Remove
13987 ("call", "call_value", "epilogue"): Change expander to handle
13988 sibling calls.
13989
13990 2011-03-21 Nick Clifton <nickc@redhat.com>
13991
13992 * doc/invoke.texi (Overall Options): Move closing brace to end of
13993 options list.
13994 (Optimization Options): Add missing @gol.
13995 (Directory Options): Likewise.
13996 (i386 and x86-64 Options): Likewise.
13997 (RS6000 and PowerPC Options): Likewise.
13998 (i386 and x86-64 Windows Options): Likewise.
13999 (V850 Options): Add text missing from descriptions.
14000
14001 2011-03-22 Richard Henderson <rth@redhat.com>
14002
14003 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
14004 (avr_incoming_return_addr_rtx): New.
14005 (emit_push_byte): New.
14006 (expand_prologue): Use it. Remove incorrect dwarf annotation for
14007 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
14008 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
14009 (emit_pop_byte): New.
14010 (expand_epilogue): Use it. Pop frame pointer by bytes.
14011 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
14012 (INCOMING_RETURN_ADDR_RTX): New.
14013 (INCOMING_FRAME_SP_OFFSET): New.
14014 (ARG_POINTER_CFA_OFFSET): New.
14015 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
14016 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
14017 (pophi): Remove.
14018
14019 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
14020
14021 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
14022
14023 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
14024 (FUNCTION_ARG_ADVANCE): Likewise.
14025 * tm.texi.in: Change references to them to hook references.
14026 * tm.texi: Regenerate.
14027 * targhooks.c (default_function_arg): Eliminate check for target
14028 macro.
14029 (default_function_incoming_arg): Likewise.
14030 (default_function_arg_advance): Likewise.
14031 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
14032 (function_arg_advance): Likewise.
14033 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
14034
14035 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
14036
14037 * tree.c (build_call_1): New function.
14038 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
14039
14040 2011-03-22 Richard Guenther <rguenther@suse.de>
14041
14042 PR tree-optimization/48228
14043 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
14044 for single-arg PHIs.
14045
14046 2011-03-22 Andrey Belevantsev <abel@ispras.ru>
14047
14048 PR rtl-optimization/48143
14049 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
14050 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
14051 sse2_cvtps2pd): Likewise.
14052
14053 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14054
14055 * recog.c (canonicalize_change_group): Use validate_unshare_change.
14056
14057 2011-03-22 Richard Guenther <rguenther@suse.de>
14058
14059 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
14060 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
14061 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
14062 and REALIGN_LOAD_EXPR.
14063 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
14064 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
14065 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
14066 DOT_PROD_EXPR case ...
14067 (expand_expr_real_2): ... here.
14068 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
14069 and REALIGN_LOAD_EXPR.
14070 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
14071 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
14072 (vect_create_epilog_for_reduction): Likewise.
14073 (vectorizable_reduction): Likewise.
14074 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
14075 * tree-vect-stmts.c (vectorizable_load): Likewise.
14076
14077 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
14078
14079 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
14080
14081 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14082
14083 * config/s390/s390.c (s390_delegitimize_address): Fix offset
14084 handling for PLTOFF/GOTOFF.
14085
14086 2011-03-22 Nick Clifton <nickc@redhat.com>
14087
14088 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
14089 trailing backslash from the end of the macro definition.
14090
14091 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14092
14093 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
14094 and PLT unspecs.
14095
14096 2011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
14097
14098 * expr.h (prepare_operand): Move to...
14099 * optabs.h (prepare_operand): ...here and change the insn code
14100 parameter from "int" to "enum insn_code".
14101 (insn_operand_matches): Declare.
14102 * expr.c (init_expr_target): Use insn_operand_matches.
14103 (compress_float_constant): Likewise.
14104 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
14105 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
14106 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
14107 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
14108 Likewise.
14109 (gen_cond_trap): Likewise.
14110 (prepare_operand): Likewise. Change icode to an insn_code.
14111 (insn_operand_matches): New function.
14112 * reload.c (find_reloads_address_1): Use insn_operand_matches.
14113 * reload1.c (gen_reload): Likewise.
14114 * targhooks.c (default_secondary_reload): Likewise.
14115
14116 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
14117
14118 * config/alpha/alpha.md (unspec): New define_c_enum.
14119 (unspecv): Ditto.
14120
14121 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
14122
14123 PR debug/48214
14124 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
14125 between a call and its CALL_ARG_LOCATION note.
14126
14127 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
14128
14129 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
14130
14131 2011-03-21 Jakub Jelinek <jakub@redhat.com>
14132
14133 PR c/42544
14134 PR c/48197
14135 * c-common.c (shorten_compare): If primopN is first sign-extended
14136 to opN and then zero-extended to result type, set primopN to opN.
14137
14138 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
14139
14140 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
14141 for barrier handlers.
14142
14143 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
14144
14145 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
14146 UNSPEC constants to be in the unspec enumeration, and redefine
14147 all UNSPECV constants to be in the unspecv enumeration, so that
14148 dumps print which unspec/unspec_volatile this is.
14149 * config/rs6000/vector.md (UNSPEC_*): Ditto.
14150 * config/rs6000/paired.md (UNSPEC_*): Ditto.
14151 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
14152 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
14153 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
14154
14155 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
14156 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
14157 UNSPECV_LWSYNC, since these are used as unspec_volatile.
14158 * config/rs6000/sync.md (isync, lwsync): Ditto.
14159
14160 2011-03-21 Richard Guenther <rguenther@suse.de>
14161
14162 * params.def (lto-min-partition): Fix typo.
14163
14164 2011-03-21 Richard Guenther <rguenther@suse.de>
14165
14166 PR c/47939
14167 * c-decl.c (grokdeclarator): Drop to the main variant only
14168 for array types. Drop flag_gen_aux_info check.
14169
14170 2011-03-21 Richard Guenther <rguenther@suse.de>
14171
14172 PR translation/47911
14173 * params.def (lto-partitions): Fix typo.
14174 (lto-min-partition): Fix wording.
14175
14176 2011-03-21 Andreas Tobler <andreast@fgznet.ch>
14177
14178 * config/rs6000/t-freebsd: Remove duplication from file.
14179
14180 2011-03-21 Richard Guenther <rguenther@suse.de>
14181
14182 PR middle-end/47661
14183 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
14184
14185 2011-03-21 Richard Guenther <rguenther@suse.de>
14186
14187 PR lto/48210
14188 * params.def (lto-partitions): Require at least 1 partition.
14189
14190 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14191
14192 * gthr-solaris.h: Remove.
14193 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
14194 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
14195 (LIB_SPEC): Likewise.
14196 * config/sol2.opt (threads): Remove.
14197 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
14198 (sparc*-*-solaris2*): Likewise.
14199 * configure.ac (enable_threads): Enable solaris support.
14200 * configure: Regenerate.
14201 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
14202 * doc/install.texi (Configuration, --enable-threads=lib): Remove
14203 solaris.
14204
14205 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14206
14207 * config.gcc: Obsolete *-*-solaris2.8*.
14208 * doc/install.texi (Specific, *-*-solaris2*): Document it.
14209
14210 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14211
14212 PR bootstrap/48135
14213 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
14214 reference. Solaris 8 perl works.
14215
14216 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14217
14218 PR bootstrap/48135
14219 * doc/install.texi (Prerequisites): Move jar etc. up.
14220 Explain support library version requirements.
14221
14222 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14223
14224 PR bootstrap/48135
14225 * doc/install.texi (Prerequisites): Move Perl to build
14226 requirements. Always necessary on Solaris 2 with Sun ld.
14227
14228 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14229
14230 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
14231 binutils 2.21.
14232 (Specific, i?86-*-solaris2.[89]): Likewise.
14233 (Specific, i?86-*-solaris2.10): Likewise.
14234 (Specific, mips-sgi-irix6): Likewise.
14235 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
14236 Update for binutils 2.21.
14237
14238 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14239
14240 * configure.ac (gcc_cv_lto_plugin): Fix typo.
14241 Allow -fuse-linker-plugin for non-default plugin linker.
14242 * configure: Regenerate.
14243
14244 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
14245
14246 PR bootstrap/48167
14247 * gengtype.c (files_rules): Added rule for cp/parser.h.
14248
14249 2011-03-21 Jakub Jelinek <jakub@redhat.com>
14250
14251 PR target/48213
14252 * config/s390/s390.c (s390_delegitimize_address): Don't call
14253 lowpart_subreg if orig_x has BLKmode.
14254
14255 2011-03-21 Kai Tietz <ktietz@redhat.com>
14256
14257 PR target/12171
14258 * doc/plugins.texi: Adjust documentation for plugin register_callback.
14259 * tree.h (attribute_spec): Add new member affects_type_identity.
14260 * attribs.c (empty_attribute_table): Adjust attribute_spec
14261 initializers.
14262 * config/alpha/alpha.c: Likewise.
14263 * config/arc/arc.c: Likewise.
14264 * config/arm/arm.c: Likewise.
14265 * config/avr/avr.c: Likewise.
14266 * config/bfin/bfin.c: Likewise.
14267 * config/crx/crx.c: Likewise.
14268 * config/darwin.h: Likewise.
14269 * config/h8300/h8300.c: Likewise.
14270 * config/i386/cygming.h: Likewise.
14271 * config/i386/i386.c: Likewise.
14272 * config/ia64/ia64.c: Likewise.
14273 * config/m32c/m32c.c: Likewise.
14274 * config/m32r/m32r.c: Likewise.
14275 * config/m68hc11/m68hc11.c: Likewise.
14276 * config/m68k/m68k.c: Likewise.
14277 * config/mcore/mcore.c: Likewise.
14278 * config/mep/mep.c: Likewise.
14279 * config/microblaze/microblaze.c: Likewise.
14280 * config/mips/mips.c: Likewise.
14281 * config/rs6000/rs6000.c: Likewise.
14282 * config/rx/rx.c: Likewise.
14283 * config/sh/sh.c: Likewise.
14284 * config/sol2.h: Likewise.
14285 * config/sparc/sparc.c: Likewise.
14286 * config/spu/spu.c: Likewise.
14287 * config/stormy16/stormy16.c: Likewise.
14288 * config/v850/v850.c: Likewise.
14289
14290 2011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
14291
14292 * simplify-rtx.c (simplify_binary_operation_1): Handle
14293 (xor (and A B) C) case when B and C are both constants.
14294
14295 2011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
14296
14297 * tree-dfa.c (add_referenced_var): Fix typo in comment.
14298
14299 2011-03-20 Eric Botcazou <ebotcazou@adacore.com>
14300
14301 PR bootstrap/48168
14302 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
14303
14304 2011-03-20 Jakub Jelinek <jakub@redhat.com>
14305
14306 PR rtl-optimization/48156
14307 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
14308 assume df and df_lr are not NULL.
14309
14310 2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
14311
14312 PR debug/48023
14313 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
14314 between a call and its CALL_ARG_LOCATION note.
14315
14316 2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
14317
14318 PR debug/48178
14319 * config/sh/sh.c (find_barrier): Don't emit a constant pool
14320 between a call and its corresponding CALL_ARG_LOCATION note.
14321
14322 2011-03-19 Anatoly Sokolov <aesok@post.ru>
14323
14324 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
14325 instead of loop. Use HARD_REGISTER_NUM_P predicate.
14326 * haifa-sched.c (setup_ref_regs): Ditto.
14327 * caller-save.c (add_used_regs_1): Ditto.
14328 * dse.c (look_for_hardregs): Ditto.
14329 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
14330 * sched-rgn.c (check_live_1): Ditto.
14331
14332 2011-03-18 Joseph Myers <joseph@codesourcery.com>
14333
14334 * c-decl.c (diagnose_mismatched_decls): Give an error for
14335 redefining a typedef with variably modified type.
14336
14337 2011-03-18 Joseph Myers <joseph@codesourcery.com>
14338
14339 * c-decl.c (grokfield): Don't allow typedefs for structures or
14340 unions with no tag by default.
14341 * doc/extend.texi (Unnamed Fields): Update.
14342
14343 2011-03-18 Uros Bizjak <ubizjak@gmail.com>
14344
14345 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
14346 Rewrite using indirect functions.
14347 (lwp_slwpcb): Ditto.
14348 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
14349 (avx_vinsertf128<mode>): Ditto.
14350
14351 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14352
14353 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
14354 unspecs.
14355
14356 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14357
14358 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
14359 splitting between a call and its corresponding CALL_ARG_LOCATION note.
14360
14361 2011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
14362
14363 PR rtl-optimization/48170
14364 * gcse.c (hoist_code): Remove bogus asserts.
14365
14366 2011-03-18 Georg-Johann Lay <avr@gjlay.de>
14367
14368 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
14369 computation for prologue/epilogue.
14370
14371 2011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14372
14373 * Makefile.in (check-consistency): Remove.
14374
14375 2011-03-18 Jakub Jelinek <jakub@redhat.com>
14376
14377 PR debug/48176
14378 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
14379 arange_table_in_use is 0, but either text_section_used or
14380 cold_text_section_used is true. Don't call it if
14381 !info_section_emitted.
14382
14383 2011-03-18 Anatoly Sokolov <aesok@post.ru>
14384
14385 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
14386 FUNCTION_VALUE_REGNO_P): Remove.
14387 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
14388 Remove.
14389 * config/avr/avr.c (avr_ret_register): Make static inline.
14390 (avr_function_value_regno_p): New function.
14391 (avr_libcall_value): Make static. Add 'func' argument.
14392 (avr_function_value): Make static. Rename 'func' argument to
14393 'fn_decl_or_type', forward it to avr_libcall_value. Call
14394 avr_ret_register function instead of RET_REGISTER macro.
14395 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14396
14397 2011-03-18 Jason Merrill <jason@redhat.com>
14398
14399 PR c++/23372
14400 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
14401
14402 2011-03-18 Richard Guenther <rguenther@suse.de>
14403
14404 * doc/install.texi (--enable-gold): Remove.
14405 (--with-plugin-ld): Document.
14406 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
14407
14408 2011-03-18 Andrew Pinski <pinskia@gmail.com>
14409
14410 PR middle-end/47790
14411 * expr.c (optimize_bitfield_assignment_op): Revamp to work
14412 again after expansion changes.
14413
14414 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
14415
14416 * combine.c (try_combine): Do simplification only call of
14417 subst() on i2 even when i1 is present. Update comments.
14418
14419 2011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
14420
14421 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
14422 and UNSPEC_PCREL_SYMOFF.
14423
14424 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14425
14426 * config/s390/s390.md: Use define_c_enum for the unspec constant
14427 definitions.
14428
14429 2011-03-18 Richard Henderson <rth@redhat.com>
14430 Jakub Jelinek <jakub@redhat.com>
14431
14432 PR bootstrap/48161
14433 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
14434 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
14435
14436 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
14437
14438 PR middle-end/47725
14439 * combine.c (cant_combine_insn_p): Don't check zero/sign
14440 extended hard registers.
14441
14442 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
14443
14444 PR middle-end/47725
14445 * combine.c (cant_combine_insn_p): Check zero/sign extended
14446 hard registers.
14447
14448 2011-03-17 Anatoly Sokolov <aesok@post.ru>
14449
14450 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14451 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
14452 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
14453 Change return type to bool.
14454 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14455
14456 2011-03-17 Jakub Jelinek <jakub@redhat.com>
14457
14458 PR debug/48163
14459 * var-tracking.c (prepare_call_arguments): If CALL target
14460 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
14461 pc instead of looking it up using cselib_lookup and use
14462 Pmode for it if x has VOIDmode.
14463 * dwarf2out.c (gen_subprogram_die): If also both first and
14464 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
14465
14466 PR debug/48163
14467 * function.c (assign_parms): For data.passed_pointer parms
14468 use MEM of data.entry_parm instead of data.entry_parm itself
14469 as DECL_INCOMING_RTL.
14470 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
14471 also when passed and declared mode is the same, DECL_RTL
14472 is a MEM with pseudo as address and DECL_INCOMING_RTL is
14473 a MEM too.
14474
14475 2011-03-16 Jeff Law <law@redhat.com>
14476
14477 PR rtl-optimization/37273
14478 * ira-costs.c (scan_one_insn): Detect constants living in memory and
14479 handle them like argument loads from stack slots. Do not double
14480 count memory for memory constants and argument loads from stack slots.
14481
14482 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
14483
14484 PR debug/48160
14485 * var-tracking.c (prepare_call_arguments): Check SUBREG.
14486
14487 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
14488
14489 PR target/48171
14490 * config/i386/i386.opt: Add Save to -mavx and -mfma.
14491
14492 2011-03-17 Jakub Jelinek <jakub@redhat.com>
14493
14494 PR bootstrap/48153
14495 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
14496 if dwarf_strict.
14497 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
14498 Clear call_arg_locations and call_arg_loc_last always.
14499
14500 PR middle-end/48152
14501 * var-tracking.c (prepare_call_arguments): If argument needs to be
14502 passed by reference, adjust argtype and mode.
14503
14504 2011-03-17 Richard Guenther <rguenther@suse.de>
14505
14506 PR middle-end/48134
14507 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
14508 a value make sure to fold the statement.
14509
14510 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
14511
14512 PR target/43872
14513 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
14514 return condition with !cfun->calls_alloca.
14515
14516 2011-03-17 Richard Guenther <rguenther@suse.de>
14517
14518 PR bootstrap/48148
14519 * lto-cgraph.c (input_overwrite_node): Clear the abstract
14520 origin for decls in other ltrans units.
14521 (input_varpool_node): Likewise.
14522
14523 2011-03-17 Richard Guenther <rguenther@suse.de>
14524
14525 PR middle-end/48165
14526 * tree-object-size.c (compute_object_offset): Properly return
14527 the offset operand of MEM_REFs as sizetype.
14528
14529 2011-03-17 Jakub Jelinek <jakub@redhat.com>
14530
14531 PR rtl-optimization/48141
14532 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
14533 * dse.c: Include params.h.
14534 (active_local_stores_len): New variable.
14535 (add_wild_read, dse_step1): Clear it when setting active_local_stores
14536 to NULL.
14537 (record_store, check_mem_read_rtx): Decrease it when removing
14538 from the chain.
14539 (scan_insn): Likewise. Increase it when adding to chain, if it
14540 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
14541 set active_local_stores to NULL before the addition.
14542 * Makefile.in (dse.o): Depend on $(PARAMS_H).
14543
14544 PR rtl-optimization/48141
14545 * dse.c (record_store): If no positions are needed in an insn
14546 that cannot be deleted, at least unchain it from active_local_stores.
14547
14548 2011-03-16 Dodji Seketeli <dodji@redhat.com>
14549
14550 PR debug/47510
14551 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
14552 (lookup_type_die_strip_naming_typedef): ... here.
14553 (get_context_die): Use it.
14554 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
14555 the anonymous struct named by the naming typedef.
14556
14557 2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
14558
14559 PR target/48154
14560 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
14561 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
14562
14563 2011-03-16 Jeff Law <law@redhat.com>
14564
14565 * tree-vrp.c (identify_jump_threads): Slightly simplify type
14566 check for operands of conditional. Allow type to be a pointer.
14567
14568 2011-03-16 Richard Guenther <rguenther@suse.de>
14569
14570 PR tree-optimization/48149
14571 * fold-const.c (fold_binary_loc): Fold
14572 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
14573
14574 2011-03-16 Richard Guenther <rguenther@suse.de>
14575
14576 PR tree-optimization/26134
14577 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
14578 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
14579 (non_rewritable_mem_ref_base): Handle complex type component
14580 accesses, constrain offsets for vector and complex extracts
14581 more properly.
14582
14583 2011-03-16 Richard Guenther <rguenther@suse.de>
14584
14585 PR tree-optimization/48146
14586 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
14587 operands avoiding the need for renaming.
14588
14589 2011-03-16 Richard Guenther <rguenther@suse.de>
14590
14591 * gimple-fold.c (maybe_fold_reference): Open-code relevant
14592 constant folding. Move MEM_REF canonicalization first.
14593 Rely on fold_const_aggregate_ref for initializer folding.
14594 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
14595
14596 2011-03-16 Jakub Jelinek <jakub@redhat.com>
14597
14598 PR middle-end/48136
14599 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
14600 arg0/arg1 or their arguments are always fold converted to matching
14601 types.
14602
14603 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
14604 to nargs.
14605
14606 2011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14607
14608 PR lto/46944
14609 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
14610 Handle in-tree gold.
14611 (ld_vers): Extract binutils version for gold.
14612 (gcc_cv_ld_hidden): Handle gold here.
14613 (gcc_cv_lto_plugin): Determine level of linker plugin support.
14614 * configure: Regenerate.
14615 * config.in: Regenerate.
14616 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
14617 -fuse-linker-plugin otherwise.
14618 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
14619 (LINK_COMMAND_SPEC): Use it.
14620 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
14621
14622 2011-03-16 Jakub Jelinek <jakub@redhat.com>
14623
14624 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
14625 * calls.c: Remove debug.h include.
14626 (emit_call_1): Don't call virtual_call_token debug hook.
14627 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
14628 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
14629 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
14630 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
14631 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
14632 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
14633 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
14634 dwarf2out_virtual_call): Remove.
14635 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
14636 copy_call_info and virtual_call hooks.
14637 (dwarf2out_init): Don't initialize vcall_insn_table,
14638 debug_dcall_section and debug_vcall_section.
14639 (prune_unused_types): Don't mark nodes from dcall_table.
14640 (dwarf2out_finish): Don't output dcall or vcall tables.
14641 * final.c (final_scan_insn): Don't call direct_call or
14642 virtual_call debug hooks.
14643 * debug.h (struct gcc_debug_hooks): Remove direct_call,
14644 virtual_call_token, copy_call_info and virtual_call hooks.
14645 (debug_nothing_uid): Remove prototype.
14646 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
14647 copy_call_info and virtual_call hooks.
14648 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
14649 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
14650 * debug.c (do_nothing_debug_hooks): Likewise.
14651 (debug_nothing_uid): Remove.
14652 * doc/invoke.texi (-fenable-icf-debug): Remove.
14653 * common.opt (-fenable-icf-debug): Likewise.
14654
14655 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
14656 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
14657 call's MEM. Handle functions returning aggregate through a hidden
14658 first pointer. For virtual calls add clobbered pc to call arguments
14659 chain.
14660 * dwarf2out.c (gen_subprogram_die): Emit
14661 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
14662 can't be emitted.
14663
14664 PR debug/45882
14665 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
14666 * rtl.h (ENTRY_VALUE_EXP): Define.
14667 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
14668 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
14669 * print-rtl.c (print_rtx): Likewise.
14670 * gengtype.c (adjust_field_rtx_def): Likewise.
14671 * var-tracking.c (vt_add_function_parameter): Adjust
14672 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
14673 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
14674 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
14675 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
14676 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
14677
14678 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
14679 Call var_location debug hook even on CALL_INSNs.
14680 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
14681 * rtl.def (ENTRY_VALUE): New.
14682 * dwarf2out.c: Include cfglayout.h.
14683 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
14684 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
14685 (struct call_arg_loc_node): New type.
14686 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
14687 tail_call_site_count): New variables.
14688 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
14689 DW_TAG_GNU_call_site_parameter.
14690 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
14691 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
14692 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
14693 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
14694 and DW_AT_GNU_all_source_call_sites.
14695 (mem_loc_descriptor): Handle ENTRY_VALUE.
14696 (add_src_coords_attributes): Don't add enything if
14697 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
14698 (dwarf2out_abstract_function): Save and clear call_arg_location,
14699 call_site_count and tail_call_site_count around dwarf2out_decl call.
14700 (gen_call_site_die): New function.
14701 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
14702 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
14703 (dwarf2out_function_decl): Clear call_arg_locations,
14704 call_arg_loc_last, set call_site_count and tail_call_site_count
14705 to -1 and free block_map.
14706 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
14707 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
14708 followed by any real instructions.
14709 (dwarf2out_begin_function): Set call_site_count and
14710 tail_call_site_count to 0.
14711 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
14712 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
14713 attempt to force a DIE for it and worst case remove the attribute.
14714 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
14715 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
14716 the decl itself.
14717 * var-tracking.c: Include tm_p.h.
14718 (vt_stack_adjustments): For calls call note_register_arguments.
14719 (argument_reg_set): New variable.
14720 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
14721 ensure the VALUE is resolved.
14722 (call_arguments): New variable.
14723 (prepare_call_arguments): New function.
14724 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
14725 (struct expand_loc_callback_data): Add ignore_cur_loc field.
14726 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
14727 always use the best expression.
14728 (vt_expand_loc): Add ignore_cur_loc argument.
14729 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
14730 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
14731 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
14732 note for all calls.
14733 (vt_add_function_parameter): Use cselib_lookup_from_insn.
14734 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
14735 argument. Don't call cselib_preserve_only_values and
14736 cselib_reset_table.
14737 (note_register_arguments): New function.
14738 (vt_initialize): Compute argument_reg_set. Call
14739 vt_add_function_parameters before processing basic blocks instead of
14740 afterwards. For calls call prepare_call_arguments before calling
14741 cselib_process_insn.
14742 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
14743 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
14744 (var-tracking.o): Depend on $(TM_P_H).
14745 * cfglayout.h (insn_scope): New prototype.
14746 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
14747 * cfglayout.c (insn_scope): No longer static.
14748 * insn-notes.def (CALL_ARG_LOCATION): New.
14749 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
14750 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
14751 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
14752 nothing for DECL_EXTERNAL BLOCK_VARS.
14753
14754 2011-03-16 Alan Modra <amodra@gmail.com>
14755
14756 PR target/45844
14757 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
14758 create invalid offset address for vsx splat insn.
14759 * config/rs6000/predicates.md (splat_input_operand): New.
14760 * config/rs6000/vsx.md (vsx_splat_*): Use it.
14761
14762 2011-03-15 Xinliang David Li <davidxl@google.com>
14763
14764 PR c/47837
14765 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
14766 (normalize_preds): New function.
14767 (is_use_properly_guarded): Normalize def predicates.
14768
14769 2011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
14770
14771 PR target/46788
14772 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
14773 in the output template.
14774
14775 2011-03-15 Richard Guenther <rguenther@suse.de>
14776
14777 PR middle-end/47650
14778 * tree-pretty-print.c (dump_function_declaration): Properly
14779 dump unprototyped and varargs function types.
14780
14781 2011-03-15 Richard Guenther <rguenther@suse.de>
14782
14783 PR tree-optimization/13954
14784 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
14785 and friends.
14786
14787 2011-03-15 Richard Guenther <rguenther@suse.de>
14788
14789 PR tree-optimization/48037
14790 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
14791 selects into BIT_FIELD_REFs.
14792 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
14793 vector select.
14794
14795 2011-03-15 Jakub Jelinek <jakub@redhat.com>
14796
14797 PR tree-optimization/48129
14798 * builtins.c (fold_builtin_snprintf): Convert to type of
14799 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
14800 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
14801
14802 2011-03-15 Richard Guenther <rguenther@suse.de>
14803
14804 PR tree-optimization/41490
14805 * tree-ssa-dce.c (propagate_necessity): Handle returns without
14806 value but with VUSE.
14807 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
14808 return statements.
14809 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
14810 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
14811 * tree-tailcall.c (find_tail_calls): Ignore returns.
14812
14813 2011-03-15 Richard Guenther <rguenther@suse.de>
14814
14815 PR middle-end/48031
14816 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
14817 or variable-indexed array accesses when in gimple form.
14818
14819 2011-03-15 Richard Guenther <rguenther@suse.de>
14820
14821 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
14822
14823 2011-03-15 Alan Modra <amodra@gmail.com>
14824
14825 PR target/48032
14826 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
14827 presume symbol_refs without a symbol_ref_decl are suitably
14828 aligned, nor other trees we may see here. Handle anchor symbols.
14829 (legitimate_constant_pool_address_p): Comment. Add mode param.
14830 Check cmodel=medium addresses. Adjust all calls.
14831 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
14832 creating cmodel=medium optimized access to locals.
14833 * config/rs6000/constraints.md (R): Pass QImode to
14834 legitimate_constant_pool_address_p.
14835 * config/rs6000/predicates.md (input_operand): Pass mode to
14836 legitimate_constant_pool_address_p.
14837 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
14838 Update prototype.
14839
14840 2011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14841
14842 PR target/48053
14843 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
14844 64-bit constants being loaded into registers other than GPRs such
14845 as loading 0 into a VSX register.
14846
14847 2011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14848
14849 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
14850
14851 2011-03-14 Jakub Jelinek <jakub@redhat.com>
14852
14853 PR middle-end/47917
14854 * builtins.c (fold_builtin_snprintf): New function.
14855 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
14856 (fold_builtin_4): Likewise.
14857
14858 PR middle-end/38878
14859 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
14860 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
14861 and C - X == X also strip nops from +/-/p+ operand.
14862 When optimizing -X == C, fold C to arg0's type.
14863
14864 PR debug/47946
14865 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
14866 emit it as add_AT_int instead of add_AT_unsigned.
14867
14868 2011-03-14 Tom Tromey <tromey@redhat.com>
14869
14870 * unwind-dw2.c: Include sys/sdt.h if it exists.
14871 (_Unwind_DebugHook): Use STAP_PROBE2.
14872 * config.in, configure: Rebuild.
14873 * configure.ac: Check for sys/sdt.h.
14874
14875 2011-03-14 Uros Bizjak <ubizjak@gmail.com>
14876
14877 * config/i386/i386.md (ROUND_FLOOR): New constant.
14878 (ROUND_CEIL): Ditto.
14879 (ROUND_TRUNC): Ditto.
14880 (ROUND_MXCSR): Ditto.
14881 (ROUND_NO_EXC): Ditto.
14882 (rint<mode>2): Use new defines instead of numerical constants.
14883 (floor<mode>2): Ditto.
14884 (ceil<mode>2): Ditto.
14885 (btrunc<mode>2): Ditto.
14886 * config/i386/i386-builtin-types.def: Define ROUND function type
14887 aliases.
14888 * config/i386/i386.c (enum ix86_builtins): Add
14889 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
14890 (struct builtin_description): Add
14891 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
14892 (ix86_expand_sse_round): New static function.
14893 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
14894 function types.
14895 (ix86_builtin_vectorized_function): Handle
14896 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
14897
14898 2011-03-14 Tom Tromey <tromey@redhat.com>
14899
14900 * c-parser.c (c_parser_asm_string_literal): Clear
14901 warn_overlength_strings.
14902
14903 2011-03-14 Tom Tromey <tromey@redhat.com>
14904
14905 * c-parser.c (disable_extension_diagnostics): Save
14906 warn_overlength_strings.
14907 (restore_extension_diagnostics): Restore warn_overlength_strings.
14908
14909 2011-03-14 Jakub Jelinek <jakub@redhat.com>
14910
14911 * BASE-VER: Change to 4.7.0.
14912
14913 2011-03-14 Richard Guenther <rguenther@suse.de>
14914
14915 PR middle-end/48098
14916 * tree.c (build_vector_from_val): Adjust assert to requirements
14917 and reality.
14918
14919 2011-03-14 Jakub Jelinek <jakub@redhat.com>
14920
14921 PR bootstrap/48102
14922 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
14923
14924 2011-03-14 Andreas Tobler <andreast@fgznet.ch>
14925
14926 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
14927 terms of target_flags_explicit. Adjust copyright year.
14928
14929 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
14930 * config/rs6000/t-freebsd: New file. Add override for
14931 LIB2FUNCS_EXTRA.
14932
14933 2011-03-13 Chris Demetriou <cgd@google.com>
14934
14935 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
14936 (-fno-diagnostics-show-option): this, to reflect current default.
14937 (-Werror=): Update text about -fno-diagnostics-show-option.
14938
14939 2011-03-12 Peter Bergner <bergner@vnet.ibm.com>
14940
14941 PR target/48053
14942 * config/rs6000/predicates.md (easy_vector_constant_add_self,
14943 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
14944 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
14945 mode is not V2DImode or V2DFmode.
14946 (vspltis_constant): Do not handle V2DImode and V2DFmode.
14947 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
14948 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
14949 registers to 0.
14950 (movdi_internal64): Likewise.
14951
14952 2011-03-12 Sebastian Pop <sebastian.pop@amd.com>
14953
14954 PR tree-optimization/47127
14955 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
14956 parameter.
14957 (set_cloog_options): Same.
14958 (scop_to_clast): Same.
14959 (print_clast_stmt): Do not call cloog_state_malloc and
14960 cloog_state_free.
14961 (print_generated_program): Same.
14962 (gloog): Same.
14963 * graphite-clast-to-gimple.h (cloog_state): Declared.
14964 (scop_to_clast): Adjust declaration.
14965 * graphite.c (cloog_state): Defined here.
14966 (graphite_initialize): Call cloog_state_malloc.
14967 (graphite_finalize): Call cloog_state_free.
14968
14969 2011-03-11 Jason Merrill <jason@redhat.com>
14970
14971 * attribs.c (lookup_attribute_spec): Take const_tree.
14972 * tree.h: Adjust.
14973
14974 2011-03-11 Joseph Myers <joseph@codesourcery.com>
14975
14976 * config/sparc/sparc.c (sparc_option_override): Use
14977 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
14978
14979 2011-03-11 Richard Guenther <rguenther@suse.de>
14980
14981 PR tree-optimization/48067
14982 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
14983 multiplication result will be only used once on the target
14984 stmt.
14985
14986 2011-03-11 Richard Guenther <rguenther@suse.de>
14987
14988 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
14989
14990 2011-03-11 Richard Guenther <rguenther@suse.de>
14991
14992 PR lto/48073
14993 * tree.c (find_decls_types_r): Do not walk types only reachable
14994 from IDENTIFIER_NODEs.
14995
14996 2011-03-11 Jakub Jelinek <jakub@redhat.com>
14997
14998 PR middle-end/48044
14999 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
15000 all vnode->force_output nodes as needed.
15001
15002 2011-03-11 Jason Merrill <jason@redhat.com>
15003
15004 PR c++/48069
15005 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
15006 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
15007
15008 2011-03-11 Martin Jambor <mjambor@suse.cz>
15009
15010 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
15011 cgraph_node.
15012
15013 2011-03-11 Jakub Jelinek <jakub@redhat.com>
15014
15015 PR tree-optimization/48063
15016 * ipa-inline.c (cgraph_decide_inlining): Don't try to
15017 inline functions called once if !tree_can_inline_p (node->callers).
15018
15019 2011-03-11 Chen Liqin <liqin.gcc@gmail.com>
15020
15021 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
15022 extra_objs.
15023 * config/score/score3.c: Delete.
15024 * config/score/score3.h: Delete.
15025 * config/score/mul-div.S: Delete.
15026 * config/score/sfp-machine.h: Add new file.
15027 * config/score/constraints.md: Add new file.
15028 * config/score/t-score-softfp: Add new file.
15029 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
15030 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
15031 (score7_extra_constraint): Delete.
15032 (score7_option_override): Remove unused code.
15033 * config/score/score.c: Remove score3 and score5 define and code.
15034 * config/score/score.h: Remove score3 and score5 define and code.
15035 * config/score/score.md: Remove score3 template and unusual insn.
15036 * config/score/score.opt: Remove score3 and score5 options.
15037
15038 2011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15039
15040 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
15041 when _HPUX_SOURCE is defined.
15042 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
15043
15044 2011-03-10 Jason Merrill <jason@redhat.com>
15045
15046 PR c++/48029
15047 * stor-layout.c (layout_type): Don't set structural equality
15048 on arrays of incomplete type.
15049 * tree.c (type_hash_eq): Handle comparing them properly.
15050
15051 2011-03-10 Jakub Jelinek <jakub@redhat.com>
15052
15053 PR debug/48043
15054 * config/s390/s390.c (s390_delegitimize_address): Make sure the
15055 result mode matches original rtl mode.
15056
15057 2011-03-10 Nick Clifton <nickc@redhat.com>
15058
15059 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
15060 (andsi3, andsi3_flags): Fix timings for three operand alternative.
15061
15062 2011-03-09 Jakub Jelinek <jakub@redhat.com>
15063
15064 PR rtl-optimization/47866
15065 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
15066 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
15067 if target wasn't scalar.
15068 * function.c (assign_stack_temp_for_type): Assert that neither
15069 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
15070 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
15071 macro.
15072 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
15073
15074 2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15075
15076 * config/s390/s390-protos.h (s390_label_align): New prototype.
15077 * config/s390/s390.c (s390_label_align): New function.
15078 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
15079
15080 2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
15081
15082 PR target/47755
15083 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
15084 V2DI/V2DF constants. Only all 0's or all 1's are easy.
15085 (output_vec_const_move): Ditto.
15086
15087 2011-03-08 Anatoly Sokolov <aesok@post.ru>
15088
15089 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
15090 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
15091 * config/mips/mips.c (mips_preferred_reload_class): Make static.
15092 Change 'rclass' argument and result type to reg_class_t.
15093 (TARGET_PREFERRED_RELOAD_CLASS): Define.
15094
15095 2011-03-08 Georg-Johann Lay <avr@gjlay.de>
15096
15097 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
15098 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
15099 (TARGET_MEMORY_MOVE_COST): Define.
15100 (avr_register_move_cost, avr_memory_move_cost): New Functions.
15101
15102 2011-03-08 Jakub Jelinek <jakub@redhat.com>
15103
15104 PR debug/47881
15105 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
15106 removed anything.
15107
15108 PR tree-optimization/48022
15109 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
15110 for EQ/NE_EXPR.
15111
15112 2011-03-07 Jakub Jelinek <jakub@redhat.com>
15113
15114 PR debug/47991
15115 * var-tracking.c (find_use_val): Return NULL for
15116 cui->sets && cui->store_p BLKmode MEMs.
15117
15118 2011-03-07 Anatoly Sokolov <aesok@post.ru>
15119
15120 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
15121 Remove.
15122 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
15123 xstormy16_print_operand_address): Remove.
15124 * config/stormy16/stormy16.c (xstormy16_print_operand,
15125 xstormy16_print_operand_address): Make static.
15126 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
15127
15128 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
15129
15130 PR target/47862
15131 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
15132 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
15133 before definition.
15134
15135 2011-03-07 Zdenek Dvorak <ook@ucw.cz>
15136
15137 PR bootstrap/48000
15138 * cfgloopmanip.c (fix_bb_placements): Return immediately
15139 if FROM is BASE_LOOP's header.
15140
15141 2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
15142
15143 * gimplify.c (gimplify_function_tree): Fix building calls
15144 to __builtin_return_address.
15145
15146 2011-03-07 Alan Modra <amodra@gmail.com>
15147
15148 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
15149 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
15150 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
15151 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
15152 return_mode args.
15153 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
15154 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
15155 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
15156 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
15157 * config/rs6000/rs6000.c
15158 (rs6000_elf_end_indicate_exec_stack): Rename to..
15159 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
15160 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
15161 (rs6000_file_start): ..here.
15162 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
15163 file scope variables.
15164 (call_ABI_of_interest): New function.
15165 (init_cumulative_args): Set above vars when function return value
15166 is a float, vector, or small struct.
15167 (rs6000_function_arg_advance_1): Likewise for function args.
15168 (rs6000_va_start): Set rs6000_passes_float if variable arg function
15169 references float args.
15170
15171 2011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
15172
15173 * doc/cfg.texi: Remove "See" before @ref.
15174 * doc/invoke.texi: Likewise.
15175
15176 2011-03-05 Jason Merrill <jason@redhat.com>
15177
15178 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
15179
15180 2011-03-05 Anthony Green <green@moxielogic.com>
15181
15182 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
15183
15184 2011-03-05 Zdenek Dvorak <ook@ucw.cz>
15185
15186 PR rtl-optimization/47899
15187 * cfgloopmanip.c (fix_bb_placements): Fix first argument
15188 to flow_loop_nested_p when moving the loop upward.
15189
15190 2011-03-05 Richard Earnshaw <rearnsha@arm.com>
15191
15192 PR target/47719
15193 * arm.md (movhi_insn_arch4): Accept any immediate constant.
15194
15195 2011-03-05 Jakub Jelinek <jakub@redhat.com>
15196
15197 PR tree-optimization/47967
15198 * ipa-cp.c (build_const_val): Return NULL instead of creating
15199 VIEW_CONVERT_EXPR for mismatching sizes.
15200 (ipcp_create_replace_map): Return NULL if build_const_val failed.
15201 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
15202 give up on versioning.
15203
15204 2011-03-05 Alan Modra <amodra@gmail.com>
15205
15206 PR target/47986
15207 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
15208 full cmodel medium/large lo_sum + high addresses.
15209
15210 2011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15211
15212 * config/s390/s390.c (s390_decompose_address): Reject non-literal
15213 pool references in UNSPEC_LTREL_OFFSET.
15214
15215 2011-03-04 Jan Hubicka <jh@suse.cz>
15216
15217 PR lto/47497
15218 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
15219 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
15220 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
15221 Add node pointers.
15222 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
15223 cgraph_add_thunk): Add node pointers.
15224 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
15225 associated to right node.
15226 (input_node): Update use of cgraph_same_body_alias
15227 and cgraph_add_thunk.
15228
15229 2011-03-04 Changpeng Fang <changpeng.fang@amd.com>
15230
15231 * config/i386/i386.opt (mprefer-avx128): New flag.
15232 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
15233 modes when the flag -mprefer-avx128 is on.
15234
15235 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
15236
15237 * dwarf2out.c (compare_loc_operands): Fix address handling.
15238
15239 2011-03-04 Alan Modra <amodra@gmail.com>
15240
15241 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
15242
15243 2011-03-04 Richard Guenther <rguenther@suse.de>
15244
15245 PR middle-end/47968
15246 * expmed.c (extract_bit_field_1): Prefer vector modes that
15247 vec_extract patterns can handle.
15248
15249 2011-03-04 Richard Guenther <rguenther@suse.de>
15250
15251 PR middle-end/47975
15252 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
15253
15254 2011-03-04 Richard Henderson <rth@redhat.com>
15255
15256 * explow.c (emit_stack_save): Remove 'after' parameter.
15257 (emit_stack_restore): Likewise.
15258 * expr.h: Update to match.
15259 * builtins.c, calls.c, stmt.c: Likewise.
15260 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
15261 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
15262 * function.c (expand_function_end): Insert the emit_stack_save
15263 sequence before parm_birth_insn instead of after.
15264
15265 2011-03-03 Uros Bizjak <ubizjak@gmail.com>
15266
15267 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
15268 (ssse3_pmaddubsw128): Ditto.
15269 (ssse3_pmaddubsw): Ditto.
15270
15271 2011-03-03 Steve Ellcey <sje@cup.hp.com>
15272
15273 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
15274
15275 2011-03-03 Jakub Jelinek <jakub@redhat.com>
15276
15277 PR c/47963
15278 * gimplify.c (omp_add_variable): Only call omp_notice_variable
15279 on TYPE_SIZE_UNIT if it is a DECL.
15280
15281 PR debug/47283
15282 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
15283 first operand is not is_gimple_mem_ref_addr, try to fold it.
15284 If the operand still isn't is_gimple_mem_ref_addr, clear
15285 MEM_EXPR on op0.
15286
15287 2011-03-03 Richard Guenther <rguenther@suse.de>
15288
15289 PR middle-end/47283
15290 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
15291 match comment.
15292 (refs_may_alias_p_1): For release branches return true if
15293 we are confused by our input.
15294
15295 2011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15296
15297 * config/s390/s390.c (s390_function_value): Rename to ...
15298 (s390_function_and_libcall_value): ... this.
15299 (s390_function_value): New function.
15300 (s390_libcall_value): New function.
15301 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
15302 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
15303 target macro definitions.
15304 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
15305
15306 2011-03-02 Joseph Myers <joseph@codesourcery.com>
15307
15308 * config/i386/freebsd64.h (CC1_SPEC): Define.
15309 * config/i386/linux64.h (CC1_SPEC): Define.
15310 * config/i386/x86-64.h (CC1_SPEC): Don't define.
15311
15312 2011-03-02 Anatoly Sokolov <aesok@post.ru>
15313
15314 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15315 Remove.
15316 * config/stormy16/stormy16.c: Include reload.h.
15317 (xstormy16_memory_move_cost): New function.
15318 (TARGET_MEMORY_MOVE_COST): Define.
15319
15320 2011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
15321
15322 PR rtl-optimization/47925
15323 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
15324 with side effects. Remove the more-specific check for volatile asms.
15325
15326 2011-03-02 Alan Modra <amodra@gmail.com>
15327
15328 PR target/47935
15329 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
15330 toc relative addresses for valid offsets.
15331
15332 2011-03-01 Richard Guenther <rguenther@suse.de>
15333
15334 PR tree-optimization/47890
15335 * tree-vect-loop.c (get_initial_def_for_induction): Set
15336 related stmt properly.
15337
15338 2011-03-01 Richard Guenther <rguenther@suse.de>
15339
15340 PR lto/47924
15341 * lto-streamer.c (lto_record_common_node): Also register
15342 the canonical type.
15343
15344 2011-03-01 Richard Guenther <rguenther@suse.de>
15345
15346 PR lto/46911
15347 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
15348 Do not stream DECL_ABSTRACT_ORIGIN.
15349 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
15350 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
15351 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
15352 Do not stream DECL_ABSTRACT_ORIGIN.
15353 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
15354 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
15355
15356 2011-02-28 Anatoly Sokolov <aesok@post.ru>
15357
15358 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
15359 FUNCTION_VALUE_REGNO_P): Remove.
15360 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
15361 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
15362 Add 'outgoing' argument.
15363 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
15364 function.
15365 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15366 TARGET_FUNCTION_VALUE_REGNO_P): Define.
15367
15368 2011-02-28 Kai Tietz <kai.tietz@onevision.com>
15369
15370 PR debug/28047
15371 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
15372 (lookup_filename): Likewise.
15373 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
15374
15375 2011-02-28 Bernd Schmidt <bernds@codesourcery.com>
15376 Jakub Jelinek <jakub@redhat.com>
15377
15378 PR middle-end/47893
15379 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
15380 (assign_stack_local_1): Change last argument type to int.
15381 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
15382 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
15383 don't record padding space into frame_space_list nor use those areas.
15384 (assign_stack_local): Adjust caller.
15385 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
15386 of assign_stack_local, pass 0 as last argument.
15387 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
15388 callers.
15389
15390 2011-02-28 Jakub Jelinek <jakub@redhat.com>
15391
15392 PR debug/47283
15393 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
15394 Use target address_mode and pointer_mode hooks instead of hardcoded
15395 Pmode and ptr_mode. Handle some simple cases of extending if
15396 POINTERS_EXTEND_UNSIGNED < 0.
15397 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
15398 Call convert_debug_memory_address.
15399 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
15400 convert_debug_memory_address.
15401
15402 PR middle-end/46790
15403 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
15404 * configure: Regenerated.
15405 * config.in: Regenerated.
15406 * varasm.c (default_function_section): Return NULL
15407 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
15408
15409 2011-02-28 Martin Jambor <mjambor@suse.cz>
15410
15411 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
15412 the description to match the printed values.
15413
15414 2011-02-28 Richard Guenther <rguenther@suse.de>
15415
15416 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
15417 of the copied scope tree.
15418
15419 2011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15420
15421 * doc/extend.texi (Function Attributes): Avoid deeply (and
15422 wrongly) nested tables.
15423
15424 2011-02-27 Jakub Jelinek <jakub@redhat.com>
15425
15426 PR middle-end/47903
15427 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
15428 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
15429 r isn't op0 nor op1.
15430
15431 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
15432
15433 * config/avr/avr.md: Remove magic comment for emacs.
15434
15435 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
15436
15437 PR target/45261
15438 * config/avr/avr.c (avr_option_override): Use error on bad options.
15439 (avr_help): New function.
15440 (TARGET_HELP): Define.
15441
15442 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
15443
15444 PR target/42240
15445 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
15446 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
15447
15448 2011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
15449
15450 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
15451 (ARM Options): Ditto.
15452 (i386 and x86-64 Options): Ditto.
15453 (RX Options): Ditto.
15454 (SPARC Options): Ditto.
15455
15456 2011-02-26 Tijl Coosemans <tijl@coosemans.org>
15457
15458 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
15459 FreeBSD 6 and later. Generally use cpu generic.
15460
15461 2011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
15462
15463 * doc/cpp.texi: Update copyright years.
15464
15465 2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
15466
15467 PR target/46898
15468 * config/lm32/lm32.md (ashrsi3): Added needed variable.
15469
15470 2011-02-25 Jon Beniston <jon@beniston.com>
15471
15472 PR target/46898
15473 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
15474 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
15475 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
15476 (lm32_block_move_inline): Add type cast to remove warning.
15477 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
15478 (gen_int_relational): Move declarations to start of function.
15479
15480 2011-02-25 Eric Botcazou <ebotcazou@adacore.com>
15481
15482 PR tree-optimization/45470
15483 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
15484 can throw internally only.
15485 * tree-vect-stmts.c (vectorizable_call): Likewise.
15486
15487 2011-02-24 Anatoly Sokolov <aesok@post.ru>
15488
15489 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
15490 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
15491 * config/stormy16/stormy16-protos.h
15492 (xstormy16_preferred_reload_class): Remove.
15493 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
15494 static. Change 'rclass' argument and return type to reg_class_t.
15495 (TARGET_PREFERRED_RELOAD_CLASS,
15496 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
15497
15498 2011-02-24 Richard Guenther <rguenther@suse.de>
15499
15500 * lto-streamer-in.c (input_bb): Do not find referenced vars
15501 in debug statements.
15502
15503 2011-02-23 Jason Merrill <jason@redhat.com>
15504
15505 * common.opt (fabi-version): Document v5 and v6.
15506
15507 2011-02-23 Richard Guenther <rguenther@suse.de>
15508
15509 PR tree-optimization/47849
15510 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
15511
15512 2011-02-23 Jie Zhang <jie@codesourcery.com>
15513
15514 * opts-common.c (decode_cmdline_option): Print empty string
15515 argument as "" in decoded->orig_option_with_args_text.
15516 * gcc.c (execute): Print empty string argument as ""
15517 in the verbose output.
15518 (do_spec_1): Keep empty string argument.
15519
15520 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
15521
15522 * config.gcc: Declare score-* and crx-* obsolete.
15523
15524 2011-02-23 Jie Zhang <jie@codesourcery.com>
15525
15526 PR rtl-optimization/47763
15527 * web.c (web_main): Ignore naked clobber when replacing register.
15528
15529 2011-02-22 Anatoly Sokolov <aesok@post.ru>
15530
15531 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
15532 Remove.
15533
15534 2011-02-22 Sebastian Pop <sebastian.pop@amd.com>
15535
15536 PR doc/47848
15537 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
15538
15539 2011-02-22 Mike Stump <mikestump@comcast.net>
15540
15541 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
15542 assembler.
15543 * configure: Regenerate.
15544
15545 2011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
15546
15547 PR rtl-optimization/46002
15548 * ira-color.c (update_copy_costs): Change class intersection
15549 test to reg_class_contents[] test of 'hard_regno'.
15550
15551 2011-02-21 Joseph Myers <joseph@codesourcery.com>
15552
15553 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
15554 than Driver option.
15555 * config/hpux11.opt (mt): Likewise.
15556 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
15557 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
15558 * config/vax/elf.opt (mno-asm-pic): Likewise.
15559 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
15560
15561 2011-02-21 Mike Stump <mikestump@comcast.net>
15562
15563 PR target/47822
15564 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
15565 tree so we can get save the type.
15566 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
15567 for CFString instead of trying to use past the end of the builtins.
15568 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
15569 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
15570 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
15571 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
15572 Rename to darwin_builtin_cfstring.
15573 (darwin_init_cfstring_builtins): Return the built type.
15574
15575 2011-02-21 Uros Bizjak <ubizjak@gmail.com>
15576
15577 PR target/47840
15578 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
15579 (_mm256_insert_epi64): Use _mm_insert_epi64.
15580
15581 2011-02-21 Anatoly Sokolov <aesok@post.ru>
15582
15583 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15584 * config/stormy16/stormy16-protos.h
15585 (xstormy16_mode_dependent_address_p): Remove.
15586 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
15587 Make static. Change return type to bool. Change argument type to
15588 const_rtx. Remove dead code.
15589 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15590
15591 2011-02-21 Richard Guenther <rguenther@suse.de>
15592
15593 PR lto/47820
15594 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
15595 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
15596 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
15597 TUs context.
15598 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
15599 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
15600
15601 2011-02-20 Richard Guenther <rguenther@suse.de>
15602
15603 PR lto/47822
15604 * tree.c (free_lang_data_in_decl): Clean builtins from
15605 the TU decl BLOCK_VARS.
15606
15607 2011-02-19 Alexandre Oliva <aoliva@redhat.com>
15608
15609 PR debug/47620
15610 PR debug/47630
15611 * haifa-sched.c (fix_tick_ready): Skip tick computation
15612 for debug insns.
15613
15614 2011-02-19 Richard Guenther <rguenther@suse.de>
15615
15616 PR lto/47647
15617 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
15618 Remove lazy BLOCK_VARS streaming.
15619 (lto_input_ts_block_tree_pointers): Likewise.
15620 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
15621
15622 2011-02-19 Joseph Myers <joseph@codesourcery.com>
15623
15624 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
15625
15626 2011-02-19 Joseph Myers <joseph@codesourcery.com>
15627
15628 * config/i386/biarch32.h, config/i386/mach.h,
15629 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
15630
15631 2011-02-19 Jakub Jelinek <jakub@redhat.com>
15632
15633 PR target/47800
15634 * config/i386/i386.md (peephole2 for shift and plus): Use
15635 operands[1] original mode in the first insn.
15636
15637 2011-02-18 Mike Stump <mikestump@comcast.net>
15638
15639 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
15640
15641 2011-02-18 Jan Hubicka <jh@suse.cz>
15642
15643 PR middle-end/47788
15644 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
15645 to zero when the function is not inlinable at all.
15646
15647 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15648
15649 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
15650 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
15651 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
15652 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
15653 * config/pa/t-pa64: Likewise.
15654 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
15655
15656 2011-02-18 Jakub Jelinek <jakub@redhat.com>
15657
15658 PR driver/47787
15659 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
15660
15661 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15662
15663 PR target/47792
15664 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
15665
15666 2011-02-18 Anatoly Sokolov <aesok@post.ru>
15667
15668 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
15669 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
15670 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
15671 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
15672 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
15673 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
15674 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
15675 m32r_load_postinc_p, m32r_store_preinc_predec_p,
15676 m32r_legitimate_address_p): New functions.
15677 * config/m32r/constraints.md (constraint "S"): Don't use
15678 STORE_PREINC_PREDEC_P.
15679 (constraint "U"): Don't use LOAD_POSTINC_P.
15680
15681 2011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
15682
15683 PR rtl-optimization/46178
15684 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
15685 compute ira_hard_regno_cover_class[].
15686
15687 2011-02-18 Richard Guenther <rguenther@suse.de>
15688
15689 PR lto/47798
15690 * lto-streamer.h (lto_global_var_decls): Declare.
15691 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
15692 statics for global var processing.
15693
15694 2011-02-18 Richard Guenther <rguenther@suse.de>
15695
15696 PR tree-optimization/47737
15697 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
15698 edge dominance check.
15699
15700 2011-02-18 Jakub Jelinek <jakub@redhat.com>
15701
15702 PR debug/47780
15703 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
15704 avoid invalid rtx sharing.
15705
15706 2011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
15707
15708 * doc/cpp.texi (Obsolete Features): Add background on the
15709 origin of assertions.
15710
15711 2011-02-17 Iain Sandoe <iains@gcc.gnu.org>
15712
15713 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
15714 objc_abi == 2.
15715 * config/darwin.c (output_objc_section_asm_op): Added support for
15716 ABI v1 and v2.
15717 (is_objc_metadata): New.
15718 (darwin_objc2_section): New.
15719 (darwin_objc1_section): New.
15720 (machopic_select_section): Added support for ABI v1 and v2.
15721 (darwin_emit_objc_zeroed): New.
15722 (darwin_output_aligned_bss): Detect objc metadata and treat it
15723 appropriately.
15724 (darwin_asm_output_aligned_decl_common): Same.
15725 (darwin_asm_output_aligned_decl_local): Same.
15726 * config/darwin-sections.def: Updated for ABI v1 and v2.
15727 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
15728 compiling Objective-C code for the NeXT runtime, default to using
15729 ABI version 0 for 32-bit, and version 2 for 64-bit.
15730
15731 2011-02-17 Joseph Myers <joseph@codesourcery.com>
15732
15733 * common.opt (optimize_fast): New Variable.
15734 * opts.c (default_options_optimization): Use opts->x_optimize_fast
15735 instead of local variable ofast.
15736
15737 2011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
15738
15739 * doc/invoke.texi (fobjc-abi-version): Documented.
15740 (fobjc-nilcheck): Documented.
15741 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
15742 version.
15743
15744 2011-02-17 Joseph Myers <joseph@codesourcery.com>
15745
15746 PR driver/47390
15747 * common.opt (export-dynamic): New Driver option.
15748 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
15749
15750 2011-02-17 Joseph Myers <joseph@codesourcery.com>
15751
15752 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
15753
15754 2011-02-17 Alexandre Oliva <aoliva@redhat.com>
15755 Jan Hubicka <jh@suse.cz>
15756
15757 PR debug/47106
15758 PR debug/47402
15759 * cfgexpand.c (account_used_vars_for_block): Remove.
15760 (estimated_stack_frame_size): Use referenced vars.
15761 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
15762 that were referenced in the original function. Test src_fn
15763 rather than cfun. Drop redundant get_var_ann.
15764 (setup_one_parameter): Drop redundant get_var_ann.
15765 (declare_return_variable): Likewise.
15766 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
15767 (copy_arguments_for_versioning): Drop redundant get_var_ann.
15768 * ipa-inline.c (compute_inline_parameters): Do not compute
15769 disregard_inline_limits here.
15770 (compute_inlinable_for_current, pass_inlinable): New.
15771 (pass_inline_parameters): Require PROP_referenced_vars.
15772 * cgraphunit.c (cgraph_process_new_functions): Don't run
15773 compute_inline_parameters explicitly unless function is in SSA form.
15774 (cgraph_analyze_function): Set .disregard_inline_limits.
15775 * tree-sra.c (convert_callers): Compute inliner parameters
15776 only for functions already in SSA form.
15777
15778 2011-02-17 Joseph Myers <joseph@codesourcery.com>
15779
15780 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
15781 -mlittle-endian-data.
15782
15783 2011-02-17 Joseph Myers <joseph@codesourcery.com>
15784
15785 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
15786 -mno-fpu, not -fpu and -no-fpu.
15787 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
15788 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
15789
15790 2011-02-17 Uros Bizjak <ubizjak@gmail.com>
15791
15792 PR target/43653
15793 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
15794 input reload with PLUS RTX.
15795
15796 2011-02-16 Joseph Myers <joseph@codesourcery.com>
15797
15798 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
15799 of InverseVar(MDMX).
15800
15801 2011-02-16 Joseph Myers <joseph@codesourcery.com>
15802
15803 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
15804 --m4-340.
15805
15806 2011-02-16 Joseph Myers <joseph@codesourcery.com>
15807
15808 * config/mn10300/mn10300.opt (mno-crt0): New.
15809
15810 2011-02-16 Joseph Myers <joseph@codesourcery.com>
15811
15812 * config/m68k/uclinux.opt (static-libc): New Driver option.
15813
15814 2011-02-16 Joseph Myers <joseph@codesourcery.com>
15815
15816 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
15817
15818 2011-02-16 Joseph Myers <joseph@codesourcery.com>
15819
15820 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
15821 %{muser-extend-enabled}.
15822
15823 2011-02-16 Richard Guenther <rguenther@suse.de>
15824
15825 PR tree-optimization/47738
15826 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
15827 the TODO from tree_predictive_commoning.
15828
15829 2011-02-15 Jeff Law <law@redhat.com>
15830
15831 Revert
15832 2011-01-25 Jeff Law <law@redhat.com>
15833
15834 PR rtl-optimization/37273
15835 * ira-costs.c (scan_one_insn): Detect constants living in memory and
15836 handle them like argument loads from stack slots. Do not double
15837 count memory for memory constants and argument loads from stack slots.
15838
15839 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
15840
15841 PR middle-end/47725
15842 * combine.c (cant_combine_insn_p): Revert the last change.
15843
15844 2011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
15845
15846 PR target/47755
15847 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
15848 mode for vector constants. Remove code that checks for TImode.
15849
15850 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
15851
15852 PR debug/47106
15853 PR debug/47402
15854 * cgraph.h (compute_inline_parameters): Return void.
15855 * ipa-inline.c (compute_inline_parameters): Adjust.
15856
15857 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
15858
15859 PR debug/47106
15860 PR debug/47402
15861 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
15862 rather than decl.
15863 * cfgexpand.c (estimated_stack_frame_size): Likewise.
15864 * ipa-inline.c (compute_inline_parameters): Adjust.
15865
15866 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
15867
15868 PR debug/47106
15869 PR debug/47402
15870 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
15871 Adjust all users. Pass FN to...
15872 * tree-flow-inline.h (first_referenced_var): ... this. Add
15873 fn argument.
15874 * ipa-struct-reorg.c: Adjust.
15875 * tree-dfa.c: Adjust.
15876 * tree-into-ssa.c: Adjust.
15877 * tree-sra.c: Adjust.
15878 * tree-ssa-alias.c: Adjust.
15879 * tree-ssa-live.c: Adjust.
15880 * tree-ssa.c: Adjust.
15881 * tree-ssanames.c: Adjust.
15882 * tree-tailcall.c: Adjust.
15883
15884 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
15885
15886 PR debug/47106
15887 PR debug/47402
15888 * tree-flow.h (referenced_var_lookup): Add fn parameter.
15889 Adjust all callers.
15890 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
15891 * tree-flow-inline.h: Adjust.
15892 * gimple-pretty-print.c: Adjust.
15893 * tree-into-ssa.c: Adjust.
15894 * tree-ssa.c: Adjust.
15895 * cfgexpand.c: Adjust.
15896
15897 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
15898
15899 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
15900 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15901 (EXTRA_CONSTRAINT): Delete.
15902 * config/iq2000/constraints.md: New file.
15903 * config/iq2000/iq2000.md: Include it.
15904 (define_insn ""): Delete.
15905 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
15906 unsupported constraint letters from patterns.
15907 (call_value, call_value_internal1): Likewise.
15908 (call_value_multiple_internal1): Likewise.
15909
15910 2011-02-15 Nick Clifton <nickc@redhat.com>
15911
15912 * config/mn10300/mn10300.c: Include tm-constrs.h.
15913 (struct liw_data): New data structure describing an LIW candidate
15914 instruction.
15915 (extract_bundle): Use struct liw_data. Allow small integer
15916 operands for some instructions.
15917 (check_liw_constraints): Use struct liw_data. Remove swapped
15918 parameter. Add comments describing the checks. Fix bug when
15919 assigning the source of liw1 to the source of liw2.
15920 (liw_candidate): Delete. Code moved into extract_bundle.
15921 (mn10300_bundle_liw): Use struct liw_data. Check constraints
15922 before swapping.
15923 * config/mn10300/predicates.md (liw_operand): New predicate.
15924 Allows registers and small integer constants.
15925 * config/mn10300/constraints.md (O): New constraint. Accetps
15926 integers in the range -8 to +7 inclusive.
15927 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
15928 for moving a small integer into a register. Give this alternative
15929 LIW attributes.
15930 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
15931 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
15932 using the J,K,L and M constraints,
15933 (liw): Remove SI mode on second operands to allow for HI and QI
15934 mode values.
15935 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
15936 instruction.
15937
15938 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
15939
15940 PR middle-end/47725
15941 * combine.c (cant_combine_insn_p): Check zero/sign extended
15942 hard registers.
15943
15944 2011-02-15 Richard Guenther <rguenther@suse.de>
15945
15946 PR tree-optimization/47743
15947 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
15948 for a non-type-compatible VN lookup bail out.
15949
15950 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
15951
15952 * config/fr30/constraints.md: New file.
15953 * config/fr30/fr30.md: Include it.
15954 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
15955 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15956 (EXTRA_CONSTRAINT): Delete.
15957
15958 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
15959
15960 * config/frv/constraints.md: New file.
15961 * config/frv/predicates.md: Include it.
15962 * config/frv/frv.c (reg_class_from_letter): Delete.
15963 (frv_option_override): Don't initialize it.
15964 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
15965 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
15966 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
15967 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
15968 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
15969 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15970 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
15971 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
15972 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
15973 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
15974 (REG_CLASS_FROM_CONSTRAINT): Delete.
15975
15976 2011-02-15 Jakub Jelinek <jakub@redhat.com>
15977
15978 PR middle-end/47581
15979 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
15980 if frame size is 0 in a leaf function.
15981
15982 2011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15983
15984 PR pch/14940
15985 * config/alpha/host-osf.c: New file.
15986 * config/alpha/x-osf: New file.
15987 * config.host (alpha*-dec-osf*): Use it.
15988
15989 2011-02-14 Anatoly Sokolov <aesok@post.ru>
15990
15991 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15992 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
15993 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
15994 (rx_mode_dependent_address_p): ...this. Make static. Change argument
15995 type to const_rtx.
15996 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15997
15998 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
15999
16000 * config/stormy16/constraints.md: New file.
16001 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
16002 Use satisfies_constraint_Q and satisfies_constraint_R.
16003 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
16004 Delete.
16005 (xstormy16_legitiamte_address_p): Declare.
16006 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
16007 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
16008 (EXTRA_CONSTRAINT): Delete.
16009 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
16010 Un-staticize.
16011 (xstormy16_extra_constraint_p): Delete.
16012
16013 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
16014
16015 PR tree-optimization/46494
16016 * loop-unroll.c (split_edge_and_insert): Adjust comment.
16017 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
16018 (pass_rtl_loop_done): Add TODO_verify_flow.
16019 * fwprop.c (pass_rtl_fwprop): Likewise.
16020 * modulo-sched.c (pass_sms): Likewise.
16021 * tree-ssa-dom.c (pass_dominator): Likewise.
16022 * tree-ssa-loop-ch.c (pass_ch): Likewise.
16023 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
16024 (pass_tree_loop_done): Likewise.
16025 * tree-ssa-pre.c (execute_pre): Likewise.
16026 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
16027 * tree-ssa-sink.c (pass_sink_code): Likewise.
16028 * tree-vrp.c (pass_vrp): Likewise.
16029
16030 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
16031
16032 * config/v850/constraints.md: New file.
16033 * config/v850/v850.md: Include it.
16034 * config/v850/predicates.md (reg_or_0_operand): Use
16035 satisfies_constraint_G.
16036 (special_symbolref_operand): Use satisfies_constraint_K.
16037 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
16038 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
16039 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
16040 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
16041 (EXTRA_CONSTRAINT): Delete.
16042 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
16043 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
16044 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
16045
16046 2011-02-14 Anatoly Sokolov <aesok@post.ru>
16047
16048 PR target/47696
16049 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
16050 description.
16051
16052 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
16053
16054 * config/mcore/constraints.md: New file.
16055 * config/mcore/mcore.md: Include it.
16056 * config/mcore/mcore.c (reg_class_from_letter): Delete.
16057 * config/mcore/mcore.h (reg_class_from_letter): Delete.
16058 (REG_CLASS_FROM_LETTER): Delete.
16059 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
16060 insn_const_int_ok_for_constraint.
16061 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
16062 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
16063 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
16064 (EXTRA_CONSTRAINT): Delete.
16065
16066 2011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16067
16068 PR ada/41929
16069 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
16070 (IS_SIGHANDLER): Define.
16071 (sparc64_is_sighandler): New function, split off from
16072 sparc64_fallback_frame_state.
16073 (sparc_is_sighandler): New function, split off from
16074 sparc_fallback_frame_state.
16075 (sparc64_fallback_frame_state): Merge with ...
16076 (sparc_fallback_frame_state): ... this into ...
16077 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
16078 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
16079 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
16080 stack instead of hardcoded offsets.
16081
16082 2011-02-14 Andriy Gapon <avg@freebsd.org>
16083
16084 PR target/45808
16085 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
16086
16087 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16088
16089 * configure: Regenerate.
16090
16091 2011-02-12 Joseph Myers <joseph@codesourcery.com>
16092
16093 PR driver/45731
16094 * gcc.c (asm_options): Correct spec matching --target-help.
16095
16096 2011-02-12 Martin Jambor <mjambor@suse.cz>
16097
16098 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
16099 to gimple call error.
16100
16101 2011-02-12 Mike Stump <mikestump@comcast.net>
16102
16103 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
16104 comments in backslash regions.
16105
16106 2011-02-12 Mike Stump <mikestump@comcast.net>
16107 Jakub Jelinek <jakub@redhat.com>
16108 Iain Sandoe <iains@gcc.gnu.org>
16109
16110 PR target/47324
16111 * dwarf2out.c (output_cfa_loc): When required, apply the
16112 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
16113 (output_loc_sequence): Likewise.
16114 (output_loc_operands_raw): Likewise.
16115 (output_loc_sequence_raw): Likewise.
16116 (output_cfa_loc): Likewise.
16117 (output_loc_list): Suppress register number adjustment when
16118 calling output_loc_sequence()
16119 (output_die): Likewise.
16120
16121 2011-02-12 Anatoly Sokolov <aesok@post.ru>
16122
16123 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
16124 Remove macros.
16125 * config/xtensa/xtensa.c (xtensa_register_move_cost,
16126 xtensa_memory_move_cost): New functions.
16127 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
16128
16129 2011-02-12 Alexandre Oliva <aoliva@redhat.com>
16130
16131 PR lto/47225
16132 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
16133 in the current directory.
16134 * configure: Rebuilt.
16135
16136 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
16137
16138 * config/darwin.c (darwin_override_options): Add a hunk missed
16139 from the commit of r168571. Trim comment line lengths and
16140 correct indents of the preceding block.
16141
16142 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
16143
16144 * gcc.c (driver_handle_option): Concatenate the argument to -F with
16145 the switch.
16146
16147 2011-02-11 Joseph Myers <joseph@codesourcery.com>
16148
16149 * common.opt (nostartfiles): New Driver option.
16150
16151 2011-02-11 Xinliang David Li <davidxl@google.com>
16152
16153 PR tree-optimization/47707
16154 * tree-chrec.c (convert_affine_scev): Keep type precision.
16155
16156 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
16157
16158 PR tree-optimization/47420
16159 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
16160
16161 2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
16162
16163 PR rtl-optimization/47614
16164 * rtl.h (check_for_inc_dec): Declare.
16165 * dse.c (check_for_inc_dec): Externalize...
16166 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
16167 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
16168
16169 2011-02-11 Joseph Myers <joseph@codesourcery.com>
16170
16171 PR driver/47678
16172 * gcc.c (main): Do not compile inputs if there were errors in
16173 option handling.
16174 * opts-common.c (read_cmdline_option): Check for wrong language
16175 after other error checks.
16176
16177 2011-02-11 Nathan Froyd <froydnj@codesourcery.com>
16178
16179 * cgraph.c: Fix comment typos.
16180 * cgraph.h: Likewise.
16181 * cgraphunit.c: Likewise.
16182 * ipa-cp.c: Likewise.
16183 * ipa-inline.c: Likewise.
16184 * ipa-prop.c: Likewise.
16185 * ipa-pure-const.c: Likewise.
16186 * ipa-ref.c: Likewise.
16187 * ipa-reference.c: Likewise.
16188
16189 2011-02-11 Jakub Jelinek <jakub@redhat.com>
16190
16191 PR debug/47684
16192 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
16193
16194 2011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16195
16196 PR testsuite/47400
16197 * doc/sourcebuild.texi (Require Support): Document
16198 dg-require-ascii-locale.
16199
16200 2011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
16201
16202 * doc/lto.texi (Write summary): Fix missing parentheses.
16203
16204 2011-02-10 DJ Delorie <dj@redhat.com>
16205
16206 * config/m32c/m32c.c (m32c_option_override): Disable
16207 -fcombine-stack-adjustments until flag value tracking and compare
16208 optimization can be rewritten.
16209
16210 2011-02-10 Peter Bergner <bergner@vnet.ibm.com>
16211
16212 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
16213 PROCESSOR_POWER7.
16214 (PROCESSOR_DEFAULT64): Likewise.
16215
16216 2011-02-10 Richard Henderson <rth@redhat.com>
16217
16218 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
16219 change from 2011-02-03.
16220 * config/rx/rx.c (flags_from_code): Likewise.
16221 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
16222 is valid, n/pz otherwise.
16223 (rx_select_cc_mode): Return CCmode if Y is not zero.
16224
16225 2011-02-10 Richard Guenther <rguenther@suse.de>
16226
16227 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
16228
16229 2011-02-10 Richard Guenther <rguenther@suse.de>
16230
16231 PR tree-optimization/47677
16232 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
16233
16234 2011-02-10 Jakub Jelinek <jakub@redhat.com>
16235
16236 PR target/47665
16237 * combine.c (make_compound_operation): Only change shifts into
16238 multiplication for SCALAR_INT_MODE_P.
16239
16240 2011-02-10 Jie Zhang <jie@codesourcery.com>
16241
16242 PR testsuite/47622
16243 Revert
16244 2011-02-05 Jie Zhang <jie@codesourcery.com>
16245 PR debug/42631
16246 * web.c (entry_register): Don't clobber the number of the
16247 first uninitialized reference in used[].
16248
16249 2011-02-09 Richard Guenther <rguenther@suse.de>
16250
16251 PR tree-optimization/47664
16252 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
16253 all edges again.
16254
16255 2011-02-09 David Edelsohn <dje.gcc@gmail.com>
16256
16257 PR target/46481
16258 PR target/47032
16259 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
16260 PROCESSOR_POWER7.
16261 (PROCESSOR_DEFAULT64): Same.
16262 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
16263
16264 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16265
16266 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
16267
16268 2011-02-09 Martin Jambor <mjambor@suse.cz>
16269
16270 PR middle-end/45505
16271 * tree-sra.c (struct access): New flags grp_scalar_read and
16272 grp_scalar_write. Changed description of assignment read and write
16273 flags.
16274 (dump_access): Dump new flags, reorder all of them.
16275 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
16276 to detect multiple scalar reads.
16277 (analyze_access_subtree): Use the new scalar read write flags instead
16278 of the old flags. Adjusted comments.
16279
16280 2011-02-08 DJ Delorie <dj@redhat.com>
16281
16282 PR target/47548
16283 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
16284 patterns.
16285
16286 2011-02-08 Joseph Myers <joseph@codesourcery.com>
16287
16288 * config/m68k/uclinux.opt: New.
16289 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
16290
16291 2011-02-08 Joseph Myers <joseph@codesourcery.com>
16292
16293 * config/cris/elf.opt (sim): New Driver option.
16294
16295 2011-02-08 Joseph Myers <joseph@codesourcery.com>
16296
16297 * config/xtensa/elf.opt: New.
16298 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
16299
16300 2011-02-08 Joseph Myers <joseph@codesourcery.com>
16301
16302 * config/vax/elf.opt: New.
16303 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
16304
16305 2011-02-08 Joseph Myers <joseph@codesourcery.com>
16306
16307 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
16308
16309 2011-02-08 Joseph Myers <joseph@codesourcery.com>
16310
16311 * config/gnu-user.opt: New.
16312 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
16313 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
16314 *-*-uclinux*): Use gnu-user.opt.
16315
16316 2011-02-08 Thomas Schwinge <thomas@schwinge.name>
16317
16318 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
16319 * config/i386/gnu.h (CPP_SPEC): Likewise.
16320
16321 2011-02-08 Ian Lance Taylor <iant@google.com>
16322
16323 * common.opt (fcx-limited-range): Add SetByCombined flag.
16324 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
16325 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
16326 (fassociative-math, freciprocal-math): Likewise.
16327 (funsafe-math-optimizations): Likewise.
16328 * opth-gen.awk: Handle SetByCombined.
16329 * optc-gen.awk: Likewise.
16330 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
16331 (set_unsafe_math_optimizations_flags): Likewise.
16332 * doc/options.texi (Option properties): Document SetByCombined.
16333
16334 2011-02-08 Joseph Myers <joseph@codesourcery.com>
16335
16336 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
16337 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
16338 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
16339 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
16340 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
16341
16342 2011-02-08 Sebastian Pop <sebastian.pop@amd.com>
16343
16344 PR tree-optimization/46834
16345 PR tree-optimization/46994
16346 PR tree-optimization/46995
16347 * graphite-sese-to-poly.c (used_outside_reduction): New.
16348 (detect_commutative_reduction): Call used_outside_reduction.
16349 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
16350 translate_scalar_reduction_to_array only when at least one
16351 loop-phi/close-phi tuple has been detected.
16352
16353 2011-02-08 Richard Guenther <rguenther@suse.de>
16354
16355 PR middle-end/47639
16356 * tree-vect-generic.c (expand_vector_operations_1): Update
16357 stmts here ...
16358 (expand_vector_operations): ... not here. Cleanup EH info
16359 and the CFG if required.
16360
16361 2011-02-08 Richard Guenther <rguenther@suse.de>
16362
16363 PR tree-optimization/47641
16364 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
16365 require type compatibility.
16366
16367 2011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16368
16369 * gimple-low.c (lower_function_body): Don't remove the location of
16370 the return statement here.
16371 (lower_gimple_return): Do it here instead but only if the return
16372 statement is actually used twice.
16373
16374 2011-02-08 Richard Guenther <rguenther@suse.de>
16375
16376 PR tree-optimization/47632
16377 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
16378 unused up_to_stmt parameter, return whether cfg-cleanup is
16379 necessary, remove EH info properly.
16380 (forward_propagate_into_gimple_cond): Adjust caller.
16381 (forward_propagate_into_cond): Likewise.
16382 (forward_propagate_comparison): Likewise.
16383 (tree_ssa_forward_propagate_single_use_vars): Make
16384 forward_propagate_comparison case similar to the two others.
16385
16386 2011-02-08 Nick Clifton <nickc@redhat.com>
16387
16388 * config/mn10300/mn10300.opt (mliw): New command line option.
16389 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
16390 (liw_bundling): New automaton.
16391 (liw): New attribute.
16392 (liw_op): New attribute.
16393 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
16394 (movsi_internal): Add LIW attributes.
16395 (andsi3): Likewise.
16396 (iorsi3): Likewise.
16397 (xorsi3): Likewise.
16398 (addsi3): Separate register and immediate alternatives.
16399 Add LIW attributes.
16400 (subsi3): Likewise.
16401 (cmpsi): Likewise.
16402 (aslsi3): Likewise.
16403 (lshrsi3): Likewise.
16404 (ashrsi3): Likewise.
16405 (liw): New pattern.
16406 * config/mn10300/mn10300.c (liw_op_names): New
16407 (mn10300_print_operand): Handle 'W' operand descriptor.
16408 (extract_bundle): New function.
16409 (check_liw_constraints): New function.
16410 (liw_candidate): New function.
16411 (mn10300_bundle_liw): New function.
16412 (mn10300_reorg): New function.
16413 (TARGET_MACHINE_DEPENDENT_REORG): Define.
16414 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
16415 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
16416 __LIW__ or __NO_LIW__.
16417 * doc/invoke.texi: Describe the -mliw command line option.
16418
16419 2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16420
16421 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
16422 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
16423 pthread_mutex_unlock): Remove.
16424 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
16425 * config/pa/t-pa64: Likewise.
16426 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
16427 shared libc if not linking against libpthread.
16428 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
16429
16430 2011-02-07 Iain Sandoe <iains@gcc.gnu.org>
16431
16432 PR target/47558
16433 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
16434 on 10.6 and later to ensure that we always use the unwinder from
16435 the system. Only add -no_compact_unwind when tarteting darwin
16436 10.6 or later.
16437
16438 2011-02-07 Steve Ellcey <sje@cup.hp.com>
16439
16440 PR target/46997
16441 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
16442 (vec_interleave_lowv2sf): Ditto.
16443 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
16444 (vec_extract_oddv2sf): Ditto.
16445
16446 2011-02-07 Mike Stump <mikestump@comcast.net>
16447
16448 PR target/42333
16449 Add __ieee_divdc3 entry point.
16450 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
16451 entry point.
16452 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
16453 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
16454 * config/darwin.c (darwin_rename_builtins): Add.
16455 * config/darwin-protos.h (darwin_rename_builtins): Add.
16456
16457 2011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
16458
16459 PR target/47636
16460 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
16461 for the condition.
16462
16463 2011-02-07 Mike Stump <mikestump@comcast.net>
16464
16465 * config/darwin.opt (mmacosx-version-min): Update default OS version.
16466
16467 2011-02-07 Denis Chertykov <chertykov@gmail.com>
16468
16469 PR target/47534
16470 * config/avr/libgcc.S (exit): Move .endfunc
16471
16472 2011-02-07 Richard Guenther <rguenther@suse.de>
16473
16474 PR tree-optimization/47615
16475 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
16476 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
16477 (run_scc_vn): Initialize it.
16478 (visit_reference_op_load): Use it.
16479 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
16480
16481 2011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16482
16483 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
16484 DImode trapping arithmetic libfuncs.
16485
16486 2011-02-07 Richard Guenther <rguenther@suse.de>
16487
16488 PR tree-optimization/47621
16489 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
16490 two duplicates ...
16491 (execute_update_addresses_taken): ... here. Make it more
16492 conservative in what we accept.
16493
16494 2011-02-06 Joseph Myers <joseph@codesourcery.com>
16495
16496 * config/sparc/freebsd.h (ASM_SPEC): Define.
16497 * config/sparc/vxworks.h (ASM_SPEC): Define.
16498
16499 2011-02-06 Joseph Myers <joseph@codesourcery.com>
16500
16501 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
16502
16503 2011-02-06 Steven Bosscher <steven@gcc.gnu.org>
16504
16505 * doc/invoke.texi: Remove reference to compiler internals from
16506 user documentation.
16507
16508 * reg-notes.def: Remove REG_VALUE_PROFILE.
16509 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
16510
16511 2011-02-05 Jakub Jelinek <jakub@redhat.com>
16512
16513 PR middle-end/47610
16514 * varasm.c (default_section_type_flags): If decl is NULL,
16515 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
16516
16517 2011-02-05 Jie Zhang <jie@codesourcery.com>
16518
16519 PR debug/42631
16520 * web.c (entry_register): Don't clobber the number of the
16521 first uninitialized reference in used[].
16522
16523 2011-02-04 Sebastian Pop <sebastian.pop@amd.com>
16524
16525 PR tree-optimization/46194
16526 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
16527 (build_classic_dist_vector_1): Do not represent classic distance
16528 vectors when the access functions are variating in different loops.
16529
16530 2011-02-04 Joseph Myers <joseph@codesourcery.com>
16531
16532 * config/mips/iris6.opt: New.
16533 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
16534
16535 2011-02-04 Richard Henderson <rth@redhat.com>
16536 Steve Ellcey <sje@cup.hp.com>
16537
16538 PR target/46997
16539 * config/ia64/predicates.md (mux1_brcst_element): New.
16540 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
16541 * config/ia64/ia64.c (ia64_unpack_assemble): New.
16542 (ia64_unpack_sign): New.
16543 (ia64_expand_unpack): Rewrite using new routines.
16544 (ia64_expand_widen_sum): Ditto.
16545 (ia64_expand_dot_prod_v8qi): Ditto.
16546 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
16547 routines, add endian check.
16548 (pmpy2_even): Rename from pmpy2_r, add endian check.
16549 (pmpy2_odd): Rename from pmpy2_l, add endian check.
16550 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
16551 (vec_widen_smult_hi_v4hi): Ditto.
16552 (vec_widen_umult_lo_v4hi): Ditto.
16553 (vec_widen_umult_hi_v4hi): Ditto.
16554 (mulv2si3): Change endian checks.
16555 (sdot_prodv4hi): Rewrite with new calls.
16556 (udot_prodv4hi): New.
16557 (vec_pack_ssat_v4hi): Add endian check.
16558 (vec_pack_usat_v4hi): Ditto.
16559 (vec_pack_ssat_v2si): Ditto.
16560 (max1_even): Rename from max1_r, add endian check.
16561 (max1_odd): Rename from max1_l, add endian check.
16562 (*mux1_rev): Format change.
16563 (*mux1_mix): Ditto.
16564 (*mux1_shuf): Ditto.
16565 (*mux1_alt): Ditto.
16566 (*mux1_brcst_v8qi): Use new predicate.
16567 (vec_extract_evenv8qi): Remove endian check.
16568 (vec_extract_oddv8qi): Ditto.
16569 (vec_interleave_lowv4hi): Format change.
16570 (vec_interleave_highv4hi): Ditto.
16571 (mix2_even): Rename from mix2_r, add endian check.
16572 (mix2_odd): Rename from mux2_l, add endian check.
16573 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
16574 (vec_extract_evenodd_helper): Format change.
16575 (vec_extract_evenv4hi): Remove endian check.
16576 (vec_extract_oddv4hi): Remove endian check.
16577 (vec_interleave_lowv2si): Format change.
16578 (vec_interleave_highv2si): Format change.
16579 (vec_initv2si): Remove endian check.
16580 (vecinit_v2si): Add endian check.
16581 (reduc_splus_v2sf): Add endian check.
16582 (reduc_smax_v2sf): Ditto.
16583 (reduc_smin_v2sf): Ditto.
16584 (vec_initv2sf): Remove endian check.
16585 (fpack): Add endian check.
16586 (fswap): Add endian check.
16587 (vec_interleave_highv2sf): Add endian check.
16588 (vec_interleave_lowv2sf): Add endian check.
16589 (fmix_lr): Add endian check.
16590 (vec_setv2sf): Format change.
16591 (*vec_extractv2sf_0_be): Use shift to extract operand.
16592 (*vec_extractv2sf_1_be): New.
16593 (vec_pack_trunc_v4hi): Add endian check.
16594 (vec_pack_trunc_v2si): Format change.
16595
16596 2011-02-04 Jakub Jelinek <jakub@redhat.com>
16597
16598 PR inline-asm/23200
16599 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
16600 do bb, locus and block comparison and disallow loads if it is not set.
16601 (stmt_is_replaceable_p): New function.
16602 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
16603 callers.
16604 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
16605 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
16606 SSA_NAME_DEF_STMT.
16607 * tree-flow.h (stmt_is_replaceable_p): New prototype.
16608
16609 2011-02-04 Joseph Myers <joseph@codesourcery.com>
16610
16611 * config/rs6000/xilinx.opt: New.
16612 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
16613
16614 2011-02-04 Joseph Myers <joseph@codesourcery.com>
16615
16616 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
16617
16618 2011-02-03 Anatoly Sokolov <aesok@post.ru>
16619
16620 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
16621 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
16622 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
16623 secondary_reload_info, xtensa_secondary_reload): Remove.
16624 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
16625 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
16626 (xtensa_preferred_reload_class): Make static. Change return and
16627 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
16628 Use CONST_DOUBLE_P predicate.
16629 (xtensa_preferred_output_reload_class): New function.
16630 (xtensa_secondary_reload): Make static.
16631
16632 2011-02-03 Joseph Myers <joseph@codesourcery.com>
16633
16634 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
16635 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
16636 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
16637
16638 2011-02-03 Jakub Jelinek <jakub@redhat.com>
16639
16640 PR middle-end/31490
16641 * output.h (SECTION_RELRO): Define.
16642 (SECTION_MACH_DEP): Adjust.
16643 (get_variable_section): New prototype.
16644 * varpool.c (varpool_finalize_named_section_flags): New function.
16645 (varpool_assemble_pending_decls): Call it.
16646 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
16647 * cgraphunit.c (cgraph_output_in_order): Call
16648 varpool_finalize_named_section_flags.
16649 * varasm.c (get_section): Allow section flags conflicts between
16650 relro and read-only sections if the section hasn't been declared yet.
16651 Set SECTION_OVERRIDE after diagnosing section type conflict.
16652 (get_variable_section): No longer static.
16653 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
16654 readonly sections that need relocations.
16655 (decl_readonly_section_1): New function.
16656 (decl_readonly_section): Use it.
16657
16658 Revert:
16659 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
16660 Steve Ellcey <sje@cup.hp.com>
16661
16662 PR middle-end/31490
16663 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
16664 if section attribute used.
16665
16666 2011-02-03 Jakub Jelinek <jakub@redhat.com>
16667
16668 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
16669 * config/darwin.c (SECTION_NO_ANCHOR): Define.
16670 (darwin_init_sections): Remove assertion.
16671
16672 2011-02-03 Nick Clifton <nickc@redhat.com>
16673
16674 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
16675 lt and ge.
16676 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
16677 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
16678 instead of "n" and "pz".
16679 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
16680 CC_FLAG_S.
16681
16682 2011-02-03 Jakub Jelinek <jakub@redhat.com>
16683
16684 PR target/47312
16685 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
16686 fma, expand FMA_EXPR as fma{,f,l} call.
16687
16688 PR lto/47274
16689 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
16690 copy them into a unsigned char variable and pass address of it to
16691 lto_output_data_stream.
16692
16693 PR target/47564
16694 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
16695 around backend_init_target and lang_dependent_init_target calls.
16696 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
16697 (verify_cgraph_node): Don't call set_cfun here. Use
16698 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
16699 Set error_found for incorrectly represented calls to thunks.
16700
16701 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
16702
16703 PR debug/43092
16704 PR rtl-optimization/43494
16705 * rtl.h (for_each_inc_dec_fn): New type.
16706 (for_each_inc_dec): Declare.
16707 * rtlanal.c (struct for_each_inc_dec_ops): New type.
16708 (for_each_inc_dec_find_inc_dec): New fn.
16709 (for_each_inc_dec_find_mem): New fn.
16710 (for_each_inc_dec): New fn.
16711 * dse.c (struct insn_size): Remove.
16712 (replace_inc_dec, replace_inc_dec_mem): Remove.
16713 (emit_inc_dec_insn_before): New fn.
16714 (check_for_inc_dec): Use it, along with for_each_inc_dec.
16715 (canon_address): Pass mem modes to cselib_lookup.
16716 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
16717 (cselib_lookup_from_insn): Likewise.
16718 (cselib_subst_to_values): Likewise.
16719 * cselib.c (find_slot_memmode): New var.
16720 (cselib_find_slot): New fn. Use it instead of
16721 htab_find_slot_with_hash everywhere.
16722 (entry_and_rtx_equal_p): Use find_slot_memmode.
16723 (autoinc_split): New fn.
16724 (rtx_equal_for_cselib_p): Rename and implement in terms of...
16725 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
16726 Deal with autoinc. Special-case recursion into MEMs.
16727 (cselib_hash_rtx): Likewise.
16728 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
16729 address and MEM modes.
16730 (cselib_subst_to_values): Add memmode, pass it on.
16731 Deal with autoinc.
16732 (cselib_lookup): Add memmode argument, pass it on.
16733 (cselib_lookup_from_insn): Add memmode.
16734 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
16735 (struct cselib_record_autoinc_data): New.
16736 (cselib_record_autoinc_cb): New fn.
16737 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
16738 mode to cselib_lookup. Reset autoinced REGs here instead of...
16739 (cselib_process_insn): ... here.
16740 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
16741 to cselib_lookup.
16742 (add_uses): Likewise, also to cselib_subst_to_values.
16743 (add_stores): Likewise.
16744 * sched-deps.c (add_insn_mem_dependence): Pass mode to
16745 cselib_subst_to_values.
16746 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
16747 * gcse.c (do_local_cprop): Adjusted.
16748 * postreload.c (reload_cse_simplify_set): Adjusted.
16749 (reload_cse_simplify_operands): Adjusted.
16750 * sel-sched-dump (debug_mem_addr_value): Pass mode.
16751
16752 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
16753
16754 PR tree-optimization/45122
16755 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
16756 unsafe assumptions when there's more than one loop exit.
16757
16758 2011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
16759
16760 PR target/47272
16761 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
16762 Document using vector double with the load/store builtins, and
16763 that the load/store builtins always use Altivec instructions.
16764
16765 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
16766 to use altivec memory instructions, even on VSX.
16767 (vector_altivec_store_<mode>): Ditto.
16768
16769 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
16770 function.
16771
16772 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16773 V2DF, V2DI support to load/store overloaded builtins.
16774
16775 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
16776 altivec load/store builtins for V2DF/V2DI types.
16777
16778 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
16779 set avoid indexed addresses on power6 if -maltivec.
16780 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
16781 vector_altivec_load/vector_altivec_store builtins.
16782 (altivec_expand_st_builtin): Ditto.
16783 (altivec_expand_builtin): Add VSX memory builtins.
16784 (rs6000_init_builtins): Add V2DI types to internal types.
16785 (altivec_init_builtins): Add support for V2DF/V2DI altivec
16786 load/store builtins.
16787 (rs6000_address_for_altivec): Insure memory address is appropriate
16788 for Altivec.
16789
16790 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
16791 vec_vsx_ld and vec_vsx_st.
16792 (vsx_store_<mode>): Ditto.
16793
16794 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
16795 variables to hold long long types for VSX vector memory builtins.
16796 (RS6000_BTI_unsigned_long_long): Ditto.
16797 (long_long_integer_type_internal_node): Ditti.
16798 (long_long_unsigned_type_internal_node): Ditti.
16799
16800 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
16801 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
16802 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
16803
16804 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
16805 short cuts.
16806 (vec_vsx_st): Ditto.
16807
16808 2011-02-02 Joseph Myers <joseph@codesourcery.com>
16809
16810 * config/pa/pa-hpux10.opt: New.
16811 * config/hpux11.opt (pthread): New Driver option.
16812 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
16813 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
16814
16815 2011-02-02 Joseph Myers <joseph@codesourcery.com>
16816
16817 * config/ia64/vms.opt: New.
16818 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
16819
16820 2011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
16821
16822 PR target/47580
16823 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
16824 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
16825 generator functions.
16826 (vsx_floatuns<VSi><mode>2): Ditto.
16827 (vsx_fix_trunc<mode><VSi>2): Ditto.
16828 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
16829
16830 2011-02-02 Joseph Myers <joseph@codesourcery.com>
16831
16832 * config/i386/djgpp.opt (posix): New Driver option.
16833
16834 2011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
16835
16836 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
16837 Move to the unsupported targets list.
16838
16839 2011-02-02 Peter Bergner <bergner@vnet.ibm.com>
16840
16841 PR rtl-optimization/47525
16842 * df-scan.c: Update copyright years.
16843 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
16844 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
16845
16846 2011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16847
16848 * config/i386/sysv4.h (TARGET_VERSION): Remove.
16849 (SUBTARGET_RETURN_IN_MEMORY): Remove.
16850 (ASM_OUTPUT_ASCII): Remove.
16851 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
16852
16853 2011-02-02 Jeff Law <law@redhat.com>
16854
16855 PR middle-end/47543
16856 * reload.c (find_reloads_address): Handle reg+d address where both
16857 components are invalid by reloading the entire address.
16858
16859 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
16860 Richard Guenther <rguenther@suse.de>
16861
16862 PR tree-optimization/40979
16863 PR bootstrap/47044
16864 * passes.c (init_optimization_passes): After LIM call copy_prop
16865 and DCE to clean up.
16866 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
16867
16868 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
16869
16870 PR tree-optimization/47576
16871 PR tree-optimization/47555
16872 * doc/invoke.texi (scev-max-expr-complexity): Documented.
16873 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
16874 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
16875 * tree-scalar-evolution.c (follow_ssa_edge): Use
16876 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
16877
16878 2011-02-02 Richard Guenther <rguenther@suse.de>
16879
16880 PR tree-optimization/47566
16881 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
16882
16883 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
16884
16885 PR debug/47106
16886 PR debug/47402
16887 * tree-inline.c (declare_return_variable): Remove unused caller
16888 variable.
16889
16890 PR debug/47106
16891 PR debug/47402
16892 * tree-flow-inline.h (clear_is_used, is_used_p): New.
16893 * cfgexpand.c (account_used_vars_for_block): Use them.
16894 * tree-nrv.c (tree_nrv): Likewise.
16895 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
16896 (dump_scope_block): Likewise.
16897 (remove_unused_locals): Likewise.
16898
16899 PR debug/47106
16900 PR debug/47402
16901 * tree-inline.c (declare_return_variable): Add result decl to
16902 local decls only once.
16903 * gimple-low.c (record_vars_into): Mark newly-created variables
16904 as referenced.
16905
16906 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
16907
16908 PR debug/47498
16909 PR debug/47501
16910 PR debug/45136
16911 PR debug/45130
16912 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
16913 debug insns.
16914 (no_real_insns_p, schedule_block, set_priorities): Drop special
16915 treatment of boundary debug insns.
16916 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
16917 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
16918 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
16919 (BOUNDARY_DEBUG_INSN_P): Likewise.
16920 (SCHEDULE_DEBUG_INSN_P): Likewise.
16921 * sched-rgn.c (init_ready_list): Drop special treatment of
16922 boundary debug insns.
16923 * final.c (rest_of_clean_state): Clear notes' BB.
16924
16925 2011-02-01 Joseph Myers <joseph@codesourcery.com>
16926
16927 * config/openbsd.opt (assert=): New Driver option.
16928
16929 2011-02-01 Joseph Myers <joseph@codesourcery.com>
16930
16931 * config/i386/nto.opt: New.
16932 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
16933
16934 2011-02-01 Joseph Myers <joseph@codesourcery.com>
16935
16936 * config/i386/netware.opt: New.
16937 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
16938
16939 2011-02-01 Joseph Myers <joseph@codesourcery.com>
16940
16941 * config/interix.opt (posix): New Driver option.
16942
16943 2011-02-01 DJ Delorie <dj@redhat.com>
16944
16945 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
16946
16947 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
16948 class for A0/A1.
16949
16950 2011-02-01 Sebastian Pop <sebastian.pop@amd.com>
16951
16952 PR tree-optimization/47561
16953 * toplev.c (process_options): Print the Graphite flags. Add
16954 flag_loop_flatten to the list of options requiring Graphite.
16955
16956 2011-02-01 Joseph Myers <joseph@codesourcery.com>
16957
16958 * config/i386/cygming.opt (posix): New Driver option.
16959
16960 2011-02-01 Joseph Myers <joseph@codesourcery.com>
16961
16962 * config/arm/vxworks.opt: New.
16963 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
16964
16965 2011-02-01 Joseph Myers <joseph@codesourcery.com>
16966
16967 * config/alpha/elf.opt: New.
16968 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
16969 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
16970
16971 2011-02-01 Richard Guenther <rguenther@suse.de>
16972
16973 PR tree-optimization/47559
16974 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
16975 store-motion on references that can throw.
16976
16977 2011-02-01 Bernd Schmidt <bernds@codesourcery.com>
16978
16979 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
16980 * tree-pass.h (TDF_CSELIB): New macro.
16981 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
16982 cselib_lookup): Check for it rather than for TDF_DETAILS.
16983
16984 2011-02-01 H.J. Lu <hongjiu.lu@intel.com>
16985
16986 PR driver/47547
16987 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
16988 is HOST_BIT_BUCKET.
16989
16990 * opts.c (finish_options): Don't add x_aux_base_name if it is
16991 HOST_BIT_BUCKET.
16992
16993 2011-02-01 Richard Guenther <rguenther@suse.de>
16994
16995 PR tree-optimization/47555
16996 Revert
16997 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
16998
16999 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
17000
17001 2011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
17002
17003 PR gcc/46692
17004 * config/lm32/t-lm32: Add multilib for all CPU options.
17005
17006 2011-02-01 Richard Guenther <rguenther@suse.de>
17007
17008 PR tree-optimization/47541
17009 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
17010 sure to have a field at offset zero.
17011
17012 2011-01-31 Joseph Myers <joseph@codesourcery.com>
17013
17014 * config/arc/arc.opt (EB, EL): New Driver options.
17015
17016 2011-01-31 Joseph Myers <joseph@codesourcery.com>
17017
17018 * config/alpha/osf5.opt: New.
17019 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
17020
17021 2011-01-31 Joseph Myers <joseph@codesourcery.com>
17022
17023 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
17024
17025 2011-01-31 Sebastian Pop <sebastian.pop@amd.com>
17026
17027 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
17028 -floop-interchange.
17029 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
17030 is an alias of -floop-interchange and that it requires the
17031 Graphite infrastructure.
17032 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
17033 flag_loop_interchange based on the value of flag_tree_loop_linear.
17034
17035 2011-01-31 Jakub Jelinek <jakub@redhat.com>
17036 Richard Guenther <rguenther@suse.de>
17037
17038 PR tree-optimization/47538
17039 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
17040 type instead of r1type, except for comparisons. For right
17041 shifts and comparisons punt if there are mismatches in
17042 sizetype vs. non-sizetype types.
17043
17044 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17045
17046 * doc/sourcebuild.texi (Effective-Target Keywords): Document
17047 avx_runtime.
17048
17049 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17050
17051 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
17052 version number.
17053 * configure: Regenerate.
17054
17055 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17056
17057 * configure.ac (gcc_cv_ld_static_option): Define.
17058 (gcc_cv_ld_dynamic_option): Define.
17059 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
17060 instead.
17061 (HAVE_LD_STATIC_DYNAMIC): Update message.
17062 (LD_STATIC_OPTION): Define.
17063 (LD_DYNAMIC_OPTION): Define.
17064 * configure: Regenerate.
17065 * config.in: Regenerate.
17066 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
17067 HAVE_LD_STATIC_DYNAMIC]: Use them.
17068
17069 2011-01-31 Nick Clifton <nickc@redhat.com>
17070
17071 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
17072 registers inside interrupt handlers if the handler is not a leaf
17073 function.
17074
17075 2011-01-31 Nick Clifton <nickc@redhat.com>
17076
17077 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
17078 reg_renumber returning an INVALID_REGNUM.
17079
17080 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
17081
17082 PR libgcj/44341
17083 * doc/install.texi: Document host options discarded when cross
17084 configuring target libraries.
17085
17086 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
17087
17088 Reverted:
17089 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
17090 PR debug/45136
17091 PR debug/45130
17092 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
17093 debug insns.
17094 (no_real_insns_p, schedule_block, set_priorities): Drop special
17095 treatment of boundary debug insns.
17096 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
17097 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
17098 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
17099 (BOUNDARY_DEBUG_INSN_P): Likewise.
17100 (SCHEDULE_DEBUG_INSN_P): Likewise.
17101 * sched-rgn.c (init_ready_list): Drop special treatment of
17102 boundary debug insns.
17103 * final.c (rest_of_clean-state): Clear notes' BB.
17104
17105 2011-01-31 Alan Modra <amodra@gmail.com>
17106
17107 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
17108 toc relative expressions as we do in print_operand_address.
17109
17110 2011-01-30 Kazu Hirata <kazu@codesourcery.com>
17111
17112 * doc/extend.texi: Follow spelling conventions.
17113 * doc/invoke.texi: Fix a typo.
17114
17115 2011-01-30 Joseph Myers <joseph@codesourcery.com>
17116
17117 * config/hpux11.opt: New.
17118 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
17119 ia64*-*-hpux*): Use hpux11.opt.
17120
17121 2011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
17122
17123 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
17124 to tmake_file.
17125
17126 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
17127
17128 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
17129 support sites.
17130
17131 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
17132
17133 * doc/install.texi (Binaries): Remove outdated reference for
17134 Motorola 68HC11/68HC12 downloads.
17135
17136 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
17137
17138 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
17139 Drepper's paper.
17140
17141 2011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
17142
17143 PR bootstrap/47147
17144 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
17145 used by NetBSD.
17146
17147 2011-01-28 Ahmad Sharif <asharif@google.com>
17148
17149 * value-prof.c (check_counter): Corrected error message.
17150
17151 2011-01-29 Jie Zhang <jie@codesourcery.com>
17152
17153 * config/arm/arm.c (arm_legitimize_reload_address): New.
17154 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
17155 arm_legitimize_reload_address.
17156 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
17157
17158 2011-01-28 Ian Lance Taylor <iant@google.com>
17159
17160 * godump.c (go_define): Ignore macros whose definitions include
17161 two adjacent operands.
17162
17163 2011-01-28 Jakub Jelinek <jakub@redhat.com>
17164
17165 PR target/42894
17166 * varasm.c (force_const_mem): Store copy of x in desc->constant
17167 instead of x itself.
17168 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
17169 itself into REG_EQUAL note.
17170
17171 2011-01-28 Joseph Myers <joseph@codesourcery.com>
17172
17173 * config/freebsd.opt (posix, rdynamic): New Driver options.
17174
17175 2011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17176
17177 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
17178 -Bstatic/-Bdynamic.
17179 * configure: Regenerate.
17180
17181 2011-01-27 Joseph Myers <joseph@codesourcery.com>
17182
17183 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
17184 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
17185
17186 2011-01-27 Anatoly Sokolov <aesok@post.ru>
17187
17188 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
17189 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
17190 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
17191 (s390_preferred_reload_class): Make static. Change return and
17192 'rclass' argument type to reg_class_t.
17193
17194 2011-01-27 Jan Hubicka <jh@suse.cz>
17195
17196 PR middle-end/46949
17197 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
17198 (process_function_and_variable_attributes): Check defined weakrefs.
17199
17200 2011-01-27 Martin Jambor <mjambor@suse.cz>
17201
17202 PR tree-optimization/47228
17203 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
17204 build_ref_for_offset.
17205
17206 2011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17207
17208 * config/spu/spu-elf.h (ASM_SPEC): Remove.
17209
17210 2011-01-26 Mikael Pettersson <mikpe@it.uu.se>
17211
17212 PR rtl-optimization/46856
17213 * postreload.c (reload_combine_recognize_const_pattern): Do not
17214 separate cc0 setter and user on cc0 targets.
17215
17216 2011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
17217
17218 PR c/43082
17219 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
17220 passed a VOID_TYPE expression, immediately emit an error and
17221 return error_mark_node.
17222
17223 2011-01-26 Jeff Law <law@redhat.com>
17224
17225 PR rtl-optimization/47464
17226 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
17227 rather than may_trap_p as needed.
17228
17229 2011-01-26 DJ Delorie <dj@redhat.com>
17230
17231 PR rtl-optimization/46878
17232 * combine.c (insn_a_feeds_b): Check for the implicit cc0
17233 setter/user dependency as well.
17234
17235 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
17236
17237 PR rtl-optimization/44469
17238 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
17239 after removing trivially dead basic blocks.
17240
17241 2011-01-26 Joseph Myers <joseph@codesourcery.com>
17242
17243 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
17244 * config/frv/frv.h (LINK_SPEC): Likewise.
17245 * config/i386/netware.h (LINK_SPEC): Likewise.
17246 * config/m68k/linux.h (ASM_SPEC): Likewise.
17247 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
17248 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
17249 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
17250 * config/sparc/linux.h (ASM_SPEC): Likewise.
17251 * config/sparc/linux64.h (ASM_SPEC): Likewise.
17252 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
17253
17254 2011-01-26 Joseph Myers <joseph@codesourcery.com>
17255
17256 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
17257 * config/frv/frv.h (ASM_SPEC): Likewise.
17258 * config/m68k/linux.h (ASM_SPEC): Likewise.
17259 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
17260 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
17261 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
17262 * config/sparc/linux.h (ASM_SPEC): Likewise.
17263 * config/sparc/linux64.h (ASM_SPEC): Likewise.
17264 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
17265
17266 2011-01-26 Joseph Myers <joseph@codesourcery.com>
17267
17268 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
17269 * config/frv/frv.h (LINK_SPEC): Likewise.
17270 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
17271
17272 2011-01-26 Joseph Myers <joseph@codesourcery.com>
17273
17274 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
17275 * config/frv/frv.h (ASM_SPEC): Likewise.
17276 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
17277 * config/m68k/linux.h (ASM_SPEC): Likewise.
17278 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
17279 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
17280 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
17281 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
17282 * config/sparc/linux.h (ASM_SPEC): Likewise.
17283 * config/sparc/linux64.h (ASM_SPEC): Likewise.
17284 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
17285 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
17286
17287 2011-01-26 Steve Ellcey <sje@cup.hp.com>
17288
17289 PR target/46997
17290 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
17291 (*mux2): Ditto.
17292 (vec_extract_evenodd_help): Ditto.
17293 (vec_extract_evenv4hi): Ditto.
17294 (vec_extract_oddv4hi): Ditto.
17295 (vec_interleave_lowv2si): Ditto.
17296 (vec_interleave_highv2si): Ditto.
17297 (vec_extract_evenv2si): Ditto.
17298 (vec_extract_oddv2si: Ditto.
17299 (vec_pack_trunc_v2si): Ditto.
17300
17301 2011-01-22 Jan Hubicka <jh@suse.cz>
17302
17303 PR target/47237
17304 * cgraph.h (cgraph_local_info): New field can_change_signature.
17305 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
17306 signature can change.
17307 (ipcp_estimate_growth): Call sequence simplify only if calle signature
17308 can change.
17309 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
17310 (cgraph_function_versioning): We can not change signature of functions
17311 that don't allow that.
17312 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
17313 (lto_input_node): Likewise.
17314 * ipa-inline.c (compute_inline_parameters): Compute
17315 local.can_change_signature.
17316 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
17317 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
17318 functions that can not change signature.
17319 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
17320 init_cumulative_args): Do not use local calling conventions
17321 for functions that can not change signature.
17322
17323 2011-01-22 Jan Hubicka <jh@suse.cz>
17324
17325 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
17326
17327 2011-01-26 Richard Guenther <rguenther@suse.de>
17328
17329 PR tree-optimization/47190
17330 * cgraphunit.c (process_common_attributes): New function.
17331 (process_function_and_variable_attributes): Use it.
17332
17333 2011-01-26 Richard Guenther <rguenther@suse.de>
17334
17335 PR lto/47423
17336 * cgraphbuild.c (record_eh_tables): Record reference to personality
17337 function.
17338
17339 2011-01-26 Alexandre Oliva <aoliva@redhat.com>
17340
17341 PR debug/45454
17342 * sel-sched.c (moveup_expr): Don't let debug insns prevent
17343 non-debug insns from moving up.
17344
17345 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
17346
17347 PR target/40125
17348 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
17349 t-dlldir{,-x} fragment for build and add it to tmake_file.
17350 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
17351 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
17352 * config/i386/t-dlldir: New file.
17353 (SHLIB_DLLDIR): Define.
17354 * config/i386/t-dlldir-x: New file.
17355 (SHLIB_DLLDIR): Define.
17356 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
17357 (SHLIB_INSTALL): Use it.
17358
17359 2011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
17360
17361 PR target/47246
17362 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
17363 lower bound of the allowed Thumb-2 coprocessor load/store
17364 index range to -256. Add explaining comment.
17365
17366 2011-01-25 Ian Lance Taylor <iant@google.com>
17367
17368 * godump.c (go_define): Improve lexing of macro expansion to only
17369 accept expressions which match Go spec.
17370
17371 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
17372
17373 PR c++/43601
17374 * tree.c (handle_dll_attribute): Handle it.
17375 * doc/extend.texi (@item dllexport): Mention it.
17376 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
17377
17378 2011-01-25 Ian Lance Taylor <iant@google.com>
17379
17380 PR tree-optimization/26854
17381 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
17382 (decl_jump_unsafe): Move higher in file, with no other change.
17383 (bind): Set has_jump_unsafe_decl if appropriate.
17384 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
17385 (check_earlier_gotos): Likewise.
17386 (c_check_switch_jump_warnings): Likewise.
17387
17388 2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
17389
17390 * doc/invoke.texi (Warning Options): Add missing hyphen.
17391 (-fprofile-dir): Minor grammatical fixes.
17392 (-fbranch-probabilities): Likewise.
17393
17394 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
17395
17396 PR debug/45136
17397 PR debug/45130
17398 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
17399 debug insns.
17400 (no_real_insns_p, schedule_block, set_priorities): Drop special
17401 treatment of boundary debug insns.
17402 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
17403 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
17404 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
17405 (BOUNDARY_DEBUG_INSN_P): Likewise.
17406 (SCHEDULE_DEBUG_INSN_P): Likewise.
17407 * sched-rgn.c (init_ready_list): Drop special treatment of
17408 boundary debug insns.
17409 * final.c (rest_of_clean-state): Clear notes' BB.
17410
17411 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17412
17413 * Makefile.in (LAMBDA_H): Removed.
17414 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
17415 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
17416 lambda-trans.o, and tree-loop-linear.o.
17417 (lto-symtab.o): Remove dependence on LAMBDA_H.
17418 (tree-loop-linear.o): Remove rule.
17419 (lambda-mat.o): Same.
17420 (lambda-trans.o): Same.
17421 (lambda-code.o): Same.
17422 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
17423 (tree-vect-slp.o): Same.
17424 * hwint.h (gcd): Moved here.
17425 (least_common_multiple): Same.
17426 * lambda-code.c: Removed.
17427 * lambda-mat.c: Removed.
17428 * lambda-trans.c: Removed.
17429 * lambda.h: Removed.
17430 * tree-loop-linear.c: Removed.
17431 * lto-symtab.c: Do not include lambda.h.
17432 * omega.c (gcd): Removed.
17433 * passes.c (init_optimization_passes): Remove pass_linear_transform.
17434 * tree-data-ref.c (print_lambda_vector): Moved here.
17435 (lambda_vector_copy): Same.
17436 (lambda_matrix_copy): Same.
17437 (lambda_matrix_id): Same.
17438 (lambda_vector_first_nz): Same.
17439 (lambda_matrix_row_add): Same.
17440 (lambda_matrix_row_exchange): Same.
17441 (lambda_vector_mult_const): Same.
17442 (lambda_vector_negate): Same.
17443 (lambda_matrix_row_negate): Same.
17444 (lambda_vector_equal): Same.
17445 (lambda_matrix_right_hermite): Same.
17446 * tree-data-ref.h: Do not include lambda.h.
17447 (lambda_vector): Moved here.
17448 (lambda_matrix): Same.
17449 (dependence_level): Same.
17450 (lambda_transform_legal_p): Removed declaration.
17451 (lambda_collect_parameters): Same.
17452 (lambda_compute_access_matrices): Same.
17453 (lambda_vector_gcd): Same.
17454 (lambda_vector_new): Same.
17455 (lambda_vector_clear): Same.
17456 (lambda_vector_lexico_pos): Same.
17457 (lambda_vector_zerop): Same.
17458 (lambda_matrix_new): Same.
17459 * tree-flow.h (least_common_multiple): Removed declaration.
17460 * tree-parloops.c (lambda_trans_matrix): Moved here.
17461 (LTM_MATRIX): Same.
17462 (LTM_ROWSIZE): Same.
17463 (LTM_COLSIZE): Same.
17464 (LTM_DENOMINATOR): Same.
17465 (lambda_trans_matrix_new): Same.
17466 (lambda_matrix_vector_mult): Same.
17467 (lambda_transform_legal_p): Same.
17468 * tree-pass.h (pass_linear_transform): Removed declaration.
17469 * tree-ssa-loop.c (tree_linear_transform): Removed.
17470 (gate_tree_linear_transform): Removed.
17471 (pass_linear_transform): Removed.
17472 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
17473 flag_loop_interchange.
17474
17475 2011-01-25 Jakub Jelinek <jakub@redhat.com>
17476
17477 PR tree-optimization/47265
17478 PR tree-optimization/47443
17479 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
17480 if name still has some uses.
17481
17482 2011-01-25 Martin Jambor <mjambor@suse.cz>
17483
17484 PR tree-optimization/47382
17485 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
17486 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
17487
17488 2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
17489
17490 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
17491 sjlj_except_unwind_info.
17492
17493 2011-01-25 Richard Guenther <rguenther@suse.de>
17494
17495 PR tree-optimization/47426
17496 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
17497 visible functions results escape.
17498
17499 2011-01-25 Jakub Jelinek <jakub@redhat.com>
17500
17501 PR target/45701
17502 * config/arm/arm.c (any_sibcall_uses_r3): New function.
17503 (arm_get_frame_offsets): Use it.
17504
17505 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17506 Jakub Jelinek <jakub@redhat.com>
17507
17508 PR tree-optimization/47271
17509 * tree-if-conv.c (bb_postdominates_preds): New.
17510 (if_convertible_bb_p): Call bb_postdominates_preds.
17511 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
17512 (predicate_scalar_phi): Call bb_postdominates_preds.
17513
17514 2011-01-25 Nick Clifton <nickc@redhat.com>
17515
17516 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
17517 * config/rx/rx.c (rx_function_value): Likewise.
17518 (rx_promote_function_mode): Likewise.
17519 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
17520 in order to make it legitimate.
17521 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
17522 make sure that the first operand is the same as the result register.
17523 (addsi3_unspec): Delete.
17524 (subdi3): Do not accept immediate operands.
17525 (subdi3_internal): Likewise.
17526
17527 2011-01-25 Jeff Law <law@redhat.com>
17528
17529 PR rtl-optimization/37273
17530 * ira-costs.c (scan_one_insn): Detect constants living in memory and
17531 handle them like argument loads from stack slots. Do not double
17532 count memory for memory constants and argument loads from stack slots.
17533
17534 2011-01-25 Jakub Jelinek <jakub@redhat.com>
17535
17536 PR tree-optimization/47427
17537 PR tree-optimization/47428
17538 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
17539 coalesce if the new root var would be TREE_READONLY.
17540
17541 2011-01-25 Richard Guenther <rguenther@suse.de>
17542
17543 PR middle-end/47414
17544 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
17545 correct type for TBAA.
17546
17547 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17548
17549 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
17550 (close_phi_written_to_memory): Call for_each_index with
17551 dr_indices_valid_in_loop.
17552
17553 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17554
17555 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
17556 when it is initialized.
17557
17558 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17559
17560 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
17561 call to graphite_find_data_references_in_stmt.
17562 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
17563 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
17564 call to graphite_find_data_references_in_stmt.
17565 (analyze_drs_in_stmts): Same.
17566 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
17567 in which the scalar analysis of indices is performed.
17568 (create_data_ref): Same. Update call to dr_analyze_indices.
17569 (find_data_references_in_stmt): Update call to create_data_ref.
17570 (graphite_find_data_references_in_stmt): Same.
17571 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
17572 declaration.
17573 (create_data_ref): Same.
17574 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
17575 call to create_data_ref.
17576
17577 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17578
17579 * graphite-sese-to-poly.c (build_poly_scop): Move
17580 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
17581
17582 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17583
17584 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
17585 VAR_DECL, PARM_DECL, and RESULT_DECL.
17586
17587 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17588
17589 * graphite-dependences.c (reduction_dr_1): Allow several reductions
17590 in a reduction PBB.
17591 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
17592 that have already been marked as PBB_IS_REDUCTION.
17593
17594 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17595
17596 * graphite-scop-detection.c (same_close_phi_node): New.
17597 (remove_duplicate_close_phi): New.
17598 (make_close_phi_nodes_unique): New.
17599 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
17600
17601 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17602
17603 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
17604 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
17605 of both data references to be the same.
17606
17607 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17608
17609 * graphite-dependences.c (build_lexicographical_constraint): Remove
17610 the gdim parameter.
17611 (build_lexicographical_constraint): Adjust call to
17612 ppl_powerset_is_empty.
17613 (dependence_polyhedron): Same.
17614 (graphite_legal_transform_dr): Same.
17615 (graphite_carried_dependence_level_k): Same.
17616 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
17617 parameter.
17618 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
17619
17620 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17621
17622 * graphite-sese-to-poly.c
17623 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
17624 (close_phi_written_to_memory): New.
17625 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
17626 and unshare_expr.
17627
17628 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17629
17630 * doc/install.texi: Update the expected version number of PPL to 0.11.
17631 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
17632 #if PPL_VERSION_MINOR < 11.
17633
17634 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17635
17636 * graphite-dependences.c: Include graphite-cloog-util.h.
17637 (new_poly_ddr): Inlined into dependence_polyhedron.
17638 (free_poly_ddr): Moved close by new_poly_ddr.
17639 (dependence_polyhedron_1): Renamed dependence_polyhedron.
17640 Early return NULL when ppl_powerset_is_empty returns true.
17641 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
17642 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
17643 (graphite_legal_transform_dr): Call new_poly_ddr.
17644 (graphite_carried_dependence_level_k): Same.
17645 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
17646 (dot_transformed_deps_stmt_1): Removed.
17647 (dot_deps_stmt_1): Call dot_deps_stmt_2.
17648 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
17649 (dot_deps_1): Call dot_deps_2.
17650 * Makefile.in (graphite-dependences.o): Add missing dependence on
17651 graphite-cloog-util.h.
17652
17653 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17654
17655 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
17656 (build_lexicographical_constraint): Same.
17657 (dependence_polyhedron_1): Same.
17658 (graphite_legal_transform_dr): Same.
17659 (graphite_carried_dependence_level_k): Same.
17660 * graphite-ppl.c (ppl_powerset_is_empty): New.
17661 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
17662 * tree-data-ref.c (dump_data_reference): Print the basic block index.
17663
17664 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17665
17666 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
17667 the "a followed by b" relation and document it.
17668
17669 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17670
17671 * graphite-dependences.c (build_lexicographical_constraint): Stop the
17672 iteration when the bag of constraints is empty.
17673
17674 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17675
17676 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
17677
17678 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17679
17680 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
17681 nest and two loop depths as parameters.
17682 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
17683 lst_perfect_nestify.
17684
17685 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17686
17687 * graphite-dependences.c (print_pddr): Call
17688 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
17689
17690 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17691
17692 * graphite-ppl.c (debug_gmp_value): New.
17693 * graphite-ppl.h (debug_gmp_value): Declared.
17694
17695 2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
17696
17697 * doc/install.texi: Document availability of cloog-0.16.
17698
17699 2011-01-25 Vladimir Kargov <kargov@gmail.com>
17700
17701 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
17702 invalid postdominance info.
17703
17704 2011-01-24 Jan Hubicka <jh@suse.cz>
17705
17706 PR c/21659
17707 * doc/extend.texi (weak pragma): Drop claim that it must
17708 appear before definition.
17709 * varasm.c (merge_weak, declare_weak): Only sanity check
17710 that DECL is not output at a time it is declared weak.
17711
17712 2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
17713
17714 * machmode.def: Fixed comments.
17715
17716 2011-01-24 Kai Tietz <kai.tietz@onevision.com>
17717
17718 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
17719
17720 2011-01-24 Paul Koning <ni1d@arrl.net>
17721
17722 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
17723 WORDS_BIG_ENDIAN.
17724
17725 2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
17726
17727 PR target/46519
17728 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
17729 (block_info): Add scanned and prev.
17730 (move_or_delete_vzeroupper_2): Return if the basic block
17731 has been scanned and the upper 128bit state is unchanged
17732 from the last scan.
17733 (move_or_delete_vzeroupper_1): Return true if the exit
17734 state is changed.
17735 (move_or_delete_vzeroupper): Visit basic blocks using the
17736 work-list based algorithm based on vt_find_locations in
17737 var-tracking.c.
17738
17739 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
17740
17741 2011-01-24 Nick Clifton <nickc@redhat.com>
17742
17743 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
17744 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
17745 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
17746 then define __v850e1__.
17747 * doc/invoke.texi: Document -mv850es.
17748
17749 2011-01-24 Richard Henderson <rth@redhat.com>
17750
17751 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
17752 compound unordered comparisons.
17753 * config/rx/rx.c (rx_split_fp_compare): Remove.
17754 * config/rx/rx-protos.h: Update.
17755 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
17756 (cbranchsf4): Don't call rx_split_fp_compare.
17757 (*cbranchsf4): Use rx_split_cbranch.
17758 (*cmpsf): Don't accept "i" constraint.
17759 (*conditional_branch): Only valid after reload.
17760 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
17761
17762 2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
17763
17764 PR target/47385
17765 * config/rs6000/altivec.md (vector constant splitters): Add
17766 support for creating vector single precision constants if -mvsx is
17767 used and we would create the constant using Altivec primitives.
17768
17769 2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
17770 Richard Sandiford <rdsandiford@googlemail.com>
17771
17772 PR rtl-optimization/47166
17773 * reload1.c (emit_reload_insns): Disable the spill_reg_store
17774 mechanism for PRE_MODIFY and POST_MODIFY.
17775 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
17776 reloadreg.
17777
17778 2011-01-23 Andreas Schwab <schwab@linux-m68k.org>
17779
17780 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
17781
17782 2011-01-22 Jan Hubicka <jh@suse.cz>
17783
17784 PR lto/47333
17785 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
17786
17787 2011-01-22 Jan Hubicka <jh@suse.cz>
17788
17789 PR tree-optimization/43884
17790 PR lto/44334
17791 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
17792 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
17793
17794 2011-01-22 Anatoly Sokolov <aesok@post.ru>
17795
17796 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
17797 * config/s390/s390.c (s390_register_move_cost,
17798 s390_memory_move_cost): New.
17799 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
17800
17801 2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17802
17803 PR middle-end/47401
17804 * except.c (sjlj_assign_call_site_values): Move setting the
17805 crtl->uses_eh_lsda flag to ...
17806 (sjlj_mark_call_sites): ... here.
17807 (sjlj_emit_function_enter): Support NULL dispatch label.
17808 (sjlj_build_landing_pads): In a function with no landing pads
17809 that still has must-not-throw regions, generate code to register
17810 a personality function with empty LSDA.
17811
17812 2011-01-21 Richard Henderson <rth@redhat.com>
17813
17814 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
17815
17816 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
17817
17818 * compare-elim.c: New file.
17819 * Makefile.in (OBJS-common): Add it.
17820 (compare-elim.o): New.
17821 * common.opt (fcompare-elim): New.
17822 * opts.c (default_options_table): Add OPT_fcompare_elim.
17823 * tree-pass.h (pass_compare_elim_after_reload): New.
17824 * passes.c (init_optimization_passes): Add it.
17825 * recog.h: Protect against re-inclusion.
17826 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
17827 * doc/invoke.texi (-fcompare-elim): Document it.
17828 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
17829 * doc/tm.texi: Rebuild.
17830
17831 2011-01-22 Nick Clifton <nickc@redhat.com>
17832
17833 * config/rx/rx.md (cstoresf4): Pass comparison operator to
17834 rx_split_fp_compare.
17835
17836 2011-01-22 Nick Clifton <nickc@redhat.com>
17837
17838 * config/rx/rx.md (UNSPEC_CONST): New.
17839 (deallocate_and_return): Wrap the amount popped off the stack in
17840 an UNSPEC_CONST in order to stop it being rejected by
17841 -mmax-constant-size.
17842 (pop_and_return): Add a "(return)" rtx.
17843 (call): Drop the immediate operand.
17844 (call_internal): Likewise.
17845 (call_value): Likewise.
17846 (call_value_internal): Likewise.
17847 (sibcall_internal): Likewise.
17848 (sibcall_value_internal): Likewise.
17849 (sibcall): Likewise. Generate an explicit call using
17850 sibcall_internal.
17851 (sibcall_value): Likewise.
17852 (mov<>): FAIL if a constant operand is not legitimate.
17853 (addsi3_unpsec): New pattern.
17854
17855 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
17856 (ok_for_max_constant): New function.
17857 (gen_safe_add): New function.
17858 (rx_expand_prologue): Use gen_safe_add.
17859 (rx_expand_epilogue): Likewise.
17860 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
17861 UNSPEC CONSTs.
17862
17863 2011-01-21 Jeff Law <law@redhat.com>
17864
17865 PR tree-optimization/47053
17866 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
17867 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
17868 statements are deleted.
17869 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
17870 is nonempty, then purge dead edges and cleanup the CFG.
17871
17872 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
17873
17874 PR debug/47402
17875 Temporarily revert:
17876 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
17877 PR debug/47106
17878 * tree-dfa.c (create_var_ann): Mark variable as used.
17879
17880 2011-01-21 Jakub Jelinek <jakub@redhat.com>
17881
17882 PR middle-end/45566
17883 * except.c (convert_to_eh_region_ranges): Emit queued no-region
17884 notes from other section in hot/cold partitioning even if
17885 last_action is -3. Increment call_site_base.
17886
17887 PR rtl-optimization/47366
17888 * fwprop.c (forward_propagate_into): Return bool. If
17889 any changes are made, -fnon-call-exceptions is used and
17890 REG_EH_REGION note is present, call purge_dead_edges
17891 and return true if it purged anything.
17892 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
17893 any EH edges were purged.
17894
17895 2011-01-21 Jeff Law <law@redhat.com>
17896
17897 PR rtl-optimization/41619
17898 * caller-save.c (setup_save_areas): Break out code to determine
17899 which hard regs are live across calls by examining the reload chains
17900 so that it is always used.
17901 Eliminate code which checked REG_N_CALLS_CROSSED.
17902
17903 2011-01-21 Jakub Jelinek <jakub@redhat.com>
17904
17905 PR tree-optimization/47355
17906 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
17907 NOP has non-debug uses beyond PHIs in new_bb.
17908
17909 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
17910
17911 PR debug/47106
17912 * cfgexpand.c (account_used_vars_for_block): Only account vars
17913 that are annotated as used.
17914 (estimated_stack_frame_size): Don't set TREE_USED.
17915 * tree-dfa.c (create_var_ann): Mark variable as used.
17916
17917 2011-01-21 Richard Guenther <rguenther@suse.de>
17918
17919 PR middle-end/47395
17920 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
17921
17922 2011-01-21 Richard Guenther <rguenther@suse.de>
17923
17924 PR tree-optimization/47365
17925 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
17926 (vn_reference_lookup_pieces): Adjust.
17927 (vn_reference_lookup): Likewise.
17928 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
17929 (vn_reference_lookup_3): Only look through kills if in
17930 VN_WALKREWRITE mode.
17931 (vn_reference_lookup_pieces): Adjust.
17932 (vn_reference_lookup): Likewise.
17933 (visit_reference_op_load): Likewise.
17934 (visit_reference_op_store): Likewise.
17935 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
17936 (compute_avail): Likewise.
17937 (eliminate): Likewise.
17938
17939 2011-01-21 Jakub Jelinek <jakub@redhat.com>
17940
17941 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
17942 DECL_IGNORED_P non-reg vars if they are used.
17943
17944 PR tree-optimization/47391
17945 * varpool.c (const_value_known_p): Return false if
17946 decl is volatile.
17947
17948 2011-01-21 Kai Tietz <kai.tietz@onevision.com>
17949
17950 PR bootstrap/47215
17951 * config/i386/i386.c (ix86_local_alignment): Handle
17952 case for va_list_type_node is nil.
17953 (ix86_canonical_va_list_type): Likewise.
17954
17955 2011-01-21 Alan Modra <amodra@gmail.com>
17956
17957 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
17958 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
17959
17960 2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17961
17962 * config/arm/arm.md (define_attr type): Rename f_load
17963 and f_store to f_fpa_load and f_fpa_store. Update.
17964 (write_conflict): Deal with rename fallout.
17965 (*push_fp_multi): Likewise.
17966 * config/arm/fpa.md (f_load): Use f_fpa_load.
17967 (f_store): Use f_fpa_store.
17968 (*movsf_fpa): Likewise.
17969 (*movdf_fpa): Likewise.
17970 (*movxf_fpa): Likewise.
17971 (*thumb2_movsf_fpa): Likewise.
17972 (*thumb2_movdf_fpa): Likewise.
17973 (*thumb2_movxf_fpa): Likewise.
17974 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
17975 f_loadd and f_stored.
17976 (*thumb2_movdi_vfp): Likewise.
17977 (*thumb2_movsf_vfp): Fix attribute to f_loads.
17978 (*thumb2_movsi_vfp): Likewise.
17979 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
17980 Use f_loads instead of f_load.
17981 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
17982
17983 2011-01-20 Anatoly Sokolov <aesok@post.ru>
17984
17985 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
17986 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
17987 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17988 (xtensa_mode_dependent_address_p): New function.
17989 (constantpool_address_p): Make static. Change return type to bool.
17990 Change argument type to const_rtx. Use CONST_INT_P predicate.
17991
17992 2011-01-20 Alexandre Oliva <aoliva@redhat.com>
17993
17994 PR debug/46583
17995 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
17996
17997 2011-01-20 Jakub Jelinek <jakub@redhat.com>
17998
17999 PR debug/47283
18000 * cfgexpand.c (expand_debug_expr): Instead of generating
18001 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
18002 etc. handling.
18003
18004 2011-01-20 Richard Guenther <rguenther@suse.de>
18005
18006 PR middle-end/47370
18007 * tree-inline.c (remap_gimple_op_r): Recurse manually for
18008 the pointer operand of MEM_REFs.
18009
18010 2011-01-20 Jakub Jelinek <jakub@redhat.com>
18011
18012 PR tree-optimization/46130
18013 * ipa-split.c (consider_split): If return_bb contains non-virtual
18014 PHIs other than for retval or if split_function would not adjust it,
18015 refuse to split.
18016
18017 2011-01-20 Richard Guenther <rguenther@suse.de>
18018
18019 PR tree-optimization/47167
18020 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
18021 Revert previous change, only avoid enumeral type changes.
18022
18023 2011-01-19 Mike Stump <mikestump@comcast.net>
18024
18025 * doc/tm.texi.in (BRANCH_COST): Englishify.
18026 * doc/tm.texi (BRANCH_COST): Likewise.
18027
18028 2011-01-19 Dodji Seketeli <dodji@redhat.com>
18029
18030 PR c++/47291
18031 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
18032 (gen_scheduled_generic_parms_dies): New functions.
18033 (gen_struct_or_union_type_die): Schedule template parameters DIEs
18034 generation for the end of CU compilation.
18035 (dwarf2out_finish): Generate template parameters DIEs here.
18036
18037 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
18038
18039 PR debug/46240
18040 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
18041 debug bind stmt on merge edges.
18042
18043 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
18044
18045 PR debug/47079
18046 PR debug/46724
18047 * function.c (instantiate_expr): Instantiate incoming rtl of
18048 implicit arguments, and recurse on VALUE_EXPRs.
18049 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
18050 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
18051
18052 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
18053
18054 * c-parser.c (c_parser_for_statement): Initialize
18055 collection_expression.
18056
18057 2011-01-19 Joseph Myers <joseph@codesourcery.com>
18058
18059 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
18060
18061 2011-01-19 Joseph Myers <joseph@codesourcery.com>
18062
18063 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
18064 (LINK_SHLIB_SPEC): Don't use %(link_path).
18065 (SUBTARGET_EXTRA_SPECS): Remove link_path.
18066
18067 2011-01-19 Joseph Myers <joseph@codesourcery.com>
18068
18069 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
18070 (NO_SHARED_LIB_SUPPORT): Remove.
18071 (LINK_SHLIB_SPEC): Remove one conditional definition.
18072
18073 2011-01-19 Joseph Myers <joseph@codesourcery.com>
18074
18075 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
18076 %{call_shared}.
18077 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
18078 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
18079 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
18080 %{call_shared} and conditionals on these options not being passed.
18081 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
18082 %{call_shared}.
18083
18084 2011-01-19 Jakub Jelinek <jakub@redhat.com>
18085
18086 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
18087 simplify.
18088
18089 * ipa-split.c: Spelling fixes.
18090
18091 2011-01-19 Richard Henderson <rth@redhat.com>
18092
18093 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
18094 (*mulsi3): Likewise.
18095
18096 * longlong.h [__mn10300__] (count_leading_zeros): New.
18097 [__mn10300__] (umul_ppmm, smul_ppmm): New.
18098 [__mn10300__] (add_ssaaaa, subddmmss): New.
18099 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
18100 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
18101
18102 2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18103
18104 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
18105
18106 2011-01-19 Richard Henderson <rth@redhat.com>
18107
18108 * config/mn10300/mn10300.md (addsi3_flags): New.
18109 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
18110 (subsi3_flags, subc_internal, subdi3): New.
18111 (subdi3_internal, *subdi3_degenerate): New.
18112 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
18113
18114 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
18115 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
18116 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
18117 * config/mn10300/mn10300-protos.h: Update.
18118 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
18119 (return_ret): Likewise. Rename from return_internal_regs.
18120 (return_internal): Remove.
18121
18122 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
18123 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
18124 (mn10300_legitimate_constant_p): Likewise.
18125 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
18126 (mn10300_frame_size): New.
18127 (mn10300_expand_prologue): Use it.
18128 (mn10300_expand_epilogue): Likewise.
18129 (mn10300_initial_offset): Likewise.
18130 * config/mn10300/mn10300-protos.h: Update.
18131 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
18132 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
18133 (prologue, epilogue, return_internal): Tidy output code.
18134 (mn10300_store_multiple_operation, return): Likewise.
18135 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
18136 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
18137 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
18138 (load_pic, am33_load_pic): New.
18139 (mn10300_load_pic0, mn10300_load_pic1): New.
18140
18141 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
18142 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
18143 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
18144 (cc_flags_for_mode, cc_flags_for_code): New.
18145 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
18146 overflow flag is not valid. Validate that the flags we need
18147 for the comparison are valid.
18148 (mn10300_output_cmp): Remove.
18149 (mn10300_output_add): New.
18150 (mn10300_select_cc_mode): Use cc_flags_for_code.
18151 (mn10300_split_cbranch): New.
18152 (mn10300_match_ccmode): New.
18153 (mn10300_split_and_operand_count): New.
18154 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
18155 to the function.
18156 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
18157 (addsi3): ... here. Use mn10300_output_add.
18158 (*addsi3_flags): New.
18159 (*am33_subsi3, *mn10300_subsi3): Merge...
18160 (subsi3): ... here. Use attribute isa.
18161 (*subsi3_flags): New.
18162 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
18163 when possible.
18164 (*am33_andsi3, *mn10300_andsi3): Merge...
18165 (andsi3): ... here.
18166 (*andsi3_flags): New.
18167 (andsi3 splitters): New.
18168 (*am33_iorsi3, *mn10300_iorsi3): Merge...
18169 (iorsi3): ... here.
18170 (*iorsi3_flags): New.
18171 (*am33_xorsi3, *mn10300_xorsi3): Merge...
18172 (xorsi3): ... here.
18173 (*xorsi3_flags): New.
18174 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
18175 (one_cmplsi2): ... here.
18176 (*one_cmplsi2_flags): New.
18177 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
18178 instead of "dax" in constraints. Use mn10300_split_cbranch.
18179 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
18180 use matching constraints to eliminate a self-comparison.
18181 (*integer_conditional_branch): Rename from integer_conditional_branch.
18182 Use int_mode_flags to match CC_REG.
18183 (*cbranchsi4_btst, *btstsi): New.
18184 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
18185 mn10300_split_cbranch.
18186 (*am33_cmpsf): Rename from am33_cmpsf.
18187 (*float_conditional_branch): Rename from float_conditional_branch.
18188 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
18189 (zero_extendqisi2): ... here.
18190 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
18191 (zero_extendhisi2): ... here.
18192 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
18193 (extendqisi2): ... here.
18194 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
18195 (extendhisi2): ... here.
18196 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
18197 (ashlsi3): ... here.
18198 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
18199 (lshrsi3): ... here.
18200 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
18201 (ashrsi3): ... here.
18202 (consecutive add peephole): Remove.
18203 * config/mn10300/predicates.md (label_ref_operand): New.
18204 (int_mode_flags): New.
18205 (CCZN_comparison_operator): New.
18206
18207 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
18208 (throughput_42_latency_43): New reservation.
18209 (mulsidi3, umulsidi3): New expanders.
18210 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
18211 the MDR register to allocation; separately allocate the low and
18212 high parts of the DImode result.
18213 (umulsidi3_internal): Similarly.
18214 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
18215 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
18216 (udivsi3, umodsi3): Remove.
18217 (udivmodsi4, divmodsi4): New expanders.
18218 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
18219 (*divmodsi4): Simiarly.
18220 (ext_internal): New.
18221
18222 * config/mn10300/constraints.md ("z"): New constraint.
18223 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
18224 (FIXED_REGISTERS): Don't fix MDR.
18225 (CALL_USED_REGSITERS): Reformat nicely.
18226 (REG_ALLOC_ORDER): Add MDR.
18227 (enum regclass): Add MDR_REGS.
18228 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
18229 (IRA_COVER_CLASSES): Add MDR_REGS.
18230 (REGNO_REG_CLASS): Handle MDR_REG.
18231 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
18232 (mn10300_register_move_cost): Likewise.
18233 * config/mn10300/mn10300.md (MDR_REG): New.
18234 (*movsi_internal): Handle moves to/from MDR_REGS.
18235
18236 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
18237 POST_MODIFY.
18238 (mn10300_secondary_reload): Tidy combination reload classes.
18239 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
18240 addresses for AM33. Allow symbolic offsets for reg+imm.
18241 (mn10300_regno_in_class_p): New.
18242 (mn10300_legitimize_reload_address): New.
18243 * config/mn10300/mn10300.h (enum reg_class): Remove
18244 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
18245 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
18246 SP_OR_GENERAL_REGS.
18247 (REG_CLASS_NAMES): Update to match.
18248 (REG_CLASS_CONTENTS): Likewise.
18249 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
18250 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
18251 (REGNO_IN_RANGE_P): Remove.
18252 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
18253 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
18254 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
18255 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
18256 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
18257 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
18258 (REGNO_GENERAL_P): New.
18259 (HAVE_POST_MODIFY_DISP): New.
18260 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
18261 (LEGITIMIZE_RELOAD_ADDRESS): New.
18262 * config/mn10300/mn10300-protos.h: Update.
18263
18264 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
18265 DATA_REGS for AM33 stack-pointer destination.
18266 (mn10300_preferred_output_reload_class): Likewise.
18267 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
18268 into a form appropriate for ...
18269 (TARGET_SECONDARY_RELOAD): New.
18270 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
18271 * config/mn10300/mn10300-protos.h: Update.
18272 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
18273 reload_insi; use the "A" constraint for the scratch; handle AM33
18274 moves of sp to non-address registers.
18275
18276 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
18277 (*movqi_internal): ... here.
18278 (*am33_movhi, *mn10300_movhi): Merge into...
18279 (*movhi_internal): ... here.
18280 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
18281 as the source/destination of moves from/to SP.
18282 (movsf): Only allow for AM33-2.
18283 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
18284 any integer constant constraint. Only allow for AM33-2. Tidy
18285 all of the alternative outputs.
18286 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
18287 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
18288 for MN103.
18289 (udivsi3, umodsi3): New patterns for MN103 only.
18290
18291 2011-01-19 Joern Rennecke <amylaar@spamcop.net>
18292
18293 * doc/tm.texi.in: Spell out that a lack of register class unions
18294 can lead to ICEs.
18295 * doc/tm.texi: Regenerate.
18296
18297 2011-01-19 Jakub Jelinek <jakub@redhat.com>
18298
18299 PR rtl-optimization/47337
18300 * dce.c (check_argument_store): New function.
18301 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
18302
18303 PR tree-optimization/47290
18304 * tree-eh.c (infinite_empty_loop_p): New function.
18305 (cleanup_empty_eh): Use it.
18306
18307 2011-01-18 Steve Ellcey <sje@cup.hp.com>
18308
18309 PR target/46997
18310 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
18311 (a64_expand_widen_sum): Ditto.
18312 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
18313 (vec_extract_evenodd_help): Ditto.
18314 (vec_extract_evenv4hi): Ditto.
18315 (vec_extract_oddv4hi): Ditto.
18316 (vec_extract_evenv2si): Ditto.
18317 (vec_extract_oddv2si): Ditto.
18318 (vec_extract_evenv2sf): Ditto.
18319 (vec_extract_oddv2sf): Ditto.
18320 (vec_pack_trunc_v4hi: Ditto.
18321 (vec_pack_trunc_v2si): Ditto.
18322 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
18323 (vec_interleave_highv8qi): Ditto.
18324 (mix1_r): Ditto.
18325 (vec_extract_oddv8qi): Ditto.
18326 (vec_interleave_lowv4hi): Ditto.
18327 (vec_interleave_highv4hi): Ditto.
18328 (vec_interleave_lowv2si): Ditto.
18329 (vec_interleave_highv2si): Ditto.
18330
18331 2011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18332
18333 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
18334 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
18335 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
18336 (pa_c_mode_for_suffix): New.
18337 (TARGET_EXPAND_BUILTIN): Define.
18338 (TARGET_C_MODE_FOR_SUFFIX): Define.
18339 (pa_builtins): Define.
18340 (pa_init_builtins): Register __float128 type and init new support
18341 builtins.
18342 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
18343 * config/pa/quadlib.c (_U_Qfcopysign): New.
18344
18345 2011-01-18 Eric Botcazou <ebotcazou@adacore.com>
18346
18347 PR middle-end/46894
18348 * explow.c (allocate_dynamic_stack_space): Do not assume more than
18349 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
18350 are defined.
18351
18352 2011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18353
18354 PR tree-optimization/47179
18355 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
18356 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
18357
18358 2011-01-18 Richard Guenther <rguenther@suse.de>
18359
18360 PR rtl-optimization/47216
18361 * emit-rtl.c: Include tree-flow.h.
18362 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
18363 of replicating it with different semantics.
18364 * Makefile.in (emit-rtl.o): Adjust.
18365
18366 2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18367
18368 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
18369 (cortex_a9_dp): Handle neon types correctly.
18370
18371 2011-01-18 Jakub Jelinek <jakub@redhat.com>
18372
18373 PR rtl-optimization/47299
18374 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
18375 subtarget. Use normal multiplication if both operands are constants.
18376 * expmed.c (expand_widening_mult): Don't try to optimize constant
18377 multiplication if op0 has VOIDmode. Convert op1 constant to mode
18378 before using it.
18379
18380 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18381
18382 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
18383 spacing after 'e.g.', typos, comma, hyphenation.
18384
18385 2011-01-17 Richard Henderson <rth@redhat.com>
18386
18387 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
18388 (rx_restricted_mem_operand): New.
18389 (rx_shift_operand): Use register_operand.
18390 (rx_source_operand, rx_compare_operand): Likewise.
18391 * config/rx/rx.md (addsi3_flags): New expander.
18392 (adddi3): Rewrite as expander.
18393 (adc_internal, *adc_flags, adddi3_internal): New patterns.
18394 (subsi3_flags): New expander.
18395 (subdi3): Rewrite as expander.
18396 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
18397
18398 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
18399 (rx_init_builtins): Remove sat builtin.
18400 (rx_expand_builtin): Likewise.
18401 * config/rx/rx.md (ssaddsi3): New.
18402 (*sat): Rename from sat. Represent the CC_REG input.
18403
18404 * config/rx/predicates.md (rshift_operator): New.
18405 * config/rx/rx.c (rx_expand_insv): Remove.
18406 * config/rx/rx-protos.h: Update.
18407 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
18408 operand to the canonical position.
18409 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
18410 (*bitclr, *bitclr_in_memory): Similarly.
18411 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
18412 (insv): Retain the zero_extract in the expansion.
18413
18414 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
18415 (bswaphi2, bitinvert, revw): Likewise.
18416
18417 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
18418 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
18419 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
18420 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
18421 (bitset, bitset_in_memory): Likewise.
18422 (bitinvert, bitinvert_in_memory): Likewise.
18423 (bitclr, bitclr_in_memory): Likewise.
18424 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
18425 (rx_strend, rx_cmpstrn): Likewise.
18426 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
18427 (bitop peep2 patterns): Remove.
18428
18429 * config/rx/rx.c (rx_match_ccmode): New.
18430 * config/rx/rx-protos.h: Update.
18431 * config/rx/rx.md (abssi2): Clobber, don't set flags.
18432 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
18433 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
18434 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
18435 (fix_truncsfsi2, floatsisf2): Likewise.
18436 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
18437 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
18438 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
18439 (*subsi3_flags, *xorsi3_flags): New.
18440
18441 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
18442
18443 * config/rx/rx.c (rx_print_operand): Remove workaround for
18444 unsplit comparison operations.
18445
18446 * config/rx/rx.md (movsicc): Split after reload.
18447 (*movsicc): Merge *movsieq and *movsine via match_operator.
18448 (*stcc): New pattern.
18449
18450 * config/rx/rx.c (rx_float_compare_mode): Remove.
18451 * config/rx/rx.h (rx_float_compare_mode): Remove.
18452 * config/rx/rx.md (cstoresi4): Split after reload.
18453 (*sccc): New pattern.
18454
18455 * config/rx/predicates.md (label_ref_operand): New.
18456 (rx_z_comparison_operator): New.
18457 (rx_zs_comparison_operator): New.
18458 (rx_fp_comparison_operator): New.
18459 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
18460 Validate that the flags are set properly for the comparison.
18461 (rx_gen_cond_branch_template): Remove.
18462 (rx_cc_modes_compatible): Remove.
18463 (mode_from_flags): New.
18464 (flags_from_code): Rename from flags_needed_for_conditional.
18465 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
18466 (rx_select_cc_mode): Likewise.
18467 (rx_split_fp_compare): New.
18468 (rx_split_cbranch): New.
18469 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
18470 (*cbranchsi4): Use match_operator and rx_split_cbranch.
18471 (*cbranchsf4): Similarly.
18472 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
18473 match_operator and rx_split_cbranch.
18474 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
18475 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
18476 (*cmpsi): Rename from cmpsi.
18477 (*tstsi): Rename from tstsi.
18478 (*cmpsf): Rename from cmpsf; use CC_Fmode.
18479 (*conditional_branch): Rename from conditional_branch.
18480 (*reveresed_conditional_branch): Remove.
18481 (b<code>): Remove expander.
18482 * config/rx/rx-protos.h: Update.
18483
18484 * config/rx/rx.c (rx_compare_redundant): Remove.
18485 * config/rx/rx.md (cmpsi): Don't use it.
18486 * config/rx/rx-protos.h: Update.
18487
18488 * config/rx/rx-modes.def (CC_F): New mode.
18489 * config/rx/rx.c (rx_select_cc_mode): New.
18490 * config/rx/rx.h (SELECT_CC_MODE): Use it.
18491 * config/rx/rx-protos.h: Update.
18492
18493 2011-01-17 Richard Henderson <rth@redhat.com>
18494
18495 * except.c (dump_eh_tree): Fix stray ; after for statement.
18496
18497 2011-01-17 Richard Guenther <rguenther@suse.de>
18498
18499 PR tree-optimization/47313
18500 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
18501 handling before copying the body. Properly deal with
18502 by-reference result in SSA form.
18503
18504 2011-01-17 Ian Lance Taylor <iant@google.com>
18505
18506 PR target/47219
18507 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
18508 (struct_value_alias_set): Don't define.
18509 (sparc_option_override): Don't set sparc_sr_alias_set and
18510 struct_value_alias_set.
18511 (save_or_restore_regs): Use gen_frame_mem rather than calling
18512 set_mem_alias_set.
18513 (sparc_struct_value_rtx): Likewise.
18514
18515 2011-01-17 H.J. Lu <hongjiu.lu@intel.com>
18516
18517 PR target/47318
18518 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
18519 (_mm_maskstore_pd): Likewise.
18520 (_mm_maskload_ps): Likewise.
18521 (_mm_maskstore_ps): Likewise.
18522 (_mm256_maskload_pd): Change mask to __m256i.
18523 (_mm256_maskstore_pd): Likewise.
18524 (_mm256_maskload_ps): Likewise.
18525 (_mm256_maskstore_ps): Likewise.
18526
18527 * config/i386/i386-builtin-types.def: Updated.
18528 (ix86_expand_special_args_builtin): Likewise.
18529
18530 * config/i386/i386.c (bdesc_special_args): Update
18531 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
18532 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
18533 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
18534 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
18535
18536 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
18537 Use <avxpermvecmode> on mask register.
18538 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
18539
18540 2011-01-17 Olivier Hainque <hainque@adacore.com>
18541 Michael Haubenwallner <michael.haubenwallner@salomon.at>
18542 Eric Botcazou <ebotcazou@adacore.com>
18543
18544 PR target/46655
18545 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
18546 if <= USHRT_MAX in 32-bit mode.
18547
18548 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18549
18550 * doc/install.texi (Configuration, Specific): Wrap long
18551 lines in examples. Allow line wrapping in long options
18552 and URLs where beneficial for PDF output.
18553
18554 2011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
18555
18556 * config/mips/mips.c (mips_classify_symbol): Don't return
18557 SYMBOL_PC_RELATIVE for nonlocal labels.
18558
18559 2011-01-15 Eric Botcazou <ebotcazou@adacore.com>
18560
18561 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
18562
18563 2011-01-15 Jan Hubicka <jh@suse.cz>
18564
18565 PR tree-optimization/47276
18566 * ipa.c (function_and_variable_visibility): Do not try to mark alias
18567 declarations as needed.
18568
18569 2011-01-15 Martin Jambor <mjambor@suse.cz>
18570
18571 * common.opt (fdevirtualize): New flag.
18572 * doc/invoke.texi (Option Summary): Document it.
18573 * opts.c (default_options_table): Add devirtualize flag.
18574 * ipa-prop.c (detect_type_change): Return immediately if
18575 devirtualize flag is not set.
18576 (detect_type_change_ssa): Likewise.
18577 (compute_known_type_jump_func): Likewise.
18578 (ipa_analyze_virtual_call_uses): Likewise.
18579
18580 2011-01-14 Martin Jambor <mjambor@suse.cz>
18581
18582 PR tree-optimization/45934
18583 PR tree-optimization/46302
18584 * ipa-prop.c (type_change_info): New type.
18585 (stmt_may_be_vtbl_ptr_store): New function.
18586 (check_stmt_for_type_change): Likewise.
18587 (detect_type_change): Likewise.
18588 (detect_type_change_ssa): Likewise.
18589 (compute_complex_assign_jump_func): Check for dynamic type change.
18590 (compute_complex_ancestor_jump_func): Likewise.
18591 (compute_known_type_jump_func): Likewise.
18592 (compute_scalar_jump_functions): Likewise.
18593 (ipa_analyze_virtual_call_uses): Likewise.
18594 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
18595
18596 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18597
18598 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
18599 * config/i386/i386.opt (msse5): New Alias.
18600
18601 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18602
18603 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
18604 * config/sparc/linux64.h (CC1_SPEC): Likewise.
18605 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
18606 * config/sparc/sparc.h (CC1_SPEC): Likewise.
18607
18608 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18609
18610 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
18611 -mcpu options.
18612 * config/sparc/linux64.h (CC1_SPEC): Likewise.
18613 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
18614 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
18615 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
18616 Likewise.
18617 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
18618
18619 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18620
18621 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
18622
18623 2011-01-14 Mike Stump <mikestump@comcast.net>
18624
18625 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
18626 * config/fr30/fr30.md: Likweise
18627 (movsi_push): Likewise.
18628 (movsi_pop): Likewise.
18629 (enter_func): Likewise.
18630 * config/moxie/moxie.md (movsi_push): Likewise.
18631 (movsi_pop): Likewise.
18632
18633 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18634
18635 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
18636 %{no_archive} %{exact_version}.
18637 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
18638 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
18639 %{no_archive} %{exact_version}.
18640 * config/mips/openbsd.h (LINK_SPEC): Likewise.
18641 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
18642 * config/mips/vxworks.h: Likewise.
18643
18644 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18645
18646 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
18647
18648 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18649
18650 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
18651 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
18652
18653 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18654
18655 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
18656 -nodefaultlib.
18657
18658 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18659
18660 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
18661 for mcpu not cpu.
18662 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
18663 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
18664 not cpu.
18665 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
18666 Don't handle -shlib.
18667
18668 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18669
18670 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
18671 (CC1_SPEC): Don't handle -profile.
18672
18673 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18674
18675 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
18676 * config/mips/mips.h (CC1_SPEC): Likewise.
18677
18678 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18679
18680 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
18681 * config/mips/mips.h (CC1_SPEC): Likewise.
18682
18683 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18684
18685 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
18686 * config/m32r/linux.h (LINK_SPEC): Likewise.
18687 * config/mips/linux.h (LINK_SPEC): Likewise.
18688 * config/mips/linux64.h (LINK_SPEC): Likewise.
18689 * config/sparc/linux.h (LINK_SPEC): Likewise.
18690 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
18691 LINK_SPEC): Likewise.
18692 * config/xtensa/linux.h (LINK_SPEC): Likewise.
18693
18694 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18695
18696 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
18697 %{version:-v}.
18698 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
18699
18700 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18701
18702 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
18703 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
18704
18705 2011-01-14 Joseph Myers <joseph@codesourcery.com>
18706
18707 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
18708
18709 2011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18710
18711 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
18712 supports -Bstatic/-Bdynamic.
18713 * configure: Regenerate.
18714
18715 2011-01-14 Jan Hubicka <jh@suse.cz>
18716 Jack Howarth <howarth@bromo.med.uc.edu>
18717
18718 PR target/46037
18719 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
18720 when checking debug_info_level. Test write_symbols instead of
18721 debug_hooks->var_location when setting flag_var_tracking_uninit.
18722
18723 2011-01-14 Richard Guenther <rguenther@suse.de>
18724
18725 PR tree-optimization/47179
18726 * target.def (ref_may_alias_errno): New target hook.
18727 * targhooks.h (default_ref_may_alias_errno): Declare.
18728 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
18729 (default_ref_may_alias_errno): New function.
18730 * target.h (struct ao_ref_s): Declare.
18731 * tree-ssa-alias.c: Include target.h.
18732 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
18733 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
18734 (targhooks.o): Likewise.
18735 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
18736 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
18737
18738 2011-01-14 Richard Guenther <rguenther@suse.de>
18739
18740 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
18741
18742 2011-01-14 Richard Guenther <rguenther@suse.de>
18743
18744 PR tree-optimization/47280
18745 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
18746 return CFG changes.
18747 (tree_ssa_forward_propagate_single_use_vars): Deal with
18748 CFG changes from associate_plusminus.
18749
18750 2011-01-14 Richard Guenther <rguenther@suse.de>
18751
18752 PR middle-end/47281
18753 Revert
18754 2011-01-11 Richard Guenther <rguenther@suse.de>
18755
18756 PR tree-optimization/46076
18757 * tree-ssa.c (useless_type_conversion_p): Conversions from
18758 unprototyped to empty argument list function types are useless.
18759
18760 2011-01-14 Richard Guenther <rguenther@suse.de>
18761
18762 PR tree-optimization/47286
18763 * tree-ssa-structalias.c (new_var_info): Register variables are global.
18764
18765 2011-01-14 Martin Jambor <mjambor@suse.cz>
18766
18767 PR middle-end/46823
18768 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
18769
18770 2011-01-13 Anatoly Sokolov <aesok@post.ru>
18771
18772 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
18773 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
18774 * config/xtensa/xtensa.c (xtensa_libcall_value,
18775 xtensa_function_value_regno_p): New functions.
18776 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
18777
18778 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
18779
18780 PR c++/47213
18781 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
18782 PE specific hook.
18783 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
18784 New function prototype.
18785 * config/i386/winnt.c (i386_pe_assemble_visibility):
18786 Warn only if attribute was specified by user.
18787
18788 2011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
18789
18790 PR target/47251
18791 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
18792 floating point.
18793 (floatunsdidf2_fcfidu): Ditto.
18794
18795 2011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18796
18797 * config/s390/s390.c (print_operand_address): Replace 'error' with
18798 'output_operand_lossage'.
18799 (print_operand): Likewise.
18800
18801 2011-01-13 Jeff Law <law@redhat.com>
18802
18803 PR rtl-optimization/39077
18804 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
18805 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
18806 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
18807 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
18808 * gcse.c (prune_insertions_deletions): New function.
18809 (compute_pre_data): Use it.
18810
18811 2011-01-13 Dodji Seketeli <dodji@redhat.com>
18812
18813 PR debug/PR46973
18814 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
18815 static function.
18816 (prune_unused_types_mark): Use it.
18817
18818 2011-01-13 Andrey Belevantsev <abel@ispras.ru>
18819
18820 PR rtl-optimization/45352
18821 * sel-sched.c: Update copyright years.
18822 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
18823 in the advancing loop when we have issued issue_rate insns.
18824
18825 2011-01-12 Richard Henderson <rth@redhat.com>
18826
18827 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
18828 (TARGET_MD_ASM_CLOBBERS): New.
18829
18830 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
18831 (TARGET_DELEGITIMIZE_ADDRESS): New.
18832
18833 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
18834 (clzsi2, *bsch): New patterns.
18835
18836 * config/mn10300/mn10300.md (INT): New mode iterator.
18837 (*mov<INT>_clr): New pattern, and peep2 to generate it.
18838
18839 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
18840 flag_split_wide_types.
18841
18842 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
18843 (mn10300_trampoline_init): Rewrite without a template, an immediate
18844 load and a direct branch.
18845 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
18846
18847 2011-01-12 Anatoly Sokolov <aesok@post.ru>
18848
18849 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18850 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
18851 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
18852 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18853
18854 2011-01-12 Kai Tietz <kai.tietz@onevision.com>
18855
18856 PR debug/47209
18857 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
18858 of type.
18859
18860 2011-01-12 Jan Hubicka <jh@suse.cz>
18861
18862 PR driver/47244
18863 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
18864 (PLUGIN_COND_CLOSE): New macro.
18865 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
18866
18867 2011-01-12 Richard Guenther <rguenther@suse.de>
18868
18869 PR lto/47259
18870 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
18871 register variables in a MEM_REF.
18872
18873 2011-01-12 Joseph Myers <joseph@codesourcery.com>
18874
18875 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
18876 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
18877 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
18878 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
18879 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
18880 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
18881 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
18882 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
18883 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
18884 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
18885 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
18886 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
18887 * config/gnu-user.h: New. Copied from linux.h.
18888 (LINUX_TARGET_STARTFILE_SPEC): Rename to
18889 GNU_USER_TARGET_STARTFILE_SPEC.
18890 (LINUX_TARGET_ENDFILE_SPEC): Rename to
18891 GNU_USER_TARGET_ENDFILE_SPEC.
18892 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
18893 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
18894 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
18895 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
18896 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
18897 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
18898 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
18899 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
18900 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
18901 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
18902 * config/arm/linux-eabi.h (CC1_SPEC): Use
18903 GNU_USER_TARGET_CC1_SPEC.
18904 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
18905 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
18906 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
18907 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
18908 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
18909 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
18910 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
18911 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
18912
18913 2011-01-12 Richard Guenther <rguenther@suse.de>
18914
18915 PR other/46946
18916 * doc/invoke.texi (ffast-math): Document it is turned on
18917 with -Ofast.
18918
18919 2011-01-12 Jan Hubicka <jh@suse.cz>
18920
18921 PR tree-optimization/47233
18922 * opts.c (common_handle_option): Disable ipa-reference with profile
18923 feedback.
18924
18925 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
18926
18927 * c-parser.c (c_parser_objc_at_property_declaration): Improved
18928 error message.
18929
18930 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
18931
18932 * c-parser.c (c_lex_one_token): Updated and reindented some
18933 comments. No changes in code.
18934
18935 2011-01-11 Ian Lance Taylor <iant@google.com>
18936
18937 * godump.c (go_output_var): Don't output the variable if there is
18938 already a type with the same name.
18939
18940 2011-01-11 Ian Lance Taylor <iant@google.com>
18941
18942 * godump.c (go_format_type): Don't generate float80.
18943
18944 2011-01-11 Richard Henderson <rth@redhat.com>
18945
18946 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
18947 declaration. Rewrite for both speed and size.
18948 (mn10300_address_cost_1): Remove.
18949 (mn10300_register_move_cost): New.
18950 (mn10300_memory_move_cost): New.
18951 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
18952 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
18953 extensions, shifts, BSWAP, CLZ.
18954 (mn10300_wide_const_load_uses_clr): Remove.
18955 (TARGET_REGISTER_MOVE_COST): New.
18956 (TARGET_MEMORY_MOVE_COST): New.
18957 * config/mn10300/mn10300-protos.h: Update.
18958 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
18959
18960 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
18961 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
18962 * config/mn10300/mn10300-protos.h: Update.
18963 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
18964 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
18965 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
18966 (*test_int_bitfield, *test_byte_bitfield): Remove.
18967 (*bit_test, *subreg_bit_test): Remove.
18968 * config/mn10300/predicates.md (const_8bit_operand): Remove.
18969
18970 * config/mn10300/constraints.md ("c"): Rename from "A".
18971 ("A", "D"): New constraint letters.
18972 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
18973 (fmssf4, fnmasf4, fnmssf4): Likewise.
18974
18975 * config/mn10300/mn10300.md (isa): New attribute.
18976 (enabled): New attribute.
18977
18978 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
18979 (abssf2, negsf2): Define only for hardware fp.
18980 (sqrtsf2): Reformat.
18981 (addsf3, subsf3, mulsf3): Merge expander and insn.
18982
18983 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
18984 (DEBUGGER_AUTO_OFFSET): Remove.
18985 (DEBUGGER_ARG_OFFSET): Remove.
18986
18987 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
18988 Emit register stores with the same offsets as the hardware.
18989 (mn10300_store_multiple_operation): Don't check that the register
18990 save offsets are monotonic.
18991 * config/mn10300/mn10300-protos.h: Update.
18992
18993 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
18994
18995 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
18996 in terms of the value on the stack, not the MDR register.
18997
18998 2011-01-11 Jan Hubicka <jh@suse.cz>
18999
19000 PR lto/45721
19001 PR lto/45375
19002 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
19003 (symbol_alias_set_destroy, symbol_alias_set_contains,
19004 propagate_aliases_backward): Declare.
19005 * lto-streamer-out.c (struct sets): New sturcture.
19006 (trivally_defined_alias): New function.
19007 (output_alias_pair_p): Rewrite.
19008 (output_unreferenced_globals): Fix output of alias pairs.
19009 (produce_symtab): Likewise.
19010 * ipa.c (function_and_variable_visibility): Set weak alias destination
19011 as needed in lto.
19012 * varasm.c (symbol_alias_set_t): Remove.
19013 (symbol_alias_set_destroy): Export.
19014 (propagate_aliases_forward, propagate_aliases_backward): New functions
19015 based on ...
19016 (compute_visible_aliases): ... this one; remove.
19017 (trivially_visible_alias): New
19018 (trivially_defined_alias): New.
19019 (remove_unreachable_alias_pairs): Rewrite.
19020 (finish_aliases_1): Reorganize code checking if alias is defined.
19021 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
19022 in LTO mode.
19023
19024 2011-01-11 Richard Guenther <rguenther@suse.de>
19025
19026 PR tree-optimization/46076
19027 * tree-ssa.c (useless_type_conversion_p): Conversions from
19028 unprototyped to empty argument list function types are useless.
19029
19030 2011-01-11 Richard Guenther <rguenther@suse.de>
19031
19032 PR middle-end/45235
19033 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
19034 volatile MEMs as MEM_READONLY_P.
19035
19036 2011-01-11 Richard Guenther <rguenther@suse.de>
19037
19038 PR tree-optimization/47239
19039 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
19040
19041 2011-01-11 Jeff Law <law@redhat.com>
19042
19043 PR tree-optimization/47086
19044 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
19045 IVs from statements that might throw.
19046
19047 2011-01-10 Jan Hubicka <jh@suse.cz>
19048
19049 PR lto/45375
19050 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
19051
19052 2011-01-10 Jan Hubicka <jh@suse.cz>
19053
19054 PR lto/45375
19055 * profile.c (read_profile_edge_counts): Ignore profile inconistency
19056 when correcting profile.
19057
19058 2011-01-10 Jan Hubicka <jh@suse.cz>
19059
19060 PR lto/46083
19061 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
19062 DECL_FINI_PRIORITY.
19063 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
19064 Restore DECL_FINI_PRIORITY.
19065
19066 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19067
19068 * doc/gimple.texi: Fix quoting of multi-word return values in
19069 @deftypefn statements. Ensure presence of return value. Wrap
19070 overlong @deftypefn lines.
19071 (is_gimple_operand, is_gimple_min_invariant_address): Remove
19072 descriptions of removed functions.
19073 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
19074 of multi-word return value in @deftypefn statement.
19075
19076 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19077
19078 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
19079 (Conditional Expressions, Logical Operators)
19080 (Statement and operand traversals): Do not indent smallexample
19081 code. Fix duplicate function argument in example.
19082
19083 2011-01-10 Jeff Law <law@redhat.com>
19084
19085 PR tree-optimization/47141
19086 * ipa-split.c (split_function): Handle case where we are
19087 returning a value and the return block has a virtual operand phi.
19088
19089 2011-01-10 Jan Hubicka <jh@suse.cz>
19090
19091 PR tree-optimization/47234
19092 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
19093 (pass_feedback_split_functions): Declare.
19094 * passes.c (init_optimization_passes): Add ipa-split as subpass of
19095 tree-profile.
19096 * ipa-split.c (gate_split_functions): Update comments; disable
19097 split-functions for profile_arc_flag and branch_probabilities.
19098 (gate_feedback_split_functions): New function.
19099 (execute_feedback_split_functions): New function.
19100 (pass_feedback_split_functions): New global var.
19101
19102 2011-01-10 H.J. Lu <hongjiu.lu@intel.com>
19103
19104 PR lto/46760
19105 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
19106 calling gimple_call_set_cannot_inline.
19107
19108 2011-01-10 Iain Sandoe <iains@gcc.gnu.org>
19109
19110 * config/darwin-sections.def: Remove unused section.
19111
19112 2011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
19113
19114 PR c++/47218
19115 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
19116
19117 2011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
19118
19119 PR objc/47232
19120 * c-parser.c (c_parser_declaration_or_fndef): Improved
19121 error message.
19122
19123 2011-01-09 Kai Tietz <kai.tietz@onevision.com>
19124
19125 * config/i386/winnt.c (i386_pe_start_function): Make sure
19126 to switch back to function's section.
19127
19128 2011-01-09 Iain Sandoe <iains@gcc.gnu.org>
19129
19130 PR gcc/46902
19131 PR testsuite/46912
19132 * plugin.c: Move include of dlfcn.h from here...
19133 * system.h: ... to here.
19134
19135 2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19136
19137 * doc/cpp.texi (C++ Named Operators): Fix markup for header
19138 file name.
19139 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
19140 two extra empty pages in PDF output.
19141
19142 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
19143
19144 PR objc/47078
19145 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
19146 for error recovery purposes behave as if it was not specified so
19147 that the default type is usd.
19148
19149 2011-01-07 Jan Hubicka <jh@suse.cz>
19150
19151 PR tree-optmization/46469
19152 * ipa.c (function_and_variable_visibility): Clear needed flags on
19153 nodes with external decls; handle weakrefs merging correctly.
19154
19155 2011-01-07 Joseph Myers <joseph@codesourcery.com>
19156
19157 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
19158 not false.
19159
19160 2011-01-07 Jan Hubicka <jh@suse.cz>
19161
19162 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
19163 and no longer claim that gold is required for linker plugin.
19164 * configure: Regenerate.
19165 * gcc.c (PLUGIN_COND): New macro.
19166 (LINK_COMMAND_SPEC): Use it.
19167 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
19168 * config.in (HAVE_LTO_PLUGIN): New.
19169 * configure.ac (--with-lto-plugin): New parameter; autodetect
19170 HAVE_LTO_PLUGIN.
19171
19172 2011-01-07 Jan Hubicka <jh@suse.cz>
19173
19174 PR tree-optimization/46367
19175 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
19176 when we can update original.
19177 (cgraph_mark_inline_edge): Sanity check.
19178 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
19179
19180 2011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19181
19182 * config/spu/spu.h (ASM_COMMENT_START): Define.
19183
19184 2011-01-07 H.J. Lu <hongjiu.lu@intel.com>
19185
19186 PR driver/42445
19187 * gcc.c (%>S): New.
19188 (SWITCH_KEEP_FOR_GCC): Likewise.
19189 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
19190 (do_spec_1): Handle "%>".
19191
19192 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
19193
19194 2011-01-07 Jakub Jelinek <jakub@redhat.com>
19195
19196 PR target/47201
19197 * config/i386/i386.c (ix86_delegitimize_address): If
19198 simplify_gen_subreg fails, return orig_x.
19199
19200 PR bootstrap/47187
19201 * value-prof.c (gimple_stringop_fixed_value): Handle
19202 lhs of the call properly.
19203
19204 2011-01-07 Jan Hubicka <jh@suse.cz>
19205
19206 PR lto/45375
19207 * lto-opt.c (lto_reissue_options): Set flag_shlib.
19208
19209 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
19210
19211 * target.def (function_switched_text_sections): New hook.
19212 * doc/tm.texi: Regenerated.
19213 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
19214 * final.c (default_function_switched_text_sections): New.
19215 (final_scan_insn): Call function_switched_text_sections when a
19216 mid-function section change occurs.
19217 * output.h (default_function_switched_text_sections): Declare.
19218 * config/darwin-protos.h (darwin_function_switched_text_sections):
19219 Likewise.
19220 * config/darwin.c (darwin_function_switched_text_sections): New.
19221 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
19222
19223 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
19224
19225 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
19226 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
19227 the secondary code fragment when outputting for DWARF == 2.
19228
19229 2011-01-07 Anatoly Sokolov <aesok@post.ru>
19230
19231 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
19232 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
19233 Remove.
19234 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
19235 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
19236
19237 2011-01-06 Eric Botcazou <ebotcazou@adacore.com>
19238
19239 PR debug/46704
19240 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
19241 when it is not empty.
19242
19243 2011-01-06 Changpeng Fang <changpeng.fang@amd.com>
19244
19245 Bobcat Enablement
19246 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
19247 (case ${target}): Add btver1.
19248 * config/i386/driver-i386.c (host_detect_local_cpu): Let
19249 -march=native recognize btver1 processors.
19250 * config/i386/i386-c.c (ix86_target_macros_internal): Add
19251 btver1 def_and_undef
19252 * config/i386/i386.c (struct processor_costs btver1_cost): New
19253 btver1 cost table.
19254 (m_BTVER1): New definition.
19255 (m_AMD_MULTIPLE): Includes m_BTVER1.
19256 (initial_ix86_tune_features): Add btver1 tune.
19257 (processor_target_table): Add btver1 entry.
19258 (static const char *const cpu_names): Add btver1 entry.
19259 (software_prefetching_beneficial_p): Add btver1.
19260 (ix86_option_override_internal): Add btver1 instruction sets.
19261 (ix86_issue_rate): Add btver1.
19262 (ix86_adjust_cost): Add btver1.
19263 * config/i386/i386.h (TARGET_BTVER1): New definition.
19264 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
19265 (enum processor_type): Add PROCESSOR_BTVER1.
19266 * config/i386/i386.md (define_attr "cpu"): Add btver1.
19267
19268 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19269
19270 PR target/43309
19271 * config/i386/i386.c (legitimize_tls_address)
19272 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
19273 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
19274 (tls_initial_exec_64_sun): New pattern.
19275
19276 2011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
19277
19278 * doc/invoke.texi (Overall Options): Improve wording and markup
19279 of the description of -wrapper.
19280
19281 2011-01-06 Joseph Myers <joseph@codesourcery.com>
19282
19283 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
19284 rdynamic, threads): New Driver options.
19285
19286 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19287
19288 PR target/38118
19289 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
19290 if coming from .tdata.
19291 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
19292
19293 2011-01-06 Jan Hubicka <jh@suse.cz>
19294
19295 PR lto/47188
19296 * collect2.c (main): Do not enable LTOmode when plugin is active.
19297
19298 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19299
19300 PR other/45915
19301 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
19302 --version output if supported.
19303 * configure: Regenerate.
19304
19305 2011-01-06 Joseph Myers <joseph@codesourcery.com>
19306
19307 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
19308 Driver options.
19309
19310 2011-01-06 Jakub Jelinek <jakub@redhat.com>
19311
19312 PR c/47150
19313 * c-convert.c (convert): When converting a complex expression
19314 other than COMPLEX_EXPR to a different complex type, ensure
19315 c_save_expr is called instead of save_expr, unless in_late_binary_op.
19316 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
19317 when converting COMPLEX_TYPE.
19318
19319 2011-01-06 Ira Rosen <irar@il.ibm.com>
19320
19321 PR tree-optimization/47139
19322 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
19323 only the last reduction value is used outside the loop. Update
19324 documentation.
19325
19326 2011-01-05 Joseph Myers <joseph@codesourcery.com>
19327
19328 * config/rtems.opt: New.
19329 * config.gcc (*-*-rtems*): Use rtems.opt.
19330
19331 2011-01-05 Changpeng Fang <changpeng.fang@amd.com>
19332
19333 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
19334 processors do not support 3DNow instructions.
19335
19336 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19337
19338 * config/spu/spu.c (spu_option_override): Set parameter
19339 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
19340
19341 2011-01-05 Jan Hubicka <jh@suse.cz>
19342
19343 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
19344 at the command line.
19345
19346 2011-01-05 Martin Jambor <mjambor@suse.cz>
19347
19348 PR lto/47162
19349 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
19350 deltas on streamed outgoing edges.
19351 (output_node_opt_summary): Output info for outgoing edges only when
19352 the node is in new parameter set.
19353 (output_cgraph_opt_summary): New parameter set, passed to the two
19354 aforementioned functions. Update its forward declaration and its
19355 callee too.
19356
19357 2011-01-05 Tom Tromey <tromey@redhat.com>
19358
19359 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
19360 operator to c_finish_omp_atomic.
19361 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
19362 (build_unary_op): Update.
19363 (build_modify_expr): Update.
19364 (build_asm_expr): Update.
19365
19366 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19367
19368 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
19369 newly inserted insns.
19370 (pad_bb): Likewise.
19371 (spu_emit_branch_hint): Likewise.
19372 (insert_hbrp_for_ilb_runout): Likewise.
19373 (spu_machine_dependent_reorg): Call df_finish_pass after
19374 schedule_insns returns.
19375
19376 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19377
19378 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
19379
19380 2011-01-05 Eric Botcazou <ebotcazou@adacore.com>
19381
19382 PR tree-optimization/47005
19383 * tree-sra.c (struct access): Add 'non_addressable' bit.
19384 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
19385 (decide_one_param_reduction): Return 0 if the parameter is passed by
19386 reference and one of the accesses in the group is non_addressable.
19387
19388 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
19389
19390 PR tree-optimization/47056
19391 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
19392 (mark_load): Likewise. Handle FUNCTION_DECL specially.
19393 (mark_store): Likewise. Pass STMT to ipa_record_reference.
19394
19395 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
19396
19397 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
19398 initializer. Skip view conversions from aggregate types.
19399
19400 2011-01-04 Kai Tietz <kai.tietz@onevision.com>
19401
19402 PR bootstrap/47055
19403 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
19404
19405 2011-01-04 Philipp Thomas <pth@suse.de>
19406
19407 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
19408 obvious typo.
19409
19410 2011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19411
19412 * function.c (thread_prologue_and_epilogue_insns): Do not crash
19413 on empty epilogue sequences.
19414
19415 2011-01-04 Joseph Myers <joseph@codesourcery.com>
19416
19417 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
19418 non-static): New Driver options.
19419
19420 2011-01-04 Jie Zhang <jie@codesourcery.com>
19421
19422 PR driver/47137
19423 * gcc.c (default_compilers[]): Set combinable field to 0
19424 for all assembly languages.
19425
19426 2011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
19427
19428 * config/mips/loongson3a.md: New file.
19429 * config/mips/mips.md: Include loongson3a.md.
19430 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
19431 TUNE_LOONGSON_3A.
19432
19433 2011-01-03 Eric Botcazou <ebotcazou@adacore.com>
19434
19435 PR middle-end/47017
19436 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
19437 instead of convert_memory_address_addr_space on the base expression.
19438
19439 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19440
19441 * config/spu/spu.c (spu_option_override): Update error text
19442 for bad -march= / -mtune= values.
19443
19444 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19445
19446 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
19447 if branch-hint optimization will be performed.
19448
19449 2011-01-03 Jakub Jelinek <jakub@redhat.com>
19450
19451 PR tree-optimization/47148
19452 * ipa-split.c (split_function): Convert arguments to
19453 DECL_ARG_TYPE if possible.
19454
19455 PR tree-optimization/47155
19456 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
19457 when computing uns.
19458
19459 PR rtl-optimization/47157
19460 * combine.c (try_combine): If undobuf.other_insn becomes
19461 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
19462 and set *new_direct_jump_p too.
19463
19464 2011-01-03 Sebastian Pop <sebastian.pop@amd.com>
19465
19466 PR tree-optimization/47021
19467 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
19468
19469 2011-01-03 Jakub Jelinek <jakub@redhat.com>
19470
19471 * gcc.c (process_command): Update copyright notice dates.
19472 * gcov.c (print_version): Likewise.
19473 * gcov-dump.c (print_version): Likewise.
19474 * mips-tfile.c (main): Likewise.
19475 * mips-tdump.c (main): Likewise.
19476
19477 2011-01-03 Martin Jambor <mjambor@suse.cz>
19478
19479 PR tree-optimization/46801
19480 * tree-sra.c (type_internals_preclude_sra_p): Check whether
19481 aggregate fields start at byte boundary instead of the bit-field flag.
19482
19483 2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
19484
19485 PR driver/47137
19486 * gcc.c (main): Revert revision 168407.
19487
19488 2011-01-03 Martin Jambor <mjambor@suse.cz>
19489
19490 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
19491
19492 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19493
19494 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
19495 vector optab to expand vector/scalar shift, update gimple to vector.
19496
19497 2011-01-03 Martin Jambor <mjambor@suse.cz>
19498
19499 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
19500 a thunk.
19501
19502 2011-01-03 Martin Jambor <mjambor@suse.cz>
19503
19504 PR tree-optimization/46984
19505 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
19506 HOST_WIDE_INT.
19507 (cgraph_create_indirect_edge): Fixed line length.
19508 (cgraph_indirect_call_info): Declare.
19509 (cgraph_make_edge_direct) Update declaration.
19510 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
19511 (cgraph_create_indirect_edge): Use it.
19512 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
19513 callees.
19514 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
19515 the new thunk_delta representation.
19516 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
19517 HOST_WIDE_INT.
19518 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
19519 (ipa_read_indirect_edge_info): Likewise.
19520 * lto-cgraph.c (output_edge_opt_summary): New function.
19521 (output_node_opt_summary): Call it on all outgoing edges.
19522 (input_edge_opt_summary): New function.
19523 (input_node_opt_summary): Call it on all outgoing edges.
19524
19525 2011-01-02 H.J. Lu <hongjiu.lu@intel.com>
19526
19527 PR driver/47137
19528 * gcc.c (main): Don't check have_o when settting combine_inputs.
19529
19530 2011-01-02 Eric Botcazou <ebotcazou@adacore.com>
19531
19532 * regrename.c: Add general comment describing the pass.
19533 (struct du_head): Remove 'length' field.
19534 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
19535 (regrename_optimize): Do not sort chains. Rework comments, add others.
19536 Force renaming to the preferred class (if any) in the first pass and do
19537 not consider registers that belong to it in the second pass.
19538 (create_new_chain): Do not set 'length' field.
19539 (scan_rtx_reg): Likewise.
19540
19541 2011-01-02 Jakub Jelinek <jakub@redhat.com>
19542
19543 PR tree-optimization/47140
19544 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
19545 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
19546 to bit_value_binop.
19547
19548 PR rtl-optimization/47028
19549 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
19550 parm_birth_insn instead of at the beginning of first bb.
19551
19552 2011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
19553
19554 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
19555 Remove the word "see" before "@pxref".
19556 * doc/rtl.texi: Remove the word "see" before "@pxref".
19557
19558 2011-01-01 Jan Hubicka <jh@suse.cz>
19559
19560 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
19561 memory.
19562
19563 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
19564
19565 PR target/38662
19566 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
19567
19568 \f
19569 Copyright (C) 2011 Free Software Foundation, Inc.
19570
19571 Copying and distribution of this file, with or without modification,
19572 are permitted in any medium without royalty provided the copyright
19573 notice and this notice are preserved.
This page took 0.835772 seconds and 6 git commands to generate.