OSDN Git Service

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