OSDN Git Service

1c9a1c2959ffb84e14e84f36dde04effe2113812
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * fold-const.c (contains_label_1): Fix comments.
4         (contains_label_p): Do not walk trees multiple time.
5
6 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
7
8         * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
9         * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
10         cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
11         ix86_fp_comparison_operator.
12         (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
13         *fp_jcc_2_sse, *fp_jcc_2_387): Delete
14         (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
15         *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
16         !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
17         to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
18         (related splits): Change predicate to ix86_fp_comparison_operator.
19         * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
20         instead of ix86_fp_comparison_codes.
21         (ix86_trivial_fp_comparison_operator,
22         ix86_fp_comparison_operator): New.
23         * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
24         (ix86_expand_compare): Eliminate last two parameters.
25         (ix86_fp_jump_nontrivial_p): Kill.
26         * config/i386/i386.c (put_condition_code): Eliminate call to
27         ix86_fp_comparison_codes and subsequent assertion.
28         (ix86_fp_comparison_codes): Eliminate.
29         (ix86_fp_swap_condition): New.
30         (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
31         ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
32         into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
33         (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
34         and ix86_fp_swap_condition.
35         (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
36         Use ix86_fp_comparison_strategy.
37         (ix86_expand_compare): Likewise.  Eliminate last two arguments.
38         (ix86_fp_jump_nontrivial_p): Eliminate.
39         (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
40         call to ix86_expand_compare.
41         (ix86_split_fp_branch, ix86_expand_setcc,
42         ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
43         ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
44
45 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
46
47         * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
48         related to jump_clobbers.
49         * config/arm/arm.md (conds): Remove jump_clob case.
50         (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
51         splits): Change comparison_operator to arm_comparison_operator.
52         (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
53         Eliminate.
54
55 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
56
57         * dojump.c (do_compare_rtx_and_jump): Try swapping the
58         condition for floating point modes.
59         * expmed.c (emit_store_flag_1): Move here a bigger part
60         of emit_store_flag.
61         (emit_store_flag): Try swapping the condition for floating point
62         modes.
63         * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
64
65 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
66
67         * expr.c (expand_expr_real_1): Just use do_store_flag.
68         (do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
69         emit_store_flag_force.
70         * expmed.c (emit_store_flag_force): Copy here trick
71         previously in expand_expr_real_1.  Try reversing the comparison.
72         (emit_store_flag_1): Work if target is NULL.
73         (emit_store_flag): Work if target is NULL, using the result mode
74         from the comparison.  Use split_comparison, restructure final part
75         to simplify conditionals.
76
77 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
78
79         * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
80         * dojump.c (do_jump): Change handling of floating-point
81         ops to use just do_compare_and_jump.
82         (split_comparison): New.
83         (do_compare_rtx_and_jump): Add here logic coming previously
84         in do_jump, using split_comparison.
85
86 2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
87
88         PR target/40489
89         * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
90
91 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
92
93         * tree-ssa-alias.c: Fix unintentional commit.
94
95 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
96
97         * passes.c (execute_one_pass): Fix unintentional commit.
98
99 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
100
101         * df-problems.c (df_set_seen, df_unset_seen): Delete.
102         (df_rd_local_compute, df_md_local_compute): Inline them.
103
104         (df_md_scratch): New.
105         (df_md_alloc, df_md_free): Allocate/free it.
106         (df_md_local_compute): Only include live registers in init.
107         (df_md_transfer_function): Prune the in-set computed by
108         the confluence function, and the gen-set too.
109
110 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
111
112         PR rtl-optimization/26854
113         * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
114         * df-problems.c (df_rd_add_problem): Fix comment.
115         (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
116         df_md_simulate_artificial_defs_at_top,
117         df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
118         df_md_bb_local_compute, df_md_local_compute, df_md_reset,
119         df_md_transfer_function, df_md_init, df_md_confluence_0,
120         df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
121         problem_MD, df_md_add_problem): New.
122         * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
123         df_md_get_bb_info): New.
124         DF_LAST_PROBLEM_PLUS1): Adjust.
125
126         * Makefile.in (fwprop.o): Include domwalk.h.
127         * fwprop.c: Include domwalk.h.
128         (reg_defs, reg_defs_stack): New.
129         (bitmap_only_bit_between): Remove.
130         (process_defs): New.
131         (process_uses): Use reg_defs and local_md instead of
132         bitmap_only_bit_between and local_rd.
133         (single_def_use_enter_block): New, from build_single_def_use_links.
134         (single_def_use_leave_block): New.
135         (build_single_def_use_links): Remove code moved to
136         single_def_use_enter_block, invoke domwalk.
137         (use_killed_between): Adjust comment.
138
139 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
140
141         * bitmap.h (bitmap_ior_and_into): New.
142         * bitmap.c (bitmap_ior_and_into): New.
143
144 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
145
146         * domwalk.h (struct dom_walk_data): Remove all callbacks except
147         before_dom_children_before_stmts and after_dom_children_after_stmts.
148         Rename the two remaining callbacks to just before_dom_children and 
149         after_dom_children. Remove other GIMPLE statement walking bits.
150         * domwalk.c (walk_dominator_tree): Remove now unsupported features.
151         * graphite.c: Do not include domwalk.h.
152         * tree-into-ssa.c (interesting_blocks): New global.
153         (struct mark_def_sites_global_data): Remove it and names_to_rename.
154         (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
155         rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
156         now that they're not domwalk callbacks.
157         (rewrite_initialize_block): Rename to...
158         (rewrite_enter_block): ... this, place after called functions.  Test
159         interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
160         (rewrite_finalize_block): Rename to...
161         (rewrite_leave_block): ... this, place after called functions.
162         (rewrite_update_init_block): Rename to...
163         (rewrite_update_enter_block): ... this, place after called functions.
164         Test interesting_blocks, call rewrite_update_stmt and 
165         rewrite_update_phi_arguments.
166         (rewrite_update_fini_block): Rename to...
167         (rewrite_leave_block): ... this, place after called functions.
168         (rewrite_blocks): Remove last argument, simplify initialization of
169         walk_data.
170         (mark_def_sites_initialize_block): Rename to...
171         (mark_def_sites_block): ... this, call mark_def_sites.
172         (mark_def_sites_blocks): Remove argument, simplify initialization of
173         walk_data.
174         (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
175         (update_ssa): Likewise.
176         * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
177         callback.
178         (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
179         (dom_opt_initialize_block): Rename to...
180         (dom_opt_enter_block): ... this, place after called functions.  Walk
181         statements here, inline propagate_to_outgoing_edges.
182         (dom_opt_finalize_block): Rename to...
183         (dom_opt_leave_block): ... this, place after called functions.
184         * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
185         domwalk callback.
186         (dse_enter_block, dse_record_phi): New.
187         (dse_record_phis): Delete.
188         (dse_finalize_block): Rename to...
189         (dse_leave_block): ... this.
190         (tree_ssa_dse): Simplify initialization of walk_data.
191         * tree-ssa-loop-im.c (determine_invariantness, move_computations):
192         Adjust initialization of walk_data.
193         * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
194         * tree-ssa-loop-phiopt.c (get_non_trapping):
195         Adjust initialization of walk_data.
196         * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
197         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
198         it's not a domwalk callback.
199         (uncprop_initialize_block): Rename to...
200         (dse_enter_block): ... this, call uncprop_into_successor_phis.
201         (dse_finalize_block): Rename to...
202         (dse_leave_block): ... this.
203         (tree_ssa_uncprop): Simplify initialization of walk_data.
204         * Makefile.in: Adjust dependencies.
205
206 2009-06-27  Richard Earnshaw  <rearnsha@arm.com>
207
208         * arm.md (casesi): Fix test for Thumb1.
209         (thumb1_casesi_internal_pic): Likewise.
210         (thumb1_casesi_dispatch): Likewise.
211
212 2009-06-26  Daniel Gutson  <dgutson@codesourcery.com>
213
214         * config/arm/arm-cores.def: Added core cortex-m0.
215         * config/arm/arm-tune.md: Regenerated.
216         * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
217
218 2009-06-26  DJ Delorie  <dj@redhat.com>
219
220         * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
221
222         * config/mep/mep.c (mep_bundle_insns): Account for the fact that
223         the scheduler doesn't tag jump insns.
224
225 2009-06-26  H.J. Lu  <hongjiu.lu@intel.com>
226
227         * c-decl.c (merge_decls): Re-indent.
228
229 2009-06-26  Janis Johnson  <janis187@us.ibm.com>
230
231         PR c/39902
232         * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
233         Special-case decimal float constants.
234
235 2009-06-26  Richard Henderson  <rth@redhat.com>
236
237         * function.h (struct function): Add cannot_be_copied_reason,
238         and cannot_be_copied_set.
239         * tree-inline.c (has_label_address_in_static_1): Rename from
240         inline_forbidden_p_2; don't set inline_forbidden_reason here.
241         (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
242         don't set inline_forbidden_reason.
243         (copy_forbidden): New function, split out of inline_forbidden_p.
244         (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
245         (inline_forbidden_p): Use copy_forbidden.
246         (tree_versionable_function_p): Likewise.
247         (inlinable_function_p): Merge into tree_inlinable_function_p.
248         (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
249         * ipa-cp.c (ipcp_versionable_function_p): New function.
250         (ipcp_cloning_candidate_p): Use it.
251         (ipcp_node_modifiable_p): Likewise.
252
253 2009-06-26  Olatunji Ruwase  <tjruwase@google.com>
254
255         * builtins.c (expand_builtin_alloca): Handle builtin alloca
256         that is marked not to be inlined. Remove flag_mudflap use.
257         * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
258         (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
259
260 2009-06-26  Steve Ellcey  <sje@cup.hp.com>
261
262         PR bootstrap/40338
263         * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
264         * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
265
266 2009-06-26  Kai Tietz  <kai.tietz@onevision.com>
267
268         * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
269         shared libgcc.
270         (__mingwthr_remove_key_dtor): Likewise.
271
272 2009-06-26  Richard Guenther  <rguenther@suse.de>
273
274         * tree-ssa-structalias.c (do_ds_constraint): Simplify escape
275         handling.
276
277 2009-06-26  Steven Bosscher  <steven@gcc.gnu.org>
278
279         PR middle-end/40525
280         * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
281         try the non-cond_exec path also.
282
283 2009-06-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
284
285         PR target/40468
286         * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
287         (output_cbranch): Use new functions.
288         (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
289         Likewise.
290
291 2009-06-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
292             Pat Haugen  <pthaugen@us.ibm.com>
293             Revital Eres <ERES@il.ibm.com>
294
295         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
296         Change some of the functions called by macros to being called
297         through a pointer, so debug functions can be inserted if
298         -mdebug=addr or -mdebug=cost. 
299         (rs6000_preferred_reload_class_ptr): Ditto.
300         (rs6000_secondary_reload_class_ptr): Ditto.
301         (rs6000_secondary_memory_needed_ptr): Ditto.
302         (rs6000_cannot_change_mode_class_ptr): Ditto.
303         (rs6000_secondary_reload_inner): Ditto.
304         (rs6000_legitimize_reload_address): Ditto.
305         (rs6000_legitimize_reload_address_ptr): Ditto.
306         (rs6000_mode_dependent_address): Ditto.
307         (rs6000_mode_dependent_address_ptr): Ditto.
308
309         * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
310         function to return true if the mode allows reg + integer
311         addresses.
312         (virtual_stack_registers_memory_p): New function to return true if
313         the address refers to a virtual stack register.
314         (rs6000_legitimate_offset_address_p): Move code to say whether a
315         mode supports reg+int addressing to reg_offset_addressing_ok_p and
316         call it.
317         (rs6000_legitimate_address_p): Add checks for modes that only can
318         do reg+reg addressing.  Start adding VSX support.
319         (rs6000_legitimize_reload_address): Ditto.
320         (rs6000_legitimize_address): Ditto.
321         (rs6000_debug_legitimate_address_p): New debug functions for
322         -mdebug=addr and -mdebug=cost.
323         (rs6000_debug_rtx_costs): Ditto.
324         (rs6000_debug_address_costs): Ditto.
325         (rs6000_debug_adjust_cost): Ditto.
326         (rs6000_debug_legitimize_address): Ditto.
327         (rs6000_legitimize_reload_address_ptr): Point to call normal
328         function or debug function.  Make functions called via pointer
329         static.
330         (rs6000_mode_dependent_address_ptr): Ditto.
331         (rs6000_secondary_reload_class_ptr): Ditto.
332         (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
333         (rs6000_emit_move): Add -mdebug=addr support.  Change an abort
334         into a friendlier error.
335         (rs6000_init_builtins): Add initial VSX support.
336         (rs6000_adjust_cost): Fix some spacing issues.
337
338         * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
339         (REG_CLASS_NAMES): Ditto.
340         (REG_CLASS_CONTENTS): Ditto.
341         (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
342         pointer, to add -mdebug=addr support.
343         (CANNOT_CHANGE_MODE_CLASS): Ditto.
344         (SECONDARY_RELOAD_CLASS): Call through a pointer to add
345         -mdebug=addr support.
346         (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
347         (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
348         (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
349
350         * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
351         16-bit values.
352         (bswapsi*): Set attribute types for load/store.  Add combiner
353         patterns to eliminate zero extend on 64-bit.
354         (bswapdi*): Add support for swapping 64-bit values.  Use ldbrx and
355         stdbrx if the hardware supports those instructions.
356
357 2009-06-25  Ian Lance Taylor  <iant@google.com>
358
359         * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
360         (Link Options): Document -static-libstdc++.
361
362 2009-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
363
364         PR target/38731
365         * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
366         DATA_ALIGNMENT instead.
367
368 2009-06-25  Richard Guenther  <rguenther@suse.de>
369
370         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
371         indirect references against the callused/escaped solutions.
372         (call_may_clobber_ref_p_1): Likewise.
373
374 2009-06-25  Martin Jambor  <mjambor@suse.cz>
375
376         PR tree-optimization/40493
377         * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
378         (enum unscalarized_data_handling): New type.
379         (handle_unscalarized_data_in_subtree): Return what has been done.
380         (load_assign_lhs_subreplacements): Handle left flushes differently.
381         (sra_modify_assign): Use unscalarized_data_handling, simplified
382         condition determining whether to remove the statement.
383
384 2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
385
386         * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
387         excerpt - @ should be doubled for texinfo.
388
389 2009-06-24  Ian Lance Taylor  <iant@google.com>
390
391         * config/arc/arc.c: Include "df.h".
392         (arc_attribute_table): Make static.  Move higher in file.
393         (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
394         (output_shift): Initialize n later to avoid warning.
395         * config/arm/arm.c (arm_attribute_table): Make static.  Move
396         higher in file.
397         * config/avr/avr.c (avr_attribute_table): Make static.  Move
398         higher in file.
399         (reg_class_tab): Change array type from int to enum reg_class.
400         (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
401         LABEL_REF.
402         (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
403         (lshrhi3_out): Likewise.
404         (class_likely_spilled_p): Change return type to bool.
405         (avr_rtx_costs): Use local code variable with enum type.
406         * config/avr/avr.md (movmemhi): Use add_reg_note.
407         (andhi3, andsi3): Don't use AS2 with "and".
408         (iorhi3, iorsi3): Don't use AS2 with "or".
409         * config/avr/avr-protos.h (class_likely_spilled_p): Update
410         declaration.
411         * config/crx/crx.c: Include "df.h".
412         (crx_attribute_table): Make static.
413         * config/m32r/m32r.c: Include "df.h".
414         (m32r_attribute_table): Make static.  Move higher in file.
415         (pop): Use add_reg_note.
416         (block_move_call): Change 0 to LCT_NORMAL in function call.
417         * config/m32r/m32r.md (movsi_insn): Remove unused local value.
418         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
419         * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
420         declare, not just when TREE_CODE is defined.
421         * config/m68hc11/m68hc11.c: Include "expr.h".
422         (m68hc11_attribute_table): Make static.  Move higher in file.
423         (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
424         function call.
425         (m68hc11_register_indirect_p): Likewise.
426         (m68hc11_function_arg_padding): Change return type to enum
427         direction.
428         (emit_move_after_reload): Use add_reg_note.
429         (m68hc11_emit_logical): Change code parameter to enum rtx_code.
430         (m68hc11_split_logical): Likewise.
431         (m68hc11_rtx_costs): Add local code_and outer_code variables with
432         enum type.
433         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
434         to VOIDmode in function call.
435         * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
436         tree is defined.
437         (m68hc11_split_logical): Update declaration.
438         (m68hc11_function_arg_padding): Update declaration.
439         * config/mcore/mcore.c (regno_reg_class): Change form array of int
440         to array of enum reg_class.
441         (mcore_attribute_table): Make static.  Move higher in file.
442         (mcore_rtx_costs): Add cast to enum type.
443         * config/mcore/mcore.h (regno_reg_class): Update declaration.
444         (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
445         * config/sh/sh.c (sh_attribute_table): Make static.  Move higher
446         in file.
447         * config/sh/predicates.md (trapping_target_operand): Rename and to
448         and_expr.
449         * config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
450         higher in file.
451         * config/spu/spu.c (spu_attribute_table): Make static.  Move
452         higher in file.
453         * config/v850/v850.c (v850_attribute_table): Make static.  Move
454         higher in file.
455         (v850_rtx_costs): Use local code with enum type.
456         (expand_epilogue): Add cast.
457         * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
458
459 2009-06-23  Takashi YOSHII  <yoshii.takashi@renesas.com>
460
461         PR target/40515
462         * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
463         -m2a-single-only and -m2a-nofpu.
464         * config/sh/sh.opt: Document m2a generates FPU code.  
465
466 2009-06-24  Anatoly Sokolov  <aesok@post.ru>
467
468         * defaults.h (CAN_ELIMINATE): Provide default.
469         * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
470         * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
471         * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
472         * config/spu/spu.h (CAN_ELIMINATE): Delete.
473         * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
474         * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
475         * config/cris/cris.h (CAN_ELIMINATE): Delete.
476         * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
477         * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
478         * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
479
480 2009-06-24  DJ Delorie  <dj@redhat.com>
481
482         * mep-ext-cop.cpu: Fix copyright notice.
483         * mep-default: Fix copyright notice.
484         * mep-core: Fix copyright notice.
485         * mep: Fix copyright notice.
486         * mep-ivc2: Fix copyright notice.
487         * mep-c5: Fix copyright notice.
488
489 2009-06-24  Denis Chertykov  <chertykov@gmail.com>
490
491         * doc/contrib.texi (Contributors): 
492
493 2009-06-24  Andreas Krebbel  <krebbel1@de.ibm.com>
494         
495         PR middle-end/40501
496         * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
497         src and dst operands if necessary.
498
499 2009-06-23  DJ Delorie  <dj@redhat.com>
500
501         Add MeP port.
502         * config.gcc: Add mep support.
503         * recog.c: Resurrect validate_replace_rtx_subexp().
504         * recog.h: Likewise.
505         * config/mep/: Add new port:
506         * config/mep/constraints.md: New file.
507         * config/mep/default.h: New file.
508         * config/mep/intrinsics.h: New file.
509         * config/mep/intrinsics.md: New file.
510         * config/mep/ivc2-template.h: New file.
511         * config/mep/mep-c5.cpu: New file.
512         * config/mep/mep-core.cpu: New file.
513         * config/mep/mep-default.cpu: New file.
514         * config/mep/mep-ext-cop.cpu: New file.
515         * config/mep/mep-intrin.h: New file.
516         * config/mep/mep-ivc2.cpu: New file.
517         * config/mep/mep-lib1.asm: New file.
518         * config/mep/mep-lib2.c: New file.
519         * config/mep/mep-pragma.c: New file.
520         * config/mep/mep-protos.h: New file.
521         * config/mep/mep-tramp.c: New file.
522         * config/mep/mep.c: New file.
523         * config/mep/mep.cpu: New file.
524         * config/mep/mep.h: New file.
525         * config/mep/mep.md: New file.
526         * config/mep/mep.opt: New file.
527         * config/mep/predicates.md: New file.
528         * config/mep/t-mep: New file.
529
530 2009-06-23  Ian Lance Taylor  <iant@google.com>
531
532         * configure.ac: Invoke AC_PROG_CXX.  Separate C specific warnings
533         from loose_warn into c_loose_warn and from strict_warn into
534         c_strict_warn.  Set and substitute warn_cxxflags.  Check for
535         --enable-build-with-cxx.  Set and substitute
536         ENABLE_BUILD_WITH_CXX.  Set and substitute HOST_LIBS.
537         * Makefile.in (CXXFLAGS): New variable.
538         (C_LOOSE_WARN, C_STRICT_WARN): New variables.
539         (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN).  Add $(C_STRICT_WARN) if
540         the default is the same as $(STRICT_WARN).
541         (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
542         (CXX): New variable.
543         (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
544         (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
545         (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
546         (HOST_LIBS): New variable.
547         (GCC_CFLAGS): Add $(C_LOOSE_WARN).
548         (ALL_CXXFLAGS): New variable.
549         (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
550         * doc/install.texi (Configuration): Document
551         --enable-build-with-cxx, --with-stage1-ldflags,
552         --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
553         * configure: Rebuild.
554
555 2009-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
556
557         * config/arm/arm.c (arm_override_options): Fix braces and formatting
558         from previous commit.
559
560 2009-06-23  Ian Lance Taylor  <iant@google.com>
561
562         * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
563
564 2009-06-23  Ian Lance Taylor  <iant@google.com>
565
566         * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
567         with ATTRIBUTE_UNUSED.
568
569 2009-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
570             Pat Haugen  <pthaugen@us.ibm.com>
571             Revital Eres  <eres@il.ibm.com>
572
573         * config.in (HAVE_AS_POPCNTD): Add default definition.
574         (HAVE_AS_LWSYNC): Ditto.
575
576         * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
577         release number.
578         (gcc_cv_as_powerpc_cmpb): Ditto.
579         (gcc_cv_as_powerpc_dfp): Ditto.
580         (gcc_cv_as_powerpc_vsx): Ditto.
581         (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
582         supporting the popcntd/lwsync instructions.
583         (gcc_cv_as_powerpc_lwsync): Ditto.
584         * configure: Regenerate.
585
586         * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
587         -mcpu=native and -mcpu=power7.
588         * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
589
590         * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
591         a variable instead of a mask to reduce the number of mask bits.
592         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
593         (-mbit-word): Ditto.
594         (-mregnames): Ditto.
595         * config/rs6000/rs6000.opt (-mupdate): Ditto.
596         (-mfused-madd): Ditto.
597
598         * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
599         2.06 instructions.
600         (-mvsx): New switch for VSX instructions.
601         (-misel): Move from a variable to a mask to allow it to be set by
602         -mcpu=.
603
604         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
605         function declaration to an array declaration.
606         (rs6000_hard_regno_nregs): New external array declaration.
607
608         * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
609         files included by rs6000.md.
610
611         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
612         SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
613
614         * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
615         a target mask.
616         (rs6000_debug_reg): New -mdebug= variables.
617         (rs6000_debug_addr): Ditto.
618         (rs6000_debug_cost): Ditto.
619         (rs6000_pmode): New variable to hold Pmode.
620         (rs6000_pointer_size): New variable to hold POINTER_SIZE.
621         (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
622         calculated at compiler start.
623         (rs6000_hard_regno_nregs): Change function to an array which holds
624         HARD_REGNO_NREGS calculated at compiler start.
625         (rs6000_explicit_options): Delete isel field.
626         (rs6000_vector_unit): New array to hold which vector unit
627         supports arithmetic options for a given type.
628         (rs6000_vector_mem): New array to hold which vector unit supports
629         memory reference operations for a given type.
630         (rs6000_vector_align): New array to given the alignment of each
631         vector type.
632         (power7_cost): New basic costs for power7.
633         (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
634         (rs6000_hard_regno_nregs_internal): New function, moved from
635         HARD_REGNO_NREGS, to calculate the number of registers each hard
636         register takes for each type.
637         (rs6000_debug_reg_print): New function for -mdebug=reg support.
638         (rs6000_debug_vector_unit): New array, map rs6000_vector to
639         string.
640         (+rs6000_init_hard_regno_mode_ok): New function, move calculation
641         of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
642         unit information here so it is calculated once at compiler startup
643         time.
644         (rs6000_override_options): Make -misel a target mask.  Add more
645         power7 target masks.  Setup Pmode and POINTER_SIZE.  Add initial
646         VSX support.  Add support for -mdebug=reg, -mdebug=addr, and
647         -mdebug=cost.
648         (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
649         (rs6000_handle_option): Move -misel from variable to target mask.
650         (rs6000_builtin_mask_for_load): Add VSX support.
651         (rs6000_conditional_register_usage): Ditto.
652         (USE_ALTIVEC_FOR_ARG_P): Ditto.
653         (function_arg_boundary): Ditto.
654         (rs6000_expand_builtin): Ditto.
655         (def_builtin): Make abort message a little friendlier.
656         (rs6000_emit_int_cmove): Add support for 64-bit isel.
657
658         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
659         assembler support the popcntd instruction instead of a vsx
660         instruction to enable power7 support.
661         (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
662         (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
663         option to the assembler if -mcpu=native.
664         (ASM_CPU_NATIVE_SPEC): Ditto.
665         (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
666         ISA 2.06 features.
667         (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
668         the lwsync instruction.
669         (enum processor_type): Add PROCESSOR_POWER7.
670         (rs6000_debug_reg): New -mdebug= options.
671         (rs6000_debug_addr): Ditto.
672         (rs6000_debug_cost): Ditto.
673         (rs6000_isel): Delete.
674         (enum rs6000_vector): New enum to say what vector unit we have.
675         (VECTOR_UNIT_*): New macros to say which vector unit has
676         arithmetic operations for a given type.
677         (VECTOR_MEM_*): New macros to say which vector unit has memory
678         operations for a given type.
679         (TARGET_LDBRX): Whether the machine supports the ldbrx
680         instruction.
681         (TARGET_ISEL): Delete, -misel moved to be a mask.
682         (TARGET_ISEL64): New macro for 64-bit isel support.
683         (UNITS_PER_VSX_WORD): New macro.
684         (POINTER_SIZE): Move to be an external variable, rather than
685         calculating whether we are generating 32 ot 64-bit code.
686         (Pmode): Ditto.
687         (STACK_BOUNDARY): Add VSX support.
688         (LOCAL_ALIGNMENT): Ditto.
689         (SLOW_UNALIGNED_ACCESS): Ditto.
690         (VSX_REGNO_P): New macro for VSX support.
691         (VFLOAT_REGNO_P): Ditto.
692         (VINT_REGNO_P): Ditto.
693         (VLOGICAL_REGNO_P): Ditto.
694         (VSX_VECTOR_MODE): Ditto.
695         (VSX_SCALAR_MODE): Ditto.
696         (VSX_MODE): Ditto.
697         (VSX_MOVE_MODE): Ditto.
698         (VSX_REG_CLASS_P): Ditto.
699         (HARD_REGNO_NREGS): Instead of calling a function, use an array
700         lookup.
701         (UNITS_PER_SIMD_WORD): Add VSX support.
702         (MODES_TIEABLE_P): Ditto.
703         (STARTING_FRAME_OFFSET): Ditto.
704         (STACK_DYNAMIC_OFFSET): Ditto.
705         (EPILOGUE_USES): Ditto.
706         (REGNO_REG_CLASS): Move to array lookup.
707         (CLASS_MAX_NREGS): Ditto.
708         (rs6000_vector_reg_class): Add declaration.
709         (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
710         overlap with the floating point and Altivec registers.
711
712         * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
713
714         * config/rs6000/driver-rs6000.c (asm_names): New static array to
715         give the appropriate asm switches if -mcpu=native.
716         (host_detect_local_cpu): Add support for "asm".
717         (host_detect_local_cpu): Follow GNU code guidelines for name.
718
719         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
720         -mbit-word to a variable instead of being a target mask.
721
722         * config/rs6000/sync.md (lwsync): If the assembler supports it,
723         emit the lwsync instruction instead of emitting the instruction as
724         an integer constant.
725
726         * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
727         fixuns_trundfsi2, move expander into rs6000.md.
728
729         * config/rs6000/rs6000.md (cpu): Add power7.
730         (sel, *ptrsize): New mode attributes for 32/64-bit isel.
731         (logical predicate patterns): Change the single instruction
732         primitives that set CR0 to be fast_compare instead of compare.
733         (norsi*): Ditto.
734         (popcntwsi2): Add support for ISA 2.06 popcount instructions.
735         (popcntddi2): Ditto.
736         (popcount<mode>): Ditto.
737         (floating multiply/add insns): Name the floating point
738         multiply/add insns.
739         (isel_signed_<mode>): Add support for -misel on 64-bit systems.
740         (isel_unsigned_<mode>): Ditto.
741         (fixuns_trundfsi2): Move expander here from spe.md.
742         (smindi3): Define if we have -misel on 64-bit systems.
743         (smaxdi3): Ditto.
744         (umindi3): Ditto.
745         (umaxdi3): Ditto.
746
747 2009-06-23  Anatoly Sokolov  <aesok@post.ru>
748
749         * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
750         extra_objs.
751         * config/avr/avr.c (avr_current_device): New variable.
752         (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
753         (avr_arch, mcu_type_s): Move to avr.h.
754         * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
755         default_data_section_start fields.
756         (avr_arch): Moved from avr.c.
757         (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
758         library_name fields.
759         (avr_current_device, avr_mcu_types, avr_arch_types,
760         avr_device_to_arch, avr_device_to_data_start,
761         avr_device_to_startfiles, avr_device_to_devicelib): Declare.
762         (EXTRA_SPEC_FUNCTIONS): Define.
763         (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
764         options mapping. Use device_to_arch and device_to_data_start insted.
765         (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
766         (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
767         * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
768         * config/avr/driver-avr.c: New file.
769         * config/avr/avr-devices.c: New file.
770
771 2009-06-23  Jakub Jelinek  <jakub@redhat.com>
772
773         * var-tracking.c (unshare_variable): Force initialized to
774         be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
775         (set_variable_part): Likewise.
776         (struct variable_union_info): Remove pos_src field.
777         (vui_vec, vui_allocated): New variables.
778         (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
779         unconditionally.  Avoid XCVECNEW/free for every sorting, for dst_l
780         == 1 use a simpler sorting algorithm.  Compute pos field right
781         away, don't fill in pos_src.  For dst_l == 2 avoid qsort.
782         Avoid quadratic comparison if !flag_var_tracking_uninit.
783         (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
784         unshare_variable unconditionally.   
785         (dataflow_set_different_2): Removed.
786         (dataflow_set_different): Don't traverse second hash table.
787         (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
788         unconditionally to var_reg_set or var_mem_set.
789         (emit_notes_in_bb): Likewise.
790         (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
791         unshare_variable.
792         (emit_note_insn_var_location): Don't set initialized to
793         VAR_INIT_STATUS_INITIALIZED early.
794         (vt_finalize): Free vui_vec if needed, clear vui_vec and
795         vui_allocated.
796         * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
797
798         * tree-object-size.c (addr_object_size): Instead of checking
799         for non-NULL TREE_CHAIN of the FIELD_DECL check that there
800         are no FIELD_DECLs following it.
801
802 2009-06-23  Andreas Krebbel  <krebbel1@de.ibm.com>
803
804         * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
805         order to match bswaps with signed source operands.
806
807 2009-06-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
808
809         * sdbout.c (sdbout_one_type): Fix braces in switch.
810
811 2009-06-23  Richard Guenther  <rguenther@suse.de>
812
813         * tree-ssa-structalias.c (struct variable_info): Add is_global_var
814         member.
815         (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
816         readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
817         var_callused, callused_tree, var_storedanything, storedanything_tree,
818         var_integer, integer_tree): Remove global variables.
819         (new_var_info): Do not pass new id, append the new var to the
820         global variable vector.
821         (do_ds_constraint): Use is_global_var member of the variable-info.
822         (new_scalar_tmp_constraint_exp): Adjust.
823         (create_function_info_for): Likewise.
824         (create_variable_info_for): Likewise.
825         (find_what_var_points_to): Remove dead code.
826         (init_base_vars): Simplify.
827         (compute_points_to_sets): Adjust.
828
829 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
830
831         * combine.c (try_combine): Dump information about the insns we're
832         combining.
833
834 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
835
836         * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
837         check when calling force_to_mode on TRUNCATE's operand.
838
839 2009-06-22  Ian Lance Taylor  <iant@google.com>
840
841         * config/rs6000/rs6000.opt: Move msched-epilog before
842         msched-prolog.
843
844 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
845
846         * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
847
848 2009-06-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
849
850         * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
851         override library linkage flags such as -static-libgcc or
852         -shared-libgcc.
853
854 2009-06-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
855
856         * config/m68k/m68k-devices.def: Add line for MCF5221x.
857
858 2009-06-22  Ian Lance Taylor  <iant@google.com>
859
860         * config/linux.opt: Put mglibc ahead of muclibc.
861
862         * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
863         for duplicate decls.
864
865 2009-06-22  Matthias Klose  <doko@ubuntu.com>
866
867         * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
868
869 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
870
871         PR objc/28050
872         * c-parser.c (c_parser_objc_message_args): Return error_mark_node
873         instead of NULL if a parser error occurs.
874
875 2009-06-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
876
877         * dwarf2out.c (dwarf2_debug_hooks): Initialize
878         non-DWARF2_DEBUGGING_INFO version.
879
880 2009-06-22  Kai Tietz  <kai.tietz@onevision.com>
881
882         * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
883         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
884
885         * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
886         (LIBGCC2_TF_CEXT): Define.
887         (TF_SIZE): Define.
888
889 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
890
891         PR target/40463
892         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
893
894 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
895
896         * config/arm/arm.c (arm_override_options): Disable
897         -mcaller-super-interworking and -mcallee-super-interworking.
898         * doc/invoke.texi (ARM Options): Document this.
899
900 2009-06-22  Nathan Sidwell  <nathan@codesourcery.com>
901
902         * config/arm/arm.c (arm_print_operand): Deal with HIGH.
903         * config/arm/constraints.md (j): New constraint for movw operands.
904         (N): Remove thumb2 meaning.
905         * config/arm/arm.md (*arm_movw): Delete.
906         (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
907         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
908         * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
909
910 2009-06-22  Martin Jambor  <mjambor@suse.cz>
911
912         PR tree-optimization/40492
913         * tree-sra.c (sra_modify_assign): Pass zero offsets to
914         build_ref_for_offset.
915
916 2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
917
918         * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
919         JUMP_TABLE_DATA_P predicates where applicable.
920         * auto-inc-dec.c: Ditto.
921         * builtins.c: Ditto.
922         * caller-save.c: Ditto.
923         * calls.c: Ditto.
924         * cfgcleanup.c: Ditto.
925         * cfglayout.c: Ditto.
926         * cfgrtl.c: Ditto.
927         * combine.c: Ditto.
928         * combine-stack-adj.c: Ditto.
929         * cse.c: Ditto.
930         * cselib.c: Ditto.
931         * dbxout.c: Ditto.
932         * df-scan.c: Ditto.
933         * dse.c: Ditto.
934         * dwarf2asm.c: Ditto.
935         * dwarf2out.c: Ditto.
936         * emit-rtl.c: Ditto.
937         * except.c: Ditto.
938         * explow.c: Ditto.
939         * expmed.c: Ditto.
940         * expr.c: Ditto.
941         * final.c: Ditto.
942         * function.c: Ditto.
943         * fwprop.c: Ditto.
944         * gcse.c: Ditto.
945         * genpreds.c: Ditto.
946         * genrecog.c: Ditto.
947         * ifcvt.c: Ditto.
948         * ira-costs.c: Ditto.
949         * ira-lives.c: Ditto.
950         * jump.c: Ditto.
951         * loop-iv.c: Ditto.
952         * lower-subreg.c: Ditto.
953         * modulo-sched.c: Ditto.
954         * optabs.c: Ditto.
955         * postreload.c: Ditto.
956         * print-rtl.c: Ditto.
957         * recog.c: Ditto.
958         * reginfo.c: Ditto.
959         * regmove.c: Ditto.
960         * reload1.c: Ditto.
961         * reload.c: Ditto.
962         * reorg.c: Ditto.
963         * rtlanal.c: Ditto.
964         * rtl.c: Ditto.
965         * sched-vis.c: Ditto.
966         * sdbout.c: Ditto.
967         * sel-sched-ir.c: Ditto.
968         * simplify-rtx.c: Ditto.
969         * targhooks.c: Ditto.
970         * var-tracking.c: Ditto.
971         * vmsdbgout.c: Ditto.
972
973 2009-06-22  Matthias Klose  <doko@ubuntu.com>
974
975         * Makefile.in (install-plugin): Always use DESTDIR.
976
977 2009-06-22  Olivier Hainque  <hainque@adacore.com>
978         
979         * config/pa/pa.c (output_call): Don't optimize post call jumps
980         into return address adjustments if the call may throw.
981
982 2009-06-21  Richard Earnshaw  <rearnsha@arm.com>
983
984         * arm.c (thumb1_output_casesi): New function.
985         * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
986         optimizing for size or PIC.
987         (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
988         * arm.md (UNSPEC_THUMB1_CASESI): New constant.
989         (casesi): Handle Thumb-1 when optimizing for size or PIC.
990         (thumb1_casesi_internal_pic): New expand rule.
991         (thumb1_casesi_dispatch): New pattern.
992         * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
993         thumb-1 mode.
994         * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
995         in the text seciton when PIC or optimizing for size.
996         * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
997         * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
998         preservation properties of code.
999         (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
1000         (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
1001         (__gnu_thumb1_case_si): New function.
1002         * t-arm (LIB1ASMSRC): Define here.
1003         (LIB1ASMFUNCS): Add some common functions.
1004         * t-arm-elf (LIB1ASMSRC): Delete.
1005         (LIB1ASMFUNCS): Append to existing set.
1006         * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1007         * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1008         * t-symbian (LIB1ASMFUNCS): Likewise.
1009         * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1010         * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1011
1012 2009-06-21  Richard Guenther  <rguenther@suse.de>
1013
1014         PR tree-optimization/38729
1015         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
1016         to loops with a single exit if -fno-expensive-optimizations.
1017
1018 2009-06-21  Jakub Jelinek  <jakub@redhat.com>
1019
1020         * var-tracking.c (struct shared_hash_def, shared_hash): New types.
1021         (dataflow_set): Change vars type from htab_t to shared_hash.
1022         (shared_hash_pool, empty_shared_hash): New variables.
1023         (vars_clear): Removed.
1024         (shared_hash_shared, shared_hash_htab, shared_hash_copy,
1025         shared_hash_find_slot_unshare, shared_hash_find_slot,
1026         shared_hash_find_slot_noinsert, shared_hash_find): New
1027         static inlines.
1028         (shared_hash_unshare, shared_hash_destroy): New functions.
1029         (unshare_variable): Unshare set->vars if shared, use
1030         shared_hash_htab.
1031         (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
1032         (get_init_value, find_src_set_src, dump_dataflow_set,
1033         clobber_variable_part, emit_notes_for_differences): Use
1034         shared_hash_htab.
1035         (dataflow_set_init): Remove second argument, set vars to
1036         empty_shared_hash instead of creating a new htab.
1037         (dataflow_set_clear): Call shared_hash_destroy and set vars
1038         to empty_shared_hash instead of calling vars_clear.
1039         (dataflow_set_copy): Don't call vars_copy, instead just share
1040         the src htab with dst.
1041         (variable_union): Use shared_hash_*, use initially NO_INSERT
1042         lookup if set->vars is shared.  Don't keep slot cleared before
1043         calling unshare_variable.  Unshare set->vars if needed.
1044         Even ->refcount == 1 vars must be unshared if set->vars is shared
1045         and var needs to be modified.
1046         (variable_canonicalize): New function.
1047         (dataflow_set_union): If dst->vars is empty, just share src->vars
1048         with dst->vars and traverse with variable_canonicalize to canonicalize
1049         and unshare what is needed.
1050         (dataflow_set_different): If old_set and new_set use the same shared
1051         htab, they aren't different.  If number of htab elements is different,
1052         htabs are different.  Use shared_hash_*.
1053         (dataflow_set_destroy): Call shared_hash_destroy instead of
1054         htab_delete.
1055         (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
1056         second argument to dataflow_set_init.
1057         (vt_initialize): Likewise.  Initialize shared_hash_pool and
1058         empty_shared_hash, move bb in/out initialization afterwards.
1059         Use variable_htab_free instead of NULL as changed_variables del hook.
1060         (variable_was_changed): Change type of second argument to pointer to
1061         dataflow_set.  When inserting var into changed_variables, bump
1062         refcount.  Unshare set->vars if set is shared htab and slot needs to
1063         be cleared.
1064         (set_variable_part): Use shared_hash_*, use initially NO_INSERT
1065         lookup if set->vars is shared.  Unshare set->vars if needed.
1066         Even ->refcount == 1 vars must be unshared if set->vars is shared
1067         and var needs to be modified.  Adjust variable_was_changed caller.
1068         (delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
1069         vars must be unshared if set->vars is shared and var needs to be
1070         modified.  Adjust variable_was_changed caller.
1071         (emit_note_insn_var_location): Don't pool_free var.
1072         (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
1073         instead of 1.
1074         (vt_finalize): Call htab_delete on empty_shared_hash->htab and
1075         free_alloc_pool on shared_hash_pool.
1076
1077 2009-06-20  Anthony Green  <green@moxielogic.com>
1078
1079         * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
1080         * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
1081
1082 2009-06-20  Richard Guenther  <rguenther@suse.de>
1083
1084         * tree-ssa-structalias.c (find_func_aliases): For memset use
1085         a constraint from NULL if we memset to zero.
1086         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
1087         we explicitly handle that do not read from memory.
1088         (call_may_clobber_ref_p_1): Properly handle builtins that may
1089         set errno.
1090
1091 2009-06-20  Richard Guenther  <rguenther@suse.de>
1092
1093         PR tree-optimization/40495
1094         * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
1095         (new_scalar_tmp_constraint_exp): New function.
1096         (process_constraint): Do not create temporary decls.
1097         (process_all_all_constraints): Likewise.
1098         (handle_const_call): Likewise.
1099         (create_function_info_for): Do not set decl.
1100
1101 2009-06-19  Ian Lance Taylor  <iant@google.com>
1102
1103         * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
1104         (rs6000_attribute_table): Make static; move before use.
1105
1106 2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>
1107
1108         * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
1109         <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
1110         Propagate the TREE_READONLY flag without overwriting it.
1111         (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
1112         Propagate the TREE_READONLY flag onto the result.
1113         (process_call_operands): Move around.  Use correct constant value.
1114
1115 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1116
1117         PR target/40482
1118         * config/arm/arm.c (thumb_shiftable_const): Truncate val to 
1119         32 bits.
1120         * config/arm/arm.md: Likewise.
1121
1122 2009-06-19  Ian Lance Taylor  <iant@google.com>
1123
1124         * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
1125         to GIMPLE_ERROR_MARK.
1126
1127         * c-typeck.c (build_conditional_expr): Add op1_original_type and
1128         op2_original_type parameters.  Warn about using different enum
1129         types.
1130         * c-parser.c (c_parser_conditional_expression): Pass original
1131         types to build_conditional_expr.
1132         * c-tree.h (build_conditional_expr): Update declaration.
1133
1134 2009-06-19  Ian Lance Taylor  <iant@google.com>
1135
1136         * config/i386/i386.c (ix86_function_specific_save): Test that
1137         fields match values, rather than testing the values are in a
1138         certain range.
1139
1140 2009-06-19  Richard Guenther  <rguenther@suse.de>
1141
1142         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
1143         ADDR_EXPR pointers.
1144         (ptr_derefs_may_alias_p): Likewise.
1145         (ptr_deref_may_alias_ref_p_1): New function.
1146         (ptr_deref_may_alias_ref_p): Likewise.
1147         (ref_maybe_used_by_call_p_1): Handle builtins that are not
1148         covered by looking at the ESCAPED solution.
1149         (call_may_clobber_ref_p_1): Likewise.
1150         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
1151         Handle NULL_TREE offset.  Do not produce redundant constraints.
1152         (process_all_all_constraints): New helper function.
1153         (do_structure_copy): Use it.
1154         (handle_lhs_call): Likewise.
1155         (find_func_aliases): Handle some builtins with pointer arguments
1156         and/or return values explicitly.
1157
1158 2009-06-19  Ian Lance Taylor  <iant@google.com>
1159
1160         * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
1161
1162 2009-06-19  Ian Lance Taylor  <iant@google.com>
1163
1164         * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
1165
1166 2009-06-19  Ian Lance Taylor  <iant@google.com>
1167
1168         * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
1169         * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
1170         version.
1171
1172         * c-decl.c (finish_decl): If -Wc++-compat, warn about
1173         uninitialized const.
1174
1175 2009-06-19  Ian Lance Taylor  <iant@google.com>
1176
1177         * dse.c (struct store_info): Rename bitmap field to bmap.  Change
1178         all uses.
1179
1180         * c-decl.c (in_struct, struct_types): Remove.
1181         (struct c_binding): Add in_struct field.
1182         (c_binding_ptr): Define type, along with VEC.
1183         (struct c_struct_parse_info): Define.
1184         (struct_parse_info): New static variable.
1185         (bind): Initialize in_struct field.
1186         (start_struct): Remove enclosing_in_struct and
1187         enclosing_struct_types parameters.  Add
1188         enclosing_struct_parse_info parameter.  Change all callers.  Set
1189         struct_parse_info rather than in_struct and struct_types.
1190         (grokfield): If -Wc++-compat and there is a symbol binding for the
1191         field name, set the in_struct flag and push it on the
1192         struct_parse_info->fields vector.
1193         (warn_cxx_compat_finish_struct): New static function.
1194         (finish_struct): Remove enclosing_in_struct and
1195         enclosing_struct_types parameters.  Add
1196         enclosing_struct_parse_info parameter.  Change all callers.  Don't
1197         set C_TYPE_DEFINED_IN_STRUCT here.  Call
1198         warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
1199         parameter.  Only push on struct_types if warn_cxx_compat.
1200         (finish_enum): Only push on struct_types if warn_cxx_compat.
1201         (declspecs_add_type): Add loc parameter.  Change all callers.
1202         Change all error calls to error_at.  Pass loc, not input_location,
1203         to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
1204         defined in a struct.  If -Wc++-compat and parsing a struct, record
1205         that a typedef name was used.
1206         * c-parser.c (c_parser_declspecs): Get location to pass to
1207         declspecs_add_type.
1208         (c_parser_struct_or_union_specifier): Update calls to start_struct
1209         and finish_struct.
1210         * c-tree.h (struct c_struct_parse_info): Declare.
1211         (finish_struct, start_struct): Update declarations.
1212         (declspecs_add_type): Update declaration.
1213
1214 2009-06-19  Ian Lance Taylor  <iant@google.com>
1215
1216         * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
1217         variable with an anonymous type.
1218
1219 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
1220
1221         * see.c: Remove for real.
1222
1223 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
1224
1225         * optabs.h (enum optab_index): Add new OTI_significand.
1226         (significand_optab): Define corresponding macro.
1227         * optabs.c (init_optabs): Initialize significand_optab.
1228         * genopinit.c (optabs): Implement significand_optab using
1229         significand?f2 patterns.
1230         * builtins.c (expand_builtin_mathfn): Handle
1231         BUILT_IN_SIGNIFICAND{,F,L}.
1232         (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
1233         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1234
1235         * config/i386/i386.md (significandxf2, significand<mode>2): New
1236         expanders to implement significandf, significand and significandl
1237         built-ins as inline x87 intrinsics.
1238
1239 2009-06-18  Anatoly Sokolov  <aesok@post.ru>
1240
1241         * config/avr/avr.c (avr_override_options): Remove setting value of
1242         PARAM_INLINE_CALL_COST.
1243
1244 2009-06-18  Richard Henderson  <rth@redhat.com>
1245
1246         PR 40488
1247         * tree-pass.h (TDF_ASMNAME): New.
1248         * tree-dump.c (dump_options): Add asmname.
1249         * doc/invoke.texi: Document it.
1250
1251         * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
1252         (dump_decl_name): ...here.
1253         (dump_function_name): New flags arg; mind TDF_ASMNAME.
1254         (dump_generic_node): Update dump_function_name calls.
1255         (print_call_name): New flags arg; update all dump calls.
1256         * diagnostic.h (print_call_name): Update.
1257         * gimple-pretty-print.c (dump_gimple_call): Update.
1258
1259 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
1260
1261         PR target/40470
1262         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
1263
1264 2009-06-18  Diego Novillo  <dnovillo@google.com>
1265
1266         * doc/plugins.texi: Document plugin_is_GPL_compatible.
1267         * plugin.c (str_license): Declare.
1268         (try_init_one_plugin): Assert that the symbol
1269         'plugin_is_GPL_compatible' exists.
1270
1271 2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>
1272
1273         * see.c: Remove.
1274         * Makefile.in (OBJS-common): Remove see.o.
1275         (see.o): Remove.
1276         * common.opt (fsee): Mark as preserved for backward compatibility.
1277         * opts.c (common_handle_option): Add OPT_fsee to the backward 
1278         compatibility section.
1279         * passes.c (init_optimization_passes, pass_see): Remove pass.
1280         * timevar.def (TV_SEE): Remove.
1281         * tree-pass.h (pass_see): Remove declaration.
1282         * doc/invoke.texi (-fsee): Remove documentation.
1283         
1284 2009-06-18  Martin Jambor  <mjambor@suse.cz>
1285
1286         * tree-sra.c: Include statistics.h
1287         (sra_stats): New variable.
1288         (sra_initialize): Clear sra_stats.
1289         (create_access_replacement): Increment sra_stats.replacements.
1290         (get_access_replacement): Do not return twice.
1291         (analyze_all_variable_accesses): Increment statistics counter by the
1292         number of scalarized aggregates.
1293         (generate_subtree_copies): Increment sra_stats.subtree_copies.
1294         (sra_modify_expr): Increment sra_stats.exprs.
1295         (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
1296         (sra_modify_assign): Increment sra_stats.exprs,
1297         sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
1298         (perform_intra_sra): Update statistics counters.
1299         * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
1300
1301 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
1302
1303         * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
1304         (arm_scalar_mode_supported_p): New function.
1305
1306 2009-06-18  Paul Brook  <paul@codesourcery.com>
1307             Sandra Loosemore  <sandra@codesourcery.com>
1308
1309         * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
1310         (__extendhfsf2, __truncsfhf2): Define.
1311         * config/arm/fp16.c: New file.
1312         * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
1313         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.
1314
1315 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
1316
1317         * doc/extend.texi (Half-Precision): New section.
1318         * doc/invoke.texi (Option Summary): List -mfp16-format.
1319         (ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
1320         * config/arm/arm.opt (mfp16-format=): New.
1321         * config/arm/arm.c: Include intl.h.
1322         (TARGET_INVALID_PARAMETER_TYPE): Redefine.
1323         (TARGET_INVALID_RETURN_TYPE): Redefine.
1324         (TARGET_PROMOTED_TYPE): Redefine.
1325         (TARGET_CONVERT_TO_TYPE): Redefine.
1326         (arm_fp16_format): Define.
1327         (all_fpus): Add entry for neon-fp16.
1328         (fp_model_for_fpu): Likewise.
1329         (struct fp16_format): Declare.
1330         (all_fp16_formats): Define.
1331         (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
1332         functions.
1333         (arm_override_options): Set arm_fp16_format. Call sorry for fp16
1334         and no ldrh.
1335         (arm_legitimate_index_p): Treat HFmode like HImode.
1336         (thumb1_legitimate_address_p): Make it recognize HFmode constants.
1337         (coproc_secondary_reload_class): Special-case HFmode.
1338         (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
1339         (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
1340         (arm_init_fp16_builtins): New.
1341         (arm_init_builtins): Call it.
1342         (arm_invalid_parameter_type): New.
1343         (arm_invalid_return_type): New.
1344         (arm_promoted_type): New.
1345         (arm_convert_to_type).
1346         (arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
1347         format.
1348         (arm_emit_fp16_const): New function.
1349         (arm_mangle_type): Mangle __fp16 as "Dh".
1350         * config/arm/arm.h (TARGET_VFPD32): Make it know about
1351         FPUTYPE_NEON_FP16.
1352         (TARGET_NEON_FP16): New.
1353         (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
1354         (enum fputype): Add FPUTYPE_NEON_FP16.
1355         (enum arm_fp16_format_type): Declare.
1356         (arm_fp16_format): Declare.
1357         (LARGEST_EXPONENT_IS_NORMAL): Define.
1358         * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
1359         * config/arm/arm-modes.def (HFmode): Define.
1360         * config/arm/vfp.md: (*movhf_vfp): New.
1361         (extendhfsf2): New.
1362         (truncsfhf2): New.
1363         * config/arm/arm.md: (fpu): Add neon_fp16.
1364         (floatsihf2, floatdihf2): New.
1365         (fix_trunchfsi2, fix_trunchfdi2): New.
1366         (truncdfhf2): New.
1367         (extendhfdf2): New.
1368         (movhf): New.
1369         (*arm32_movhf): New.
1370         (*thumb1_movhf): New.
1371         (consttable_2): Add check for HFmode constants.
1372         (consttable_4): Handle HFmode constants.
1373
1374 2009-06-18  Uros Bizjak  <ubizjak@gmail.com>
1375
1376         * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
1377
1378 2009-06-17  Olivier Hainque  <hainque@adacore.com>
1379
1380         * collect2.c (main): Use CONST_CAST2 to perform char ** to
1381         const char ** conversion in AIX specific section.
1382         
1383 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
1384
1385         * config/i386/i386.c (ix86_special_builtin_type): Remove
1386         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
1387         (bdesc_special_args): Updated.
1388         (ix86_init_mmx_sse_builtins): Likewise.
1389         (ix86_expand_special_args_builtin): Likewise.
1390
1391 2009-06-17  Richard Henderson  <rth@redhat.com>
1392
1393         * tree-pretty-print.c (maybe_dump_asm_name): New.
1394         (dump_decl_name): Use it.
1395         (PRINT_FUNCTION_NAME): Merge into...
1396         (dump_function_name): ... here.  Use maybe_dump_asm_name.
1397
1398 2009-06-17  Cary Coutant  <ccoutant@google.com>
1399
1400         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
1401         Change caller.
1402         * debug.c (struct gcc_debug_hooks): Change placeholder for
1403         source_line hook.
1404         (debug_nothing_int_charstar_int): Replaced by...
1405         (debug_nothing_int_charstar_int_bool): ...this.
1406         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
1407         source_line prototype.
1408         (debug_nothing_int_charstar_int): Replaced by...
1409         (debug_nothing_int_charstar_int_bool): ...this.
1410         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
1411         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
1412         Output is_stmt operand when necessary.
1413         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
1414         (notice_source_line): Add is_stmt parameter.
1415         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
1416         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
1417         Change callers.
1418         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
1419         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
1420
1421 2009-06-17  Ian Lance Taylor  <iant@google.com>
1422
1423         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
1424         Change all uses.
1425         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
1426         call uses.
1427
1428 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
1429
1430         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
1431         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
1432         tree_strip_sign_nop_conversions and
1433         tree_ssa_strip_useless_type_conversions rather than stripping
1434         the operations here.
1435         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
1436         Declare them.
1437         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
1438         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
1439         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
1440         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
1441         functions.
1442
1443 2009-06-17  Michael Eager  <eager@eagercon.com>
1444
1445         * config/rs6000/constraints.md (register_constraint "d"): New.
1446         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
1447         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
1448         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
1449         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
1450         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
1451         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
1452         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
1453         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
1454         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
1455         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
1456         __fctiwz): Same.
1457         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
1458         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
1459         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
1460         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
1461         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1462         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
1463         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
1464         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
1465         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
1466         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
1467         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
1468         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
1469         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
1470         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
1471
1472 2009-06-16  Ian Lance Taylor  <iant@google.com>
1473
1474         * profile.c (total_num_never_executed): Don't define.
1475         (compute_branch_probabilities): Don't count or print
1476         num_never_executed.
1477         (init_branch_prob): Don't set total_num_never_executed.
1478         (end_branch_prob): Don't print total_num_never_executed.
1479
1480 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
1481
1482         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
1483
1484 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
1485
1486         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
1487         (nabstd2_fpr): Same.
1488
1489 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
1490
1491         * expr.c (expand_assignment): Change complex type check.
1492
1493 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
1494
1495         * doc/plugins.texi (Building GCC plugins): Added new section. 
1496
1497 2009-06-17  Ian Lance Taylor  <iant@google.com>
1498
1499         * c-pch.c (get_ident): Don't set size of templ array.
1500         (pch_init): Don't set size of partial_pch array.
1501
1502         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
1503         string constant to intialize an array whose size is the length of
1504         the string.
1505
1506 2009-06-17  Richard Guenther  <rguenther@suse.de>
1507
1508         PR tree-optimization/40389
1509         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
1510         to addressable types.
1511         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
1512
1513 2009-06-17  Richard Guenther  <rguenther@suse.de>
1514
1515         PR middle-end/40460
1516         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
1517         if there is no evolution of left in the loop bail out.
1518         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
1519         chrec_fold_multiply.
1520
1521 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
1522             Janis Johnson  <janis187@us.ibm.com>
1523
1524         PR target/39254
1525         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
1526         for the symbol ref of a constant that is the source of a move
1527         - nor for any other not-obvious-label-ref constants.
1528
1529 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
1530
1531         * plugin.c (position_pass): Skip newly inserted pass during list
1532         traversal to avoid repeated insertion.
1533
1534 2009-06-16  Ian Lance Taylor  <iant@google.com>
1535
1536         * vec.h (VEC_stack_alloc): Define different version if
1537         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
1538         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
1539         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
1540         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
1541
1542 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
1543
1544         * config.gcc (extra_headers): Add ia32intrin.h for x86.
1545
1546         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
1547         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
1548         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
1549         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
1550         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
1551         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
1552         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
1553         (bdesc_special_args): Add __builtin_ia32_rdtsc and
1554         __builtin_ia32_rdtscp.
1555         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
1556         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
1557         and __builtin_ia32_rorhi.
1558         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
1559         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
1560         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
1561         (ix86_expand_args_builtin): Likewise.
1562         (ix86_expand_special_args_builtin): Likewise.
1563
1564         * config/i386/i386.md (UNSPECV_RDTSCP): New.
1565         (UNSPECV_RDTSC): Likewise.
1566         (UNSPECV_RDPMC): Likewise.
1567         (*bsr): Renamed to ...
1568         (bsr): This
1569         (*bsr_rex64): Renamed to ...
1570         (bsr_rex64): This.
1571         (rdpmc): New.
1572         (*rdpmc): Likewise.
1573         (*rdpmc_rex64): Likewise.
1574         (rdtsc): Likewise.
1575         (*rdtsc): Likewise.
1576         (*rdtsc_rex64): Likewise.
1577         (rdtscp): Likewise.
1578         (*rdtscp): Likewise.
1579         (*rdtscp_rex64): Likewise.
1580
1581         * config/i386/ia32intrin.h: New.
1582
1583         * config/i386/x86intrin.h: Include <ia32intrin.h>.
1584
1585 2009-06-16  Ian Lance Taylor  <iant@google.com>
1586
1587         * ira-build.c (copy_info_to_removed_store_destinations):
1588         Initialize parent_a.
1589
1590 2009-06-16  Ian Lance Taylor  <iant@google.com>
1591
1592         * c-decl.c (grokdeclarator): Change size_varies to bool.
1593
1594 2009-06-16  Ian Lance Taylor  <iant@google.com>
1595
1596         * sel-sched.c: Make forward declarations of move_op_hooks and
1597         fur_hooks explicitly extern.
1598
1599 2009-06-16  Ian Lance Taylor  <iant@google.com>
1600
1601         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
1602         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
1603
1604 2009-06-16  Ian Lance Taylor  <iant@google.com>
1605
1606         * resource.c (mark_referenced_resources): Change
1607         include_delayed_effects parameter to bool.  Change all callers.
1608         (mark_end_of_function_resources): Likewise.
1609         * reorg.c (insn_references_resource_p): Likewise.
1610         (insn_sets_resource_p): Likewise.
1611         * resource.h (mark_referenced_resources): Update declaration.
1612         (mark_end_of_function_resources): Update declaration.
1613
1614 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
1615
1616         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
1617
1618 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
1619
1620         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
1621         GCC can bootstrap on AIX with GNU Binutils 2.20.
1622
1623 2009-06-16  Ian Lance Taylor  <iant@google.com>
1624
1625         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
1626
1627 2009-06-16  Ian Lance Taylor  <iant@google.com>
1628
1629         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
1630         inline, not extern inline.
1631         (exact_log2): Likewise.
1632         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
1633         test CLZ_HWI.
1634         (exact_log2): Likewise, but don't test CTZ_HWI.
1635
1636 2009-06-16  Ian Lance Taylor  <iant@google.com>
1637
1638         * bitmap.c (bitmap_clear): Don't declare as inline.
1639         * gimple.c (gimplify_assign): Likewise.
1640         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
1641         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
1642         (sched_scan_info): Remove duplicate definition.
1643
1644 2009-06-16  Ian Lance Taylor  <iant@google.com>
1645
1646         * c-common.c (skip_evaluation): Don't define.
1647         (c_inhibit_evaluation_warnings): Define global variable.
1648         (overflow_warning): Check c_inhibit_evaluation_warnings rather
1649         than skip_evaluation.
1650         (convert_and_check, warn_for_div_by_zero): Likewise.
1651         * c-common.h (skip_evaluation): Don't declare.
1652         (c_inhibit_evaluation_warnings): Declare.
1653         * c-parser.c (c_parser_typeof_specifier): Set
1654         c_inhibit_evaluation_warnings rather than skip_evaluation.
1655         (c_parser_conditional_expression): Likewise.
1656         (c_parser_binary_expression): Likewise.
1657         (c_parser_sizeof_expression): Likewise.
1658         (c_parser_alignof_expression): Likewise.
1659         * c-typeck.c (build_indirect_ref): Check
1660         c_inhibit_evaluation_warnings rather than skip_evaluation.
1661         (build_conditional_expr, build_binary_op): Likewise.
1662
1663 2009-06-16  Richard Guenther  <rguenther@suse.de>
1664
1665         * tree-ssa-alias.c (is_escape_site): Remove.
1666         * tree-ssa-alias.h (enum escape_type): Remove.
1667         (is_escape_site): Likewise.
1668         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
1669         via casts and asms without deferring to is_escape_site.
1670
1671 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
1672
1673         PR middle-end/40446
1674         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
1675         use gen_lowpart if op0 has complex mode.
1676
1677 2009-06-16  Richard Guenther  <rguenther@suse.de>
1678
1679         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
1680         variables add them to ESCAPED.
1681         (find_func_aliases): Do not make all indirectly stored values escaped.
1682
1683 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
1684
1685         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
1686         make_decl_one_only.
1687
1688 2009-06-16  Martin Jambor  <mjambor@suse.cz>
1689
1690         PR tree-optimization/40432
1691         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
1692         check whether we need to force gimple register operand.
1693
1694 2009-06-16  Martin Jambor  <mjambor@suse.cz>
1695
1696         PR tree-optimization/40413
1697         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
1698         build_ref_for_offset.
1699         (propagate_subacesses_accross_link): Fix a typo in a comment.
1700
1701 2009-06-16  Ira Rosen  <irar@il.ibm.com>
1702
1703         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
1704         with additional parameter.
1705         * tree-vectorizer.h (enum vect_def_type): Add new value
1706         vect_nested_cycle.
1707         (enum vect_relevant): Add comments.
1708         (vect_is_simple_reduction): Add new argument.
1709         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
1710         Detect nested cycles.
1711         (vect_is_simple_reduction): Update documentation, add an argument to
1712         distinguish inner-loop reduction from nested cycle, detect nested
1713         cycles, fix printings and indentation, don't swap operands in case
1714         of nested cycle.
1715         (get_initial_def_for_reduction): Handle subtraction.
1716         (vect_create_epilog_for_reduction): Add new argument to specify
1717         reduction variable.
1718         (vect_finalize_reduction): Handle subtraction, fix comments.
1719         (vectorizable_reduction): Handle nested cycles. In case of nested
1720         cycle keep track of the reduction variable position. Call 
1721         vect_is_simple_reduction with additional parameter. Use original 
1722         statement code in reduction epilogue for nested cycle. Call
1723         vect_create_epilog_for_reduction with additional parameter.
1724         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
1725         inner-loop vectorization.
1726         (vect_recog_widen_sum_pattern): Likewise.
1727         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
1728         and reductions.
1729         (vect_mark_stmts_to_be_vectorized): Likewise.
1730         (vect_get_vec_def_for_operand): Handle nested cycles.
1731
1732 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1733
1734         * doc/invoke.texi (Debugging Options): Fix option index entries
1735         for -fdump-statistics, -frandom-seed add entries for
1736         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
1737         (FRV Options): Fix entries for -mTLS, -mtls.
1738         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
1739         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
1740         (M68hc1x Options): Fix @itemx for -mnominmax.
1741         (MCore Options): Fix entry for -mno-lsim.
1742         (MMIX Options): Fix entry for -mabi=mmixware.
1743         (PDP-11 Options): Fix entry for -mbcopy-builtin.
1744
1745 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
1746
1747         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
1748         Mention the plugin mode of gengtype.
1749         * doc/gty.texi (Source Files Containing Type Information): Likewise.
1750         * gengtype.c: Updated copyright.
1751         (plugin_files, nb_plugin_files) Added new static variables.
1752         (measure_input_list) Care about plugin_files.
1753         (write_rtx_next): Added early return in plugin mode.
1754         (create_file): Updated copyright year in generated file. Added
1755         asserts.
1756         (oprintf): Added early return if NULL outf.
1757         (get_output_file_with_visibility): Care of plugin_files.
1758         (get_output_file_name): May return null.
1759         (write_local): Added early return.
1760         (put_mangled_filename): Ditto.
1761         (finish_root_table): Added check for base_files.
1762         (write_roots): Care about null when plugins.
1763         (main): Added plugin mode.
1764
1765 2009-06-15  Ian Lance Taylor  <iant@google.com>
1766
1767         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
1768         * gcov.c (read_count_file): Add braces around variables declared
1769         before label.
1770
1771         * c.opt (Wjump-misses-init): New warning.
1772         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
1773         -Wall and -Wc++-compat if not already set.
1774         (c_common_post_options): Clear warn_jump_misses_init if it was not
1775         set.
1776         * c-decl.c (struct c_binding): Change type field to a union with
1777         new label field.  Make it the first field in the struct.  Update
1778         references to type to use u.type instead.
1779         (struct c_spot_bindings): Define.
1780         (struct c_goto_bindings): Define.
1781         (c_goto_bindings_p): Define, along with VECs.
1782         (struct c_label_vars): Define.
1783         (struct c_scope): Add has_label_bindings field.
1784         (bind_label, set_spot_bindings): New static functions.
1785         (decl_jump_unsafe, update_spot_bindings): New static functions.
1786         (update_label_decls): New static function.
1787         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
1788         Update binding u.label field to shadowed field.
1789         (c_binding_start_stmt_expr): New function.
1790         (c_binding_end_stmt_expr): New function.
1791         (pushdecl): Don't call c_begin_vm_scope.
1792         (make_label): Add defining and p_label_vars parameters.  Change
1793         all callers.
1794         (lookup_label): Correct test for whether a label has not yet been
1795         defined.  Call bind_label rather than bind.
1796         (warn_about_goto): New static function.
1797         (lookup_label_for_goto): New function.
1798         (declare_label): Call bind_label rather than bind.
1799         (check_earlier_gotos): New static function.
1800         (define_label): Don't give errors about jumping into statement
1801         expressions or scopes of variably modified types.  Call
1802         set_spot_bindings and check_earlier_gotos.  Call bind_label
1803         instead of bind.  Don't set label_context_stack_se or
1804         label_context_stack_vm.
1805         (c_get_switch_bindings): New function.
1806         (c_release_switch_bindings): New function.
1807         (c_check_switch_jump_warnings): New function.
1808         (start_function): Don't set label_context_stack_se or
1809         label_context_stack_vm.
1810         (finish_function): Likewise.
1811         * c-typeck.c (label_context_stack_se): Don't define.
1812         (label_context_stack_vm): Don't define.
1813         (c_finish_goto_label): Call lookup_label_for_goto rather than
1814         lookup_label.  Don't give errors about jumping into a statement
1815         expression or the scope of a variably modified type.  Don't set
1816         label_context_stack_se or label_context_stack_vm.
1817         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
1818         fields.  Add bindings field.
1819         (c_start_case): Don't set deleted fields.  Set bindings field.
1820         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
1821         or blocked_vm.  Call c_check_switch_jump_warnings.
1822         (c_finish_case): Don't test blocked_stmt_expr field.  Call
1823         c_release_switch_bindings.
1824         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
1825         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
1826         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
1827         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
1828         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
1829         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
1830         (c_begin_vm_scope, c_end_vm_scope): Don't define.
1831         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
1832         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
1833         (C_DECL_UNJUMPABLE_VM): Don't define.
1834         (C_DECL_UNDEFINABLE_VM): Don't define.
1835         (struct c_label_list): Don't define.
1836         (struct c_label_context_se): Don't define.
1837         (struct c_label_context_vm): Don't define.
1838         (struct c_spot_bindings): Declare.
1839         (c_bindings_start_stmt_expr): Declare.
1840         (c_bindings_end_stmt_expr): Declare.
1841         (lookup_label_for_goto): Declare.
1842         (c_get_switch_bindings, c_release_switch_bindings): Declare.
1843         (c_check_switch_jump_warnings): Declare.
1844         (label_context_stack_se, label_context_stack_vm): Don't declare.
1845         (c_finish_goto_label): Update declaration.
1846         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
1847         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
1848         (Warning Options): Document -Wjump-misses-init.
1849
1850 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
1851
1852         * tree-object-size.c (addr_object_size): Fix a pasto in the last
1853         change.
1854
1855 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
1856
1857         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
1858
1859 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
1860
1861         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
1862
1863 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
1864
1865         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
1866
1867 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
1868
1869         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
1870         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
1871         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
1872         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
1873         * dwarf2asm.c (dw2_force_const_mem): Update call to
1874         make_decl_one_only.
1875         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
1876         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
1877         * langhooks.c (lhd_comdat_group): Remove.
1878         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
1879         * tree.h (DECL_COMDAT_GROUP): New.
1880         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
1881         (tree_decl_with_vis): Add comdat_group. Remove one_only.
1882         (make_decl_one_only): Change signature.
1883         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
1884         make_decl_one_only.
1885         (make_decl_one_only): Change signature.
1886         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
1887
1888 2009-06-15  Richard Guenther  <rguenther@suse.de>
1889
1890         PR middle-end/40439
1891         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
1892
1893 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1894
1895         * tree-ssa-math-opts.c: Remove extra divide.
1896
1897 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1898
1899         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
1900
1901 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1902
1903         * passes.c: Add bswap pass.
1904         * tree-pass.h: Add pass_optimize_bswap declaration.
1905         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
1906         Include rtl.h, expr.h and optabs.h for optab_handler check.
1907         (struct symbolic_number, pass_optimize_bswap): New definition.
1908         (do_shift_rotate, verify_symbolic_number_p): New functions.
1909         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
1910         (gate_optimize_bswap): New function.
1911         * tree.c (widest_int_cst_value): New function.
1912         * tree.h (widest_int_cst_value): Prototype added.
1913
1914 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
1915
1916         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
1917         REG_EQUAL/REG_EQUIV notes.
1918
1919 2009-06-14  Richard Guenther  <rguenther@suse.de>
1920
1921         PR middle-end/40389
1922         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
1923         has its address taken if NRV was applied and it is addressable.
1924         * tree-ssa-structalias.c (get_constraint_for_address_of): New
1925         function split out from ...
1926         (get_constraint_for_1): ... here.
1927         (handle_rhs_call): Use it to mark the return slot escaped if
1928         it is addressable and NRV was applied.
1929
1930 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
1931
1932         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
1933         Change first argument type to location_t.
1934         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
1935         Do not set input_location.
1936         Use loc instead of input_location throughout.
1937
1938 2009-06-13  Richard Guenther  <rguenther@suse.de>
1939
1940         PR tree-optimization/40421
1941         * tree-predcom.c (should_unroll_loop_p): Remove.
1942         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
1943
1944 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
1945
1946         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1947         Add location argument.
1948
1949 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
1950
1951         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
1952         build_decl.
1953         * config/s390/s390.c (s390_build_builtin_va_list): Same.
1954         (s390_gimplify_va_arg): Pass location to create_artificial_label.
1955         * config/spu/spu-protos.h: Add location to
1956         spu_resolve_overloaded_builtin.
1957         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
1958         spu_build_builtin_va_list.
1959         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
1960         argument.  Pass location to build_function_call_vec.
1961         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
1962         build_decl.
1963         (emit_fpu_switch): Same.
1964         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
1965         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
1966         to build_decl and create_artificial_label.
1967         (xtensa_gimplify_va_arg_expr): Same.
1968         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
1969         (xstormy16_gimplify_va_arg_expr): Same.
1970         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
1971         * config/arm/arm.c (arm_build_builtin_va_list): Same.
1972         * config/mips/mips.c (mips_build_builtin_va_list): Same.
1973         (mips16_build_function_stub): Same.
1974         (mips16_build_call_stub): Same.
1975
1976 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
1977
1978         PR target/40327
1979         * arm/constraints.md (Pa, Pb): New constraints.
1980         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
1981         split pattern to deal with them.
1982
1983 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
1984
1985         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
1986         fix index entry for -Xpreprocessor.
1987
1988 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
1989
1990         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1991         Add location argument to build_decl call.
1992         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
1993         (rs6000_init_builtins): Same.
1994         (spe_init_builtins): Same.
1995         (rs6000_gimplify_va_arg): Add location argument to
1996         create_artificial_label call.
1997
1998 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
1999
2000         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
2001         * combine-stack-adj.c (pass_stack_adjustments): Use it.
2002         * Makefile.in: Fix GGC dependency for gcse.o.
2003
2004 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
2005
2006         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
2007         * gimple-pretty-print.c (dump_gimple_stmt): Same.
2008         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
2009         created.
2010         * c-parser.c (c_parser_binary_expression): Use current column while
2011         building binary operations.
2012         * common.opt (fshow-column): Enable by default.
2013         * tree-vrp.c (check_array_ref): Use warning_at.
2014         (check_array_bounds): Use location from call back if expr has no
2015         location.
2016         * tree.h: Add location argument to maybe_fold_*.
2017         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
2018         (maybe_fold_offset_to_array_ref): Add location argument and use it.
2019         (maybe_fold_offset_to_component_ref): Same.
2020         (maybe_fold_offset_to_reference): Same.
2021         (maybe_fold_offset_to_address): Same.
2022         (maybe_fold_stmt_indirect): Same.
2023         (maybe_fold_stmt_addition): Same.
2024         (fold_stmt_r): Pass location to maybe_fold_*.
2025         (fold_gimple_assign): Same.
2026         * c-tree.h: Add location argument to finish_decl,
2027         default_function_array_conversion, store_init_value.
2028         * c-decl.c (define_label): Use error_at.
2029         (c_make_fname_decl): Pass location to finish_decl.
2030         (finish_decl): New location argument.
2031         (build_compound_literal): Pass location to store_init_value.
2032         (grokdeclarator): Pass location to finish_decl.
2033         (grokfield): Same.
2034         * c-typeck.c (array_to_pointer_conversion): New location argument.
2035         (function_to_pointer_conversion): Same.
2036         (default_function_array_conversion): Same.
2037         (parser_build_unary_op): Pass location to overflow_warning.
2038         (parser_build_binary_op): Same.  Use warning_at.
2039         (build_unary_op): Pass location to array_to_pointer_conversion.
2040         (build_c_cast): Pass location to digest_init.
2041         (build_modify_expr): New location argument.
2042         (convert_for_assignment): Same.
2043         (store_init_value): Same.
2044         (digest_init): Same.
2045         (output_init_element): Pass location to digest_init and
2046         array_to_pointer_conversion.
2047         (c_finish_return): Pass location to convert_for_assignment.
2048         * gimplify.c (gimplify_conversion): Pass location to
2049         maybe_fold_offset_to_address.
2050         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
2051         to maybe_fold_stmt_addition.
2052         * c-omp.c (c_finish_omp_atomic): Pass new location to
2053         build_modify_expr.
2054         (c_finish_omp_for): Same.
2055         * c-common.c (overflow_warning): New argument.
2056         * c-common.h: New argument to build_modify_expr, overflow_warning.
2057         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
2058         finish_decl.
2059         (c_parser_initializer): Pass location to
2060         default_function_array_conversion.
2061         (c_parser_initelt): Same.
2062         (c_parser_initval): Same.
2063         (c_parser_asm_operands): Same.
2064         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
2065         (c_parser_conditional_expression): Same.
2066         (c_parser_binary_expression): Add location info to stack.  Use it.
2067         (c_parser_unary_expression): Pass location to
2068         default_function_array_conversion, parser_build_unary_op,
2069         build_indirect_ref, c_parser_postfix_expression_after_primary.
2070         (c_parser_postfix_expression_after_primary): New location argument.
2071         Use it.
2072         (c_parser_expression_conv): Pass location to
2073         default_function_array_conversion.
2074         (c_parser_expr_list): Same.
2075         (c_parser_omp_atomic): Same.
2076         (c_parser_omp_for_loop): Same.
2077         * c-tree.h: (struct c_declarator): Add comment to id_loc.
2078         (build_array_declarator): New argument.
2079         * c-decl.c (build_array_declarator): Add location argument.
2080         (grokdeclarator): Set id_loc for cdk_array.
2081         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
2082         build_array_declarator.
2083         * tree.c (build_omp_clause): Add location argument.
2084         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
2085         (OMP_CLAUSE_LOCATION): New macro.
2086         (struct tree_omp_clause): Add location field.
2087         (build_omp_clause): Add argument.
2088         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
2089         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
2090         build_omp_clause.
2091         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
2092         (cp_parser_omp_clause_collapse): Same.
2093         (cp_parser_omp_clause_default): Same.
2094         (cp_parser_omp_clause_if): Same.
2095         (cp_parser_omp_clause_nowait): Same.
2096         (cp_parser_omp_clause_num_threads): Same.
2097         (cp_parser_omp_clause_ordered): Same.
2098         (cp_parser_omp_clause_schedule): Same.
2099         (cp_parser_omp_clause_untied): Same.
2100         (cp_parser_omp_for_loop): Same.
2101         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
2102         * c-tree.h (c_start_case): Add location argument.
2103         (c_process_expr_stmt): Same.
2104         (c_finish_goto_*): Same.
2105         * tree-parloops.c (initialize_reductions): Pass location to
2106         build_omp_clause.
2107         (create_parallel_loop): Same.
2108         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
2109         (gfc_trans_omp_reduction_list): Same.
2110         (gfc_trans_omp_clauses): Same.
2111         (gfc_trans_omp_do): Same.
2112         * c-typeck.c (c_finish_goto_label): Same.
2113         (c_finish_goto_ptr): New location argument.
2114         (c_start_case): Same.
2115         (emit_side_effect_warnings): Same.
2116         (c_process_expr_stmt): Same.
2117         (c_finish_stmt_expr): Same.
2118         (c_finish_omp_clauses): Use error_at instead of error.
2119         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
2120         build_omp_clause.
2121         * c-omp.c (c_split_parallel_clauses): New location argument.
2122         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
2123         to build_omp_clause.
2124         (convert_local_reference_stmt): Same.
2125         (convert_gimple_call): Same.
2126         * c-common.h (c_split_parallel_clauses): New argument.
2127         * c-parser.c (c_parser_statement_after_labels): Pass location to
2128         c_finish_goto_label.
2129         (c_parser_switch_statement): Pass location to c_start_case.
2130         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
2131         and c_process_expr_stmt.
2132         (c_parser_omp_variable_list): Add location argument.
2133         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
2134         (c_parser_omp_clause_default): Same.
2135         (c_parser_omp_clause_if): Same.
2136         (c_parser_omp_clause_num_threads): Same.
2137         (-c_parser_omp_clause_ordered): Same.
2138         (c_parser_omp_clause_reduction): Pass location to
2139         c_parser_omp_variable_list.
2140         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
2141         (c_parser_omp_clause_untied): Same.
2142         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
2143         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
2144
2145         * c-tree.h (check_for_loop_decls, undeclared_variable,
2146         build_component_ref, build_array_ref, build_external_ref,
2147         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
2148         build_conditional_expr, build_compound_expr, c_cast_expr,
2149         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
2150         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
2151         argument.
2152         * c-semantics.c (build_stmt): Same.
2153         (build_case_label): Same.
2154         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
2155         (undeclared_variable): New argument.
2156         (make_label): Same.
2157         (lookup_label): Pass location on down.
2158         (define_label): Same.
2159         (finish_decl): Same.
2160         (build_compound_literal): Same.
2161         (finish_struct): Same.
2162         (finish_function): Do not set location here.
2163         (check_for_loop_decls): New argument.
2164         * tree.c (save_expr): Set location.
2165         (build_empty_stmt): New argument.
2166         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
2167         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
2168         * builtins.c (gimplify_va_arg_expr): Use locations.
2169         (expand_builtin_sync_operation): Same.
2170         * c-typeck.c (build_component_ref): New argument.
2171         (build_array_ref): Same.
2172         (build_external_ref): Same.
2173         (c_expr_sizeof_expr): Same.
2174         (c_expr_sizeof_type): Same.
2175         (parser_build_unary_op): Same.
2176         (build_conditional_expr): Same.
2177         (build_compound_expr): Pass location on down.
2178         (build_compound_expr): New argument.
2179         (build_c_cast): Same.
2180         (c_cast_expr): Same.
2181         (build_asm_expr): Same.
2182         (c_finish_return): Same.
2183         (c_process_expr_stmt): Pass location on down.
2184         (c_finish_stmt_expr): New argument.
2185         (push_clenaup): Same.
2186         (c_finish_omp_parallel): Same.
2187         (c_finish_omp_task): Same.
2188         * gimplify.c (gimplify_call_expr): Pass location on down.
2189         * c-omp.c (c_finish_omp_master): New argument.
2190         (c_finish_omp_critical): Same.
2191         (c_finish_omp_ordered): Same.
2192         (c_finish_omp_barrier): Same.
2193         (-c_finish_omp_taskwait): Same.
2194         (c_finish_omp_atomic): Same.
2195         (c_finish_omp_flush): Same.
2196         * tree-inline.c (copy_tree_body_r): Pass location on down.
2197         (inline_forbidden_p): Remove use of input_location.
2198         * c-gimplify.c (c_build_bind_expr): New argument.
2199         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
2200         (c_sizeof_or_alignof_type): New argument.
2201         (c_alignof_expr): Same.
2202         (build_va_arg): Same.
2203         (c_add_case_label): Same.
2204         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
2205         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
2206         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
2207         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
2208         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
2209         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
2210         New argument.
2211         * stub-objc.c (objc_build_selector_expr): Same.
2212         (objc_build_throw_stmt): Same.
2213         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
2214         (c_parser_initelt): Same.
2215         (c_parser_compound_statement): Same.
2216         (c_parser_compound_statement_nostart): Same.
2217         (c_parser_label): Same.
2218         (c_parser_statement_after_labels): Same.
2219         (c_parser_if_body): Same.
2220         (c_parser_else_body): Same.
2221         (c_parser_if_statement): Same.
2222         (c_parser_switch_statement): Same.
2223         (c_parser_while_statement): Same.
2224         (c_parser_do_statement): Same.
2225         (c_parser_for_statement): Same.
2226         (c_parser_asm_statement): Same.
2227         (c_parser_conditional_expression): Same.
2228         (c_parser_binary_expression): Same.
2229         (c_parser_cast_expression): Same.
2230         (c_parser_unary_expression): Same.
2231         (c_parser_sizeof_expression): Same.
2232         (c_parser_alignof_expression): Same.
2233         (c_parser_postfix_expression): Same.
2234         (c_parser_expression): Same.
2235         (c_parser_objc_receiver): Same.
2236         (c_parser_omp_variable_list): Same.
2237         (c_parser_omp_structured_block): Same.
2238         (c_parser_omp_atomic): New argument.
2239         (c_parser_omp_barrier): Same.
2240         (c_parser_omp_critical): Same.
2241         (c_parser_omp_flush): Pass location on down.
2242         (c_parser_omp_for_loop): New argument.
2243         (c_parser_omp_for): Same.
2244         (c_parser_omp_master): Same.
2245         (c_parser_omp_ordered): Same.
2246         (c_parser_omp_sections_scope): Same.
2247         (c_parser_omp_sections): Same.
2248         (c_parser_omp_parallel): Same.
2249         (c_parser_omp_single): Same.
2250         (c_parser_omp_task): Same.
2251         (c_parser_omp_taskwait): Pass location on down.
2252         (c_parser_omp_construct): Same.
2253         (c_parser_omp_threadprivate): Same.
2254         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
2255         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
2256         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
2257         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
2258         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
2259         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
2260         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
2261         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
2262         config/i386/i386.c, stmt.c:
2263         Add location argument to the following function definitions and/or
2264         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
2265         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
2266         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
2267         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
2268         do_case, c_finish_bc_stmt, build_compound_literal,
2269         build_function_call.
2270         * c-decl.c (build_compound_literal): Add location argument.
2271         Make all diagnostic calls use location.
2272         (start_struct): Same.
2273         (finish_struct): Same.
2274         (start_enum): Same.
2275         (build_enumerator): Same.
2276         (start_function): Same.
2277         (grokdeclarator): Make all diagnostic calls use location.
2278         (store_parm_decls_oldstyle): Same.
2279         * c-typeck.c (build_function_call): Add location argument.
2280         Make all diagnostic calls use location.
2281         (do_case): Same.
2282         (c_finish_bc_stmt): Same.
2283         * tree-nested.c (get_trampoline_type): Add argument.
2284         Pass location to build_decl.
2285         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
2286         * rtl.h (RTL_LOCATION): New.
2287         * c-common.c (c_add_case_label): Add location argument.
2288         Make all diagnostic calls use location.
2289         * c-common.h: Add location argument to make_fname_decl, do_case,
2290         c_add_case_label, build_function_call, resolve_overloaded_builtin.
2291         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
2292         Set it appropriately for every case.  Pass enum_loc to start_enum
2293         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
2294         parser_xref_tag.
2295         (c_parser_struct_or_union_specifier): Save location.  Use it for
2296         start_struct, finish_struct, and parser_xref_tag.
2297
2298 2009-06-12  Ian Lance Taylor  <iant@google.com>
2299
2300         * fold-const.c (fold_unary): Rename local variable and to and_expr.
2301
2302         * c-opts.c (c_common_handle_option): For -Wc++-compat set
2303         cpp_opts->warn_cxx_operator_names.
2304
2305 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2306
2307         PR tree-opt/38865
2308         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
2309         is returns NULL and OP is a VCE, look through the VCE.
2310
2311 2009-06-12  Ian Lance Taylor  <iant@google.com>
2312
2313         PR bootstrap/40430
2314         * collect2.c (main): Use CONST_CAST2 in code inside #if
2315         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
2316
2317 2009-06-12  Joey Ye  <joey.ye@intel.com>
2318
2319         PR middle-end/39146
2320         * cfgexpand.c (get_decl_align_unit): Update
2321         max_used_stack_slot_alignment with align instead of
2322         stack_alignment_needed.
2323
2324         * function.c (assign_stack_local_1): Update
2325         max_used_stack_slot_alignment with alignment_in_bits instead
2326         of stack_alignment_needed.
2327         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
2328         here.
2329
2330 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
2331
2332         * dwarf2out.c (last_var_location_insn): New variable.
2333         (dwarf2out_end_epilogue): Clear last_var_location_insn.
2334         (dwarf2out_var_location): Don't record anything after last real
2335         insn.  Only change labels if there were any real instructions
2336         in between last note and this one, or if changed sections.
2337
2338 2009-06-11  Richard Henderson  <rth@redhat.com>
2339
2340         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
2341         note when storing the frame pointer in a register.
2342         (FRP): Don't redefine to nothing for epilogue.
2343         (alpha_expand_epilogue): Mark register and sp restores.
2344         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
2345
2346         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
2347         when gen_lowpart is needed.
2348
2349 2009-06-11  Richard Henderson  <rth@redhat.com>
2350
2351         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
2352
2353         * dwarf2out.c (need_data_align_sf_opcode): New.
2354         (div_data_align): Move earlier.
2355         (def_cfa_1, reg_save): Use it.
2356
2357 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
2358
2359         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
2360         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
2361         (ix86_handle_option): Handle OPT_mcrc32.
2362         (ix86_target_string): Add -mcrc32.
2363         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
2364
2365         * config/i386/i386.h (TARGET_CRC32): New.
2366
2367         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
2368         (sse4_2_crc32di): Likewise.
2369
2370         * config/i386/i386.opt (mcrc32): New.
2371
2372         * doc/invoke.texi: Document -mcrc32.
2373
2374 2009-06-11  Richard Henderson  <rth@redhat.com>
2375
2376         * common.opt (gdwarf-): Accept a version number.
2377         * doc/invoke.texi (gdwarf-): Update docs.
2378         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
2379         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
2380         version level, and record it.
2381
2382         * dwarf2.h (DW_CIE_VERSION): Remove.
2383         * dwarf2out.c (DWARF_VERSION): Remove.
2384         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
2385         (output_call_frame_info): Use CIE version 3 for dwarf3,
2386         or if the return register column is out of range for version 1.
2387         (dwarf_stack_op_name): Add all dwarf3 values.
2388         (DEBUG_PUBTYPES_SECTION): New.
2389         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
2390         encoding change for dwarf3.
2391         (output_die) [dw_val_class_die_ref]: Likewise.
2392         (output_compilation_unit_header): Emit correct version for dwarf3.
2393         (output_line_info): Likewise.
2394         (output_pubnames): Update for DWARF_VERSION removal.
2395         (output_aranges): Likewise.
2396         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
2397         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
2398         (dwarf2out_finish): Likewise.
2399
2400 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
2401
2402         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
2403         in r148403.
2404
2405 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
2406
2407         PR c/39252
2408         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
2409         * builtins.c (expand_builtin_unreachable): New function.
2410         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
2411         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
2412         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
2413         successors.
2414         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
2415         searching for missing barriers.
2416
2417 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2418
2419         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
2420         when -fprofile-generate* was passed.
2421         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
2422
2423 2009-06-11  Anthony Green  <green@moxielogic.com>
2424
2425         * config/moxie/moxie.md: Define length attribute for all instructions.
2426         (rCC): Define.
2427         (*b<cond:code>): Support limited branch ranges for new PC-relative
2428         branch instructions.
2429         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
2430
2431 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
2432
2433         * config/i386/i386.c (min_insn_size): Use get_attr_length
2434         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
2435         For __asm return 0.
2436
2437         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
2438         instead of emit_insn_before.
2439
2440 2009-06-10  Ian Lance Taylor  <iant@google.com>
2441
2442         PR bootstrap/40408
2443         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
2444         GIMPLE_SWITCH.
2445
2446 2009-06-10  Revital Eres  <eres@il.ibm.com>
2447
2448         * passes.c (init_optimization_passes): Reschedule
2449         predictive-commoning pass before complete unroll pass.
2450
2451 2009-06-10  Martin Jambor  <mjambor@suse.cz>
2452
2453         * cgraph.c (cgraph_node_can_be_local_p): New function.
2454         (cgraph_make_node_local): New function.
2455         * cgraph.h (cgraph_node_can_be_local_p): Declare.
2456         (cgraph_make_node_local): Declare.
2457
2458 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
2459
2460         * tree.h (tree_base): Add packed_flag and user_align fields.
2461         Decrease size of spare field.
2462         (TYPE_USER_ALIGN): Use user_align from tree_base.
2463         (DECL_USER_ALIGN): Likewise.
2464         (TYPE_PACKED): Use packed_flag from tree_base.
2465         (DECL_PACKED): Likewise.
2466         (tree_type): Delete packed_flag and user_align fields.  Widen
2467         precision field.  Widen mode field and shuffle fields to align
2468         mode on an 8-bit boundary.
2469         (tree_decl_common): Delete decl_flag_1 and user_align fields.
2470         Renumber decl_flag_* fields.  Fix comments.  Widen
2471         decl_common_unused field.
2472         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
2473         (DECL_EXTERNAL): Likewise.
2474         (DECL_BIT_FIELD): Likewise.
2475         (DECL_NONADDRESSABLE_P): Likewise.
2476         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
2477         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
2478
2479 2009-06-10  Ian Lance Taylor  <iant@google.com>
2480
2481         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
2482         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
2483         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
2484         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
2485         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
2486         DEF_VEC_ALLOC_FUNC_P.
2487         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
2488         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
2489         DEF_VEC_ALLOC_FUNC_O.
2490         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
2491         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
2492         DEF_VEC_ALLOC_FUNC_I.
2493         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
2494         (vec_stack_p_reserve_exact_1): Declare.
2495         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
2496         (vec_stack_free): Declare.
2497         (VEC_stack_alloc): Define.
2498         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
2499         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
2500         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
2501         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
2502         for void_p.
2503         (stack_vecs): New static variable.
2504         (vec_stack_p_reserve_exact_1): New function.
2505         (vec_stack_o_reserve_1): New static function.
2506         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
2507         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
2508         (vec_stack_free): New function.
2509         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
2510         (VEC_df_ref_stack_alloc): Define.
2511         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
2512         DEF_VEC_ALLOC_P_STACK.
2513         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
2514         (struct df_collection_rec): Change _vec fields to VEC.  Remove
2515         _use fields.
2516         (df_free_collection_rec): Adjust for new fields.
2517         (df_insn_rescan): Use new df_collection_rec fields.
2518         (df_notes_rescan, df_canonize_collection_rec): Likewise.
2519         (df_ref_create_structure, df_ref_record): Likewise.
2520         (df_get_conditional_uses, df_get_call_refs): Likewise.
2521         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
2522         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
2523         (df_record_exit_block_uses, df_bb_verify): Likewise.
2524         (df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
2525         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
2526         Remove count parameter.  Change return type to void.  Change all
2527         callers.
2528         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
2529         Remove count parameter.  Change return type to void.  Change all
2530         callers.
2531         (df_install_refs): Change old_vec parameter to VEC.  Remove count
2532         parameter.  Change all callers.
2533         (df_install_mws): Change old_vec parameter to VEC.  Remove count
2534         parameter.  Change all callers.
2535         (df_refs_verify): Change new_rec parameter to VEC.  Change call
2536         callers.
2537         (df_mws_verify): Likewise.
2538
2539 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
2540
2541         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
2542
2543 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
2544
2545         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
2546
2547 2009-06-10  Anthony Green  <green@moxielogic.com>
2548
2549         * config/moxie/crti.asm: New file.
2550         * config/moxie/crtn.asm: New file.
2551         * config/moxie/moxie.c: New file.
2552         * config/moxie/moxie.h: New file.
2553         * config/moxie/sfp-machine.h: New file.
2554         * config/moxie/moxie-protos.h: New file.
2555         * config/moxie/t-moxie: Created.
2556         * config/moxie/t-moxie-softfp: Created.
2557         * config/moxie/moxie.md: Created.
2558         * config/moxie/constraints.md: Created.
2559         * config.gcc: Add moxie support.
2560         * doc/md.texi (Machine Constraints): Add moxie constraints.
2561         * doc/contrib.texi (Contributors): Mention moxie port.
2562         * doc/install.texi (Specific): Mention the moxie port.
2563
2564 2009-06-09  Ian Lance Taylor  <iant@google.com>
2565
2566         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
2567         compiling with C++.
2568         * optabs.c (optab_table): Only use designated initializers if
2569         HAVE_DESIGNATED_INITIALIZERS is defined.
2570         (convert_optab_table): Likewise.
2571         (init_optabs): Always call init_insn_codes if
2572         HAVE_DESIGNATED_INITIALIZERS is not defined.
2573
2574 2009-06-09  Ian Lance Taylor  <iant@google.com>
2575
2576         * targhooks.c (default_builtin_vectorized_function): Change fn
2577         parameter to unsigned int.
2578         (default_builtin_vectorized_conversion): Change code parameter to
2579         unsigned int.
2580         (default_builtin_reciprocal): Change fn parameter to unsigned int.
2581         * targhooks.h: Update declarations.
2582         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
2583         parameter to unsigned int.
2584
2585         * c-typeck.c (comptypes_check_enum_int): New static function.
2586         (comptypes_internal): Add enum_and_int_p parameter.  Change all
2587         callers.
2588         (comp_target_types): Add location parameter.  Change all callers.
2589         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
2590         Change all callers.
2591         (function_types_compatible_p, type_lists_compatible_p): Likewise.
2592         (build_conditional_expr): Add colon_loc parameter.  Change all
2593         callers.
2594         (convert_for_assignment): Add location parameter.  Change all callers.
2595         * c-parser.c (c_parser_conditional_expression): Pass location of
2596         colon to build_conditional_expr.
2597         * c-tree.h (build_conditional_expr): Update declaration.
2598
2599 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2600
2601         * graphite.c: Revert previous patch.
2602
2603 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2604
2605         PR bootstrap/40103
2606         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
2607
2608 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2609
2610         * tree-ssa-loop-prefetch.c
2611         (loop_prefetch_arrays): Fixed a portability problem in printf format
2612         string.
2613
2614 2009-06-09  Martin Jambor  <mjambor@suse.cz>
2615
2616         PR tree-optimization/40351
2617         * tree-sra.c (propagate_subacesses_accross_link): Check that a
2618         refrence to a potential artifical subaccess can be constructed.
2619
2620 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2621
2622         * config/sh/sh-protos.h (sh_optimization_options): Declare.
2623         (sh_override_options): Likewise.
2624         * config/sh/sh.c: Include params.h.
2625         (sh_optimization_options): New.
2626         (sh_override_options): Likewise.
2627         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
2628         (OVERRIDE_OPTIONS): Use sh_override_options.
2629
2630 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
2631
2632         * dwarf2out.c (emit_cfa_remember): New variable.
2633         (add_fde_cfi): If emit_cfa_remember, recurse to add
2634         DW_CFA_remember_state first.
2635         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
2636         instead just set emit_cfa_remember.
2637
2638 2009-06-08  Jan Hubicka  <jh@suse.cz>
2639
2640         PR debug/40126
2641         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
2642
2643 2009-06-08  Jan Hubicka  <jh@suse.cz>
2644
2645         PR middle-end/39834
2646         * cgraphunit.c (save_inline_function_body): Do not copy transform
2647         hooks for saved inline bodies.
2648         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
2649         for given function.
2650
2651 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
2652
2653         * jump.c (returnjump_p): Handle delayed branches.  Add missing
2654         function comment.
2655
2656 2009-06-08  Jan Hubicka  <jh@suse.cz>
2657
2658         PR middle-end/40102
2659         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
2660         original node might've been modified.
2661         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
2662
2663 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
2664
2665         * tree-object-size.c (addr_object_size): Add OSI argument.
2666         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
2667         (compute_builtin_object_size, expr_object_size): Adjust callers.
2668         (plus_stmt_object_size): Call addr_object_size instead of
2669         compute_builtin_object_size.
2670
2671 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2672             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2673         
2674         * tree-ssa-loop-prefetch.c 
2675         (gather_memory_references): Introduced a counter for the number of 
2676         memory references.
2677         (anything_to_prefetch_p): Introduced a counter for the number of 
2678         prefetches.
2679         (is_loop_prefetching_profitable): New function with a cost model 
2680         for prefetching.
2681         (loop_prefetch_arrays): Use the new cost model to determine if 
2682         prefetching is profitable.
2683         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
2684         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2685         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
2686         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2687         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
2688         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2689         
2690 2009-06-08  Michael Matz  <matz@suse.de>
2691
2692         PR debug/40012
2693         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
2694         partitions use the same.
2695         (expand_one_var): Deal with DECL_RTL sometimes begin set also
2696         for basevars of SSA_NAMEs.
2697         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
2698         to not expand them twice.
2699         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
2700         multiple places.
2701
2702 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
2703
2704         * common.opt (fcompare-debug=, fcompare-debug-second): New.
2705         (fdump-final-insns=, gtoggle): New.
2706         * doc/invoke.texi: Document them.
2707         * final.c (rest_of_clean_state): Dump final insn stream.
2708         * gcc.c (invoke_as): Hook in -fcompare-debug.
2709         (static_spec_functions): Add compare-debug-dump-opt,
2710         compare-debug-self-opt and compare-debug-auxbase-opt.
2711         (compare_debug, compare_debug_second, compare_debug_opt): New.
2712         (switches_debug_check, n_switches_debug_check): New.
2713         (debug_auxbase_opt, debug_check_temp_file): New.
2714         (process_command): Handle -fno-compare-debug, -fcompare-debug and
2715         -fcompare-debug=*.
2716         (do_self_spec): Handle arguments after switches.
2717         (do_spec_1): Add .gk extension to temp file basenames for compare.
2718         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
2719         (cc1_options): Use it instead of normal auxbase computation for
2720         the second compare-debug compilation.
2721         (compare_files): New.
2722         (main): Set up and implement compare debug mode.
2723         (compare_debug_dump_opt_spec_function): New.
2724         (compare_debug_self_opt_spec_function): New.
2725         (compare_debug_auxbase_opt_spec_function): New.
2726         * toplev.c (process_options): Handle flag_gtoggle,
2727         flag_dump_final_insns.
2728         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
2729         during -fcompare-debug-second compilation.
2730
2731 2009-06-07  Ian Lance Taylor  <iant@google.com>
2732
2733         * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
2734         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
2735
2736         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
2737         with no default node.  Change warning with %H to warning_at.
2738         Don't clear warn_switch around case checking.
2739         * doc/invoke.texi (Warning Options): Clarify distinction between
2740         -Wswitch and -Wswitch-enum.
2741
2742 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2743
2744         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
2745
2746 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2747
2748         * gbl-ctors.h: Add header guard.
2749
2750 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2751
2752         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
2753         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
2754         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
2755         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
2756         prototypes for removed functions.
2757         (expressions_equal_p): Move to ...
2758         * tree-ssa-sccvn.h: ... here and ...
2759         * matrix-reorg.c: ... adjust includes.
2760
2761 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2762
2763         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
2764
2765 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2766
2767         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
2768         (finish_function): Remove erroneous whitespace.
2769
2770 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2771
2772         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
2773         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
2774
2775 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2776
2777         * errors.c (internal_error): Commentary typo fix.
2778         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
2779         * tree-ssa-pre.c: Ditto.
2780
2781 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2782
2783         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
2784         them is supposed to hold actual statements.
2785
2786 2009-06-06  Ian Lance Taylor  <iant@google.com>
2787
2788         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
2789         empty statements can now have attributes.
2790
2791 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
2792
2793         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
2794         * config/mips/mips.md: Ditto.
2795
2796 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
2797
2798         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
2799         _RELOCATABLE.
2800         (__eabi_uconvert): Likewise.
2801
2802 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
2803
2804         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
2805         CFI_* definitions with IN_GCC.
2806
2807 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
2808
2809         * xcoffout.h (xcoffout_source_line): Update prototype.
2810
2811 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2812
2813         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
2814         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
2815
2816 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
2817
2818         PR middle-end/40340
2819         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
2820         inlined_function_outer_scope_p blocks for artificial inlines
2821         even at -g0/-g1.
2822         * tree.c (tree_nonartificial_location): Rewrite using
2823         block_nonartificial_location.
2824
2825 2009-06-05  Revital Eres  <eres@il.ibm.com>
2826             Leehod Baruch  <leehod@il.ibm.com>
2827
2828         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
2829         (expand_expr_real_1): Remove comment.
2830         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2831         Vectorize misaligned access when the target supports it.
2832         (vect_supportable_dr_alignment): Check for unaligned access support.
2833         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
2834         and remove asset.
2835
2836 2009-06-05  Julian Brown  <julian@codesourcery.com>
2837
2838         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
2839         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
2840
2841 2009-06-05  Richard Guenther  <rguenther@suse.de>
2842
2843         PR bootstrap/40350
2844         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
2845         as possibly unused.
2846
2847 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
2848
2849         * config/s390/s390.c (global_not_special_regno_p): New static inline.
2850         (save_gprs): Don't tell unwinder when a global register is saved.
2851         (s390_emit_epilogue): Emit needed epilogue unwind info.
2852
2853 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
2854
2855         * dwarf2out.c (deferred_asm_name): New.
2856         (add_name_and_src_coords_attributes): Defer creation of
2857         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
2858         computed yet.
2859         (move_linkage_attr): New.
2860         (dwarf2out_finish): Revisit deferrals and emit attributes at the
2861         right place.
2862
2863 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
2864
2865         * tree-nested.c (finalize_nesting_tree_1): Declare the
2866         frame_decl in the binding tree.
2867
2868 2009-06-04  Cary Coutant  <ccoutant@google.com>
2869
2870         * basic-block.h (struct basic_block_def): Add discriminator field.
2871         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
2872         callers.
2873         * debug.c (do_nothing_debug_hooks): Add additional entry.
2874         (debug_nothing_int_charstar_int): New function.
2875         * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
2876         (debug_nothing_int_charstar_int): New declaration.
2877         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
2878         discriminator value in .loc directive.
2879         * final.c (last_discriminator): New variable.
2880         (discriminator): New variable.
2881         (final_start_function): Initialize above variables, pass current
2882         discriminator to debug hook.
2883         (notice_source_line): Check for discriminator change.
2884         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
2885         * sdbout.c (sdbout_source_line): New parameter.
2886         * tree-cfg.c (struct locus_discrim_map): New structure type.
2887         (discriminator_per_locus): New hash table.
2888         (build_gimple_cfg): Allocate and free discriminator hash table.
2889         (make_edges): Call assign_discriminator.
2890         (locus_map_hash): New function.
2891         (locus_map_eq): New function.
2892         (next_discriminator_for_locus): New function.
2893         (same_line_p): New function.
2894         (assign_discriminator): New function.
2895         (make_cond_expr_edges): Call assign_discriminator.
2896         (make_gimple_switch_edges): Likewise.
2897         (first_non_label_stmt): New function.
2898         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
2899         all callers.
2900         * xcoffout.c (xcoffout_source_line): Add new parameter.
2901
2902         * configure.ac (gcc_cv_as_discriminator): New configury check for
2903         gas support for discriminator.
2904         * configure: Regenerate.
2905         * config.in: Regenerate.
2906
2907 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2908
2909         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
2910         val after checking for integers.
2911
2912 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
2913
2914         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
2915         X64_REGPARM_MAX.
2916         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
2917         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
2918         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
2919         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
2920         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
2921         X64_SSE_REGPARM_MAX.
2922         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
2923         X64_SSE_REGPARM_MAX.
2924
2925 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
2926
2927         * gcc.c (report_times_to_file): New.
2928         (execute): Implement it.
2929         (process_command): Support -time=.
2930         * doc/invoke.texi: Document it.
2931
2932 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
2933
2934         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
2935         that have value exprs.
2936
2937 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
2938
2939         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
2940         declarations for constants until...
2941         (dw2_output_indirect_constant_1): ... this point.
2942
2943 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
2944
2945         PR target/10242
2946         * arm.md (arm_addsi3): Don't try to split an add with an
2947         eliminable register until after reload has completed.
2948
2949 2009-06-03  Ian Lance Taylor  <iant@google.com>
2950
2951         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
2952         * genattrtab.c (write_length_unit_log): Likewise.
2953         * genchecksum.c (dosum): Likewise.
2954         * gengtype.c (write_rtx_next): Likewise.
2955         (finish_root_table, write_roots): Likewise.
2956         * gimple.c (gimple_ops_offset_): Likewise.
2957         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
2958         * config/arc/arc.c (arc_attribute_table): Likewise.
2959         * config/arm/arm.c (arm_attribute_table): Likewise.
2960         * config/avr/avr.c (avr_attribute_table): Likewise.
2961         * config/crx/crx.c (crx_attribute_table): Likewise.
2962         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
2963         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
2964         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
2965         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
2966         * config/sh/sh.c (sh_attribute_table): Likewise.
2967         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
2968         * config/spu/spu.c (spu_attribute_table): Likewise.
2969         * config/v850/v850.c (v850_attribute_table): Likewise.
2970
2971         * config/alpha/alpha.c (vms_attribute_table): Make static.
2972         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
2973         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
2974         * config/mips/mips.c (mips_attribute_table): Likewise.
2975
2976         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
2977         $(SYSTEM_H).
2978         (cc1-checksum.o): Likewise.
2979
2980 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
2981
2982         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
2983
2984 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
2985
2986         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
2987         insn if it is changing sp.  Use gen_add3_insn instead of
2988         conditionally gen_addsi3 and gen_adddi3.
2989         (offset_below_red_zone_p): New static inline function.
2990         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
2991         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
2992         * config/rs6000/ppc-asm.h: Include auto-host.h.
2993         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
2994         CFI_RESTORE): Define.
2995         * config/rs6000/crtresxgpr.asm: Add unwind info.
2996         * config/rs6000/crtresxfpr.asm: Likewise.
2997         * config/rs6000/crtresgpr.asm: Likewise.
2998         * config/rs6000/crtresfpr.asm: Likewise.
2999         * config/rs6000/crtsavgpr.asm: Likewise.
3000         * config/rs6000/crtsavfpr.asm: Likewise.
3001
3002         * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
3003         argument of DWARF2_FRAME_REG_OUT macros.
3004
3005 2009-06-03  Julian Brown  <julian@codesourcery.com>
3006
3007         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
3008         words or less (including TImode) in core registers.
3009
3010 2009-06-03  Richard Guenther  <rguenther@suse.de>
3011
3012         PR middle-end/40328
3013         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
3014
3015 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
3016
3017         * statistics.c (statistics_counter_event): Do not record event 
3018         in pass dump if its number == -1.
3019         (curr_statistics_hash): Add assert that we never get passes 
3020         with static number == -1.
3021
3022 2009-06-03  Richard Guenther  <rguenther@suse.de>
3023             Andrey Belevantsev  <abel@ispras.ru>
3024
3025         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
3026         non-BLKmode arrays addressable.
3027
3028 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
3029
3030         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
3031         * config/m68k/m68k.h: ... here.
3032         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
3033         m68k and fido.
3034
3035 2009-06-03  Martin Jambor  <mjambor@suse.cz>
3036
3037         PR tree-optimization/40323
3038         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
3039         assignment.
3040
3041 2009-06-03  Richard Guenther  <rguenther@suse.de>
3042
3043         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
3044         consistently.
3045
3046 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
3047
3048         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
3049         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
3050         JUMP_TABLE_DATA_P where applicable.
3051         * config/sh/sh.c: Ditto.
3052         * config/sh/sh.h: Ditto.
3053         * config/sh/sh.md: Ditto.
3054         * config/sh/symbian.c: Ditto.
3055
3056 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
3057
3058         * config/i386/driver-i386.c (describe_cache): Optimize
3059         concatenation of strings.  Use snprintf instead of sprintf.
3060         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
3061         target when not compiling with GCC.
3062
3063 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3064
3065         * config/sh/sh.c: Revert last change.
3066         (sh_expand_epilogue): Emit a blockage insn before the frame
3067         pointer adjustment unconditionally.
3068
3069 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3070
3071         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
3072         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
3073         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
3074         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
3075         to COLLECT_GCC_OPTIONS.
3076
3077 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3078
3079         * collect2.c (target_system_root): New variable.
3080         (main): Handle --sysroot=.
3081         (ignore_library): Strip the sysroot from the library path.
3082
3083 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3084
3085         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
3086         (collect2.o): Depend on collect2-aix.h.
3087         (collect2-aix.o): New rule.
3088         * collect2-aix.h: New file.
3089         * collect2-aix.c: Likewise.
3090         * collect2.c: Include collect2-aix.h.  Don't undefine
3091         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
3092         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
3093         Use TARGET_AIX_VERSION instead of _AIX51.
3094         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
3095         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
3096         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
3097         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
3098         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
3099
3100 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3101
3102         * collect2.c (ignore_library): Avoid premature post-increment
3103         and null deference.
3104
3105 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3106
3107         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
3108         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
3109         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
3110         CROSS_DIRECTORY_STRUCTURE too.
3111         (LINK_LIBG_SPEC): Likewise.
3112         (LIB_SPEC): Add %R to sysroot paths.
3113         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
3114         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
3115         * config/rs6000/aix51.h: As for aix43.h.
3116         * config/rs6000/aix52.h: Likewise.
3117         * config/rs6000/aix53.h: Likewise.
3118         * config/rs6000/aix61.h: Likewise.
3119         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
3120         to the beginning of sysroot paths.
3121
3122 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3123
3124         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
3125         INSN_LISTs that are out of the REG_NOTE range.
3126
3127 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3128
3129         * loop-unroll.c (struct iv_to_split): Add pointer to next.
3130         (struct var_to_expand): Likewise.
3131         (struct opt_info): Add head and tail for linked lists of the above.
3132         (analyze_insn_to_expand_var): Initialize next.
3133         (analyze_iv_to_split_insn): Likewise.
3134         (analyze_insns_in_loop): Create linked lists.
3135         (allocate_basic_variable): Simplify for use without hash table.
3136         (insert_var_expansion_initialization): Likewise, make it type-safer.
3137         (combine_var_copies_in_loop_exit): Likewise.
3138         (apply_opt_in_copies): Walk lists rather than hash tables.
3139         (release_var_copies): Simplified and inlined by hand into...
3140         (free_opt_info): ... this function.
3141
3142 2009-06-02  Richard Guenther  <rguenther@suse.de>
3143
3144         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
3145         for field decls.
3146
3147 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3148
3149         * cfgexpand.c (gimple_expand_cfg): Discard the source location
3150         only for builtins that are not overridden.
3151
3152 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3153
3154         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
3155         label string.
3156
3157 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3158
3159         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
3160
3161 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3162
3163         * combine.c (move_deaths): Compare LUIDs within the same BB only.
3164
3165 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3166
3167         * common.opt (fdump-unnumbered-links): New.
3168         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
3169         * print-rtl.c (flag_dump_unnumbered_links): New.
3170         (print_rtx): Test it.
3171
3172 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
3173
3174         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
3175         push/pop multiple to 8-byte alignment.
3176
3177 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
3178
3179         * config/i386/i386.c (queued_cfa_restores): New static variable.
3180         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
3181         functions.
3182         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
3183         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
3184         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
3185         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
3186         note unconditionally.
3187         (ix86_emit_restore_regs_using_mov): Likewise.
3188         (ix86_emit_restore_sse_regs_using_mov): Likewise.
3189         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
3190         it through to ix86_emit_restore_reg_using_pop.
3191         (ix86_emit_leave): Add RED_OFFSET argument.  Call
3192         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
3193         instead of adding REG_CFA_OFFSET note unconditionally.
3194         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
3195         the above functions.  Call ix86_add_queued_cfa_restore_notes when
3196         needed.
3197
3198         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
3199         force output of the label even for dwarf2out_do_cfi_asm.
3200         (add_fde_cfi): If -g2 and above and cfi might change CFA,
3201         force creation of CFI label and chain DW_CFA_set_loc jumping to it
3202         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
3203         caller.
3204         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
3205         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
3206         dwarf2out_cfi_label callers.
3207         * tree.h (dwarf2out_cfi_label): Adjust prototype.
3208         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
3209         Adjust dwarf2out_cfi_label callers.
3210         * config/vax/vax.c (vax_output_function_prologue): Likewise.
3211
3212         * config/i386/i386.h (struct machine_cfa_state,
3213         struct machine_function): Guard with ifndef USED_FOR_TARGET
3214         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
3215
3216         PR other/40024
3217         * emutls.c (__emutls_get_address): Change arr->size to mean number
3218         of allocated arr->data entries instead of # of slots + 1.
3219
3220         PR middle-end/40316
3221         * recog.c (peep2_reinit_state): New function.
3222         (peephole2_init_state): Use it at the end of a basic block and also
3223         when seeing a RTX_FRAME_RELATED_P insn.
3224
3225 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
3226
3227         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
3228         fixuns_truncrfdi2): New.
3229         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
3230         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
3231         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
3232         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
3233         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
3234         *recip_approx): Remove.
3235         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
3236         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
3237         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
3238         move to div.md.
3239         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
3240         setf_exp_rf): New.
3241
3242 2009-06-01  Ian Lance Taylor  <iant@google.com>
3243
3244         * attribs.c (register_attribute): Use CONST_CAST.
3245         * collect2.c (main): Use CONST_CAST2.
3246         (scan_prog_file): Likewise.
3247         * gcc.c (process_command, main): Likewise.
3248         * toplev.c (toplev_main): Likewise.
3249
3250         * c-typeck.c (handle_warn_cast_qual): New static function,
3251         partially broken out of build_c_cast.
3252         (build_c_cast): Call handle_warn_cast_qual.
3253         * doc/invoke.texi (Warning Options): Document new effect of
3254         -Wcast-qual.
3255
3256 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
3257
3258         * diagnostic.c (diagnostic_build_prefix): Always print columns.
3259         (diagnostic_report_current_module): Print columns.
3260         * common.opt (flag_show_column): Enable by default.
3261
3262 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
3263
3264         * alias.c (find_base_term): Check for NULL term before returning.
3265
3266 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
3267
3268         Revert due to PR40320:
3269         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
3270         * calls.c (emit_library_call_value_1): Don't force_operand for move
3271         and push insns.
3272
3273 2009-06-01  Olivier Hainque  <hainque@adacore.com>
3274             Eric Botcazou  <ebotcazou@adacore.com>
3275
3276         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
3277         to be processed as a bitfield for constructor output purposes.
3278         * output.h (initializer_constant_valid_for_bitfield_p): Declare
3279         new function.
3280         * varasm.c (oc_local_state): New type, output_constructor
3281         local state to support communication with helpers.
3282         (oc_outer_state): New type, output_constructor outer state of
3283         relevance in recursive calls.
3284         (output_constructor_array_range): New output_constructor helper,
3285         extracted code for an array range element.
3286         (output_constructor_regular_field): New output_constructor helper,
3287         extracted code for an element that is not a bitfield.
3288         (output_constructor_bitfield): New output_constructor helper,
3289         extracted code for a bitfield element.  Accept an OUTER state
3290         argument for recursive processing.  Recurse on record or array
3291         CONSTRUCTOR values, possibly past noop conversions.
3292         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
3293         VALUE is a valid constant-valued expression for use in a static
3294         bit-field initializer.
3295         (output_constructor): Rework to use helpers.  Accept and honor an
3296         OUTER state argument for recursive calls.  Return total size.  Be
3297         prepared for nested constructors initializing bitfields.
3298         (output_constant): Feed OUTER in calls to output_constructor.
3299
3300 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
3301
3302         * calls.c (emit_library_call_value_1): Don't force_operand for move
3303         and push insns.
3304
3305 2009-06-01  Nick Clifton  <nickc@redhat.com>
3306
3307         * doc/invoke.texi (IA-64 Options): Fix typo.
3308
3309 2009-06-01  Ira Rosen  <irar@il.ibm.com>
3310
3311         PR tree-optimization/39129
3312         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 
3313         printed message.
3314         (vect_do_peeling_for_loop_bound): Use 
3315         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
3316         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
3317         (vect_loop_versioning): Likewise.
3318         (vect_create_cond_for_alias_checks): Fix indentation.
3319         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 
3320         macros.
3321         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
3322         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
3323         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 
3324         "control flow in loop".
3325         (vect_estimate_min_profitable_iters): Use 
3326         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
3327         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
3328         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
3329         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
3330         * tree-vect-stmts.c (vectorizable_store): Replace the check that the 
3331         statement belongs to a group of strided accesses with the exact code 
3332         check.
3333         (vectorizable_load): Likewise.
3334         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
3335         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
3336
3337 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
3338
3339         * config/freebsd-stdint.h: New file.
3340         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
3341         Add freebsd-stdint.h to tm_file.
3342
3343 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
3344
3345         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
3346         (thumb2_extendhidi2): Likewise.
3347
3348 2009-05-31  Ian Lance Taylor  <iant@google.com>
3349
3350         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
3351
3352 2009-05-31  Ian Lance Taylor  <iant@google.com>
3353
3354         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
3355         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
3356         (ipa-reference.o): Depend upon gt-ipa-reference.h.
3357
3358 2009-05-31  Jason Merrill  <jason@redhat.com>
3359
3360         * tree-pretty-print.c (print_call_name): Take the callee, not the
3361         call itself.  Make non-static.  Use dump_function_name for functions.
3362         (dump_generic_node): Adjust.
3363         * diagnostic.h: Declare print_call_name.
3364         * gimple-pretty-print.c (dump_gimple_call): Use it.
3365
3366 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3367
3368         * config/sh/sh.md (ashldi3_std): New define_expand.
3369         (ashldi3): Use it.
3370
3371 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3372
3373         PR target/40313
3374         * config/sh/sh.c: Include debug.h.
3375         (sh_expand_epilogue): Emit a blockage insn before the frame
3376         pointer adjustment also when dwarf2out_do_frame returns true.
3377
3378 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
3379
3380         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
3381         (thumb2_extendqidi2): New pattern.
3382
3383 2009-05-31  Ira Rosen  <irar@il.ibm.com>
3384
3385         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
3386         mark phis for renaming.
3387         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
3388         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
3389         Call mark_sym_for_renaming.
3390         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
3391         * tree-vect-loop.c (vect_transform_loop): Remove
3392         vect_memsyms_to_rename initialization and a call to
3393         mark_set_for_renaming.
3394
3395 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
3396
3397         PR middle-end/40304
3398         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
3399         frame related even if !set_cfa && style < 0.
3400
3401 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
3402
3403         * config/i386/mingw-tls.c: New file.
3404         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
3405         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
3406         defining _WIN32 but not __CYGWIN__.
3407
3408 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3409
3410         * configure.ac: Add MPC support.
3411         
3412         * config.in, configure: Regenerate.     
3413
3414 2009-05-29  Richard Henderson  <rth@redhat.com>
3415
3416         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
3417         NOTE_INSN_BASIC_BLOCK.
3418         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
3419         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
3420         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
3421         to be deleted.
3422         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
3423         add in_use field.
3424         (add_cfi): Disable check redefining cfa away from drap.
3425         (lookup_cfa_1): Add remember argument; handle remember/restore.
3426         (lookup_cfa): Pass remember argument.
3427         (cfa_remember): New.
3428         (compute_barrier_args_size_1): Remove sibcall check.
3429         (dwarf2out_frame_debug_def_cfa): New.
3430         (dwarf2out_frame_debug_adjust_cfa): New.
3431         (dwarf2out_frame_debug_cfa_offset): New.
3432         (dwarf2out_frame_debug_cfa_register): New.
3433         (dwarf2out_frame_debug_cfa_restore): New.
3434         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
3435         (dwarf2out_begin_epilogue): New.
3436         (dwarf2out_frame_debug_restore_state): New.
3437         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
3438         DW_CFA_restore_state.
3439         (output_cfi_directive): Likewise.
3440         (convert_cfa_to_fb_loc_list): Likewise.
3441         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
3442         * dwarf2out.h: Update.
3443         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
3444         (copy_insn_1): Early out for null.
3445         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
3446         and dwarf2out_frame_debug_restore_state.
3447         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
3448         (prologue_insn_hash, epilogue_insn_hash): New.
3449         (free_after_compilation): Adjust freeing accordingly.
3450         (record_insns): Create hash table if needed; push insns into
3451         hash instead of array.
3452         (maybe_copy_epilogue_insn): New.
3453         (contains): Search hash table instead of array.
3454         (sibcall_epilogue_contains): Remove.
3455         (thread_prologue_and_epilogue_insns): Split eh_return insns
3456         and mark them as epilogues.
3457         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
3458         scanning in terms of basic blocks.
3459         * insn-notes.def (CFA_RESTORE_STATE): New.
3460         * jump.c (returnjump_p_1): Accept EH_RETURN.
3461         (eh_returnjump_p_1, eh_returnjump_p): New.
3462         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
3463         CFA_REGISTER, CFA_RESTORE): New.
3464         * rtl.def (EH_RETURN): New.
3465         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
3466
3467         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
3468         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
3469
3470         * config/i386/i386.c (gen_push): Update cfa state.
3471         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
3472         add a CFA_ADJUST_CFA note.
3473         (ix86_dwarf_handle_frame_unspec): Remove.
3474         (ix86_expand_prologue): Update cfa state.
3475         (ix86_emit_restore_reg_using_pop): New.
3476         (ix86_emit_restore_regs_using_pop): New.
3477         (ix86_emit_leave): New.
3478         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
3479         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
3480         * config/i386/i386.h (struct machine_cfa_state): New.
3481         (ix86_cfa_state): New.
3482         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
3483         (eh_return_internal): Merge from eh_return_<mode>,
3484         use eh_return rtx, split w/ epilogue.
3485
3486 2009-05-29  Ian Lance Taylor  <iant@google.com>
3487
3488         * builtins.c (validate_gimple_arglist): Don't use va_arg with
3489         enum type.
3490         * calls.c (emit_library_call_value_1): Likewise.
3491
3492         * c-typeck.c (c_build_va_arg): New function.
3493         * c-tree.h (c_build_va_arg): Declare.
3494         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
3495         instead of build_va_arg.
3496
3497 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
3498
3499         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
3500         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
3501         (ptr_difference_cost): Use affine combinations to compute it.
3502         (difference_cost): Likewise.
3503         (get_computation_cost_at): Compute more accurate cost for addresses
3504         if the ratio is a multiplier allowed in addresses.
3505         For non-addresses, consider that an additional offset or symbol is
3506         added only once.
3507
3508 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3509
3510         * config/i386/i386.c (ix86_decompose_address): Avoid useless
3511         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
3512
3513         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
3514         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
3515         (prefix_rex): For UNIT_MMX don't imply the prefix by default
3516         if MODE_DI.
3517         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
3518         to 1 for TYPE_SSE{IADD1,CVT1}.
3519         (prefix_vex_imm8): Removed.
3520         (length_vex): Only pass 1 as second argument to
3521         ix86_attr_length_vex_default if prefix_extra is 0.
3522         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
3523         (length): For prefix vex computation use length_immediate
3524         attribute instead of prefix_vex_imm8.
3525         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
3526         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
3527         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
3528         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
3529         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
3530         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
3531         a space in between the operands.
3532         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
3533         if one operand is 0xff and the other one si, di, bp or sp.
3534         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
3535         other one si, di, bp or sp.
3536         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
3537         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
3538         type and mode attributes.
3539         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
3540         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
3541         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
3542         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
3543         prefix_data16 attribute iff MODE_DF.
3544         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
3545         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
3546         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
3547         constm128_operand in length_immediate computation.
3548         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
3549         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
3550         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
3551         length_immediate attribute to 1.
3552         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
3553         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
3554         for certain alternatives.
3555         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
3556         prefix_data16 attribute if MODE_V1DF.
3557         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
3558         length_immediate to 1.
3559         (set_got_rex64, set_rip_rex64): Remove length attribute, set
3560         length_address to 4, set mode attribute to MODE_DI.
3561         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
3562         (fxam<mode>2_i387): Set length attribute to 4.
3563         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
3564         *prefetch_3dnow_rex): Override length_address attribute.
3565         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
3566         attributes.
3567         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
3568         (constm128_operand): Removed.
3569         * config/i386/i386.c (memory_address_length): For
3570         disp && !index && !base in 64-bit mode account for SIB byte if
3571         print_operand_address can't optimize disp32 into disp32(%rip)
3572         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
3573         for fs: or gs: segment.
3574         (ix86_attr_length_immediate_default): When checking if shortform
3575         is possible, truncate immediate to the length of the non-shortened
3576         immediate.
3577         (ix86_attr_length_address_default): Ignore MEM_P operands
3578         with X constraint.
3579         (ix86_attr_length_vex_default): Only check for DImode on
3580         GENERAL_REG_P operands.
3581         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
3582         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
3583         (sse_cvttps2pi): Clear prefix_rep attribute.
3584         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
3585         attribute.
3586         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
3587         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
3588         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
3589         iff operand 2 is const_int_operand.
3590         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
3591         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
3592         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
3593         instead of vex.
3594         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
3595         prefix_data16.
3596         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
3597         prefix_data16 attribute for movlpd and movhpd instructions.
3598         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
3599         length_immediate for shufpd instruction.
3600         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
3601         (avx_cmpp<avxmodesuffixf2c><mode>3,
3602         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
3603         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
3604         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
3605         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
3606         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
3607         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
3608         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
3609         prefix_data16 attribute for the first alternative to 1.
3610         (*avx_loadlps): Override length_immediate for the first alternative.
3611         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
3612         attributes for second alternative.
3613         (*vec_concatv2sf_sse4_1): Override length_immediate and
3614         prefix_data16 attributes for second alternative.
3615         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
3616         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
3617         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
3618         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
3619         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
3620         prefix_data16 and length_immediate to 1.
3621         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
3622         to 1.
3623         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
3624         prefix_extra attribute for variants that don't have 0f prefix alone.
3625         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
3626         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
3627         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
3628         *sse4_1_pextrd): Set length_immediate to 1.
3629         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
3630         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
3631         to 1.
3632         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
3633         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
3634         length_immediate to 1 for second alternative.
3635         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
3636         prefix_extra and length_immediate attributes for the first
3637         alternative.
3638         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
3639         first alternative.
3640         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
3641         to 1 for the first and third alternative.
3642         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
3643         alternative.
3644         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
3645         attribute.
3646         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
3647         attribute to 0.
3648         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
3649         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
3650         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
3651         *avx_psign<mode>3): Set prefix_extra attribute to 1.
3652         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
3653         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
3654         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
3655         ssse3_psign<mode>3): Override prefix_rex attribute.
3656         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
3657         (ssse3_palignrti): Override length_immediate to 1.
3658         (ssse3_palignrdi): Override length_immediate to 1, override
3659         prefix_rex attribute.
3660         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
3661         (sse4a_extrqi): Override length_immediate to 2.
3662         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
3663         (sse4a_insertq): Override prefix_data16 to 0.
3664         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
3665         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
3666         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
3667         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
3668         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
3669         and length_immediate to 1.
3670         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
3671         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
3672         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
3673         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
3674         and length_immediate to 1.
3675         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
3676         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
3677         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
3678         avx_ptest256): Override prefix_extra to 1.
3679         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
3680         Override prefix_data16 and length_immediate to 1.
3681         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
3682         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
3683         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
3684         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
3685         prefix_data16 to 0 and prefix_extra to 2.
3686         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
3687         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
3688         attribute.
3689         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
3690         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
3691         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
3692         and prefix_extra to 2.
3693         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
3694         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
3695         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
3696         avx_vpermilvar<mode>3,
3697         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
3698         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
3699         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
3700         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
3701         Override prefix_extra to 1.
3702         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
3703         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
3704         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
3705         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
3706         prefix_extra and length_immediate to 1.
3707         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
3708         modrm to 0.
3709         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
3710         to 1 for the first alternative.
3711         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
3712         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
3713         cases.
3714         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
3715         *movv2sf_internal_avx, *movv2sf_internal): Override
3716         prefix_rep attribute for certain alternatives.
3717         (*mov<mode>_internal): Override prefix_rep or prefix_data16
3718         attributes for certain alternatives.
3719         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
3720         attributes for certain alternatives.
3721         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
3722         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
3723         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
3724         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
3725         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
3726         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
3727         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
3728         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
3729         length_immediate to 1 if operand 2 is const_int_operand.
3730         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
3731         *vec_extractv2si_1): Set length_immediate attribute to 1.
3732         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
3733         using old 3DNOW insn rather than SSE/3DNOW_A.
3734         (mmx_emms, mmx_femms): Clear modrm attribute.
3735
3736 2009-05-29  Martin Jambor  <mjambor@suse.cz>
3737
3738         * tree-sra.c:  New implementation of SRA.
3739
3740         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
3741         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
3742         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
3743         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
3744         (SRA_MAX_STRUCTURE_COUNT): Removed.
3745         (SRA_FIELD_STRUCTURE_RATIO): Removed.
3746         * doc/invoke.texi (sra-max-structure-size): Removed.
3747         (sra-field-structure-ratio): Removed.
3748
3749 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3750
3751         PR middle-end/40291
3752         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
3753         before expansion.
3754
3755 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
3756
3757         PR rtl-optimization/40101
3758         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
3759         seqno.  Adjust comment.
3760         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
3761         inserting bookkeeping before a jump, the jump is not scheduled.
3762         When no positive seqno found, provide a value.  Add comment.
3763
3764 2009-05-29  Richard Guenther  <rguenther@suse.de>
3765
3766         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
3767         short-cutting on the first component.
3768
3769 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3770
3771         PR middle-end/39958
3772         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
3773         for trees other than decls/types.
3774
3775 2009-05-29  Richard Guenther  <rguenther@suse.de>
3776
3777         * tree-ssa-operands.c (get_expr_operands): Do not handle
3778         INDIRECT_REFs in the handled-component case.  Remove
3779         unused get_ref_base_and_extent case.
3780         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
3781         tree_low_cst and host_integerp where possible.
3782         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
3783         codes for equivalence.
3784         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
3785
3786 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
3787
3788         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
3789         to tmake_file for i[34567]86-*-cygwin*. 
3790
3791 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3792
3793         PR target/40017
3794         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
3795         (altivec_categorize_keyword, init_vector_keywords,
3796         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
3797         similar to bool.
3798
3799 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
3800
3801         * tree.c (handle_dll_attribute): Check if node is
3802         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
3803
3804 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
3805
3806         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
3807         component.
3808         (thumb2_zero_extendqidi2): Likewise.
3809
3810 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3811
3812         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
3813         instead of gen_movrt.
3814         * config/sh/sh.md (movrt): Remove.
3815
3816 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
3817
3818         * doc/invoke.texi (IA-64 Options):
3819         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
3820         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
3821         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
3822         -msched-prefer-non-control-spec-insns,
3823         -msched-stop-bits-after-every-cycle,
3824         -msched-count-spec-in-critical-path,
3825         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
3826         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
3827         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
3828         and -msched-spec-verbose.
3829
3830 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
3831
3832         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
3833         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
3834         error if used.
3835         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
3836
3837 2009-05-28  Richard Guenther  <rguenther@suse.de>
3838
3839         * tree-ssa-alias.c (ao_ref_init): New function.
3840         (ao_ref_base): Likewise.
3841         (ao_ref_base_alias_set): Likewise.
3842         (ao_ref_alias_set): Likewise.
3843         (refs_may_alias_p_1): Change signature.
3844         (refs_may_alias_p): Adjust.
3845         (refs_anti_dependent_p): Likewise.
3846         (refs_output_dependent_p): Likewise.
3847         (call_may_clobber_ref_p_1): Change signature.
3848         (call_may_clobber_ref_p): Adjust.
3849         (stmt_may_clobber_ref_p_1): New function split out from ...
3850         (stmt_may_clobber_ref_p): ... here.
3851         (maybe_skip_until): Adjust signature.
3852         (get_continuation_for_phi): Likewise.
3853         (walk_non_aliased_vuses): Likewise.
3854         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
3855         (ao_ref_init): Declare.
3856         (ao_ref_base): Likewise.
3857         (ao_ref_alias_set): Likewise.
3858         (stmt_may_clobber_ref_p_1): Likewise.
3859         (walk_non_aliased_vuses): Adjust.
3860         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
3861         (get_ref_from_reference_ops): remove.
3862         (vn_reference_lookup_2): Adjust signature.
3863         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
3864         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
3865         (vn_reference_lookup): Adjust.
3866         (vn_reference_insert): Likewise.
3867         (vn_reference_insert_pieces): Adjust signature.
3868         (visit_reference_op_call): Adjust.
3869         * tree-ssa-pre.c (get_expr_type): Simplify.
3870         (phi_translate_1): Adjust.
3871         (compute_avail): Likewise.
3872         (translate_vuse_through_block): Do not re-build trees.
3873         (value_dies_in_block_x): Likewise.
3874         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
3875         fields.
3876         (vn_reference_lookup_pieces): Adjust declaration.
3877         (vn_reference_insert_pieces): Likewise.
3878
3879 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
3880
3881         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
3882         with checking disabled.
3883
3884 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
3885
3886         PR target/37216
3887
3888         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
3889         macro definition for support of three-operand format aligned
3890         .comm directive in assembler on cygwin/pe/mingw target OS.
3891         * configure:  Regenerate.
3892         * config.h:  Regenerate.
3893
3894         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
3895         aligned form of .comm directive if -mpe-aligned-commons is in effect.
3896         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
3897
3898         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
3899         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
3900
3901 2009-05-28  Ira Rosen  <irar@il.ibm.com>
3902
3903         PR tree-optimization/40254
3904         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
3905         in analysis of basic blocks.
3906
3907 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
3908
3909         PR middle-end/33699
3910         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
3911         * target-def.h (TARGET_CONST_ANCHOR): New macro.
3912         (TARGET_INITIALIZER): Use it.
3913         * cse.c (CHEAPER): Move it up to the other macros.
3914         (insert): Rename this ...
3915         (insert_with_costs): ... to this.  Add cost parameters.  Update
3916         function comment.
3917         (insert): New function.  Call insert_with_costs.
3918         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
3919         find_reg_offset_for_const, try_const_anchors): New functions.
3920         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
3921         when using a const-anchor.  Call insert_const_anchors.
3922         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
3923         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
3924
3925 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
3926
3927         * tree-inline.c (remap_decls): Enable nonlocalized variables
3928         when not optimizing.
3929
3930 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
3931
3932         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
3933         Simplify other tests involving optimize.
3934
3935 2009-05-27  Tom Tromey  <tromey@redhat.com>
3936
3937         * unwind-dw2.c (_Unwind_DebugHook): New function.
3938         (uw_install_context): Call _Unwind_DebugHook.
3939
3940 2009-05-27  Tom Tromey  <tromey@redhat.com>
3941
3942     &