OSDN Git Service

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