OSDN Git Service

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