1 2009-06-29 Uros Bizjak <ubizjak@gmail.com>
3 * doc/extend.texi (Additional Floating Types): __float128 is also
4 supported on i386 targets.
6 2009-06-29 Richard Guenther <rguenther@suse.de>
9 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
11 (pt_solutions_same_restrict_base): Declare.
12 * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
14 (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
15 (make_constraint_from, make_copy_constraint): Move earlier.
16 (make_constraint_from_heapvar): New function.
17 (make_constraint_from_restrict): Likewise.
18 (handle_lhs_call): Use it.
19 (find_func_aliases): Use it to track conversions to restrict
21 (struct fieldoff): Add only_restrict_pointers flag.
22 (push_fields_onto_fieldstack): Initialize it.
23 (create_variable_info_for): Track global restrict qualified pointers.
24 (intra_create_variable_infos): Use make_constraint_from_heapvar.
25 Track restrict qualified pointer arguments.
26 (set_uids_in_ptset): Use varinfo is_global_var flag.
27 (find_what_var_points_to): Set the vars_contains_restrict flag.
28 Always create the points-to solution for sets including restrict tags.
29 (pt_solutions_same_restrict_base): New function.
30 * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
31 qualified pointers use pt_solutions_same_restrict_base as
32 additional source for disambiguation.
34 2009-06-29 Richard Guenther <rguenther@suse.de>
37 * alias.c (find_base_decl): Remove.
38 (get_deref_alias_set_1): Remove restrict handling.
39 * c-common.c (c_apply_type_quals_to_decl): Do not set
40 DECL_POINTER_ALIAS_SET.
41 * gimplify.c (find_single_pointer_decl_1): Remove.
42 (find_single_pointer_decl): Likewise.
43 (internal_get_tmp_var): Remove restrict handling.
44 (gimple_regimplify_operands): Likewise.
45 * omp-low.c (expand_omp_atomic_pipeline): Do not set
46 DECL_POINTER_ALIAS_SET. Use ref-all pointers.
47 * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
48 * tree.c (restrict_base_for_decl): Remove.
49 (init_ttree): Do not allocate it.
50 (make_node_stat): Do not set DECL_POINTER_ALIAS_SET. Set
51 LABEL_DECL_UID for label decls.
52 (copy_node_stat): Do not copy restrict information.
53 (decl_restrict_base_lookup): Remove.
54 (decl_restrict_base_insert): Likewise.
55 (print_restrict_base_statistics): Likewise.
56 (dump_tree_statistics): Do not call print_restrict_base_statistics.
57 * tree.h (DECL_POINTER_ALIAS_SET): Remove.
58 (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
59 (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
60 (LABEL_DECL_UID): Adjust.
61 (DECL_BASED_ON_RESTRICT_P): Remove.
62 (DECL_GET_RESTRICT_BASE): Likewise.
63 (SET_DECL_RESTRICT_BASE): Likewise.
64 (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
66 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
67 instead of DECL_POINTER_ALIAS_SET.
68 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
69 * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
70 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
72 2009-06-29 Richard Guenther <rguenther@suse.de>
74 PR tree-optimization/40579
75 * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
76 the IL to simplify has constants that overflowed.
78 2009-06-28 Uros Bizjak <ubizjak@gmail.com>
80 PR tree-optimization/40550
81 * tree-vect-generic.c (expand_vector_operations_1): Compute in
82 vector_compute_type only when the size of vector_compute_type is
83 less than the size of type.
85 2009-06-28 Eric Botcazou <ebotcazou@adacore.com>
87 * fold-const.c (contains_label_1): Fix comments.
88 (contains_label_p): Do not walk trees multiple time.
90 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
92 * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
93 * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
94 cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
95 ix86_fp_comparison_operator.
96 (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
97 *fp_jcc_2_sse, *fp_jcc_2_387): Delete
98 (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
99 *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
100 !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
101 to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
102 (related splits): Change predicate to ix86_fp_comparison_operator.
103 * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
104 instead of ix86_fp_comparison_codes.
105 (ix86_trivial_fp_comparison_operator,
106 ix86_fp_comparison_operator): New.
107 * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
108 (ix86_expand_compare): Eliminate last two parameters.
109 (ix86_fp_jump_nontrivial_p): Kill.
110 * config/i386/i386.c (put_condition_code): Eliminate call to
111 ix86_fp_comparison_codes and subsequent assertion.
112 (ix86_fp_comparison_codes): Eliminate.
113 (ix86_fp_swap_condition): New.
114 (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
115 ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
116 into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
117 (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
118 and ix86_fp_swap_condition.
119 (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
120 Use ix86_fp_comparison_strategy.
121 (ix86_expand_compare): Likewise. Eliminate last two arguments.
122 (ix86_fp_jump_nontrivial_p): Eliminate.
123 (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple. Adjust
124 call to ix86_expand_compare.
125 (ix86_split_fp_branch, ix86_expand_setcc,
126 ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
127 ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
129 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
131 * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
132 related to jump_clobbers.
133 * config/arm/arm.md (conds): Remove jump_clob case.
134 (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
135 splits): Change comparison_operator to arm_comparison_operator.
136 (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
139 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
141 * dojump.c (do_compare_rtx_and_jump): Try swapping the
142 condition for floating point modes.
143 * expmed.c (emit_store_flag_1): Move here a bigger part
145 (emit_store_flag): Try swapping the condition for floating point
147 * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
149 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
151 * expr.c (expand_expr_real_1): Just use do_store_flag.
152 (do_store_flag): Drop support for TRUTH_NOT_EXPR. Use
153 emit_store_flag_force.
154 * expmed.c (emit_store_flag_force): Copy here trick
155 previously in expand_expr_real_1. Try reversing the comparison.
156 (emit_store_flag_1): Work if target is NULL.
157 (emit_store_flag): Work if target is NULL, using the result mode
158 from the comparison. Use split_comparison, restructure final part
159 to simplify conditionals.
161 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
163 * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
164 * dojump.c (do_jump): Change handling of floating-point
165 ops to use just do_compare_and_jump.
166 (split_comparison): New.
167 (do_compare_rtx_and_jump): Add here logic coming previously
168 in do_jump, using split_comparison.
170 2009-06-27 H.J. Lu <hongjiu.lu@intel.com>
173 * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
175 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
177 * tree-ssa-alias.c: Fix unintentional commit.
179 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
181 * passes.c (execute_one_pass): Fix unintentional commit.
183 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
185 * df-problems.c (df_set_seen, df_unset_seen): Delete.
186 (df_rd_local_compute, df_md_local_compute): Inline them.
188 (df_md_scratch): New.
189 (df_md_alloc, df_md_free): Allocate/free it.
190 (df_md_local_compute): Only include live registers in init.
191 (df_md_transfer_function): Prune the in-set computed by
192 the confluence function, and the gen-set too.
194 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
196 PR rtl-optimization/26854
197 * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
198 * df-problems.c (df_rd_add_problem): Fix comment.
199 (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
200 df_md_simulate_artificial_defs_at_top,
201 df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
202 df_md_bb_local_compute, df_md_local_compute, df_md_reset,
203 df_md_transfer_function, df_md_init, df_md_confluence_0,
204 df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
205 problem_MD, df_md_add_problem): New.
206 * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
207 df_md_get_bb_info): New.
208 (DF_LAST_PROBLEM_PLUS1): Adjust.
210 * Makefile.in (fwprop.o): Include domwalk.h.
211 * fwprop.c: Include domwalk.h.
212 (reg_defs, reg_defs_stack): New.
213 (bitmap_only_bit_between): Remove.
215 (process_uses): Use reg_defs and local_md instead of
216 bitmap_only_bit_between and local_rd.
217 (single_def_use_enter_block): New, from build_single_def_use_links.
218 (single_def_use_leave_block): New.
219 (build_single_def_use_links): Remove code moved to
220 single_def_use_enter_block, invoke domwalk.
221 (use_killed_between): Adjust comment.
223 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
225 * bitmap.h (bitmap_ior_and_into): New.
226 * bitmap.c (bitmap_ior_and_into): New.
228 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
230 * domwalk.h (struct dom_walk_data): Remove all callbacks except
231 before_dom_children_before_stmts and after_dom_children_after_stmts.
232 Rename the two remaining callbacks to just before_dom_children and
233 after_dom_children. Remove other GIMPLE statement walking bits.
234 * domwalk.c (walk_dominator_tree): Remove now unsupported features.
235 * graphite.c: Do not include domwalk.h.
236 * tree-into-ssa.c (interesting_blocks): New global.
237 (struct mark_def_sites_global_data): Remove it and names_to_rename.
238 (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
239 rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
240 now that they're not domwalk callbacks.
241 (rewrite_initialize_block): Rename to...
242 (rewrite_enter_block): ... this, place after called functions. Test
243 interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
244 (rewrite_finalize_block): Rename to...
245 (rewrite_leave_block): ... this, place after called functions.
246 (rewrite_update_init_block): Rename to...
247 (rewrite_update_enter_block): ... this, place after called functions.
248 Test interesting_blocks, call rewrite_update_stmt and
249 rewrite_update_phi_arguments.
250 (rewrite_update_fini_block): Rename to...
251 (rewrite_leave_block): ... this, place after called functions.
252 (rewrite_blocks): Remove last argument, simplify initialization of
254 (mark_def_sites_initialize_block): Rename to...
255 (mark_def_sites_block): ... this, call mark_def_sites.
256 (mark_def_sites_blocks): Remove argument, simplify initialization of
258 (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
259 (update_ssa): Likewise.
260 * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
262 (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
263 (dom_opt_initialize_block): Rename to...
264 (dom_opt_enter_block): ... this, place after called functions. Walk
265 statements here, inline propagate_to_outgoing_edges.
266 (dom_opt_finalize_block): Rename to...
267 (dom_opt_leave_block): ... this, place after called functions.
268 * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
270 (dse_enter_block, dse_record_phi): New.
271 (dse_record_phis): Delete.
272 (dse_finalize_block): Rename to...
273 (dse_leave_block): ... this.
274 (tree_ssa_dse): Simplify initialization of walk_data.
275 * tree-ssa-loop-im.c (determine_invariantness, move_computations):
276 Adjust initialization of walk_data.
277 * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
278 * tree-ssa-loop-phiopt.c (get_non_trapping):
279 Adjust initialization of walk_data.
280 * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
281 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
282 it's not a domwalk callback.
283 (uncprop_initialize_block): Rename to...
284 (dse_enter_block): ... this, call uncprop_into_successor_phis.
285 (dse_finalize_block): Rename to...
286 (dse_leave_block): ... this.
287 (tree_ssa_uncprop): Simplify initialization of walk_data.
288 * Makefile.in: Adjust dependencies.
290 2009-06-27 Richard Earnshaw <rearnsha@arm.com>
292 * arm.md (casesi): Fix test for Thumb1.
293 (thumb1_casesi_internal_pic): Likewise.
294 (thumb1_casesi_dispatch): Likewise.
296 2009-06-26 Daniel Gutson <dgutson@codesourcery.com>
298 * config/arm/arm-cores.def: Added core cortex-m0.
299 * config/arm/arm-tune.md: Regenerated.
300 * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
302 2009-06-26 DJ Delorie <dj@redhat.com>
304 * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
306 * config/mep/mep.c (mep_bundle_insns): Account for the fact that
307 the scheduler doesn't tag jump insns.
309 2009-06-26 H.J. Lu <hongjiu.lu@intel.com>
311 * c-decl.c (merge_decls): Re-indent.
313 2009-06-26 Janis Johnson <janis187@us.ibm.com>
316 * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
317 Special-case decimal float constants.
319 2009-06-26 Richard Henderson <rth@redhat.com>
321 * function.h (struct function): Add cannot_be_copied_reason,
322 and cannot_be_copied_set.
323 * tree-inline.c (has_label_address_in_static_1): Rename from
324 inline_forbidden_p_2; don't set inline_forbidden_reason here.
325 (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
326 don't set inline_forbidden_reason.
327 (copy_forbidden): New function, split out of inline_forbidden_p.
328 (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
329 (inline_forbidden_p): Use copy_forbidden.
330 (tree_versionable_function_p): Likewise.
331 (inlinable_function_p): Merge into tree_inlinable_function_p.
332 (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
333 * ipa-cp.c (ipcp_versionable_function_p): New function.
334 (ipcp_cloning_candidate_p): Use it.
335 (ipcp_node_modifiable_p): Likewise.
337 2009-06-26 Olatunji Ruwase <tjruwase@google.com>
339 * builtins.c (expand_builtin_alloca): Handle builtin alloca
340 that is marked not to be inlined. Remove flag_mudflap use.
341 * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
342 (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
344 2009-06-26 Steve Ellcey <sje@cup.hp.com>
347 * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
348 * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
350 2009-06-26 Kai Tietz <kai.tietz@onevision.com>
352 * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
354 (__mingwthr_remove_key_dtor): Likewise.
356 2009-06-26 Richard Guenther <rguenther@suse.de>
358 * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
360 2009-06-26 Steven Bosscher <steven@gcc.gnu.org>
363 * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
364 try the non-cond_exec path also.
366 2009-06-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
369 * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
370 (output_cbranch): Use new functions.
371 (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
374 2009-06-25 Michael Meissner <meissner@linux.vnet.ibm.com>
375 Pat Haugen <pthaugen@us.ibm.com>
376 Revital Eres <ERES@il.ibm.com>
378 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
379 Change some of the functions called by macros to being called
380 through a pointer, so debug functions can be inserted if
381 -mdebug=addr or -mdebug=cost.
382 (rs6000_preferred_reload_class_ptr): Ditto.
383 (rs6000_secondary_reload_class_ptr): Ditto.
384 (rs6000_secondary_memory_needed_ptr): Ditto.
385 (rs6000_cannot_change_mode_class_ptr): Ditto.
386 (rs6000_secondary_reload_inner): Ditto.
387 (rs6000_legitimize_reload_address): Ditto.
388 (rs6000_legitimize_reload_address_ptr): Ditto.
389 (rs6000_mode_dependent_address): Ditto.
390 (rs6000_mode_dependent_address_ptr): Ditto.
392 * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
393 function to return true if the mode allows reg + integer
395 (virtual_stack_registers_memory_p): New function to return true if
396 the address refers to a virtual stack register.
397 (rs6000_legitimate_offset_address_p): Move code to say whether a
398 mode supports reg+int addressing to reg_offset_addressing_ok_p and
400 (rs6000_legitimate_address_p): Add checks for modes that only can
401 do reg+reg addressing. Start adding VSX support.
402 (rs6000_legitimize_reload_address): Ditto.
403 (rs6000_legitimize_address): Ditto.
404 (rs6000_debug_legitimate_address_p): New debug functions for
405 -mdebug=addr and -mdebug=cost.
406 (rs6000_debug_rtx_costs): Ditto.
407 (rs6000_debug_address_costs): Ditto.
408 (rs6000_debug_adjust_cost): Ditto.
409 (rs6000_debug_legitimize_address): Ditto.
410 (rs6000_legitimize_reload_address_ptr): Point to call normal
411 function or debug function. Make functions called via pointer
413 (rs6000_mode_dependent_address_ptr): Ditto.
414 (rs6000_secondary_reload_class_ptr): Ditto.
415 (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
416 (rs6000_emit_move): Add -mdebug=addr support. Change an abort
417 into a friendlier error.
418 (rs6000_init_builtins): Add initial VSX support.
419 (rs6000_adjust_cost): Fix some spacing issues.
421 * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
422 (REG_CLASS_NAMES): Ditto.
423 (REG_CLASS_CONTENTS): Ditto.
424 (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
425 pointer, to add -mdebug=addr support.
426 (CANNOT_CHANGE_MODE_CLASS): Ditto.
427 (SECONDARY_RELOAD_CLASS): Call through a pointer to add
428 -mdebug=addr support.
429 (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
430 (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
431 (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
433 * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
435 (bswapsi*): Set attribute types for load/store. Add combiner
436 patterns to eliminate zero extend on 64-bit.
437 (bswapdi*): Add support for swapping 64-bit values. Use ldbrx and
438 stdbrx if the hardware supports those instructions.
440 2009-06-25 Ian Lance Taylor <iant@google.com>
442 * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
443 (Link Options): Document -static-libstdc++.
445 2009-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
448 * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
449 DATA_ALIGNMENT instead.
451 2009-06-25 Richard Guenther <rguenther@suse.de>
453 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
454 indirect references against the callused/escaped solutions.
455 (call_may_clobber_ref_p_1): Likewise.
457 2009-06-25 Martin Jambor <mjambor@suse.cz>
459 PR tree-optimization/40493
460 * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
461 (enum unscalarized_data_handling): New type.
462 (handle_unscalarized_data_in_subtree): Return what has been done.
463 (load_assign_lhs_subreplacements): Handle left flushes differently.
464 (sra_modify_assign): Use unscalarized_data_handling, simplified
465 condition determining whether to remove the statement.
467 2009-06-25 Basile Starynkevitch <basile@starynkevitch.net>
469 * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
470 excerpt - @ should be doubled for texinfo.
472 2009-06-24 Ian Lance Taylor <iant@google.com>
474 * config/arc/arc.c: Include "df.h".
475 (arc_attribute_table): Make static. Move higher in file.
476 (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
477 (output_shift): Initialize n later to avoid warning.
478 * config/arm/arm.c (arm_attribute_table): Make static. Move
480 * config/avr/avr.c (avr_attribute_table): Make static. Move
482 (reg_class_tab): Change array type from int to enum reg_class.
483 (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
485 (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
486 (lshrhi3_out): Likewise.
487 (class_likely_spilled_p): Change return type to bool.
488 (avr_rtx_costs): Use local code variable with enum type.
489 * config/avr/avr.md (movmemhi): Use add_reg_note.
490 (andhi3, andsi3): Don't use AS2 with "and".
491 (iorhi3, iorsi3): Don't use AS2 with "or".
492 * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
493 * config/crx/crx.c: Include "df.h".
494 (crx_attribute_table): Make static.
495 * config/m32r/m32r.c: Include "df.h".
496 (m32r_attribute_table): Make static. Move higher in file.
497 (pop): Use add_reg_note.
498 (block_move_call): Change 0 to LCT_NORMAL in function call.
499 * config/m32r/m32r.md (movsi_insn): Remove unused local value.
500 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
501 * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
502 declare, not just when TREE_CODE is defined.
503 * config/m68hc11/m68hc11.c: Include "expr.h".
504 (m68hc11_attribute_table): Make static. Move higher in file.
505 (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
507 (m68hc11_register_indirect_p): Likewise.
508 (m68hc11_function_arg_padding): Change return type to enum
510 (emit_move_after_reload): Use add_reg_note.
511 (m68hc11_emit_logical): Change code parameter to enum rtx_code.
512 (m68hc11_split_logical): Likewise.
513 (m68hc11_rtx_costs): Add local code_and outer_code variables with
515 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
516 to VOIDmode in function call.
517 * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
519 (m68hc11_split_logical): Update declaration.
520 (m68hc11_function_arg_padding): Update declaration.
521 * config/mcore/mcore.c (regno_reg_class): Change form array of int
522 to array of enum reg_class.
523 (mcore_attribute_table): Make static. Move higher in file.
524 (mcore_rtx_costs): Add cast to enum type.
525 * config/mcore/mcore.h (regno_reg_class): Update declaration.
526 (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
527 * config/sh/sh.c (sh_attribute_table): Make static. Move higher
529 * config/sh/predicates.md (trapping_target_operand): Rename and to
531 * config/sparc/sparc.c (sparc_attribute_table): Make static. Move
533 * config/spu/spu.c (spu_attribute_table): Make static. Move
535 * config/v850/v850.c (v850_attribute_table): Make static. Move
537 (v850_rtx_costs): Use local code with enum type.
538 (expand_epilogue): Add cast.
539 * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
541 2009-06-23 Takashi YOSHII <yoshii.takashi@renesas.com>
544 * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
545 -m2a-single-only and -m2a-nofpu.
546 * config/sh/sh.opt: Document m2a generates FPU code.
548 2009-06-24 Anatoly Sokolov <aesok@post.ru>
550 * defaults.h (CAN_ELIMINATE): Provide default.
551 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
552 * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
553 * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
554 * config/spu/spu.h (CAN_ELIMINATE): Delete.
555 * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
556 * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
557 * config/cris/cris.h (CAN_ELIMINATE): Delete.
558 * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
559 * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
560 * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
562 2009-06-24 DJ Delorie <dj@redhat.com>
564 * mep-ext-cop.cpu: Fix copyright notice.
565 * mep-default: Fix copyright notice.
566 * mep-core: Fix copyright notice.
567 * mep: Fix copyright notice.
568 * mep-ivc2: Fix copyright notice.
569 * mep-c5: Fix copyright notice.
571 2009-06-24 Denis Chertykov <chertykov@gmail.com>
573 * doc/contrib.texi (Contributors):
575 2009-06-24 Andreas Krebbel <krebbel1@de.ibm.com>
578 * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
579 src and dst operands if necessary.
581 2009-06-23 DJ Delorie <dj@redhat.com>
584 * config.gcc: Add mep support.
585 * recog.c: Resurrect validate_replace_rtx_subexp().
587 * config/mep/: Add new port:
588 * config/mep/constraints.md: New file.
589 * config/mep/default.h: New file.
590 * config/mep/intrinsics.h: New file.
591 * config/mep/intrinsics.md: New file.
592 * config/mep/ivc2-template.h: New file.
593 * config/mep/mep-c5.cpu: New file.
594 * config/mep/mep-core.cpu: New file.
595 * config/mep/mep-default.cpu: New file.
596 * config/mep/mep-ext-cop.cpu: New file.
597 * config/mep/mep-intrin.h: New file.
598 * config/mep/mep-ivc2.cpu: New file.
599 * config/mep/mep-lib1.asm: New file.
600 * config/mep/mep-lib2.c: New file.
601 * config/mep/mep-pragma.c: New file.
602 * config/mep/mep-protos.h: New file.
603 * config/mep/mep-tramp.c: New file.
604 * config/mep/mep.c: New file.
605 * config/mep/mep.cpu: New file.
606 * config/mep/mep.h: New file.
607 * config/mep/mep.md: New file.
608 * config/mep/mep.opt: New file.
609 * config/mep/predicates.md: New file.
610 * config/mep/t-mep: New file.
612 2009-06-23 Ian Lance Taylor <iant@google.com>
614 * configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
615 from loose_warn into c_loose_warn and from strict_warn into
616 c_strict_warn. Set and substitute warn_cxxflags. Check for
617 --enable-build-with-cxx. Set and substitute
618 ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
619 * Makefile.in (CXXFLAGS): New variable.
620 (C_LOOSE_WARN, C_STRICT_WARN): New variables.
621 (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
622 the default is the same as $(STRICT_WARN).
623 (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
625 (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
626 (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
627 (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
628 (HOST_LIBS): New variable.
629 (GCC_CFLAGS): Add $(C_LOOSE_WARN).
630 (ALL_CXXFLAGS): New variable.
631 (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
632 * doc/install.texi (Configuration): Document
633 --enable-build-with-cxx, --with-stage1-ldflags,
634 --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
635 * configure: Rebuild.
637 2009-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
639 * config/arm/arm.c (arm_override_options): Fix braces and formatting
640 from previous commit.
642 2009-06-23 Ian Lance Taylor <iant@google.com>
644 * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
646 2009-06-23 Ian Lance Taylor <iant@google.com>
648 * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
649 with ATTRIBUTE_UNUSED.
651 2009-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
652 Pat Haugen <pthaugen@us.ibm.com>
653 Revital Eres <eres@il.ibm.com>
655 * config.in (HAVE_AS_POPCNTD): Add default definition.
656 (HAVE_AS_LWSYNC): Ditto.
658 * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
660 (gcc_cv_as_powerpc_cmpb): Ditto.
661 (gcc_cv_as_powerpc_dfp): Ditto.
662 (gcc_cv_as_powerpc_vsx): Ditto.
663 (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
664 supporting the popcntd/lwsync instructions.
665 (gcc_cv_as_powerpc_lwsync): Ditto.
666 * configure: Regenerate.
668 * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
669 -mcpu=native and -mcpu=power7.
670 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
672 * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
673 a variable instead of a mask to reduce the number of mask bits.
674 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
677 * config/rs6000/rs6000.opt (-mupdate): Ditto.
678 (-mfused-madd): Ditto.
680 * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
682 (-mvsx): New switch for VSX instructions.
683 (-misel): Move from a variable to a mask to allow it to be set by
686 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
687 function declaration to an array declaration.
688 (rs6000_hard_regno_nregs): New external array declaration.
690 * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
691 files included by rs6000.md.
693 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
694 SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
696 * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
698 (rs6000_debug_reg): New -mdebug= variables.
699 (rs6000_debug_addr): Ditto.
700 (rs6000_debug_cost): Ditto.
701 (rs6000_pmode): New variable to hold Pmode.
702 (rs6000_pointer_size): New variable to hold POINTER_SIZE.
703 (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
704 calculated at compiler start.
705 (rs6000_hard_regno_nregs): Change function to an array which holds
706 HARD_REGNO_NREGS calculated at compiler start.
707 (rs6000_explicit_options): Delete isel field.
708 (rs6000_vector_unit): New array to hold which vector unit
709 supports arithmetic options for a given type.
710 (rs6000_vector_mem): New array to hold which vector unit supports
711 memory reference operations for a given type.
712 (rs6000_vector_align): New array to given the alignment of each
714 (power7_cost): New basic costs for power7.
715 (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
716 (rs6000_hard_regno_nregs_internal): New function, moved from
717 HARD_REGNO_NREGS, to calculate the number of registers each hard
718 register takes for each type.
719 (rs6000_debug_reg_print): New function for -mdebug=reg support.
720 (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
721 (+rs6000_init_hard_regno_mode_ok): New function, move calculation
722 of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
723 unit information here so it is calculated once at compiler startup
725 (rs6000_override_options): Make -misel a target mask. Add more
726 power7 target masks. Setup Pmode and POINTER_SIZE. Add initial
727 VSX support. Add support for -mdebug=reg, -mdebug=addr, and
729 (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
730 (rs6000_handle_option): Move -misel from variable to target mask.
731 (rs6000_builtin_mask_for_load): Add VSX support.
732 (rs6000_conditional_register_usage): Ditto.
733 (USE_ALTIVEC_FOR_ARG_P): Ditto.
734 (function_arg_boundary): Ditto.
735 (rs6000_expand_builtin): Ditto.
736 (def_builtin): Make abort message a little friendlier.
737 (rs6000_emit_int_cmove): Add support for 64-bit isel.
739 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
740 assembler support the popcntd instruction instead of a vsx
741 instruction to enable power7 support.
742 (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
743 (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
744 option to the assembler if -mcpu=native.
745 (ASM_CPU_NATIVE_SPEC): Ditto.
746 (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
748 (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
749 the lwsync instruction.
750 (enum processor_type): Add PROCESSOR_POWER7.
751 (rs6000_debug_reg): New -mdebug= options.
752 (rs6000_debug_addr): Ditto.
753 (rs6000_debug_cost): Ditto.
754 (rs6000_isel): Delete.
755 (enum rs6000_vector): New enum to say what vector unit we have.
756 (VECTOR_UNIT_*): New macros to say which vector unit has
757 arithmetic operations for a given type.
758 (VECTOR_MEM_*): New macros to say which vector unit has memory
759 operations for a given type.
760 (TARGET_LDBRX): Whether the machine supports the ldbrx
762 (TARGET_ISEL): Delete, -misel moved to be a mask.
763 (TARGET_ISEL64): New macro for 64-bit isel support.
764 (UNITS_PER_VSX_WORD): New macro.
765 (POINTER_SIZE): Move to be an external variable, rather than
766 calculating whether we are generating 32 ot 64-bit code.
768 (STACK_BOUNDARY): Add VSX support.
769 (LOCAL_ALIGNMENT): Ditto.
770 (SLOW_UNALIGNED_ACCESS): Ditto.
771 (VSX_REGNO_P): New macro for VSX support.
772 (VFLOAT_REGNO_P): Ditto.
773 (VINT_REGNO_P): Ditto.
774 (VLOGICAL_REGNO_P): Ditto.
775 (VSX_VECTOR_MODE): Ditto.
776 (VSX_SCALAR_MODE): Ditto.
778 (VSX_MOVE_MODE): Ditto.
779 (VSX_REG_CLASS_P): Ditto.
780 (HARD_REGNO_NREGS): Instead of calling a function, use an array
782 (UNITS_PER_SIMD_WORD): Add VSX support.
783 (MODES_TIEABLE_P): Ditto.
784 (STARTING_FRAME_OFFSET): Ditto.
785 (STACK_DYNAMIC_OFFSET): Ditto.
786 (EPILOGUE_USES): Ditto.
787 (REGNO_REG_CLASS): Move to array lookup.
788 (CLASS_MAX_NREGS): Ditto.
789 (rs6000_vector_reg_class): Add declaration.
790 (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
791 overlap with the floating point and Altivec registers.
793 * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
795 * config/rs6000/driver-rs6000.c (asm_names): New static array to
796 give the appropriate asm switches if -mcpu=native.
797 (host_detect_local_cpu): Add support for "asm".
798 (host_detect_local_cpu): Follow GNU code guidelines for name.
800 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
801 -mbit-word to a variable instead of being a target mask.
803 * config/rs6000/sync.md (lwsync): If the assembler supports it,
804 emit the lwsync instruction instead of emitting the instruction as
807 * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
808 fixuns_trundfsi2, move expander into rs6000.md.
810 * config/rs6000/rs6000.md (cpu): Add power7.
811 (sel, *ptrsize): New mode attributes for 32/64-bit isel.
812 (logical predicate patterns): Change the single instruction
813 primitives that set CR0 to be fast_compare instead of compare.
815 (popcntwsi2): Add support for ISA 2.06 popcount instructions.
817 (popcount<mode>): Ditto.
818 (floating multiply/add insns): Name the floating point
820 (isel_signed_<mode>): Add support for -misel on 64-bit systems.
821 (isel_unsigned_<mode>): Ditto.
822 (fixuns_trundfsi2): Move expander here from spe.md.
823 (smindi3): Define if we have -misel on 64-bit systems.
828 2009-06-23 Anatoly Sokolov <aesok@post.ru>
830 * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
832 * config/avr/avr.c (avr_current_device): New variable.
833 (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
834 (avr_arch, mcu_type_s): Move to avr.h.
835 * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
836 default_data_section_start fields.
837 (avr_arch): Moved from avr.c.
838 (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
840 (avr_current_device, avr_mcu_types, avr_arch_types,
841 avr_device_to_arch, avr_device_to_data_start,
842 avr_device_to_startfiles, avr_device_to_devicelib): Declare.
843 (EXTRA_SPEC_FUNCTIONS): Define.
844 (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
845 options mapping. Use device_to_arch and device_to_data_start insted.
846 (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
847 (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
848 * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
849 * config/avr/driver-avr.c: New file.
850 * config/avr/avr-devices.c: New file.
852 2009-06-23 Jakub Jelinek <jakub@redhat.com>
854 * var-tracking.c (unshare_variable): Force initialized to
855 be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
856 (set_variable_part): Likewise.
857 (struct variable_union_info): Remove pos_src field.
858 (vui_vec, vui_allocated): New variables.
859 (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
860 unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l
861 == 1 use a simpler sorting algorithm. Compute pos field right
862 away, don't fill in pos_src. For dst_l == 2 avoid qsort.
863 Avoid quadratic comparison if !flag_var_tracking_uninit.
864 (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
865 unshare_variable unconditionally.
866 (dataflow_set_different_2): Removed.
867 (dataflow_set_different): Don't traverse second hash table.
868 (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
869 unconditionally to var_reg_set or var_mem_set.
870 (emit_notes_in_bb): Likewise.
871 (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
873 (emit_note_insn_var_location): Don't set initialized to
874 VAR_INIT_STATUS_INITIALIZED early.
875 (vt_finalize): Free vui_vec if needed, clear vui_vec and
877 * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
879 * tree-object-size.c (addr_object_size): Instead of checking
880 for non-NULL TREE_CHAIN of the FIELD_DECL check that there
881 are no FIELD_DECLs following it.
883 2009-06-23 Andreas Krebbel <krebbel1@de.ibm.com>
885 * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
886 order to match bswaps with signed source operands.
888 2009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
890 * sdbout.c (sdbout_one_type): Fix braces in switch.
892 2009-06-23 Richard Guenther <rguenther@suse.de>
894 * tree-ssa-structalias.c (struct variable_info): Add is_global_var
896 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
897 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
898 var_callused, callused_tree, var_storedanything, storedanything_tree,
899 var_integer, integer_tree): Remove global variables.
900 (new_var_info): Do not pass new id, append the new var to the
901 global variable vector.
902 (do_ds_constraint): Use is_global_var member of the variable-info.
903 (new_scalar_tmp_constraint_exp): Adjust.
904 (create_function_info_for): Likewise.
905 (create_variable_info_for): Likewise.
906 (find_what_var_points_to): Remove dead code.
907 (init_base_vars): Simplify.
908 (compute_points_to_sets): Adjust.
910 2009-06-22 Adam Nemet <anemet@caviumnetworks.com>
912 * combine.c (try_combine): Dump information about the insns we're
915 2009-06-22 Adam Nemet <anemet@caviumnetworks.com>
917 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
918 check when calling force_to_mode on TRUNCATE's operand.
920 2009-06-22 Ian Lance Taylor <iant@google.com>
922 * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
924 2009-06-22 Steven Bosscher <steven@gcc.gnu.org>
926 * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
928 2009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
930 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
931 override library linkage flags such as -static-libgcc or
934 2009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com>
936 * config/m68k/m68k-devices.def: Add line for MCF5221x.
938 2009-06-22 Ian Lance Taylor <iant@google.com>
940 * config/linux.opt: Put mglibc ahead of muclibc.
942 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
945 2009-06-22 Matthias Klose <doko@ubuntu.com>
947 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
949 2009-06-22 Steven Bosscher <steven@gcc.gnu.org>
952 * c-parser.c (c_parser_objc_message_args): Return error_mark_node
953 instead of NULL if a parser error occurs.
955 2009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
957 * dwarf2out.c (dwarf2_debug_hooks): Initialize
958 non-DWARF2_DEBUGGING_INFO version.
960 2009-06-22 Kai Tietz <kai.tietz@onevision.com>
962 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
963 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
965 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
966 (LIBGCC2_TF_CEXT): Define.
969 2009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
972 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
974 2009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
976 * config/arm/arm.c (arm_override_options): Disable
977 -mcaller-super-interworking and -mcallee-super-interworking.
978 * doc/invoke.texi (ARM Options): Document this.
980 2009-06-22 Nathan Sidwell <nathan@codesourcery.com>
982 * config/arm/arm.c (arm_print_operand): Deal with HIGH.
983 * config/arm/constraints.md (j): New constraint for movw operands.
984 (N): Remove thumb2 meaning.
985 * config/arm/arm.md (*arm_movw): Delete.
986 (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
987 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
988 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
990 2009-06-22 Martin Jambor <mjambor@suse.cz>
992 PR tree-optimization/40492
993 * tree-sra.c (sra_modify_assign): Pass zero offsets to
994 build_ref_for_offset.
996 2009-06-22 Shujing Zhao <pearly.zhao@oracle.com>
998 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
999 JUMP_TABLE_DATA_P predicates where applicable.
1000 * auto-inc-dec.c: Ditto.
1001 * builtins.c: Ditto.
1002 * caller-save.c: Ditto.
1004 * cfgcleanup.c: Ditto.
1005 * cfglayout.c: Ditto.
1008 * combine-stack-adj.c: Ditto.
1014 * dwarf2asm.c: Ditto.
1015 * dwarf2out.c: Ditto.
1016 * emit-rtl.c: Ditto.
1022 * function.c: Ditto.
1025 * genpreds.c: Ditto.
1026 * genrecog.c: Ditto.
1028 * ira-costs.c: Ditto.
1029 * ira-lives.c: Ditto.
1032 * lower-subreg.c: Ditto.
1033 * modulo-sched.c: Ditto.
1035 * postreload.c: Ditto.
1036 * print-rtl.c: Ditto.
1045 * sched-vis.c: Ditto.
1047 * sel-sched-ir.c: Ditto.
1048 * simplify-rtx.c: Ditto.
1049 * targhooks.c: Ditto.
1050 * var-tracking.c: Ditto.
1051 * vmsdbgout.c: Ditto.
1053 2009-06-22 Matthias Klose <doko@ubuntu.com>
1055 * Makefile.in (install-plugin): Always use DESTDIR.
1057 2009-06-22 Olivier Hainque <hainque@adacore.com>
1059 * config/pa/pa.c (output_call): Don't optimize post call jumps
1060 into return address adjustments if the call may throw.
1062 2009-06-21 Richard Earnshaw <rearnsha@arm.com>
1064 * arm.c (thumb1_output_casesi): New function.
1065 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
1066 optimizing for size or PIC.
1067 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
1068 * arm.md (UNSPEC_THUMB1_CASESI): New constant.
1069 (casesi): Handle Thumb-1 when optimizing for size or PIC.
1070 (thumb1_casesi_internal_pic): New expand rule.
1071 (thumb1_casesi_dispatch): New pattern.
1072 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
1074 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
1075 in the text seciton when PIC or optimizing for size.
1076 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
1077 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
1078 preservation properties of code.
1079 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
1080 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
1081 (__gnu_thumb1_case_si): New function.
1082 * t-arm (LIB1ASMSRC): Define here.
1083 (LIB1ASMFUNCS): Add some common functions.
1084 * t-arm-elf (LIB1ASMSRC): Delete.
1085 (LIB1ASMFUNCS): Append to existing set.
1086 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1087 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1088 * t-symbian (LIB1ASMFUNCS): Likewise.
1089 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1090 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1092 2009-06-21 Richard Guenther <rguenther@suse.de>
1094 PR tree-optimization/38729
1095 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
1096 to loops with a single exit if -fno-expensive-optimizations.
1098 2009-06-21 Jakub Jelinek <jakub@redhat.com>
1100 * var-tracking.c (struct shared_hash_def, shared_hash): New types.
1101 (dataflow_set): Change vars type from htab_t to shared_hash.
1102 (shared_hash_pool, empty_shared_hash): New variables.
1103 (vars_clear): Removed.
1104 (shared_hash_shared, shared_hash_htab, shared_hash_copy,
1105 shared_hash_find_slot_unshare, shared_hash_find_slot,
1106 shared_hash_find_slot_noinsert, shared_hash_find): New
1108 (shared_hash_unshare, shared_hash_destroy): New functions.
1109 (unshare_variable): Unshare set->vars if shared, use
1111 (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
1112 (get_init_value, find_src_set_src, dump_dataflow_set,
1113 clobber_variable_part, emit_notes_for_differences): Use
1115 (dataflow_set_init): Remove second argument, set vars to
1116 empty_shared_hash instead of creating a new htab.
1117 (dataflow_set_clear): Call shared_hash_destroy and set vars
1118 to empty_shared_hash instead of calling vars_clear.
1119 (dataflow_set_copy): Don't call vars_copy, instead just share
1120 the src htab with dst.
1121 (variable_union): Use shared_hash_*, use initially NO_INSERT
1122 lookup if set->vars is shared. Don't keep slot cleared before
1123 calling unshare_variable. Unshare set->vars if needed.
1124 Even ->refcount == 1 vars must be unshared if set->vars is shared
1125 and var needs to be modified.
1126 (variable_canonicalize): New function.
1127 (dataflow_set_union): If dst->vars is empty, just share src->vars
1128 with dst->vars and traverse with variable_canonicalize to canonicalize
1129 and unshare what is needed.
1130 (dataflow_set_different): If old_set and new_set use the same shared
1131 htab, they aren't different. If number of htab elements is different,
1132 htabs are different. Use shared_hash_*.
1133 (dataflow_set_destroy): Call shared_hash_destroy instead of
1135 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
1136 second argument to dataflow_set_init.
1137 (vt_initialize): Likewise. Initialize shared_hash_pool and
1138 empty_shared_hash, move bb in/out initialization afterwards.
1139 Use variable_htab_free instead of NULL as changed_variables del hook.
1140 (variable_was_changed): Change type of second argument to pointer to
1141 dataflow_set. When inserting var into changed_variables, bump
1142 refcount. Unshare set->vars if set is shared htab and slot needs to
1144 (set_variable_part): Use shared_hash_*, use initially NO_INSERT
1145 lookup if set->vars is shared. Unshare set->vars if needed.
1146 Even ->refcount == 1 vars must be unshared if set->vars is shared
1147 and var needs to be modified. Adjust variable_was_changed caller.
1148 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1
1149 vars must be unshared if set->vars is shared and var needs to be
1150 modified. Adjust variable_was_changed caller.
1151 (emit_note_insn_var_location): Don't pool_free var.
1152 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
1154 (vt_finalize): Call htab_delete on empty_shared_hash->htab and
1155 free_alloc_pool on shared_hash_pool.
1157 2009-06-20 Anthony Green <green@moxielogic.com>
1159 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
1160 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
1162 2009-06-20 Richard Guenther <rguenther@suse.de>
1164 * tree-ssa-structalias.c (find_func_aliases): For memset use
1165 a constraint from NULL if we memset to zero.
1166 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
1167 we explicitly handle that do not read from memory.
1168 (call_may_clobber_ref_p_1): Properly handle builtins that may
1171 2009-06-20 Richard Guenther <rguenther@suse.de>
1173 PR tree-optimization/40495
1174 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
1175 (new_scalar_tmp_constraint_exp): New function.
1176 (process_constraint): Do not create temporary decls.
1177 (process_all_all_constraints): Likewise.
1178 (handle_const_call): Likewise.
1179 (create_function_info_for): Do not set decl.
1181 2009-06-19 Ian Lance Taylor <iant@google.com>
1183 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
1184 (rs6000_attribute_table): Make static; move before use.
1186 2009-06-19 Eric Botcazou <ebotcazou@adacore.com>
1188 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
1189 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
1190 Propagate the TREE_READONLY flag without overwriting it.
1191 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
1192 Propagate the TREE_READONLY flag onto the result.
1193 (process_call_operands): Move around. Use correct constant value.
1195 2009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1198 * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
1199 * config/arm/arm.md: Likewise.
1201 2009-06-19 Ian Lance Taylor <iant@google.com>
1203 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
1204 to GIMPLE_ERROR_MARK.
1206 * c-typeck.c (build_conditional_expr): Add op1_original_type and
1207 op2_original_type parameters. Warn about using different enum types.
1208 * c-parser.c (c_parser_conditional_expression): Pass original
1209 types to build_conditional_expr.
1210 * c-tree.h (build_conditional_expr): Update declaration.
1212 2009-06-19 Ian Lance Taylor <iant@google.com>
1214 * config/i386/i386.c (ix86_function_specific_save): Test that
1215 fields match values, rather than testing the values are in a
1218 2009-06-19 Richard Guenther <rguenther@suse.de>
1220 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
1222 (ptr_derefs_may_alias_p): Likewise.
1223 (ptr_deref_may_alias_ref_p_1): New function.
1224 (ptr_deref_may_alias_ref_p): Likewise.
1225 (ref_maybe_used_by_call_p_1): Handle builtins that are not
1226 covered by looking at the ESCAPED solution.
1227 (call_may_clobber_ref_p_1): Likewise.
1228 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
1229 Handle NULL_TREE offset. Do not produce redundant constraints.
1230 (process_all_all_constraints): New helper function.
1231 (do_structure_copy): Use it.
1232 (handle_lhs_call): Likewise.
1233 (find_func_aliases): Handle some builtins with pointer arguments
1234 and/or return values explicitly.
1236 2009-06-19 Ian Lance Taylor <iant@google.com>
1238 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
1240 2009-06-19 Ian Lance Taylor <iant@google.com>
1242 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
1244 2009-06-19 Ian Lance Taylor <iant@google.com>
1246 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
1247 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
1250 * c-decl.c (finish_decl): If -Wc++-compat, warn about
1251 uninitialized const.
1253 2009-06-19 Ian Lance Taylor <iant@google.com>
1255 * dse.c (struct store_info): Rename bitmap field to bmap. Change
1258 * c-decl.c (in_struct, struct_types): Remove.
1259 (struct c_binding): Add in_struct field.
1260 (c_binding_ptr): Define type, along with VEC.
1261 (struct c_struct_parse_info): Define.
1262 (struct_parse_info): New static variable.
1263 (bind): Initialize in_struct field.
1264 (start_struct): Remove enclosing_in_struct and
1265 enclosing_struct_types parameters. Add
1266 enclosing_struct_parse_info parameter. Change all callers. Set
1267 struct_parse_info rather than in_struct and struct_types.
1268 (grokfield): If -Wc++-compat and there is a symbol binding for the
1269 field name, set the in_struct flag and push it on the
1270 struct_parse_info->fields vector.
1271 (warn_cxx_compat_finish_struct): New static function.
1272 (finish_struct): Remove enclosing_in_struct and
1273 enclosing_struct_types parameters. Add
1274 enclosing_struct_parse_info parameter. Change all callers. Don't
1275 set C_TYPE_DEFINED_IN_STRUCT here. Call
1276 warn_cxx_compat_finish_struct. Free struct_parse_info and set to
1277 parameter. Only push on struct_types if warn_cxx_compat.
1278 (finish_enum): Only push on struct_types if warn_cxx_compat.
1279 (declspecs_add_type): Add loc parameter. Change all callers.
1280 Change all error calls to error_at. Pass loc, not input_location,
1281 to pedwarn calls. Warn if -Wc++-compat and a typedef name is
1282 defined in a struct. If -Wc++-compat and parsing a struct, record
1283 that a typedef name was used.
1284 * c-parser.c (c_parser_declspecs): Get location to pass to
1286 (c_parser_struct_or_union_specifier): Update calls to start_struct
1288 * c-tree.h (struct c_struct_parse_info): Declare.
1289 (finish_struct, start_struct): Update declarations.
1290 (declspecs_add_type): Update declaration.
1292 2009-06-19 Ian Lance Taylor <iant@google.com>
1294 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
1295 variable with an anonymous type.
1297 2009-06-19 Uros Bizjak <ubizjak@gmail.com>
1299 * see.c: Remove for real.
1301 2009-06-19 Uros Bizjak <ubizjak@gmail.com>
1303 * optabs.h (enum optab_index): Add new OTI_significand.
1304 (significand_optab): Define corresponding macro.
1305 * optabs.c (init_optabs): Initialize significand_optab.
1306 * genopinit.c (optabs): Implement significand_optab using
1307 significand?f2 patterns.
1308 * builtins.c (expand_builtin_mathfn): Handle
1309 BUILT_IN_SIGNIFICAND{,F,L}.
1310 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
1311 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1313 * config/i386/i386.md (significandxf2, significand<mode>2): New
1314 expanders to implement significandf, significand and significandl
1315 built-ins as inline x87 intrinsics.
1317 2009-06-18 Anatoly Sokolov <aesok@post.ru>
1319 * config/avr/avr.c (avr_override_options): Remove setting value of
1320 PARAM_INLINE_CALL_COST.
1322 2009-06-18 Richard Henderson <rth@redhat.com>
1325 * tree-pass.h (TDF_ASMNAME): New.
1326 * tree-dump.c (dump_options): Add asmname.
1327 * doc/invoke.texi: Document it.
1329 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
1330 (dump_decl_name): ...here.
1331 (dump_function_name): New flags arg; mind TDF_ASMNAME.
1332 (dump_generic_node): Update dump_function_name calls.
1333 (print_call_name): New flags arg; update all dump calls.
1334 * diagnostic.h (print_call_name): Update.
1335 * gimple-pretty-print.c (dump_gimple_call): Update.
1337 2009-06-18 H.J. Lu <hongjiu.lu@intel.com>
1340 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
1342 2009-06-18 Diego Novillo <dnovillo@google.com>
1344 * doc/plugins.texi: Document plugin_is_GPL_compatible.
1345 * plugin.c (str_license): Declare.
1346 (try_init_one_plugin): Assert that the symbol
1347 'plugin_is_GPL_compatible' exists.
1349 2009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
1352 * Makefile.in (OBJS-common): Remove see.o.
1354 * common.opt (fsee): Mark as preserved for backward compatibility.
1355 * opts.c (common_handle_option): Add OPT_fsee to the backward
1356 compatibility section.
1357 * passes.c (init_optimization_passes, pass_see): Remove pass.
1358 * timevar.def (TV_SEE): Remove.
1359 * tree-pass.h (pass_see): Remove declaration.
1360 * doc/invoke.texi (-fsee): Remove documentation.
1362 2009-06-18 Martin Jambor <mjambor@suse.cz>
1364 * tree-sra.c: Include statistics.h
1365 (sra_stats): New variable.
1366 (sra_initialize): Clear sra_stats.
1367 (create_access_replacement): Increment sra_stats.replacements.
1368 (get_access_replacement): Do not return twice.
1369 (analyze_all_variable_accesses): Increment statistics counter by the
1370 number of scalarized aggregates.
1371 (generate_subtree_copies): Increment sra_stats.subtree_copies.
1372 (sra_modify_expr): Increment sra_stats.exprs.
1373 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
1374 (sra_modify_assign): Increment sra_stats.exprs,
1375 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
1376 (perform_intra_sra): Update statistics counters.
1377 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
1379 2009-06-18 Sandra Loosemore <sandra@codesourcery.com>
1381 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
1382 (arm_scalar_mode_supported_p): New function.
1384 2009-06-18 Paul Brook <paul@codesourcery.com>
1385 Sandra Loosemore <sandra@codesourcery.com>
1387 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
1388 (__extendhfsf2, __truncsfhf2): Define.
1389 * config/arm/fp16.c: New file.
1390 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
1391 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
1393 2009-06-18 Sandra Loosemore <sandra@codesourcery.com>
1395 * doc/extend.texi (Half-Precision): New section.
1396 * doc/invoke.texi (Option Summary): List -mfp16-format.
1397 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
1398 * config/arm/arm.opt (mfp16-format=): New.
1399 * config/arm/arm.c: Include intl.h.
1400 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
1401 (TARGET_INVALID_RETURN_TYPE): Redefine.
1402 (TARGET_PROMOTED_TYPE): Redefine.
1403 (TARGET_CONVERT_TO_TYPE): Redefine.
1404 (arm_fp16_format): Define.
1405 (all_fpus): Add entry for neon-fp16.
1406 (fp_model_for_fpu): Likewise.
1407 (struct fp16_format): Declare.
1408 (all_fp16_formats): Define.
1409 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
1411 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
1413 (arm_legitimate_index_p): Treat HFmode like HImode.
1414 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
1415 (coproc_secondary_reload_class): Special-case HFmode.
1416 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
1417 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
1418 (arm_init_fp16_builtins): New.
1419 (arm_init_builtins): Call it.
1420 (arm_invalid_parameter_type): New.
1421 (arm_invalid_return_type): New.
1422 (arm_promoted_type): New.
1423 (arm_convert_to_type).
1424 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
1426 (arm_emit_fp16_const): New function.
1427 (arm_mangle_type): Mangle __fp16 as "Dh".
1428 * config/arm/arm.h (TARGET_VFPD32): Make it know about
1430 (TARGET_NEON_FP16): New.
1431 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
1432 (enum fputype): Add FPUTYPE_NEON_FP16.
1433 (enum arm_fp16_format_type): Declare.
1434 (arm_fp16_format): Declare.
1435 (LARGEST_EXPONENT_IS_NORMAL): Define.
1436 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
1437 * config/arm/arm-modes.def (HFmode): Define.
1438 * config/arm/vfp.md: (*movhf_vfp): New.
1441 * config/arm/arm.md: (fpu): Add neon_fp16.
1442 (floatsihf2, floatdihf2): New.
1443 (fix_trunchfsi2, fix_trunchfdi2): New.
1447 (*arm32_movhf): New.
1448 (*thumb1_movhf): New.
1449 (consttable_2): Add check for HFmode constants.
1450 (consttable_4): Handle HFmode constants.
1452 2009-06-18 Uros Bizjak <ubizjak@gmail.com>
1454 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
1456 2009-06-17 Olivier Hainque <hainque@adacore.com>
1458 * collect2.c (main): Use CONST_CAST2 to perform char ** to
1459 const char ** conversion in AIX specific section.
1461 2009-06-17 H.J. Lu <hongjiu.lu@intel.com>
1463 * config/i386/i386.c (ix86_special_builtin_type): Remove
1464 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
1465 (bdesc_special_args): Updated.
1466 (ix86_init_mmx_sse_builtins): Likewise.
1467 (ix86_expand_special_args_builtin): Likewise.
1469 2009-06-17 Richard Henderson <rth@redhat.com>
1471 * tree-pretty-print.c (maybe_dump_asm_name): New.
1472 (dump_decl_name): Use it.
1473 (PRINT_FUNCTION_NAME): Merge into...
1474 (dump_function_name): ... here. Use maybe_dump_asm_name.
1476 2009-06-17 Cary Coutant <ccoutant@google.com>
1478 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
1480 * debug.c (struct gcc_debug_hooks): Change placeholder for
1482 (debug_nothing_int_charstar_int): Replaced by...
1483 (debug_nothing_int_charstar_int_bool): ...this.
1484 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
1485 source_line prototype.
1486 (debug_nothing_int_charstar_int): Replaced by...
1487 (debug_nothing_int_charstar_int_bool): ...this.
1488 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
1489 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
1490 Output is_stmt operand when necessary.
1491 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
1492 (notice_source_line): Add is_stmt parameter.
1493 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
1494 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
1496 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
1497 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
1499 2009-06-17 Ian Lance Taylor <iant@google.com>
1501 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
1503 (struct store_by_pieces_d): Rename from store_by_pieces. Change
1506 2009-06-17 Adam Nemet <anemet@caviumnetworks.com>
1508 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
1509 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
1510 tree_strip_sign_nop_conversions and
1511 tree_ssa_strip_useless_type_conversions rather than stripping
1512 the operations here.
1513 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
1515 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
1516 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
1517 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
1518 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
1521 2009-06-17 Michael Eager <eager@eagercon.com>
1523 * config/rs6000/constraints.md (register_constraint "d"): New.
1524 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
1525 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
1526 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
1527 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
1528 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
1529 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
1530 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
1531 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
1532 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
1533 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
1535 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
1536 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
1537 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
1538 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
1539 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1540 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
1541 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
1542 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
1543 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
1544 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
1545 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
1546 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
1547 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
1548 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
1550 2009-06-16 Ian Lance Taylor <iant@google.com>
1552 * profile.c (total_num_never_executed): Don't define.
1553 (compute_branch_probabilities): Don't count or print
1555 (init_branch_prob): Don't set total_num_never_executed.
1556 (end_branch_prob): Don't print total_num_never_executed.
1558 2009-06-17 David Daney <ddaney@caviumnetworks.com>
1560 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
1562 2009-06-17 David Edelsohn <edelsohn@gnu.org>
1564 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
1565 (nabstd2_fpr): Same.
1567 2009-06-17 Steve Ellcey <sje@cup.hp.com>
1569 * expr.c (expand_assignment): Change complex type check.
1571 2009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
1573 * doc/plugins.texi (Building GCC plugins): Added new section.
1575 2009-06-17 Ian Lance Taylor <iant@google.com>
1577 * c-pch.c (get_ident): Don't set size of templ array.
1578 (pch_init): Don't set size of partial_pch array.
1580 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
1581 string constant to intialize an array whose size is the length of
1584 2009-06-17 Richard Guenther <rguenther@suse.de>
1586 PR tree-optimization/40389
1587 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
1588 to addressable types.
1589 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
1591 2009-06-17 Richard Guenther <rguenther@suse.de>
1594 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
1595 if there is no evolution of left in the loop bail out.
1596 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
1597 chrec_fold_multiply.
1599 2009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
1600 Janis Johnson <janis187@us.ibm.com>
1603 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
1604 for the symbol ref of a constant that is the source of a move
1605 - nor for any other not-obvious-label-ref constants.
1607 2009-06-16 Olatunji Ruwase <tjruwase@google.com>
1609 * plugin.c (position_pass): Skip newly inserted pass during list
1610 traversal to avoid repeated insertion.
1612 2009-06-16 Ian Lance Taylor <iant@google.com>
1614 * vec.h (VEC_stack_alloc): Define different version if
1615 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
1616 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
1617 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
1618 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
1620 2009-06-16 H.J. Lu <hongjiu.lu@intel.com>
1622 * config.gcc (extra_headers): Add ia32intrin.h for x86.
1624 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
1625 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
1626 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
1627 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
1628 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
1629 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
1630 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
1631 (bdesc_special_args): Add __builtin_ia32_rdtsc and
1632 __builtin_ia32_rdtscp.
1633 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
1634 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
1635 and __builtin_ia32_rorhi.
1636 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
1637 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
1638 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
1639 (ix86_expand_args_builtin): Likewise.
1640 (ix86_expand_special_args_builtin): Likewise.
1642 * config/i386/i386.md (UNSPECV_RDTSCP): New.
1643 (UNSPECV_RDTSC): Likewise.
1644 (UNSPECV_RDPMC): Likewise.
1645 (*bsr): Renamed to ...
1647 (*bsr_rex64): Renamed to ...
1651 (*rdpmc_rex64): Likewise.
1654 (*rdtsc_rex64): Likewise.
1656 (*rdtscp): Likewise.
1657 (*rdtscp_rex64): Likewise.
1659 * config/i386/ia32intrin.h: New.
1661 * config/i386/x86intrin.h: Include <ia32intrin.h>.
1663 2009-06-16 Ian Lance Taylor <iant@google.com>
1665 * ira-build.c (copy_info_to_removed_store_destinations):
1666 Initialize parent_a.
1668 2009-06-16 Ian Lance Taylor <iant@google.com>
1670 * c-decl.c (grokdeclarator): Change size_varies to bool.
1672 2009-06-16 Ian Lance Taylor <iant@google.com>
1674 * sel-sched.c: Make forward declarations of move_op_hooks and
1675 fur_hooks explicitly extern.
1677 2009-06-16 Ian Lance Taylor <iant@google.com>
1679 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
1680 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
1682 2009-06-16 Ian Lance Taylor <iant@google.com>
1684 * resource.c (mark_referenced_resources): Change
1685 include_delayed_effects parameter to bool. Change all callers.
1686 (mark_end_of_function_resources): Likewise.
1687 * reorg.c (insn_references_resource_p): Likewise.
1688 (insn_sets_resource_p): Likewise.
1689 * resource.h (mark_referenced_resources): Update declaration.
1690 (mark_end_of_function_resources): Update declaration.
1692 2009-06-16 David Edelsohn <edelsohn@gnu.org>
1694 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
1696 2009-06-16 David Edelsohn <edelsohn@gnu.org>
1698 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
1699 GCC can bootstrap on AIX with GNU Binutils 2.20.
1701 2009-06-16 Ian Lance Taylor <iant@google.com>
1703 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
1705 2009-06-16 Ian Lance Taylor <iant@google.com>
1707 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
1708 inline, not extern inline.
1709 (exact_log2): Likewise.
1710 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
1712 (exact_log2): Likewise, but don't test CTZ_HWI.
1714 2009-06-16 Ian Lance Taylor <iant@google.com>
1716 * bitmap.c (bitmap_clear): Don't declare as inline.
1717 * gimple.c (gimplify_assign): Likewise.
1718 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
1719 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
1720 (sched_scan_info): Remove duplicate definition.
1722 2009-06-16 Ian Lance Taylor <iant@google.com>
1724 * c-common.c (skip_evaluation): Don't define.
1725 (c_inhibit_evaluation_warnings): Define global variable.
1726 (overflow_warning): Check c_inhibit_evaluation_warnings rather
1727 than skip_evaluation.
1728 (convert_and_check, warn_for_div_by_zero): Likewise.
1729 * c-common.h (skip_evaluation): Don't declare.
1730 (c_inhibit_evaluation_warnings): Declare.
1731 * c-parser.c (c_parser_typeof_specifier): Set
1732 c_inhibit_evaluation_warnings rather than skip_evaluation.
1733 (c_parser_conditional_expression): Likewise.
1734 (c_parser_binary_expression): Likewise.
1735 (c_parser_sizeof_expression): Likewise.
1736 (c_parser_alignof_expression): Likewise.
1737 * c-typeck.c (build_indirect_ref): Check
1738 c_inhibit_evaluation_warnings rather than skip_evaluation.
1739 (build_conditional_expr, build_binary_op): Likewise.
1741 2009-06-16 Richard Guenther <rguenther@suse.de>
1743 * tree-ssa-alias.c (is_escape_site): Remove.
1744 * tree-ssa-alias.h (enum escape_type): Remove.
1745 (is_escape_site): Likewise.
1746 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
1747 via casts and asms without deferring to is_escape_site.
1749 2009-06-16 Jakub Jelinek <jakub@redhat.com>
1752 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
1753 use gen_lowpart if op0 has complex mode.
1755 2009-06-16 Richard Guenther <rguenther@suse.de>
1757 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
1758 variables add them to ESCAPED.
1759 (find_func_aliases): Do not make all indirectly stored values escaped.
1761 2009-06-16 Rafael Avila de Espindola <espindola@google.com>
1763 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
1766 2009-06-16 Martin Jambor <mjambor@suse.cz>
1768 PR tree-optimization/40432
1769 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
1770 check whether we need to force gimple register operand.
1772 2009-06-16 Martin Jambor <mjambor@suse.cz>
1774 PR tree-optimization/40413
1775 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
1776 build_ref_for_offset.
1777 (propagate_subacesses_accross_link): Fix a typo in a comment.
1779 2009-06-16 Ira Rosen <irar@il.ibm.com>
1781 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
1782 with additional parameter.
1783 * tree-vectorizer.h (enum vect_def_type): Add new value
1785 (enum vect_relevant): Add comments.
1786 (vect_is_simple_reduction): Add new argument.
1787 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
1788 Detect nested cycles.
1789 (vect_is_simple_reduction): Update documentation, add an argument to
1790 distinguish inner-loop reduction from nested cycle, detect nested
1791 cycles, fix printings and indentation, don't swap operands in case
1793 (get_initial_def_for_reduction): Handle subtraction.
1794 (vect_create_epilog_for_reduction): Add new argument to specify
1796 (vect_finalize_reduction): Handle subtraction, fix comments.
1797 (vectorizable_reduction): Handle nested cycles. In case of nested
1798 cycle keep track of the reduction variable position. Call
1799 vect_is_simple_reduction with additional parameter. Use original
1800 statement code in reduction epilogue for nested cycle. Call
1801 vect_create_epilog_for_reduction with additional parameter.
1802 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
1803 inner-loop vectorization.
1804 (vect_recog_widen_sum_pattern): Likewise.
1805 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
1807 (vect_mark_stmts_to_be_vectorized): Likewise.
1808 (vect_get_vec_def_for_operand): Handle nested cycles.
1810 2009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1812 * doc/invoke.texi (Debugging Options): Fix option index entries
1813 for -fdump-statistics, -frandom-seed add entries for
1814 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
1815 (FRV Options): Fix entries for -mTLS, -mtls.
1816 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
1817 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
1818 (M68hc1x Options): Fix @itemx for -mnominmax.
1819 (MCore Options): Fix entry for -mno-lsim.
1820 (MMIX Options): Fix entry for -mabi=mmixware.
1821 (PDP-11 Options): Fix entry for -mbcopy-builtin.
1823 2009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
1825 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
1826 Mention the plugin mode of gengtype.
1827 * doc/gty.texi (Source Files Containing Type Information): Likewise.
1828 * gengtype.c: Updated copyright.
1829 (plugin_files, nb_plugin_files) Added new static variables.
1830 (measure_input_list) Care about plugin_files.
1831 (write_rtx_next): Added early return in plugin mode.
1832 (create_file): Updated copyright year in generated file. Added
1834 (oprintf): Added early return if NULL outf.
1835 (get_output_file_with_visibility): Care of plugin_files.
1836 (get_output_file_name): May return null.
1837 (write_local): Added early return.
1838 (put_mangled_filename): Ditto.
1839 (finish_root_table): Added check for base_files.
1840 (write_roots): Care about null when plugins.
1841 (main): Added plugin mode.
1843 2009-06-15 Ian Lance Taylor <iant@google.com>
1845 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
1846 * gcov.c (read_count_file): Add braces around variables declared
1849 * c.opt (Wjump-misses-init): New warning.
1850 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
1851 -Wall and -Wc++-compat if not already set.
1852 (c_common_post_options): Clear warn_jump_misses_init if it was not
1854 * c-decl.c (struct c_binding): Change type field to a union with
1855 new label field. Make it the first field in the struct. Update
1856 references to type to use u.type instead.
1857 (struct c_spot_bindings): Define.
1858 (struct c_goto_bindings): Define.
1859 (c_goto_bindings_p): Define, along with VECs.
1860 (struct c_label_vars): Define.
1861 (struct c_scope): Add has_label_bindings field.
1862 (bind_label, set_spot_bindings): New static functions.
1863 (decl_jump_unsafe, update_spot_bindings): New static functions.
1864 (update_label_decls): New static function.
1865 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
1866 Update binding u.label field to shadowed field.
1867 (c_binding_start_stmt_expr): New function.
1868 (c_binding_end_stmt_expr): New function.
1869 (pushdecl): Don't call c_begin_vm_scope.
1870 (make_label): Add defining and p_label_vars parameters. Change
1872 (lookup_label): Correct test for whether a label has not yet been
1873 defined. Call bind_label rather than bind.
1874 (warn_about_goto): New static function.
1875 (lookup_label_for_goto): New function.
1876 (declare_label): Call bind_label rather than bind.
1877 (check_earlier_gotos): New static function.
1878 (define_label): Don't give errors about jumping into statement
1879 expressions or scopes of variably modified types. Call
1880 set_spot_bindings and check_earlier_gotos. Call bind_label
1881 instead of bind. Don't set label_context_stack_se or
1882 label_context_stack_vm.
1883 (c_get_switch_bindings): New function.
1884 (c_release_switch_bindings): New function.
1885 (c_check_switch_jump_warnings): New function.
1886 (start_function): Don't set label_context_stack_se or
1887 label_context_stack_vm.
1888 (finish_function): Likewise.
1889 * c-typeck.c (label_context_stack_se): Don't define.
1890 (label_context_stack_vm): Don't define.
1891 (c_finish_goto_label): Call lookup_label_for_goto rather than
1892 lookup_label. Don't give errors about jumping into a statement
1893 expression or the scope of a variably modified type. Don't set
1894 label_context_stack_se or label_context_stack_vm.
1895 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
1896 fields. Add bindings field.
1897 (c_start_case): Don't set deleted fields. Set bindings field.
1898 (do_case): Rework order of tests. Don't check blocked_stmt_expr
1899 or blocked_vm. Call c_check_switch_jump_warnings.
1900 (c_finish_case): Don't test blocked_stmt_expr field. Call
1901 c_release_switch_bindings.
1902 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
1903 c_switch_stack. Don't walk label_context_stack_se labels. Don't
1904 set label_context_stack_se. Call c_bindings_start_stmt_expr.
1905 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
1906 c_switch_stack. Don't walk label_context_stack_se labels. Don't
1907 set label_context_stack_se. Call c_bindings_end_stmt_expr.
1908 (c_begin_vm_scope, c_end_vm_scope): Don't define.
1909 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
1910 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
1911 (C_DECL_UNJUMPABLE_VM): Don't define.
1912 (C_DECL_UNDEFINABLE_VM): Don't define.
1913 (struct c_label_list): Don't define.
1914 (struct c_label_context_se): Don't define.
1915 (struct c_label_context_vm): Don't define.
1916 (struct c_spot_bindings): Declare.
1917 (c_bindings_start_stmt_expr): Declare.
1918 (c_bindings_end_stmt_expr): Declare.
1919 (lookup_label_for_goto): Declare.
1920 (c_get_switch_bindings, c_release_switch_bindings): Declare.
1921 (c_check_switch_jump_warnings): Declare.
1922 (label_context_stack_se, label_context_stack_vm): Don't declare.
1923 (c_finish_goto_label): Update declaration.
1924 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
1925 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
1926 (Warning Options): Document -Wjump-misses-init.
1928 2009-06-15 Jakub Jelinek <jakub@redhat.com>
1930 * tree-object-size.c (addr_object_size): Fix a pasto in the last
1933 2009-06-15 Rafael Avila de Espindola <espindola@google.com>
1935 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
1937 2009-06-15 Aldy Hernandez <aldyh@redhat.com>
1939 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
1941 2009-06-15 Aldy Hernandez <aldyh@redhat.com>
1943 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
1945 2009-06-15 Rafael Avila de Espindola <espindola@google.com>
1947 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
1948 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
1949 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
1950 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
1951 * dwarf2asm.c (dw2_force_const_mem): Update call to
1953 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
1954 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
1955 * langhooks.c (lhd_comdat_group): Remove.
1956 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
1957 * tree.h (DECL_COMDAT_GROUP): New.
1958 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
1959 (tree_decl_with_vis): Add comdat_group. Remove one_only.
1960 (make_decl_one_only): Change signature.
1961 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
1963 (make_decl_one_only): Change signature.
1964 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
1966 2009-06-15 Richard Guenther <rguenther@suse.de>
1969 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
1971 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1973 * tree-ssa-math-opts.c: Remove extra divide.
1975 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1977 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
1979 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1981 * passes.c: Add bswap pass.
1982 * tree-pass.h: Add pass_optimize_bswap declaration.
1983 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
1984 Include rtl.h, expr.h and optabs.h for optab_handler check.
1985 (struct symbolic_number, pass_optimize_bswap): New definition.
1986 (do_shift_rotate, verify_symbolic_number_p): New functions.
1987 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
1988 (gate_optimize_bswap): New function.
1989 * tree.c (widest_int_cst_value): New function.
1990 * tree.h (widest_int_cst_value): Prototype added.
1992 2009-06-14 Steven Bosscher <steven@gcc.gnu.org>
1994 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
1995 REG_EQUAL/REG_EQUIV notes.
1997 2009-06-14 Richard Guenther <rguenther@suse.de>
2000 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
2001 has its address taken if NRV was applied and it is addressable.
2002 * tree-ssa-structalias.c (get_constraint_for_address_of): New
2003 function split out from ...
2004 (get_constraint_for_1): ... here.
2005 (handle_rhs_call): Use it to mark the return slot escaped if
2006 it is addressable and NRV was applied.
2008 2009-06-13 Aldy Hernandez <aldyh@redhat.com>
2010 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
2011 Change first argument type to location_t.
2012 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
2013 Do not set input_location.
2014 Use loc instead of input_location throughout.
2016 2009-06-13 Richard Guenther <rguenther@suse.de>
2018 PR tree-optimization/40421
2019 * tree-predcom.c (should_unroll_loop_p): Remove.
2020 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
2022 2009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
2024 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2025 Add location argument.
2027 2009-06-13 Aldy Hernandez <aldyh@redhat.com>
2029 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
2031 * config/s390/s390.c (s390_build_builtin_va_list): Same.
2032 (s390_gimplify_va_arg): Pass location to create_artificial_label.
2033 * config/spu/spu-protos.h: Add location to
2034 spu_resolve_overloaded_builtin.
2035 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
2036 spu_build_builtin_va_list.
2037 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
2038 argument. Pass location to build_function_call_vec.
2039 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
2041 (emit_fpu_switch): Same.
2042 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
2043 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
2044 to build_decl and create_artificial_label.
2045 (xtensa_gimplify_va_arg_expr): Same.
2046 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
2047 (xstormy16_gimplify_va_arg_expr): Same.
2048 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
2049 * config/arm/arm.c (arm_build_builtin_va_list): Same.
2050 * config/mips/mips.c (mips_build_builtin_va_list): Same.
2051 (mips16_build_function_stub): Same.
2052 (mips16_build_call_stub): Same.
2054 2009-06-13 Richard Earnshaw <rearnsha@arm.com>
2057 * arm/constraints.md (Pa, Pb): New constraints.
2058 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
2059 split pattern to deal with them.
2061 2009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
2063 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
2064 fix index entry for -Xpreprocessor.
2066 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
2068 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2069 Add location argument to build_decl call.
2070 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
2071 (rs6000_init_builtins): Same.
2072 (spe_init_builtins): Same.
2073 (rs6000_gimplify_va_arg): Add location argument to
2074 create_artificial_label call.
2076 2009-06-12 Steven Bosscher <steven@gcc.gnu.org>
2078 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
2079 * combine-stack-adj.c (pass_stack_adjustments): Use it.
2080 * Makefile.in: Fix GGC dependency for gcse.o.
2082 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
2084 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
2085 * gimple-pretty-print.c (dump_gimple_stmt): Same.
2086 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
2088 * c-parser.c (c_parser_binary_expression): Use current column while
2089 building binary operations.
2090 * common.opt (fshow-column): Enable by default.
2091 * tree-vrp.c (check_array_ref): Use warning_at.
2092 (check_array_bounds): Use location from call back if expr has no
2094 * tree.h: Add location argument to maybe_fold_*.
2095 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
2096 (maybe_fold_offset_to_array_ref): Add location argument and use it.
2097 (maybe_fold_offset_to_component_ref): Same.
2098 (maybe_fold_offset_to_reference): Same.
2099 (maybe_fold_offset_to_address): Same.
2100 (maybe_fold_stmt_indirect): Same.
2101 (maybe_fold_stmt_addition): Same.
2102 (fold_stmt_r): Pass location to maybe_fold_*.
2103 (fold_gimple_assign): Same.
2104 * c-tree.h: Add location argument to finish_decl,
2105 default_function_array_conversion, store_init_value.
2106 * c-decl.c (define_label): Use error_at.
2107 (c_make_fname_decl): Pass location to finish_decl.
2108 (finish_decl): New location argument.
2109 (build_compound_literal): Pass location to store_init_value.
2110 (grokdeclarator): Pass location to finish_decl.
2112 * c-typeck.c (array_to_pointer_conversion): New location argument.
2113 (function_to_pointer_conversion): Same.
2114 (default_function_array_conversion): Same.
2115 (parser_build_unary_op): Pass location to overflow_warning.
2116 (parser_build_binary_op): Same. Use warning_at.
2117 (build_unary_op): Pass location to array_to_pointer_conversion.
2118 (build_c_cast): Pass location to digest_init.
2119 (build_modify_expr): New location argument.
2120 (convert_for_assignment): Same.
2121 (store_init_value): Same.
2122 (digest_init): Same.
2123 (output_init_element): Pass location to digest_init and
2124 array_to_pointer_conversion.
2125 (c_finish_return): Pass location to convert_for_assignment.
2126 * gimplify.c (gimplify_conversion): Pass location to
2127 maybe_fold_offset_to_address.
2128 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
2129 to maybe_fold_stmt_addition.
2130 * c-omp.c (c_finish_omp_atomic): Pass new location to
2132 (c_finish_omp_for): Same.
2133 * c-common.c (overflow_warning): New argument.
2134 * c-common.h: New argument to build_modify_expr, overflow_warning.
2135 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
2137 (c_parser_initializer): Pass location to
2138 default_function_array_conversion.
2139 (c_parser_initelt): Same.
2140 (c_parser_initval): Same.
2141 (c_parser_asm_operands): Same.
2142 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
2143 (c_parser_conditional_expression): Same.
2144 (c_parser_binary_expression): Add location info to stack. Use it.
2145 (c_parser_unary_expression): Pass location to
2146 default_function_array_conversion, parser_build_unary_op,
2147 build_indirect_ref, c_parser_postfix_expression_after_primary.
2148 (c_parser_postfix_expression_after_primary): New location argument.
2150 (c_parser_expression_conv): Pass location to
2151 default_function_array_conversion.
2152 (c_parser_expr_list): Same.
2153 (c_parser_omp_atomic): Same.
2154 (c_parser_omp_for_loop): Same.
2155 * c-tree.h: (struct c_declarator): Add comment to id_loc.
2156 (build_array_declarator): New argument.
2157 * c-decl.c (build_array_declarator): Add location argument.
2158 (grokdeclarator): Set id_loc for cdk_array.
2159 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
2160 build_array_declarator.
2161 * tree.c (build_omp_clause): Add location argument.
2162 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
2163 (OMP_CLAUSE_LOCATION): New macro.
2164 (struct tree_omp_clause): Add location field.
2165 (build_omp_clause): Add argument.
2166 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
2167 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
2169 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
2170 (cp_parser_omp_clause_collapse): Same.
2171 (cp_parser_omp_clause_default): Same.
2172 (cp_parser_omp_clause_if): Same.
2173 (cp_parser_omp_clause_nowait): Same.
2174 (cp_parser_omp_clause_num_threads): Same.
2175 (cp_parser_omp_clause_ordered): Same.
2176 (cp_parser_omp_clause_schedule): Same.
2177 (cp_parser_omp_clause_untied): Same.
2178 (cp_parser_omp_for_loop): Same.
2179 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
2180 * c-tree.h (c_start_case): Add location argument.
2181 (c_process_expr_stmt): Same.
2182 (c_finish_goto_*): Same.
2183 * tree-parloops.c (initialize_reductions): Pass location to
2185 (create_parallel_loop): Same.
2186 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
2187 (gfc_trans_omp_reduction_list): Same.
2188 (gfc_trans_omp_clauses): Same.
2189 (gfc_trans_omp_do): Same.
2190 * c-typeck.c (c_finish_goto_label): Same.
2191 (c_finish_goto_ptr): New location argument.
2192 (c_start_case): Same.
2193 (emit_side_effect_warnings): Same.
2194 (c_process_expr_stmt): Same.
2195 (c_finish_stmt_expr): Same.
2196 (c_finish_omp_clauses): Use error_at instead of error.
2197 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
2199 * c-omp.c (c_split_parallel_clauses): New location argument.
2200 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
2201 to build_omp_clause.
2202 (convert_local_reference_stmt): Same.
2203 (convert_gimple_call): Same.
2204 * c-common.h (c_split_parallel_clauses): New argument.
2205 * c-parser.c (c_parser_statement_after_labels): Pass location to
2206 c_finish_goto_label.
2207 (c_parser_switch_statement): Pass location to c_start_case.
2208 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
2209 and c_process_expr_stmt.
2210 (c_parser_omp_variable_list): Add location argument.
2211 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
2212 (c_parser_omp_clause_default): Same.
2213 (c_parser_omp_clause_if): Same.
2214 (c_parser_omp_clause_num_threads): Same.
2215 (-c_parser_omp_clause_ordered): Same.
2216 (c_parser_omp_clause_reduction): Pass location to
2217 c_parser_omp_variable_list.
2218 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
2219 (c_parser_omp_clause_untied): Same.
2220 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
2221 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
2223 * c-tree.h (check_for_loop_decls, undeclared_variable,
2224 build_component_ref, build_array_ref, build_external_ref,
2225 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
2226 build_conditional_expr, build_compound_expr, c_cast_expr,
2227 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
2228 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
2230 * c-semantics.c (build_stmt): Same.
2231 (build_case_label): Same.
2232 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
2233 (undeclared_variable): New argument.
2235 (lookup_label): Pass location on down.
2236 (define_label): Same.
2237 (finish_decl): Same.
2238 (build_compound_literal): Same.
2239 (finish_struct): Same.
2240 (finish_function): Do not set location here.
2241 (check_for_loop_decls): New argument.
2242 * tree.c (save_expr): Set location.
2243 (build_empty_stmt): New argument.
2244 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
2245 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
2246 * builtins.c (gimplify_va_arg_expr): Use locations.
2247 (expand_builtin_sync_operation): Same.
2248 * c-typeck.c (build_component_ref): New argument.
2249 (build_array_ref): Same.
2250 (build_external_ref): Same.
2251 (c_expr_sizeof_expr): Same.
2252 (c_expr_sizeof_type): Same.
2253 (parser_build_unary_op): Same.
2254 (build_conditional_expr): Same.
2255 (build_compound_expr): Pass location on down.
2256 (build_compound_expr): New argument.
2257 (build_c_cast): Same.
2258 (c_cast_expr): Same.
2259 (build_asm_expr): Same.
2260 (c_finish_return): Same.
2261 (c_process_expr_stmt): Pass location on down.
2262 (c_finish_stmt_expr): New argument.
2263 (push_clenaup): Same.
2264 (c_finish_omp_parallel): Same.
2265 (c_finish_omp_task): Same.
2266 * gimplify.c (gimplify_call_expr): Pass location on down.
2267 * c-omp.c (c_finish_omp_master): New argument.
2268 (c_finish_omp_critical): Same.
2269 (c_finish_omp_ordered): Same.
2270 (c_finish_omp_barrier): Same.
2271 (-c_finish_omp_taskwait): Same.
2272 (c_finish_omp_atomic): Same.
2273 (c_finish_omp_flush): Same.
2274 * tree-inline.c (copy_tree_body_r): Pass location on down.
2275 (inline_forbidden_p): Remove use of input_location.
2276 * c-gimplify.c (c_build_bind_expr): New argument.
2277 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
2278 (c_sizeof_or_alignof_type): New argument.
2279 (c_alignof_expr): Same.
2280 (build_va_arg): Same.
2281 (c_add_case_label): Same.
2282 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
2283 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
2284 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
2285 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
2286 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
2287 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
2289 * stub-objc.c (objc_build_selector_expr): Same.
2290 (objc_build_throw_stmt): Same.
2291 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
2292 (c_parser_initelt): Same.
2293 (c_parser_compound_statement): Same.
2294 (c_parser_compound_statement_nostart): Same.
2295 (c_parser_label): Same.
2296 (c_parser_statement_after_labels): Same.
2297 (c_parser_if_body): Same.
2298 (c_parser_else_body): Same.
2299 (c_parser_if_statement): Same.
2300 (c_parser_switch_statement): Same.
2301 (c_parser_while_statement): Same.
2302 (c_parser_do_statement): Same.
2303 (c_parser_for_statement): Same.
2304 (c_parser_asm_statement): Same.
2305 (c_parser_conditional_expression): Same.
2306 (c_parser_binary_expression): Same.
2307 (c_parser_cast_expression): Same.
2308 (c_parser_unary_expression): Same.
2309 (c_parser_sizeof_expression): Same.
2310 (c_parser_alignof_expression): Same.
2311 (c_parser_postfix_expression): Same.
2312 (c_parser_expression): Same.
2313 (c_parser_objc_receiver): Same.
2314 (c_parser_omp_variable_list): Same.
2315 (c_parser_omp_structured_block): Same.
2316 (c_parser_omp_atomic): New argument.
2317 (c_parser_omp_barrier): Same.
2318 (c_parser_omp_critical): Same.
2319 (c_parser_omp_flush): Pass location on down.
2320 (c_parser_omp_for_loop): New argument.
2321 (c_parser_omp_for): Same.
2322 (c_parser_omp_master): Same.
2323 (c_parser_omp_ordered): Same.
2324 (c_parser_omp_sections_scope): Same.
2325 (c_parser_omp_sections): Same.
2326 (c_parser_omp_parallel): Same.
2327 (c_parser_omp_single): Same.
2328 (c_parser_omp_task): Same.
2329 (c_parser_omp_taskwait): Pass location on down.
2330 (c_parser_omp_construct): Same.
2331 (c_parser_omp_threadprivate): Same.
2332 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
2333 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
2334 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
2335 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
2336 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
2337 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
2338 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
2339 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
2340 config/i386/i386.c, stmt.c:
2341 Add location argument to the following function definitions and/or
2342 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
2343 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
2344 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
2345 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
2346 do_case, c_finish_bc_stmt, build_compound_literal,
2347 build_function_call.
2348 * c-decl.c (build_compound_literal): Add location argument.
2349 Make all diagnostic calls use location.
2350 (start_struct): Same.
2351 (finish_struct): Same.
2353 (build_enumerator): Same.
2354 (start_function): Same.
2355 (grokdeclarator): Make all diagnostic calls use location.
2356 (store_parm_decls_oldstyle): Same.
2357 * c-typeck.c (build_function_call): Add location argument.
2358 Make all diagnostic calls use location.
2360 (c_finish_bc_stmt): Same.
2361 * tree-nested.c (get_trampoline_type): Add argument.
2362 Pass location to build_decl.
2363 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
2364 * rtl.h (RTL_LOCATION): New.
2365 * c-common.c (c_add_case_label): Add location argument.
2366 Make all diagnostic calls use location.
2367 * c-common.h: Add location argument to make_fname_decl, do_case,
2368 c_add_case_label, build_function_call, resolve_overloaded_builtin.
2369 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
2370 Set it appropriately for every case. Pass enum_loc to start_enum
2371 call. Pass value_loc first to build_enumerator. Pass enum_loc to
2373 (c_parser_struct_or_union_specifier): Save location. Use it for
2374 start_struct, finish_struct, and parser_xref_tag.
2376 2009-06-12 Ian Lance Taylor <iant@google.com>
2378 * fold-const.c (fold_unary): Rename local variable and to and_expr.
2380 * c-opts.c (c_common_handle_option): For -Wc++-compat set
2381 cpp_opts->warn_cxx_operator_names.
2383 2009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
2386 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
2387 is returns NULL and OP is a VCE, look through the VCE.
2389 2009-06-12 Ian Lance Taylor <iant@google.com>
2392 * collect2.c (main): Use CONST_CAST2 in code inside #if
2393 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
2395 2009-06-12 Joey Ye <joey.ye@intel.com>
2398 * cfgexpand.c (get_decl_align_unit): Update
2399 max_used_stack_slot_alignment with align instead of
2400 stack_alignment_needed.
2402 * function.c (assign_stack_local_1): Update
2403 max_used_stack_slot_alignment with alignment_in_bits instead
2404 of stack_alignment_needed.
2405 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
2408 2009-06-12 Jakub Jelinek <jakub@redhat.com>
2410 * dwarf2out.c (last_var_location_insn): New variable.
2411 (dwarf2out_end_epilogue): Clear last_var_location_insn.
2412 (dwarf2out_var_location): Don't record anything after last real
2413 insn. Only change labels if there were any real instructions
2414 in between last note and this one, or if changed sections.
2416 2009-06-11 Richard Henderson <rth@redhat.com>
2418 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
2419 note when storing the frame pointer in a register.
2420 (FRP): Don't redefine to nothing for epilogue.
2421 (alpha_expand_epilogue): Mark register and sp restores.
2422 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
2424 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
2425 when gen_lowpart is needed.
2427 2009-06-11 Richard Henderson <rth@redhat.com>
2429 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
2431 * dwarf2out.c (need_data_align_sf_opcode): New.
2432 (div_data_align): Move earlier.
2433 (def_cfa_1, reg_save): Use it.
2435 2009-06-11 H.J. Lu <hongjiu.lu@intel.com>
2437 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
2438 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
2439 (ix86_handle_option): Handle OPT_mcrc32.
2440 (ix86_target_string): Add -mcrc32.
2441 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
2443 * config/i386/i386.h (TARGET_CRC32): New.
2445 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
2446 (sse4_2_crc32di): Likewise.
2448 * config/i386/i386.opt (mcrc32): New.
2450 * doc/invoke.texi: Document -mcrc32.
2452 2009-06-11 Richard Henderson <rth@redhat.com>
2454 * common.opt (gdwarf-): Accept a version number.
2455 * doc/invoke.texi (gdwarf-): Update docs.
2456 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
2457 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
2458 version level, and record it.
2460 * dwarf2.h (DW_CIE_VERSION): Remove.
2461 * dwarf2out.c (DWARF_VERSION): Remove.
2462 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
2463 (output_call_frame_info): Use CIE version 3 for dwarf3,
2464 or if the return register column is out of range for version 1.
2465 (dwarf_stack_op_name): Add all dwarf3 values.
2466 (DEBUG_PUBTYPES_SECTION): New.
2467 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
2468 encoding change for dwarf3.
2469 (output_die) [dw_val_class_die_ref]: Likewise.
2470 (output_compilation_unit_header): Emit correct version for dwarf3.
2471 (output_line_info): Likewise.
2472 (output_pubnames): Update for DWARF_VERSION removal.
2473 (output_aranges): Likewise.
2474 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
2475 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
2476 (dwarf2out_finish): Likewise.
2478 2009-06-11 David Daney <ddaney@caviumnetworks.com>
2480 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
2483 2009-06-11 David Daney <ddaney@caviumnetworks.com>
2486 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
2487 * builtins.c (expand_builtin_unreachable): New function.
2488 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
2489 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
2490 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
2492 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
2493 searching for missing barriers.
2495 2009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2497 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
2498 when -fprofile-generate* was passed.
2499 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
2501 2009-06-11 Anthony Green <green@moxielogic.com>
2503 * config/moxie/moxie.md: Define length attribute for all instructions.
2505 (*b<cond:code>): Support limited branch ranges for new PC-relative
2506 branch instructions.
2507 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
2509 2009-06-11 Jakub Jelinek <jakub@redhat.com>
2511 * config/i386/i386.c (min_insn_size): Use get_attr_length
2512 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
2515 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
2516 instead of emit_insn_before.
2518 2009-06-10 Ian Lance Taylor <iant@google.com>
2521 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
2524 2009-06-10 Revital Eres <eres@il.ibm.com>
2526 * passes.c (init_optimization_passes): Reschedule
2527 predictive-commoning pass before complete unroll pass.
2529 2009-06-10 Martin Jambor <mjambor@suse.cz>
2531 * cgraph.c (cgraph_node_can_be_local_p): New function.
2532 (cgraph_make_node_local): New function.
2533 * cgraph.h (cgraph_node_can_be_local_p): Declare.
2534 (cgraph_make_node_local): Declare.
2536 2009-06-10 Nathan Froyd <froydnj@codesourcery.com>
2538 * tree.h (tree_base): Add packed_flag and user_align fields.
2539 Decrease size of spare field.
2540 (TYPE_USER_ALIGN): Use user_align from tree_base.
2541 (DECL_USER_ALIGN): Likewise.
2542 (TYPE_PACKED): Use packed_flag from tree_base.
2543 (DECL_PACKED): Likewise.
2544 (tree_type): Delete packed_flag and user_align fields. Widen
2545 precision field. Widen mode field and shuffle fields to align
2546 mode on an 8-bit boundary.
2547 (tree_decl_common): Delete decl_flag_1 and user_align fields.
2548 Renumber decl_flag_* fields. Fix comments. Widen
2549 decl_common_unused field.
2550 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
2551 (DECL_EXTERNAL): Likewise.
2552 (DECL_BIT_FIELD): Likewise.
2553 (DECL_NONADDRESSABLE_P): Likewise.
2554 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
2555 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
2557 2009-06-10 Ian Lance Taylor <iant@google.com>
2559 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
2560 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
2561 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
2562 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
2563 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
2564 DEF_VEC_ALLOC_FUNC_P.
2565 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
2566 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
2567 DEF_VEC_ALLOC_FUNC_O.
2568 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
2569 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
2570 DEF_VEC_ALLOC_FUNC_I.
2571 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
2572 (vec_stack_p_reserve_exact_1): Declare.
2573 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
2574 (vec_stack_free): Declare.
2575 (VEC_stack_alloc): Define.
2576 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
2577 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
2578 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
2579 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
2581 (stack_vecs): New static variable.
2582 (vec_stack_p_reserve_exact_1): New function.
2583 (vec_stack_o_reserve_1): New static function.
2584 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
2585 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
2586 (vec_stack_free): New function.
2587 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
2588 (VEC_df_ref_stack_alloc): Define.
2589 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
2590 DEF_VEC_ALLOC_P_STACK.
2591 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
2592 (struct df_collection_rec): Change _vec fields to VEC. Remove
2594 (df_free_collection_rec): Adjust for new fields.
2595 (df_insn_rescan): Use new df_collection_rec fields.
2596 (df_notes_rescan, df_canonize_collection_rec): Likewise.
2597 (df_ref_create_structure, df_ref_record): Likewise.
2598 (df_get_conditional_uses, df_get_call_refs): Likewise.
2599 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
2600 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
2601 (df_record_exit_block_uses, df_bb_verify): Likewise.
2602 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
2603 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
2604 Remove count parameter. Change return type to void. Change all
2606 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
2607 Remove count parameter. Change return type to void. Change all
2609 (df_install_refs): Change old_vec parameter to VEC. Remove count
2610 parameter. Change all callers.
2611 (df_install_mws): Change old_vec parameter to VEC. Remove count
2612 parameter. Change all callers.
2613 (df_refs_verify): Change new_rec parameter to VEC. Change call
2615 (df_mws_verify): Likewise.
2617 2009-06-10 Alexandre Oliva <aoliva@redhat.com>
2619 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
2621 2009-06-10 H.J. Lu <hongjiu.lu@intel.com>
2623 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
2625 2009-06-10 Anthony Green <green@moxielogic.com>
2627 * config/moxie/crti.asm: New file.
2628 * config/moxie/crtn.asm: New file.
2629 * config/moxie/moxie.c: New file.
2630 * config/moxie/moxie.h: New file.
2631 * config/moxie/sfp-machine.h: New file.
2632 * config/moxie/moxie-protos.h: New file.
2633 * config/moxie/t-moxie: Created.
2634 * config/moxie/t-moxie-softfp: Created.
2635 * config/moxie/moxie.md: Created.
2636 * config/moxie/constraints.md: Created.
2637 * config.gcc: Add moxie support.
2638 * doc/md.texi (Machine Constraints): Add moxie constraints.
2639 * doc/contrib.texi (Contributors): Mention moxie port.
2640 * doc/install.texi (Specific): Mention the moxie port.
2642 2009-06-09 Ian Lance Taylor <iant@google.com>
2644 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
2646 * optabs.c (optab_table): Only use designated initializers if
2647 HAVE_DESIGNATED_INITIALIZERS is defined.
2648 (convert_optab_table): Likewise.
2649 (init_optabs): Always call init_insn_codes if
2650 HAVE_DESIGNATED_INITIALIZERS is not defined.
2652 2009-06-09 Ian Lance Taylor <iant@google.com>
2654 * targhooks.c (default_builtin_vectorized_function): Change fn
2655 parameter to unsigned int.
2656 (default_builtin_vectorized_conversion): Change code parameter to
2658 (default_builtin_reciprocal): Change fn parameter to unsigned int.
2659 * targhooks.h: Update declarations.
2660 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
2661 parameter to unsigned int.
2663 * c-typeck.c (comptypes_check_enum_int): New static function.
2664 (comptypes_internal): Add enum_and_int_p parameter. Change all
2666 (comp_target_types): Add location parameter. Change all callers.
2667 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
2669 (function_types_compatible_p, type_lists_compatible_p): Likewise.
2670 (build_conditional_expr): Add colon_loc parameter. Change all
2672 (convert_for_assignment): Add location parameter. Change all callers.
2673 * c-parser.c (c_parser_conditional_expression): Pass location of
2674 colon to build_conditional_expr.
2675 * c-tree.h (build_conditional_expr): Update declaration.
2677 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
2679 * graphite.c: Revert previous patch.
2681 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
2684 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
2686 2009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
2688 * tree-ssa-loop-prefetch.c
2689 (loop_prefetch_arrays): Fixed a portability problem in printf format
2692 2009-06-09 Martin Jambor <mjambor@suse.cz>
2694 PR tree-optimization/40351
2695 * tree-sra.c (propagate_subacesses_accross_link): Check that a
2696 refrence to a potential artifical subaccess can be constructed.
2698 2009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
2700 * config/sh/sh-protos.h (sh_optimization_options): Declare.
2701 (sh_override_options): Likewise.
2702 * config/sh/sh.c: Include params.h.
2703 (sh_optimization_options): New.
2704 (sh_override_options): Likewise.
2705 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
2706 (OVERRIDE_OPTIONS): Use sh_override_options.
2708 2009-06-08 Jakub Jelinek <jakub@redhat.com>
2710 * dwarf2out.c (emit_cfa_remember): New variable.
2711 (add_fde_cfi): If emit_cfa_remember, recurse to add
2712 DW_CFA_remember_state first.
2713 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
2714 instead just set emit_cfa_remember.
2716 2009-06-08 Jan Hubicka <jh@suse.cz>
2719 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
2721 2009-06-08 Jan Hubicka <jh@suse.cz>
2724 * cgraphunit.c (save_inline_function_body): Do not copy transform
2725 hooks for saved inline bodies.
2726 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
2729 2009-06-08 Adam Nemet <anemet@caviumnetworks.com>
2731 * jump.c (returnjump_p): Handle delayed branches. Add missing
2734 2009-06-08 Jan Hubicka <jh@suse.cz>
2737 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
2738 original node might've been modified.
2739 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
2741 2009-06-08 Jakub Jelinek <jakub@redhat.com>
2743 * tree-object-size.c (addr_object_size): Add OSI argument.
2744 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
2745 (compute_builtin_object_size, expr_object_size): Adjust callers.
2746 (plus_stmt_object_size): Call addr_object_size instead of
2747 compute_builtin_object_size.
2749 2009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
2750 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
2752 * tree-ssa-loop-prefetch.c
2753 (gather_memory_references): Introduced a counter for the number of
2755 (anything_to_prefetch_p): Introduced a counter for the number of
2757 (is_loop_prefetching_profitable): New function with a cost model
2759 (loop_prefetch_arrays): Use the new cost model to determine if
2760 prefetching is profitable.
2761 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
2762 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2763 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
2764 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2765 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
2766 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2768 2009-06-08 Michael Matz <matz@suse.de>
2771 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
2772 partitions use the same.
2773 (expand_one_var): Deal with DECL_RTL sometimes begin set also
2774 for basevars of SSA_NAMEs.
2775 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
2776 to not expand them twice.
2777 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
2780 2009-06-08 Alexandre Oliva <aoliva@redhat.com>
2782 * common.opt (fcompare-debug=, fcompare-debug-second): New.
2783 (fdump-final-insns=, gtoggle): New.
2784 * doc/invoke.texi: Document them.
2785 * final.c (rest_of_clean_state): Dump final insn stream.
2786 * gcc.c (invoke_as): Hook in -fcompare-debug.
2787 (static_spec_functions): Add compare-debug-dump-opt,
2788 compare-debug-self-opt and compare-debug-auxbase-opt.
2789 (compare_debug, compare_debug_second, compare_debug_opt): New.
2790 (switches_debug_check, n_switches_debug_check): New.
2791 (debug_auxbase_opt, debug_check_temp_file): New.
2792 (process_command): Handle -fno-compare-debug, -fcompare-debug and
2794 (do_self_spec): Handle arguments after switches.
2795 (do_spec_1): Add .gk extension to temp file basenames for compare.
2796 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
2797 (cc1_options): Use it instead of normal auxbase computation for
2798 the second compare-debug compilation.
2799 (compare_files): New.
2800 (main): Set up and implement compare debug mode.
2801 (compare_debug_dump_opt_spec_function): New.
2802 (compare_debug_self_opt_spec_function): New.
2803 (compare_debug_auxbase_opt_spec_function): New.
2804 * toplev.c (process_options): Handle flag_gtoggle,
2805 flag_dump_final_insns.
2806 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
2807 during -fcompare-debug-second compilation.
2809 2009-06-07 Ian Lance Taylor <iant@google.com>
2811 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
2812 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
2814 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
2815 with no default node. Change warning with %H to warning_at.
2816 Don't clear warn_switch around case checking.
2817 * doc/invoke.texi (Warning Options): Clarify distinction between
2818 -Wswitch and -Wswitch-enum.
2820 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2822 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
2824 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2826 * gbl-ctors.h: Add header guard.
2828 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2830 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
2831 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
2832 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
2833 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
2834 prototypes for removed functions.
2835 (expressions_equal_p): Move to ...
2836 * tree-ssa-sccvn.h: ... here and ...
2837 * matrix-reorg.c: ... adjust includes.
2839 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2841 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
2843 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2845 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
2846 (finish_function): Remove erroneous whitespace.
2848 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2850 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
2851 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
2853 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2855 * errors.c (internal_error): Commentary typo fix.
2856 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
2857 * tree-ssa-pre.c: Ditto.
2859 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2861 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
2862 them is supposed to hold actual statements.
2864 2009-06-06 Ian Lance Taylor <iant@google.com>
2866 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
2867 empty statements can now have attributes.
2869 2009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
2871 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
2872 * config/mips/mips.md: Ditto.
2874 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
2876 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
2878 (__eabi_uconvert): Likewise.
2880 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
2882 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
2883 CFI_* definitions with IN_GCC.
2885 2009-06-05 David Edelsohn <edelsohn@gnu.org>
2887 * xcoffout.h (xcoffout_source_line): Update prototype.
2889 2009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2891 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
2892 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
2894 2009-06-05 Jakub Jelinek <jakub@redhat.com>
2897 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
2898 inlined_function_outer_scope_p blocks for artificial inlines
2900 * tree.c (tree_nonartificial_location): Rewrite using
2901 block_nonartificial_location.
2903 2009-06-05 Revital Eres <eres@il.ibm.com>
2904 Leehod Baruch <leehod@il.ibm.com>
2906 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
2907 (expand_expr_real_1): Remove comment.
2908 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2909 Vectorize misaligned access when the target supports it.
2910 (vect_supportable_dr_alignment): Check for unaligned access support.
2911 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
2914 2009-06-05 Julian Brown <julian@codesourcery.com>
2916 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
2917 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
2919 2009-06-05 Richard Guenther <rguenther@suse.de>
2922 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
2925 2009-06-05 Jakub Jelinek <jakub@redhat.com>
2927 * config/s390/s390.c (global_not_special_regno_p): New static inline.
2928 (save_gprs): Don't tell unwinder when a global register is saved.
2929 (s390_emit_epilogue): Emit needed epilogue unwind info.
2931 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
2933 * dwarf2out.c (deferred_asm_name): New.
2934 (add_name_and_src_coords_attributes): Defer creation of
2935 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
2937 (move_linkage_attr): New.
2938 (dwarf2out_finish): Revisit deferrals and emit attributes at the
2941 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
2943 * tree-nested.c (finalize_nesting_tree_1): Declare the
2944 frame_decl in the binding tree.
2946 2009-06-04 Cary Coutant <ccoutant@google.com>
2948 * basic-block.h (struct basic_block_def): Add discriminator field.
2949 * dbxout.c (dbxout_source_line): Add new parameter. Change all
2951 * debug.c (do_nothing_debug_hooks): Add additional entry.
2952 (debug_nothing_int_charstar_int): New function.
2953 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
2954 (debug_nothing_int_charstar_int): New declaration.
2955 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
2956 discriminator value in .loc directive.
2957 * final.c (last_discriminator): New variable.
2958 (discriminator): New variable.
2959 (final_start_function): Initialize above variables, pass current
2960 discriminator to debug hook.
2961 (notice_source_line): Check for discriminator change.
2962 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
2963 * sdbout.c (sdbout_source_line): New parameter.
2964 * tree-cfg.c (struct locus_discrim_map): New structure type.
2965 (discriminator_per_locus): New hash table.
2966 (build_gimple_cfg): Allocate and free discriminator hash table.
2967 (make_edges): Call assign_discriminator.
2968 (locus_map_hash): New function.
2969 (locus_map_eq): New function.
2970 (next_discriminator_for_locus): New function.
2971 (same_line_p): New function.
2972 (assign_discriminator): New function.
2973 (make_cond_expr_edges): Call assign_discriminator.
2974 (make_gimple_switch_edges): Likewise.
2975 (first_non_label_stmt): New function.
2976 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
2978 * xcoffout.c (xcoffout_source_line): Add new parameter.
2980 * configure.ac (gcc_cv_as_discriminator): New configury check for
2981 gas support for discriminator.
2982 * configure: Regenerate.
2983 * config.in: Regenerate.
2985 2009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2987 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
2988 val after checking for integers.
2990 2009-06-04 Uros Bizjak <ubizjak@gmail.com>
2992 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
2994 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
2995 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
2996 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
2997 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
2998 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
2999 X64_SSE_REGPARM_MAX.
3000 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
3001 X64_SSE_REGPARM_MAX.
3003 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
3005 * gcc.c (report_times_to_file): New.
3006 (execute): Implement it.
3007 (process_command): Support -time=.
3008 * doc/invoke.texi: Document it.
3010 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
3012 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
3013 that have value exprs.
3015 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
3017 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
3018 declarations for constants until...
3019 (dw2_output_indirect_constant_1): ... this point.
3021 2009-06-04 Richard Earnshaw <rearnsha@arm.com>
3024 * arm.md (arm_addsi3): Don't try to split an add with an
3025 eliminable register until after reload has completed.
3027 2009-06-03 Ian Lance Taylor <iant@google.com>
3029 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
3030 * genattrtab.c (write_length_unit_log): Likewise.
3031 * genchecksum.c (dosum): Likewise.
3032 * gengtype.c (write_rtx_next): Likewise.
3033 (finish_root_table, write_roots): Likewise.
3034 * gimple.c (gimple_ops_offset_): Likewise.
3035 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
3036 * config/arc/arc.c (arc_attribute_table): Likewise.
3037 * config/arm/arm.c (arm_attribute_table): Likewise.
3038 * config/avr/avr.c (avr_attribute_table): Likewise.
3039 * config/crx/crx.c (crx_attribute_table): Likewise.
3040 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
3041 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
3042 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
3043 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
3044 * config/sh/sh.c (sh_attribute_table): Likewise.
3045 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
3046 * config/spu/spu.c (spu_attribute_table): Likewise.
3047 * config/v850/v850.c (v850_attribute_table): Likewise.
3049 * config/alpha/alpha.c (vms_attribute_table): Make static.
3050 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
3051 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
3052 * config/mips/mips.c (mips_attribute_table): Likewise.
3054 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
3056 (cc1-checksum.o): Likewise.
3058 2009-06-03 Steve Ellcey <sje@cup.hp.com>
3060 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
3062 2009-06-03 Jakub Jelinek <jakub@redhat.com>
3064 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
3065 insn if it is changing sp. Use gen_add3_insn instead of
3066 conditionally gen_addsi3 and gen_adddi3.
3067 (offset_below_red_zone_p): New static inline function.
3068 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
3069 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
3070 * config/rs6000/ppc-asm.h: Include auto-host.h.
3071 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
3072 CFI_RESTORE): Define.
3073 * config/rs6000/crtresxgpr.asm: Add unwind info.
3074 * config/rs6000/crtresxfpr.asm: Likewise.
3075 * config/rs6000/crtresgpr.asm: Likewise.
3076 * config/rs6000/crtresfpr.asm: Likewise.
3077 * config/rs6000/crtsavgpr.asm: Likewise.
3078 * config/rs6000/crtsavfpr.asm: Likewise.
3080 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
3081 argument of DWARF2_FRAME_REG_OUT macros.
3083 2009-06-03 Julian Brown <julian@codesourcery.com>
3085 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
3086 words or less (including TImode) in core registers.
3088 2009-06-03 Richard Guenther <rguenther@suse.de>
3091 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
3093 2009-06-03 Andrey Belevantsev <abel@ispras.ru>
3095 * statistics.c (statistics_counter_event): Do not record event
3096 in pass dump if its number == -1.
3097 (curr_statistics_hash): Add assert that we never get passes
3098 with static number == -1.
3100 2009-06-03 Richard Guenther <rguenther@suse.de>
3101 Andrey Belevantsev <abel@ispras.ru>
3103 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
3104 non-BLKmode arrays addressable.
3106 2009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
3108 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
3109 * config/m68k/m68k.h: ... here.
3110 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
3113 2009-06-03 Martin Jambor <mjambor@suse.cz>
3115 PR tree-optimization/40323
3116 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
3119 2009-06-03 Richard Guenther <rguenther@suse.de>
3121 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
3124 2009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
3126 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
3127 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
3128 JUMP_TABLE_DATA_P where applicable.
3129 * config/sh/sh.c: Ditto.
3130 * config/sh/sh.h: Ditto.
3131 * config/sh/sh.md: Ditto.
3132 * config/sh/symbian.c: Ditto.
3134 2009-06-03 Uros Bizjak <ubizjak@gmail.com>
3136 * config/i386/driver-i386.c (describe_cache): Optimize
3137 concatenation of strings. Use snprintf instead of sprintf.
3138 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
3139 target when not compiling with GCC.
3141 2009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
3143 * config/sh/sh.c: Revert last change.
3144 (sh_expand_epilogue): Emit a blockage insn before the frame
3145 pointer adjustment unconditionally.
3147 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
3149 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
3150 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
3151 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
3152 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
3153 to COLLECT_GCC_OPTIONS.
3155 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
3157 * collect2.c (target_system_root): New variable.
3158 (main): Handle --sysroot=.
3159 (ignore_library): Strip the sysroot from the library path.
3161 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
3163 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
3164 (collect2.o): Depend on collect2-aix.h.
3165 (collect2-aix.o): New rule.
3166 * collect2-aix.h: New file.
3167 * collect2-aix.c: Likewise.
3168 * collect2.c: Include collect2-aix.h. Don't undefine
3169 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
3170 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
3171 Use TARGET_AIX_VERSION instead of _AIX51.
3172 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
3173 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
3174 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
3175 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
3176 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
3178 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
3180 * collect2.c (ignore_library): Avoid premature post-increment
3183 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
3185 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
3186 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
3187 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
3188 CROSS_DIRECTORY_STRUCTURE too.
3189 (LINK_LIBG_SPEC): Likewise.
3190 (LIB_SPEC): Add %R to sysroot paths.
3191 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
3192 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
3193 * config/rs6000/aix51.h: As for aix43.h.
3194 * config/rs6000/aix52.h: Likewise.
3195 * config/rs6000/aix53.h: Likewise.
3196 * config/rs6000/aix61.h: Likewise.
3197 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
3198 to the beginning of sysroot paths.
3200 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
3202 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
3203 INSN_LISTs that are out of the REG_NOTE range.
3205 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
3207 * loop-unroll.c (struct iv_to_split): Add pointer to next.
3208 (struct var_to_expand): Likewise.
3209 (struct opt_info): Add head and tail for linked lists of the above.
3210 (analyze_insn_to_expand_var): Initialize next.
3211 (analyze_iv_to_split_insn): Likewise.
3212 (analyze_insns_in_loop): Create linked lists.
3213 (allocate_basic_variable): Simplify for use without hash table.
3214 (insert_var_expansion_initialization): Likewise, make it type-safer.
3215 (combine_var_copies_in_loop_exit): Likewise.
3216 (apply_opt_in_copies): Walk lists rather than hash tables.
3217 (release_var_copies): Simplified and inlined by hand into...
3218 (free_opt_info): ... this function.
3220 2009-06-02 Richard Guenther <rguenther@suse.de>
3222 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
3225 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
3227 * cfgexpand.c (gimple_expand_cfg): Discard the source location
3228 only for builtins that are not overridden.
3230 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
3232 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
3235 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
3237 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
3239 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
3241 * combine.c (move_deaths): Compare LUIDs within the same BB only.
3243 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
3245 * common.opt (fdump-unnumbered-links): New.
3246 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
3247 * print-rtl.c (flag_dump_unnumbered_links): New.
3248 (print_rtx): Test it.
3250 2009-06-02 Richard Earnshaw <rearnsha@arm.com>
3252 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
3253 push/pop multiple to 8-byte alignment.
3255 2009-06-01 Jakub Jelinek <jakub@redhat.com>
3257 * config/i386/i386.c (queued_cfa_restores): New static variable.
3258 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
3260 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
3261 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
3262 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
3263 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
3264 note unconditionally.
3265 (ix86_emit_restore_regs_using_mov): Likewise.
3266 (ix86_emit_restore_sse_regs_using_mov): Likewise.
3267 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
3268 it through to ix86_emit_restore_reg_using_pop.
3269 (ix86_emit_leave): Add RED_OFFSET argument. Call
3270 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
3271 instead of adding REG_CFA_OFFSET note unconditionally.
3272 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
3273 the above functions. Call ix86_add_queued_cfa_restore_notes when
3276 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
3277 force output of the label even for dwarf2out_do_cfi_asm.
3278 (add_fde_cfi): If -g2 and above and cfi might change CFA,
3279 force creation of CFI label and chain DW_CFA_set_loc jumping to it
3280 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
3282 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
3283 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
3284 dwarf2out_cfi_label callers.
3285 * tree.h (dwarf2out_cfi_label): Adjust prototype.
3286 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
3287 Adjust dwarf2out_cfi_label callers.
3288 * config/vax/vax.c (vax_output_function_prologue): Likewise.
3290 * config/i386/i386.h (struct machine_cfa_state,
3291 struct machine_function): Guard with ifndef USED_FOR_TARGET
3292 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
3295 * emutls.c (__emutls_get_address): Change arr->size to mean number
3296 of allocated arr->data entries instead of # of slots + 1.
3299 * recog.c (peep2_reinit_state): New function.
3300 (peephole2_init_state): Use it at the end of a basic block and also
3301 when seeing a RTX_FRAME_RELATED_P insn.
3303 2009-06-01 Steve Ellcey <sje@cup.hp.com>
3305 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
3306 fixuns_truncrfdi2): New.
3307 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
3308 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
3309 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
3310 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
3311 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
3312 *recip_approx): Remove.
3313 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
3314 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
3315 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
3317 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
3320 2009-06-01 Ian Lance Taylor <iant@google.com>
3322 * attribs.c (register_attribute): Use CONST_CAST.
3323 * collect2.c (main): Use CONST_CAST2.
3324 (scan_prog_file): Likewise.
3325 * gcc.c (process_command, main): Likewise.
3326 * toplev.c (toplev_main): Likewise.
3328 * c-typeck.c (handle_warn_cast_qual): New static function,
3329 partially broken out of build_c_cast.
3330 (build_c_cast): Call handle_warn_cast_qual.
3331 * doc/invoke.texi (Warning Options): Document new effect of
3334 2009-06-01 Aldy Hernandez <aldyh@redhat.com>
3336 * diagnostic.c (diagnostic_build_prefix): Always print columns.
3337 (diagnostic_report_current_module): Print columns.
3338 * common.opt (flag_show_column): Enable by default.
3340 2009-06-01 Luis Machado <luisgpm@br.ibm.com>
3342 * alias.c (find_base_term): Check for NULL term before returning.
3344 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
3346 Revert due to PR40320:
3347 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
3348 * calls.c (emit_library_call_value_1): Don't force_operand for move
3351 2009-06-01 Olivier Hainque <hainque@adacore.com>
3352 Eric Botcazou <ebotcazou@adacore.com>
3354 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
3355 to be processed as a bitfield for constructor output purposes.
3356 * output.h (initializer_constant_valid_for_bitfield_p): Declare
3358 * varasm.c (oc_local_state): New type, output_constructor
3359 local state to support communication with helpers.
3360 (oc_outer_state): New type, output_constructor outer state of
3361 relevance in recursive calls.
3362 (output_constructor_array_range): New output_constructor helper,
3363 extracted code for an array range element.
3364 (output_constructor_regular_field): New output_constructor helper,
3365 extracted code for an element that is not a bitfield.
3366 (output_constructor_bitfield): New output_constructor helper,
3367 extracted code for a bitfield element. Accept an OUTER state
3368 argument for recursive processing. Recurse on record or array
3369 CONSTRUCTOR values, possibly past noop conversions.
3370 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
3371 VALUE is a valid constant-valued expression for use in a static
3372 bit-field initializer.
3373 (output_constructor): Rework to use helpers. Accept and honor an
3374 OUTER state argument for recursive calls. Return total size. Be
3375 prepared for nested constructors initializing bitfields.
3376 (output_constant): Feed OUTER in calls to output_constructor.
3378 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
3380 * calls.c (emit_library_call_value_1): Don't force_operand for move
3383 2009-06-01 Nick Clifton <nickc@redhat.com>
3385 * doc/invoke.texi (IA-64 Options): Fix typo.
3387 2009-06-01 Ira Rosen <irar@il.ibm.com>