OSDN Git Service

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