OSDN Git Service

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