OSDN Git Service

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