OSDN Git Service

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