OSDN Git Service

* config/sh/sh.c (prepare_cbranch_operands): Use
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
2
3         * config/sh/sh.c (prepare_cbranch_operands): Use
4         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
5         (expand_cbranchdi4): Likewise.
6         (from_compare): Add cast to enum type.
7         (expand_cbranchsi4): Use add_reg_note.
8         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
9         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
10         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
11         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
12         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
13         instead of CODE_FOR_nothing.
14         (cbranchdi4): Likewise.  Fix the order of arguments for
15         gen_rtx_fmt_ee.
16         (push_fpscr): Use add_reg_note.
17         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
18         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
19         
20 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
21
22         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
23         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
24         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
25         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
26         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
27         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
28         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
29         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
30         config/alpha/x-vms, config/arc/t-arc,
31         config/arm/README-interworking, config/arm/arm-c.c,
32         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
33         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
34         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
35         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
36         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
37         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
38         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
39         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
40         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
41         config/cris/t-elfmulti, config/crx/t-crx,
42         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
43         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
44         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
45         config/h8300/t-h8300, config/i386/athlon.md,
46         config/i386/darwin-libgcc.10.4.ver,
47         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
48         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
49         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
50         config/i386/t-linux64, config/i386/t-nwld,
51         config/i386/t-rtems-i386, config/i386/t-sol2-10,
52         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
53         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
54         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
55         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
56         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
57         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
58         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
59         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
60         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
61         config/m68k/t-uclinux, config/mcore/t-mcore,
62         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
63         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
64         config/mips/crtn.asm, config/mips/irix-crti.asm,
65         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
66         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
67         config/mips/mips-fixed.md, config/mips/sb1.md,
68         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
69         config/mips/t-iris6, config/mips/t-isa3264,
70         config/mips/t-libgcc-mips16, config/mips/t-linux64,
71         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
72         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
73         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
74         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
75         config/mn10300/t-linux, config/mn10300/t-mn10300,
76         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
77         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
78         config/picochip/libgccExtras/clzsi2.asm,
79         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
80         config/rs6000/darwin-libgcc.10.4.ver,
81         config/rs6000/darwin-libgcc.10.5.ver,
82         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
83         config/rs6000/t-aix43, config/rs6000/t-aix52,
84         config/rs6000/t-darwin, config/rs6000/t-fprules,
85         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
86         config/rs6000/t-lynx, config/rs6000/t-netbsd,
87         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
88         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
89         config/rs6000/t-rtems, config/rs6000/t-spe,
90         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
91         config/score/t-score-elf, config/sh/divcost-analysis,
92         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
93         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
94         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
95         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
96         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
97         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
98         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
99         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
100         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
101         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
102         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
103         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
104         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
105         limitx.h, version.c, xcoff.h: Add copyright and license notices.
106         * config/h8300/genmova.sh: Include copyright and license notices
107         in generated output.
108         * config/h8300/mova.md: Regenerate.
109         * doc/install.texi2html: Include word "Copyright" in copyright
110         notice and use name "Free Software Foundation, Inc.".
111         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
112         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
113         ChangeLog-2007, ChangeLog-2008: Correct dates.
114
115 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
116
117         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
118         NE_EXPR operations as well.
119         * c-parser.c (c_parser_condition): Do not set location information on
120         the condition.
121         (c_parser_conditional_expression): Likewise.
122         (c_parser_binary_expression): Set location information on operators.
123         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
124         TRUTH_NOT_EXPR has been folded.
125         * fold-const.c (fold_truth_not_expr): Copy location information from
126         the incoming expression to the outgoing one.
127         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
128         recursive calls on the LHS of the operator but pass that of the
129         operator to recursive calls on the RHS of the operator.  Set it
130         on the COND_EXPR.
131         (shortcut_cond_expr): Set the locus of the operator on the second
132         COND_EXPR and that of the expression on the first in degenerate cases.
133         Pass the locus of the expression to calls to shortcut_cond_r.
134         Set the locus of the 'then' block on the associated jump, if any.
135         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
136         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
137         expression to call to gimplify_boolean_expr.
138
139 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
140
141         * config.gcc: Add additional configuration for
142         i686-w64-mingw* and x86_64-w64-mingw* triplet.
143         * config/i386/mingw-w64.h: New mingw-w64 specific header.
144         (CPP_SPEC): Redefine for allowing -municode option.
145         (STARTFILE_SPEC): Likewise.
146         * config/i386/t-mingw-w64: New.
147         * config/i386/mingw-w64.opt: New.
148         (municode): Add new target option.
149         * doc/invoke.texi (municode): Add documentation for new option.
150
151 2009-04-21  Ian Lance Taylor  <iant@google.com>
152
153         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
154         Correct test for number of arguments.
155         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
156
157 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
158
159         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
160         argument of emit_library_call.
161
162 2009-04-21  Richard Guenther  <rguenther@suse.de>
163
164         PR middle-end/39829
165         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
166         inside VIEW_CONVERT_EXPRs.
167
168 2009-04-21  Martin Jambor  <mjambor@suse.cz>
169
170         * tree-switch-conversion.c (build_constructors): Split a long line.
171         (constructor_contains_same_values_p): New function.
172         (build_one_array): Create assigns of constants if possible, do not call
173         mark_sym_for_renaming, call update_stmt.
174         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
175         make_rename_temp.  Do not call mark_symbols_for_renaming, call
176         update_stmt.
177         (gen_def_assigns): Do not call mark_symbols_for_renaming or
178         find_new_referenced_vars, call update_stmt.
179         (gen_inbound_check): Use create_tmp_var and create ssa names manually
180         instead of calling make_rename_temp.  Do not call
181         find_new_referenced_vars or mark_symbols_for_renaming, call
182         update_stmt.
183
184 2009-04-21  Richard Guenther  <rguenther@suse.de>
185
186         PR tree-optimization/39827
187         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME
188         is in range.
189         (tree_ssa_phiprop): Pass the correct array size.
190
191 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
192
193         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
194
195 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
196
197         PR 16202
198         * c-typeck.c (lvalue_p): Move declaration ...
199         * c-common.h (lvalue_p): ... to here.
200         * c-common.c (candidate_equal_p): New.
201         (add_tlist): Use it.
202         (merge_tlist): Use it.
203         (warn_for_collisions_1): Likewise.
204         (warning_candidate_p): Accept more candidates.
205         (verify_tree): A warning candidate can be an expression. Use
206         candidate_equal_p.
207
208 2009-04-21  Ben Elliston  <bje@au.ibm.com>
209
210         PR target/5267
211         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
212         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
213         options.  Remove -mcall-solaris documentation.
214
215 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
216
217         PR c++/13358
218         * doc/invoke.texi (-Wlong-long): Update description.
219         * c-lex (interpret_integer): Only warn if there was no previous
220         overflow and -Wlong-long is enabled.
221         * c-decl.c (declspecs_add_type): Drop redundant flags.
222         * c.opt (Wlong-long): Init to -1.
223         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
224         and front-end warn_long_long. Wlong-long only depends on other
225         flags if it is uninitialized.
226         * c-parser.c (disable_extension_diagnostics): warn_long_long is
227         the same for CPP and FE.
228         (restore_extension_diagnostics): Likewise.
229
230 2009-04-20  Ian Lance Taylor  <iant@google.com>
231
232         Fix enum conversions which are invalid in C++:
233         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
234         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
235         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
236         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
237         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
238         (dbxout_parms): Likewise.
239         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
240         (df_clear_flags): Likewise.
241         * df-problems.c (df_rd_bb_local_compute_process_def): Change
242         top_flag parameter to int.
243         (df_chain_create_bb_process_use): Likewise.
244         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
245         Remove cast.
246         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
247         (df_ref_create_structure, df_def_record_1): Likewise.
248         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
249         (df_notes_rescan): Change 0 to VOIDmode in function call.
250         (df_get_call_refs, df_insn_refs_collect): Likewise.
251         (df_bb_regs_collect): Likewise.
252         (df_entry_block_defs_collect): Likewise.
253         (df_exit_block_uses_collect): Likewise.
254         * df.h: Update declarations.
255         * double-int.c (double_int_divmod): Add cast to enum type.
256         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
257         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
258         (based_loc_descr): Likewise.
259         (loc_descriptor_from_tree_1): Change first_op and second_op to
260         enum dwarf_location_atom.  Add cast to enum type.
261         * expmed.c (init_expmed): Change 0 to SET in function call.
262         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
263         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
264         (do_store_flag): Likewise.
265         * fixed-value.h (struct fixed_value): Change mode to enum
266         machine_mode.
267         * function.c (assign_parms): Change 0 to VOIDmode in function call.
268         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
269         function call.
270         (insert_insn_decl, insert_decl, insert_state): Likewise.
271         (automata_list_finish): Likewise.
272         * genrecog.c (process_define_predicate): Add cast to enum type.
273         * gensupport.c (init_predicate_table): Add cast to enum type.
274         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
275         function call.
276         (gimple_build_call_1, gimple_build_label): Likewise.
277         (gimple_build_goto, gimple_build_asm_1): Likewise.
278         (gimple_build_switch_1, gimple_build_cdt): Likewise.
279         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
280         (enum fallback): Rename from enum fallback_t.
281         (fallback_t): Typedef as int.
282         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
283         GSI_SAME_STMT in function call.
284         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
285         enum type.
286         (setup_reg_class_relations): Likewise.
287         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
288         (setup_prohibited_class_mode_regs): Add cast to enum type.
289         (setup_prohibited_mode_move_regs): Likewise.
290         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
291         (record_address_regs): Change i to enum reg_class.
292         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
293         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
294         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
295         (GET_MODE_2XWIDER_MODE): Likewise.
296         (GET_CLASS_NARROWEST_MODE): Likewise.
297         * omp-low.c (expand_omp_for): Add cast to enum type.
298         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
299         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
300         * postreload.c (reload_cse_simplify_operands): Change rclass local
301         to enum reg_class.
302         * predict.c (combine_predictions_for_insn): Change best_predictor
303         and predictor to enum br_predictor.
304         (combine_predictions_for_bb): Likewise.
305         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
306         use SET_PREDICT_EXPR_OUTCOME.
307         * real.c (real_arithmetic): Change icode to code in function call.
308         * reginfo.c (init_move_cost): Add casts to enum type.
309         (init_reg_sets_1, init_fake_stack_mems): Likewise.
310         * regmove.c (regclass_compatible_p): Change class0 and class1 to
311         enum reg_class.
312         * reload.c (find_valid_class): Add casts to enum type.
313         (push_reload): Change 0 to NO_REGS in function call.
314         (find_reloads): Change this_alternative to array of enum
315         reg_class.  Remove some now-unnecessary casts.
316         (make_memloc): Change 0 to VOIDmode in function call.
317         * reload1.c (reload): Change 0 to VOIDmode in function call.
318         (eliminate_regs_1, elimination_effects): Likewise.
319         (eliminate_regs_in_insn): Likewise.
320         (emit_input_reload_insns): Add cast to enum type.
321         (delete_output_reload): Change 0 to VOIDmode in function call.
322         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
323         to enum type in function call.
324         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
325         (SET_PREDICT_EXPR_OUTCOME): Define.
326         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
327         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
328         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
329         (dump_function): Likewise.
330         * tree-dump.h: Update declarations.
331         * tree-pass.h: Update declarations.
332         * varasm.c (assemble_integer): Change mclass to enum mode_class.
333         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
334         enum type.
335         (arm_rtx_costs_1): Correct parenthesization.
336         (arm_rtx_costs): Add casts to enum type.
337         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
338         (vfp_emit_fstmd): Use add_rg_note.
339         (emit_multi_reg_push, emit_sfm): Likewise.
340         (thumb_set_frame_pointer): Likewise.
341         (arm_expand_prologue): Likewise.
342         (arm_regno_class): Change return type to enum reg_class.
343         (thumb1_expand_prologue): Use add_reg_note.
344         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
345         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
346         in function call.
347         * config/arm/gentune.sh: Add cast to enum type.
348         * config/arm/arm-tune.md: Rebuild.
349         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
350         (ix86_split_fp_branch, predict_jump): Likewise.
351         (ix86_expand_multi_arg_builtin): Change sub_code from enum
352         insn_code to enum rtx_code.
353         (ix86_builtin_vectorized_function): Add cast to enum type.
354         * config/i386/i386.md (truncdfsf2): Change slot to enum
355         ix86_stack_slot.
356         (truncxf<mode>2, isinf<mode>2): Likewise.
357         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
358         enum type.
359         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
360         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
361         (insert_bundle_state): Change 1 to INSERT in function call.
362         (ia64_add_bundle_selector_before): Likewise.
363         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
364         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
365         (restore_stack_nonlocal): Likewise.
366         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
367         function call.
368         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
369         function call.
370         (mips_rtx_costs): Likewise.
371         (mips_override_options): Add casts to enum type.
372         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
373         in function call.
374         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
375         (store_reg, set_reg_plus_d): Likewise.
376         (hppa_expand_prologue, hppa_profile_hook): Likewise.
377         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
378         cast to enum type.
379         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
380         function call.
381         (emit_unlikely_jump): Use add_reg_note.
382         (rs6000_emit_allocate_stack): Likewise.
383         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
384         (output_toc): Change 1 to INSERT in function call.
385         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
386         (rs6000_initialize_trampoline): Likewise.
387         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
388         function call.
389         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
390         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
391         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
392         (save_gprs): Use add_reg_note.
393         (s390_emit_prologue): Likewise.
394         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
395         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
396         (sparc_fold_builtin): Add cast to enum type.
397         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
398         enum insn_code.
399         (spu_expand_prologue): Use add_reg_note.
400         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
401
402 2009-04-20  Ian Lance Taylor  <iant@google.com>
403
404         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
405         (c_parser_postfix_expression_after_primary): Get VEC for list of
406         arguments.  Get original types of arguments.  Call
407         build_function_call_vec.
408         (cached_expr_list_1, cached_expr_list_2): New static variables.
409         (c_parser_expr_list): Change return type to VEC *.  Add
410         p_orig_types parameter.  Change all callers.
411         (c_parser_release_expr): New static function.
412         (c_parser_vec_to_tree_list): New static function.
413         * c-typeck.c (build_function_call): Rewrite to build a VEC and
414         call build_function_call_vec.
415         (build_function_call_vec): New function, based on old
416         build_function_call.
417         (convert_arguments): Remove nargs and argarray parameters.  Change
418         values to a VEC.  Add origtypes parameter.
419         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
420         (convert_for_assignment): Add origtype parameter.  Change all
421         callers.  If warn_cxx_compat, check for conversion to an enum
422         type when calling a function.
423         (store_init_value): Add origtype parameter.  Change all callers.
424         (digest_init): Likewise.
425         (struct init_node): Add origtype field.
426         (add_pending_init): Add origtype parameter.  Change all callers.
427         (output_init_element): Likewise.
428         (output_pending_init_elements): Pass origtype from init_node to
429         output_init_element.
430         (process_init_element): Pass origtype from c_expr to
431         output_init_element.
432         (c_finish_return): Add origtype parameter.  Change all callers.
433         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
434         caller.
435         (sync_resolve_params): Likewise.
436         (sync_resolve_return): Change params to first_param.  Change caller.
437         (resolve_overloaded_builtins): Change params to VEC *.  Change
438         callers.  Save first parameter around call to build_function_call_vec.
439         * c-decl.c (finish_decl): Add origtype parameter.  Change all
440         callers.  Call build_function_call_vec rather than
441         build_function_call for cleanup.
442         * c-tree.h: Update declarations.
443         * c-common.h: Update declarations.
444         * stub-objc.c (objc_rewrite_function_call): Change parameter from
445         params to first_param.
446         * target.h (struct gcc_target): Change resolve_overloaded_builtin
447         params parameter from tree to void *.
448         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
449         Change arglist parameter to have type void *, and to be a pointer
450         to a VEC.
451         * config/rs6000/rs6000-protos.h
452         (altivec_resolve_overloaded_builtin): Update declaration.
453         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
454         fnargs parameter to have type void *, and to be a pointer to a
455         VEC.  Call build_function_call_vec instead of
456         build_function_call.
457         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
458
459 2009-04-20  Joey Ye  <joey.ye@intel.com>
460             Xuepeng Guo <xuepeng.guo@intel.com>
461             H.J. Lu  <hongjiu.lu@intel.com>
462
463         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
464
465         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
466         (IX86_LEA_PRIORITY): Likewise.
467         (distance_non_agu_define): New function.
468         (distance_agu_use): Likewise.
469         (ix86_lea_for_add_ok): Likewise.
470         (ix86_dep_by_shift_count): Likewise.
471
472         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
473         should split for LEA.
474
475         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
476         function.
477         (ix86_dep_by_shift_count): Likewise.
478
479 2009-04-20  Richard Guenther  <rguenther@suse.de>
480
481         * expr.c (handled_component_p): Move ...
482         * tree.h (handled_component_p): ... here.
483         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
484         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
485         and REALPART_EXPR to be in one group.
486
487 2009-04-20  Richard Guenther  <rguenther@suse.de>
488
489         * basic-block.h (get_all_dominated_blocks): Declare.
490         * dominance.c (get_all_dominated_blocks): New function.
491         * tree-cfg.c (get_all_dominated_blocks): Remove.
492         (remove_edge_and_dominated_blocks): Adjust.
493         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
494         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
495         instead of recursing.
496
497 2009-04-20  Doug Kwan  <dougkwan@google.com>
498
499         * cgraph.h (cgraph_node_ptr): New type for vector functions.
500         (struct cgraph_node_set_def): New type.
501         (cgraph_node_set) New type. Also declare vector functions.
502         (struct cgraph_node_set_element_def): New type.
503         (cgraph_node_set_element): Ditto.
504         (cgraph_node_set_iterator): New iterator type.
505         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
506         cgraph_node_set_remove, dump_cgraph_node_set,
507         debug_cgraph_node_set): New prototypes.
508         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
509         cgraph_node_set_size): New inlines.
510         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
511         including cgraph.h.
512         (struct ipa_opt_pass): Add struct cgraph_node_set_def
513         argument to function 'write_summary'.
514         * ipa.c: Include ggc.h.
515         (hash_cgraph_node_set_element,
516         eq_cgraph_node_set_element, cgraph_node_set_new,
517         cgraph_node_set_add, cgraph_node_set_remove,
518         cgraph_node_set_find, dump_cgraph_node_set,
519         debug_cgraph_node_set): New functions.
520         * Makefile.in (ipa.o): Add dependency on GGC_H.
521
522 2009-04-20  Ira Rosen  <irar@il.ibm.com>
523
524         PR tree-optimization/39675
525         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
526         check of the return code of vect_schedule_slp. Check that
527         stmt_vec_info still exists for the statement, before checking its
528         vectorization type.
529
530 2009-04-20  Michael Matz  <matz@suse.de>
531
532         * Makefile.in (generated_files): Take out $(simple_generated_c).
533
534 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
535
536         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
537         (UINTPTR_TYPE):  Likewise.
538
539 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
540
541         PR c/37481
542         * c-typeck.c (digest_init): Check for initializing an array with a
543         string literal.
544
545 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
546
547         PR c/19771
548         * c-semantics.c (pop_stmt_list): Propagate
549         STATEMENT_LIST_HAS_LABEL to parent statement list.
550
551 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
552
553         * config/mips/mips.h (mips_tune_attr): New macro.
554         * config/mips/mips.md (cpu): Use it.
555
556 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
557
558         PR c/38243
559         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
560         declaring a tag.
561
562 2009-04-19  Diego Novillo  <dnovillo@google.com>
563
564         * toplev.c (compile_file): Move call to coverage_finish ...
565         * cgraphunit.c (ipa_passes): ... here.
566         Call cgraph_process_new_functions.
567         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
568         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
569
570 2009-04-19  Jan Hubicka  <jh@suse.cz>
571
572         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
573         cfun.
574         (dump_cgraph_node): Dump can throw external flag.
575         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
576
577 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
578
579         PR c/32061
580         PR c++/36954
581         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
582         * common.opt (Wlogical-op): Move from here...
583         * c.opt (Wlogical-op): ... to here.
584         * c-typeck.c (parser_build_binary_op): Update call to
585         warn_logical_operator.
586         * c-opts.c (c_common_post_options): Enable warn_logical_op with
587         extra_warnings.
588         * c-common.c (warn_logical_op): Update.
589         * c-common.h (warn_logical_op): Update declaration.
590
591 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
592
593         * tree.c (protected_set_expr_location): Fix formatting.
594
595 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
596
597         PR c/27676
598         * c-typeck.c (readonly_warning): new.
599         (build_unary_op, build_modify_expr): Use readonly_warning for
600         storing into something readonly but not const-qualified.
601
602 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
603
604         PR c/22367
605         * c-typeck.c (build_unary_op): Check for taking address of
606         expression of type void.
607
608 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
609
610         PR c/35210
611         * c-typeck.c (build_function_call): Check for calling a function
612         with qualified void return types.  Call require_complete_type when
613         generating a trap.
614
615 2009-04-18  Jan Hubicka  <jh@suse.cz>
616
617         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
618         Set nothrow flag.
619         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
620         can_throw_external flag.
621         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
622         * ipa-pure-const.c (ignore_edge): New function.
623         (propagate): Compute order for NOTHROW computation; set NOTHROWs
624         only over can_throw_external edges.
625         (local_pure_const): Add nothrow flag.
626         * ipa-utils.c (searchc): Add ignore_edge callback.
627         (ipa_utils_reduced_inorder): Add ignore_edge callback.
628         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
629         (set_nothrow_function_flags): Update cgraph.
630         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
631
632 2009-04-18  Richard Guenther  <rguenther@suse.de>
633
634         PR middle-end/39804
635         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
636         (fold_stmt): ... this and ...
637         (fold_stmt_inplace): ... this.
638         (fold_stmt_1): Fold references in calls and asms.
639         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
640
641 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
642
643         * tree-vrp.c (ssa_name_nonzero_p): Remove.
644         * tree.h: Remove the prototype for ssa_name_nonzero_p.
645
646 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
647
648         * tree.c (function_args_count): Remove.
649         * tree.h: Remove the prototype for function_args_count.
650
651 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
652
653         * tree-iterator.c (expr_only): Remove.
654         * tree.h: Remove the prototype for expr_only.
655
656 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
657
658         * reginfo.c (cannot_change_mode_set_regs): Remove.
659         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
660
661 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
662
663         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
664         whether operands 0 and 1 overlaps.
665
666 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
667
668         PR middle-end/36902
669         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
670         pointer. Use warning_at instead of warning.
671         (search_for_addr_array): Likewise.
672         (check_array_bounds): Likewise.
673         (check_all_array_refs): Check that the incoming edge is not in the
674         list of edges to be removed.
675         (check_all_array_refs): Avoid the temporal pointer.
676         (vrp_visit_cond_stmt): Fix typo.
677         (simplify_switch_using_ranges): Handle the case where the switch
678         index is an integer constant.
679
680 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
681
682         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
683
684 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
685
686         * doc/extend.texi, doc/invoke.texi: Fix typos.
687
688 2009-04-17  Cary Coutant  <ccoutant@google.com>
689
690         * tree-flow-inline.h (get_lineno): Fix inverted test.
691
692 2009-04-17  Diego Novillo  <dnovillo@google.com>
693
694         * tree-ssa-pre.c (create_expression_by_pieces): Remove
695         assertion for AVAIL_OUT.
696
697 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
698
699         PR target/38627
700         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
701         * config/sh/linux-atomic.asm: Likewise.
702
703 2009-04-17  Diego Novillo  <dnovillo@google.com>
704
705         * except.c (debug_eh_tree): New.
706         (struct eh_region, struct eh_status): Move ...
707         * except.h: ... here.
708         (add_type_for_runtime): Declare extern.
709         (lookup_type_for_runtime): Likewise.
710         (debug_eh_tree): Declare.
711         * Makefile.in (GTFILES): List except.h before except.c
712
713 2009-04-17  Diego Novillo  <dnovillo@google.com>
714
715         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
716         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
717         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
718         (find_vars_r): ... here.
719         * tree-flow.h (find_referenced_vars_in): Declare.
720         * tree-ssa-pre.c (create_expression_by_pieces): Assert
721         that AVAIL_OUT exists for BLOCK.
722         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
723         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
724         (tree-parloops.o): Likewise.
725
726 2009-04-17  Simon Baldwin  <simonb@google.com>
727
728         * toplev.c (default_tree_printer): Add handling for %E format.
729
730 2009-04-17  Diego Novillo  <dnovillo@google.com>
731
732         * tree-pretty-print.c (dump_generic_node): Add break after
733         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
734         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
735         FUNCTION_TYPE together.  Call print_struct_decl when printing
736         structures and TDF_SLIM is not given.
737         (print_struct_decl): Fix logic for detecting recursion.
738
739 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
740
741         PR 31567
742         * gcc.c (create_at_file): New.
743         (compile_input_file_p): New.
744         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
745         * main.c (main): Update call to toplev_main.
746         * toplev.c (toplev_main): Change signature. Call expandargv.
747         * toplev.h (toplev_main): Change signature.
748
749 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
750
751         * dwarf2out.c (field_byte_offset): Use the type size as the field size
752         if the latter is not constant.
753
754 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
755
756         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
757
758 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
759
760         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
761         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
762
763 2009-04-17  Richard Guenther  <rguenther@suse.de>
764
765         * tree-ssa-structalias.c (get_constraint_for_component_ref):
766         Handle component references view-converting an invariant address.
767
768 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
769
770         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
771         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
772         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
773         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
774         Use @deftypevr rather than @deftypevar.
775
776 2009-04-17  Richard Guenther  <rguenther@suse.de>
777
778         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
779         (get_prop_source_stmt): Likewise.
780         (can_propagate_from): Likewise.
781
782 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
783
784         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
785         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
786         (--with-multilib-list): Add default value.
787         * configure: Regenerate.
788         * Makefile.in (TM_ENDIAN_CONFIG): Define.
789         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
790         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
791         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
792         Don't add default cpu to multilib list unnecessarily, but do enable
793         the relevant compiler option..
794         Add support for --with-multilib-list=<blank> and
795         --with-multilib-list=!<somelib> to supress unwanted multilibs.
796         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
797         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
798         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
799         TM_MULTILIB_CONFIG.
800         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
801         (MULTILIB_OSDIRNAMES): New variable.
802         * config/sh/t-1e: Delete file.
803         * config/sh/t-mlib-sh1: Delete file.
804         * config/sh/t-mlib-sh2: Delete file.
805         * config/sh/t-mlib-sh2a: Delete file.
806         * config/sh/t-mlib-sh2a-nofpu: Delete file.
807         * config/sh/t-mlib-sh2a-single: Delete file.
808         * config/sh/t-mlib-sh2a-single-only: Delete file.
809         * config/sh/t-mlib-sh2e: Delete file.
810         * config/sh/t-mlib-sh3e: Delete file.
811         * config/sh/t-mlib-sh4: Delete file.
812         * config/sh/t-mlib-sh4-nofpu: Delete file.
813         * config/sh/t-mlib-sh4-single: Delete file.
814         * config/sh/t-mlib-sh4-single-only: Delete file.
815         * config/sh/t-mlib-sh4a: Delete file.
816         * config/sh/t-mlib-sh4a-nofpu: Delete file.
817         * config/sh/t-mlib-sh4a-single: Delete file.
818         * config/sh/t-mlib-sh4a-single-only: Delete file.
819         * config/sh/t-mlib-sh4al: Delete file.
820         * config/sh/t-mlib-sh5-32media: Delete file.
821         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
822         * config/sh/t-mlib-sh5-64media: Delete file.
823         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
824         * config/sh/t-mlib-sh5-compact: Delete file.
825         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
826         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
827         * doc/install.texi (Options specification): Add
828         --with-multilib-list and --with-endian.
829
830 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
831
832         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
833         REVISION_c.
834         (OBJS-common): Add plugin-version.o.
835         (plugin-version.o): New.
836         * gcc-plugin.h (plugin_gcc_version): New.
837         (plugin_default_version_check): New.
838         (plugin_init_func, plugin_init): Add version argument.
839         * plugin-version.c: New.
840         * plugin.c (str_plugin_gcc_version_name): New.
841         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
842         pass it to the init function.
843         (plugin_default_version_check): New.
844
845 2009-04-17  Richard Guenther  <rguenther@suse.de>
846
847         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
848         for decl-vs-decl disambiguation.
849
850 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
851
852         * config/s390/s390.h (s390_tune_attr): New macro definition.
853         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
854
855 2009-04-17  Richard Guenther  <rguenther@suse.de>
856
857         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
858         (fold_stmt_r): Likewise.
859         (maybe_fold_reference): New function.
860         (fold_gimple_assign): Handle cases fold_stmt_r did.
861         (fold_stmt): Do not use fold_stmt_r.
862         (fold_stmt_inplace): Likewise.
863
864 2009-04-17  Richard Guenther  <rguenther@suse.de>
865
866         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
867         (record_equivalences_from_stmt): Remove useless checks and
868         simplifications.
869         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
870         the type is already suitable.
871
872 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
873
874         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
875
876 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
877
878         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
879         (CMPtype): Define as __gcc_CMPtype.
880
881 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
882
883         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
884         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
885
886 2009-04-17  Richard Guenther  <rguenther@suse.de>
887
888         PR tree-optimization/39746
889         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
890         special-casing for builtins and static variable use/def.
891         (call_may_clobber_ref_p_1): Likewise.
892
893 2009-04-16  Ian Lance Taylor  <iant@google.com>
894
895         * df.h: Include "timevar.h".
896         (struct df_problem): Change tv_id field to timevar_id_t.
897         * tree-pass.h: Include "timevar.h".
898         (struct opt_pass): Change tv_id field to timevar_id_t.
899         * timevar.h (timevar_id_t): Define TV_NONE.
900         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
901         TV_NONE rather than tv_id != 0.
902         (execute_one_pass): Likewise.
903         * Makefile.in (DF_H): Add $(TIMEVAR_H).
904         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
905         dependencies to $(TREE_PASS_H).
906         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
907         to TV_NONE.
908         (pass_branch_target_load_optimize2): Likewise.
909         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
910         (pass_outof_cfg_layout_mode): Likewise.
911         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
912         (pass_rebuild_cgraph_edges): Likewise.
913         (pass_remove_cgraph_callee_edges): Likewise.
914         * df-core.c (pass_df_initialize_opt): Likewise.
915         (pass_df_initialize_no_opt): Likewise.
916         (pass_df_finish): Likewise.
917         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
918         * except.c (pass_set_nothrow_function_flags): Likewise.
919         (pass_convert_to_eh_region_ranges): Likewise.
920         * final.c (pass_compute_alignments): Likewise.
921         * function.c (pass_instantiate_virtual_regs): Likewise.
922         (pass_init_function): Likewise.
923         (pass_leaf_regs): Likewise.
924         (pass_match_asm_constraints): Likewise.
925         * gimple-low.c (pass_lower_cf): Likewise.
926         (pass_mark_used_blocks): Likewise.
927         * init-regs.c (pass_initialize_regs): Likewise.
928         * integrate.c (pass_initial_value_sets): Likewise.
929         * ira.c (pass_ira): Likewise.
930         * jump.c (pass_cleanup_barriers): Likewise.
931         * omp-low.c (pass_expand_omp): Likewise.
932         (pass_lower_omp): Likewise.
933         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
934         * recog.c (pass_split_all_insns): Likewise.
935         (pass_split_after_reload): Likewise.
936         (pass_split_before_regstack): Likewise.
937         (pass_split_before_sched2): Likewise.
938         (pass_split_for_shorten_branches): Likewise.
939         * reginfo.c (pass_reginfo_init): Likewise.
940         (pass_subregs_of_mode_init): Likewise.
941         (pass_subregs_of_mode_finish): Likewise.
942         * passes.c (pass_postreload): Likewise.
943         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
944         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
945         (pass_warn_function_return): Likewise.
946         (pass_warn_function_noreturn): Likewise.
947         * tree-complex.c (pass_lower_complex): Likewise.
948         (pass_lower_complex_O0): Likewise.
949         * tree-if-conv.c (pass_if_conversion): Likewise.
950         * tree-into-ssa.c (pass_build_ssa): Likewise.
951         * tree-mudflap.c (pass_mudflap_1): Likewise.
952         (pass_mudflap_2): Likewise.
953         * tree-nomudflap.c (pass_mudflap_1): Likewise.
954         (pass_mudflap_2): Likewise.
955         * tree-nrv.c (pass_return_slot): Likewise.
956         * tree-object-size.c (pass_object_sizes): Likewise.
957         * tree-optimize.c (pass_all_optimizations): Likewise.
958         (pass_early_local_passes): Likewise.
959         (pass_all_early_optimizations): Likewise.
960         (pass_cleanup_cfg): Likewise.
961         (pass_cleanup_cfg_post_optimizing): Likewise.
962         (pass_free_datastructures): Likewise.
963         (pass_free_cfg_annotations): Likewise.
964         (pass_fixup_cfg): Likewise.
965         (pass_init_datastructures): Likewise.
966         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
967         (pass_late_warn_uninitialized): Likewise.
968         (pass_update_address_taken): Likewise.
969         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
970         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
971         (pass_cse_sincos): Likewise.
972         (pass_convert_to_rsqrt): Likewise.
973         * tree-ssa-structalias.c (pass_build_alias): Likewise.
974         * tree-stdarg.c (pass_stdarg): Likewise.
975         * tree-tailcall.c (pass_tail_recursion): Likewise.
976         (pass_tail_calls): Likewise.
977         * tree-vect-generic.c (pass_lower_vector): Likewise.
978         (pass_lower_vector_ssa): Likewise.
979         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
980
981 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
982
983         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
984         XLR entry.
985         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
986         Handle -march=xlr.
987         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
988         logical and signext.
989
990 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
991
992         PR target/39767
993         * config/sh/predicates.md (arith_operand): Check if the operand
994         of TRUNCATE is a REG.
995
996 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
997
998         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
999         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
1000
1001 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1002
1003         * tree-iterator.c (tsi_split_statement_list_after,
1004         tsi_split_statement_list_before): Remove.
1005         * tree-iterator.h: Remove the prototypes for
1006         tsi_split_statement_list_after and tsi_split_statement_list_before.
1007
1008 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1009
1010         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
1011         * tree-ssa-propagate.h: Remove the prototype for
1012         stmt_makes_single_load.
1013
1014 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1015
1016         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
1017         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
1018
1019 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1020
1021         * tree-iterator.c (EXPR_LAST_BODY): Remove.
1022
1023 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1024
1025         * except.c (eh_region_outer_p): Remove.
1026         * except.h: Remove the prototype for eh_region_outer_p.
1027
1028 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1029
1030         * function.c (current_function_assembler_name): Remove.
1031         * function.h: Remove the prototype for
1032         current_function_assembler_name.
1033
1034 2009-04-16  Ian Lance Taylor  <iant@google.com>
1035
1036         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
1037         (add_reg_note): Call alloc_reg_note.
1038         * rtl.h (alloc_reg_note): Declare.
1039         * combine.c (try_combine): Use alloc_reg_note.
1040         (recog_for_combine, move_deaths): Likewise.
1041         (distribute_notes): Use alloc_reg_note and add_reg_note.
1042         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
1043         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
1044         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
1045
1046 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
1047
1048         PR rtl-optimization/39762
1049         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
1050         ira_may_move_out_cost): Add comments about way of their usage.
1051         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
1052
1053         * ira-conflicts.c (process_regs_for_copy): Use function
1054         ira_get_register_move_cost instead of global
1055         ira_register_move_cost.
1056
1057         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
1058         color_pass, move_spill_restore, update_curr_costs): Ditto.
1059
1060         * ira-lives.c (process_single_reg_class_operands): Ditto.
1061
1062         * ira-emit.c (emit_move_list): Ditto.
1063
1064         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
1065         (record_reg_classes): Ditto.  Use functions
1066         ira_get_register_move_cost and ira_get_may_move_cost instead of
1067         global vars ira_register_move_cost, ira_may_move_out_cost and
1068         ira_may_move_in_cost.
1069         (record_address_regs): Don't call ira_init_register_move_cost.
1070         Use function ira_get_may_move_cost instead of global
1071         ira_may_move_in_cost.
1072         (process_bb_node_for_hard_reg_moves): Use function
1073         ira_get_register_move_cost instead of global ira_register_move_cost.
1074         (ira_costs): Don't call ira_init_register_move_cost.
1075
1076 2009-04-16  Richard Guenther  <rguenther@suse.de>
1077
1078         * tree-cfg.c (verify_gimple_assign_binary):
1079         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
1080         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
1081         (create_general_new_stmt): Note that this function is broken.
1082
1083 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
1084
1085         * common.opt (fhelp): Add Var(help_flag).
1086         * gcc-plugin.h (plugin_info): Add help.
1087         * plugin.c (plugin_name_args): Add help.
1088         (register_plugin_info): Set plugin->help.
1089         (print_help_one_plugin): New.
1090         (print_plugins_help): New.
1091         * plugin.h (print_plugins_help): New.
1092         * toplev.c (toplev_main): Call print_plugins_help if needed.
1093
1094 2009-04-16  Richard Guenther  <rguenther@suse.de>
1095
1096         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
1097         (gimple_ior_addresses_taken_1): New function.
1098         (gimple_ior_addresses_taken): Likewise.
1099         * gimple.h (struct gimple_statement_with_ops_base): Remove
1100         addresses_taken member.
1101         (gimple_ior_addresses_taken): Declare.
1102         (gimple_addresses_taken, gimple_addresses_taken_ptr,
1103         gimple_set_addresses_taken): Remove.
1104         * ipa-reference.c (mark_address): New function.
1105         (scan_stmt_for_static_refs): Use it for marking addresses taken.
1106         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
1107         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
1108         (gimple_add_to_addresses_taken): Remove.
1109         (get_tmr_operands): Call mark_address_taken.
1110         (get_asm_expr_operands): Likewise.
1111         (get_expr_operands): Likewise.
1112         (build_ssa_operands): Do not clear the addresses_taken bitmap.
1113         (free_stmt_operands): Do not free it.
1114         * tree-ssa.c (delete_tree_ssa): Likewise.
1115         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
1116
1117 2009-04-16  Richard Guenther  <rguenther@suse.de>
1118
1119         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
1120         (walk_stmt_load_store_ops): Likewise.
1121         * gimple.c (get_base_loadstore): New function.
1122         (walk_stmt_load_store_addr_ops): Likewise.
1123         (walk_stmt_load_store_ops): Likewise.
1124         * ipa-pure-const.c (check_op): Simplify.
1125         (check_load, check_store): New functions.
1126         (check_stmt): Use walk_stmt_load_store_ops.
1127         * ipa-reference.c (mark_load): Adjust signature.
1128         (mark_store): Likewise.
1129         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
1130
1131 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
1132
1133         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
1134         (plugin_info): New.
1135         * opts.c (common_handle_option): Don't call print_version.
1136         * plugin.c (plugin_name_args): Add version.
1137         (register_plugin_info): New.
1138         (register_callback): Handle PLUGIN_INFO.
1139         (try_init_one_plugin): New.
1140         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
1141         if failed to init.
1142         (finalize_one_plugin): New.
1143         (finalize_plugins): New.
1144         (print_one_plugin): New.
1145         (print_plugins_versions): New.
1146         * plugin.h (print_plugins_versions): New.
1147         (finalize_plugins): New.
1148         * toplev.c (compile_file): Don't call initialize_plugins.
1149         (print_version): Call print_plugins_versions.
1150         (toplev_main): Call initialize_plugins. Print version if needed.
1151         Call finalize_plugins.
1152
1153 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
1154
1155         * common.opt (fversion): New.
1156         * gcc.c (print_version): New.
1157         (process_command): Don't print the version. Just set print_version.
1158         (main): Print version. Call subprocesses if print_version and
1159         verbose_flag are set.
1160         * opts.c (common_handle_option): Handle OPT_fversion.
1161
1162 2009-04-16  Richard Guenther  <rguenther@suse.de>
1163             Ira Rosen  <irar@il.ibm.com>
1164
1165         PR tree-optimization/39698
1166         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
1167         type of the reduction variable.  Only generate the def if
1168         it is needed.
1169
1170         * omp-low.c (expand_omp_for_generic): When converting to a pointer
1171         make sure to first convert to an integer of the same precision.
1172         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
1173         the type of the evolution correctly in computing the new
1174         induction variable base.
1175
1176 2009-04-16  Richard Guenther  <rguenther@suse.de>
1177
1178         PR middle-end/39625
1179         * tree-cfg.c (make_blocks): Split statements with to-be
1180         abnormal SSA names on the lhs.
1181
1182 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
1183
1184         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
1185         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
1186         * c-typeck.c (really_start_incremental_init): Likewise.
1187         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
1188         (TARGET_INITIALIZER): Remove it.
1189         * target.h (struct target): Remove vector_opaque_p.
1190         * tree.c (build_opaque_vector_type): New.
1191         * tree.h (TYPE_VECTOR_OPAQUE): New.
1192         (build_opaque_vector_type): Declare.
1193         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
1194         * config/rs6000/rs6000.c (build_opaque_vector_type,
1195         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
1196         (rs6000_init_builtins): Use build_opaque_vector_type for
1197         opaque_V4SI_type_node.
1198
1199 2009-04-15  Catherine Moore  <clm@codesourcery.com>
1200
1201         * debug.h (set_name):  Declare.
1202         * dwarf2out.c (dwarf2out_set_name): Declare.
1203         (dwarf2_debug_hooks): Add set_name.
1204         (find_AT_string): New.
1205         (add_AT_string): Call find_AT_string.
1206         (dwarf2out_set_name): New.
1207         * cp/decl.c (grokdeclarator): Call set_name.
1208         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
1209         * debug.c (do_nothing_debug_hooks):  Likewise.
1210         * dbxout.c (dbx_debug_hooks): Likewise.
1211         * sdbout.c (sdb_debug_hooks): Likewise.
1212
1213 2009-04-15  Michael Eager <eager@eagercon.com>
1214
1215         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
1216         reg for single-precision FPU.
1217         * config/rs6000/rs6000.md (movsi_internal1): Only for
1218         !TARGET_SINGLE_FPU.
1219         (movsi_internal1_single): New. Add pattern to move SI values to/from
1220         single-precision FP regs.
1221
1222 2009-04-15  Richard Guenther  <rguenther@suse.de>
1223
1224         * omp-low.c (lower_rec_input_clauses): Build correct address
1225         expressions.
1226         (expand_omp_for_generic): Fix multiplication type.
1227         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
1228         (generate_memset_zero): Fix types.
1229         * tree-profile.c (prepare_instrumented_value): Correctly
1230         widen a pointer.
1231
1232 2009-04-15  Ian Lance Taylor  <iant@google.com>
1233
1234         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
1235         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
1236         for -Wall and for -Wc++-compat.
1237         (c_common_post_options): For C++, set warn_enum_compare if not
1238         already set.
1239         * c-tree.h (struct c_expr): Add field original_type.
1240         (build_external_ref): Update declaration.
1241         * c-parser.c (c_parser_braced_init): Set original_type.
1242         (c_parser_initelt): Likewise.
1243         (c_parser_expr_no_commas): Likewise.
1244         (c_parser_conditional_expression): Likewise.
1245         (c_parser_cast_expression): Likewise.
1246         (c_parser_unary_expression): Likewise.  Pull setting of
1247         original_code to top of function.
1248         (c_parser_sizeof_expression): Set original_type.
1249         (c_parser_alignof_expression): Likewise.
1250         (c_parser_postfix_expression): Likewise.  Pull setting of
1251         original_code to top of function.
1252         (c_parser_postfix_expression_after_paren_type): Set original_type.
1253         (c_parser_postfix_expression_after_primary): Likewise.
1254         (c_parser_expression): Likewise.
1255         * c-typeck.c (build_external_ref): Add type parameter.  Change all
1256         callers.
1257         (c_expr_sizeof_expr): Set original_type field.
1258         (parser_build_unary_op): Likewise.
1259         (parser_build_binary_op): Likewise.  Optionally warn about
1260         comparisons of enums of different types.
1261         (digest_init): Set original_type field.
1262         (really_start_incremental_init): Likewise.
1263         (push_init_level, pop_init_level): Likewise.
1264         * doc/invoke.texi (Warning Options): -Wenum-compare now
1265         supported in C.
1266
1267 2009-04-15  Richard Guenther  <rguenther@suse.de>
1268
1269         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
1270         out a necessary conversion.
1271         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
1272         names we didn't value number.
1273         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
1274
1275 2009-04-15  Richard Guenther  <rguenther@suse.de>
1276
1277         PR tree-optimization/39764
1278         * tree-ssa-ccp.c (get_value): Canonicalize value with
1279         canonicalize_float_value.
1280
1281 2009-04-15  Jan Hubicka  <jh@suse.cz>
1282
1283         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
1284         Wrong version of patch.
1285
1286 2009-04-15  Jan Hubicka  <jh@suse.cz>
1287
1288         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
1289
1290 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
1291
1292         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
1293         our distinct integral and vector types.
1294
1295 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
1296
1297         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
1298         * init.c (build_vtbl_address): Remove call to assemble_external.
1299
1300 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
1301
1302         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
1303         output for other floating point modes.
1304
1305 2009-04-14  Diego Novillo  <dnovillo@google.com>
1306
1307         * diagnostic.c (diagnostic_report_diagnostic): Do not
1308         warn about loaded plugins for DK_ERROR and DK_WARNING.
1309         * c-decl.c (declspecs_add_type): Move call to
1310         invoke_plugin_callbacks ...
1311         * c-parser.c (c_parser_declspecs): ... here.
1312         * plugin.c (dump_active_plugins): Tidy output.
1313
1314 2009-04-14  Diego Novillo  <dnovillo@google.com>
1315             Le-Chun Wu  <lcwu@google.com>
1316
1317         * configure.ac: Add --enable-plugin support.
1318         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
1319         * Makefile.in (PLUGIN_H): Define.
1320         Export ENABLE_PLUGIN and GMPINC to site.exp.
1321         Add PLUGINLIBS to link command.
1322         Add/modify dependencies for plugin.o and files including plugin.h.
1323         (plugin.o): New.
1324         * config.in: Regenerate.
1325
1326         * opts.c (common_handle_option): Handle OPT_fplugin_ and
1327         OPT_fplugin_arg_.
1328
1329 2009-04-14  Le-Chun Wu  <lcwu@google.com>
1330
1331         * tree-pass.h (register_one_dump_file): Add a prototype for
1332         register_one_dump_file.
1333         * toplev.c (compile_file): Call initialize_plugins.
1334         (do_compile): Call invoke_plugin_callbacks.
1335         (toplev_main): Call invoke_plugin_callbacks.
1336         * common.opt: Add -fplugin= and -fplugin-arg-.
1337         * gcc-plugin.h: New public header file for plugins to include.
1338         * plugin.c: New source file.
1339         * plugin.h: New internal header file.
1340         * passes.c (register_one_dump_file): Make it external.
1341
1342         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
1343
1344 2009-04-14  Diego Novillo  <dnovillo@google.com>
1345
1346         * doc/plugins.texi: New.
1347         * doc/gccint.texi: Add reference to Plugins chapter.
1348         * doc/invoke.texi: Document -fplugin and -fplugin-arg
1349         * diagnostic.c (diagnostic_report_diagnostic): Warn about
1350         loaded plugins, if any.
1351         * timevar.def (TV_PLUGIN_INIT): Define.
1352         (TV_PLUGIN_RUN): Define.
1353         * plugin.c: Include timevar.h
1354         (plugins_active_p): New.
1355         (dump_active_plugins): New.
1356         (debug_active_plugins): New.
1357
1358 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
1359
1360         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
1361         library paths.
1362         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
1363
1364 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
1365
1366         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
1367         the same as a minus without a shift.
1368
1369 2009-04-14  Nick Clifton  <nickc@redhat.com>
1370
1371         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
1372         comparisons with small integers will always produce a short
1373         branch.
1374
1375 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
1376
1377         Merge:
1378         2008-12-19  Diego Novillo  <dnovillo@google.com>
1379
1380         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
1381
1382 2009-04-14  Richard Guenther  <rguenther@suse.de>
1383
1384         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
1385         verification.
1386         (verify_gimple_assign_binary): Likewise.  Handle shifts and
1387         rotates correctly.
1388         (verify_gimple_phi): Print the mismatched argument position.
1389         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
1390         Fix types.
1391         (vect_update_init_of_dr): Likewise.
1392         * matrix-reorg.c (transform_access_sites): Do what the
1393         comment suggests.
1394         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
1395
1396 2009-04-13  Michael Eager <eager@eagercon.com>
1397
1398         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
1399         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
1400         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
1401         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
1402         remove duplicate config
1403
1404 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1405
1406         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
1407         file_name:line_number type locator of the call site.
1408
1409 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
1410
1411         * genautomata.c: Put blank after comma.
1412         (automaton_decls): New.
1413         (struct unit_usage): Add comments to member next.
1414         (store_alt_unit_usage): Keep the list ordered.
1415         (unit_present_on_list_p, equal_alternatives_p): New.
1416         (check_regexp_units_distribution): Check units distribution
1417         correctness correctly.
1418         (main): Don't write automata if error is found.  Return correct
1419         exit code.
1420
1421         * config/m68k/cf.md (cfv4_ds): Remove.
1422         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
1423         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
1424
1425         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
1426         power4-load-ext, power4-store, power4-store-update,
1427         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
1428         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
1429         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
1430         power4-sqrt, power4-isync): Modify reservation to make correct
1431         unit distribution to automata.
1432
1433         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
1434         power5-store-update, power5-two, power5-three, power5-lmul,
1435         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
1436
1437 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
1438
1439         * except.c (pass_set_nothrow_function_flags): Set name and add
1440         TODO_dump_func.
1441         (set_nothrow_function_flags): Mention in the dump file when
1442         changing a function to nothrow.
1443
1444 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
1445
1446         PR/39066
1447         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
1448         instead of unsigned long.
1449
1450 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1451
1452         * config/arm/arm.c (return_used_this_function): Remove.
1453         (arm_output_function_prologue): Remove use of
1454         return_used_this_function.
1455         (output_return_instruction): Replace use of
1456         return_used_this_function
1457         by cfun->machine->return_used_this_function.
1458         (arm_output_epilogue): Likewise.
1459         (arm_output_function_epilogue): Likewise.
1460         (thumb_unexpanded_epilogue): Likewise.
1461         * config/arm/arm.h (struct machine_function):
1462         New member return_used_this_function.
1463
1464 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
1465
1466         * doc/install.texi: Correct description of default directory for
1467         --with-gxx-include-dir.
1468
1469 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
1470
1471         * fold-const.c (build_range_check): Properly deal with enumeral and
1472         boolean base types.
1473
1474 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
1475
1476         * doc/invoke.texi (max_gcse_passes): Remove documentation.
1477         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
1478         * params.h (MAX_GCSE_PASSES): Remove.
1479         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
1480         in sequence.  Remove ability to run multiple passes.
1481         (bypass_jumps): Report run as third CPROP pass.
1482
1483 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
1484
1485         PR middle-end/39651
1486         * except.c (can_throw_external): Look at each insn in a SEQUENCE
1487         when deciding whether the whole SEQUENCE can throw.
1488
1489 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
1490
1491         PR target/39740
1492         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
1493         offseted label references.
1494
1495 2009-04-11  Jan Hubicka  <jh@suse.cz>
1496
1497         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
1498
1499 2009-04-11  Richard Guenther  <rguenther@suse.de>
1500
1501         PR middle-end/39732
1502         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
1503         return variables as TREE_ADDRESSABLE.
1504
1505 2009-04-11  Richard Guenther  <rguenther@suse.de>
1506
1507         PR tree-optimization/39713
1508         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
1509         reference trees have SSA_NAME operands.
1510
1511 2009-04-11  Richard Guenther  <rguenther@suse.de>
1512
1513         PR c/39712
1514         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
1515         address expressions.
1516
1517 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
1518
1519         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
1520         match changes in Cygwin 1.7
1521         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
1522         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
1523
1524 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
1525
1526         PR tree-optimization/39701
1527         * doc/invoke.texi (Optimization Options): Document change in
1528         meaning and initialization of -fdelete-null-pointer-checks.
1529
1530 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
1531
1532         PR middle-end/39701
1533         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
1534
1535         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
1536         here.
1537
1538         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
1539
1540 2009-04-10  Chao-ying Fu  <fu@mips.com>
1541
1542         * doc/tm.texi (Instruction Output): Document
1543         TARGET_ASM_FINAL_POSTSCAN_INSN.
1544         * target.h (final_postscan_insn): New field in asm_out.
1545         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
1546         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
1547         * final.c (final_scan_insn): Call
1548         targetm.asm_out.final_postscan_insn after outputting
1549         an asm macro and a normal instruction.
1550
1551         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
1552         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
1553         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
1554         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
1555         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
1556
1557 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
1558
1559         PR middle-end/39701
1560         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
1561         variables as non-NULL even with -fdelete-null-pointer-checks.
1562
1563 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
1564
1565         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
1566
1567 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
1568
1569         PR target/39678
1570         * config/i386/i386.c (classify_argument): Handle SCmode with
1571         (bit_offset % 64) != 0.
1572
1573 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
1574
1575         * doc/invoke.texi (Optimize Options): Add cross-reference to
1576         -Q --help=optimizers examples.
1577
1578 2009-04-10  Ben Elliston  <bje@au.ibm.com>
1579
1580         PR target/36800
1581         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
1582         regalign for the reg == fpr and TDmode case.
1583
1584 2009-04-09  David Ayers  <ayers@fsfe.org>
1585
1586         PR objc/29200
1587         * objc/objc-act.c (warn_with_method): Remove helper function.
1588         (check_duplicates): Call warning and inform directly.
1589         (really_start_method): Likewise.
1590
1591 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
1592
1593         * expmed.c (expand_divmod): Always use a comparison for a division
1594         by a large unsigned integer.
1595
1596         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
1597         for things others than variables or functions as nonzero.
1598
1599 2009-04-09  Nick Clifton  <nickc@redhat.com>
1600
1601         * unwind-compat.c: Change copyright header to refer to version
1602         3 of the GNU General Public License with version 3.1 of the
1603         GCC Runtime Library Exception and to point readers at the
1604         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
1605         * config/alpha/crtfastmath.c: Likewise.
1606         * config/alpha/linux-unwind.h: Likewise.
1607         * config/alpha/qrnnd.asm: Likewise.
1608         * config/alpha/vms-crt0-64.c: Likewise.
1609         * config/alpha/vms-crt0.c: Likewise.
1610         * config/alpha/vms-dwarf2.asm: Likewise.
1611         * config/alpha/vms-dwarf2eh.asm: Likewise.
1612         * config/alpha/vms-psxcrt0-64.c: Likewise.
1613         * config/alpha/vms-psxcrt0.c: Likewise.
1614         * config/alpha/vms_tramp.asm: Likewise.
1615         * config/arc/initfini.c: Likewise.
1616         * config/arc/lib1funcs.asm: Likewise.
1617         * config/arm/bpabi-v6m.S: Likewise.
1618         * config/arm/bpabi.S: Likewise.
1619         * config/arm/bpabi.c: Likewise.
1620         * config/arm/crti.asm: Likewise.
1621         * config/arm/crtn.asm: Likewise.
1622         * config/arm/ieee754-df.S: Likewise.
1623         * config/arm/ieee754-sf.S: Likewise.
1624         * config/arm/lib1funcs.asm: Likewise.
1625         * config/arm/libunwind.S: Likewise.
1626         * config/arm/linux-atomic.c: Likewise.
1627         * config/arm/mmintrin.h: Likewise.
1628         * config/arm/pr-support.c: Likewise.
1629         * config/arm/unaligned-funcs.c: Likewise.
1630         * config/arm/unwind-arm.c: Likewise.
1631         * config/arm/unwind-arm.h: Likewise.
1632         * config/avr/libgcc.S: Likewise.
1633         * config/bfin/crti.s: Likewise.
1634         * config/bfin/crtlibid.s: Likewise.
1635         * config/bfin/crtn.s: Likewise.
1636         * config/bfin/lib1funcs.asm: Likewise.
1637         * config/bfin/linux-unwind.h: Likewise.
1638         * config/cris/arit.c: Likewise.
1639         * config/cris/cris_abi_symbol.c: Likewise.
1640         * config/darwin-64.c: Likewise.
1641         * config/darwin-crt2.c: Likewise.
1642         * config/darwin-crt3.c: Likewise.
1643         * config/darwin.h: Likewise.
1644         * config/dbxelf.h: Likewise.
1645         * config/dfp-bit.c: Likewise.
1646         * config/dfp-bit.h: Likewise.
1647         * config/elfos.h: Likewise.
1648         * config/fixed-bit.c: Likewise.
1649         * config/fixed-bit.h: Likewise.
1650         * config/fp-bit.c: Likewise.
1651         * config/fp-bit.h: Likewise.
1652         * config/fr30/crti.asm: Likewise.
1653         * config/fr30/crtn.asm: Likewise.
1654         * config/fr30/lib1funcs.asm: Likewise.
1655         * config/freebsd-spec.h: Likewise.
1656         * config/frv/cmovd.c: Likewise.
1657         * config/frv/cmovh.c: Likewise.
1658         * config/frv/cmovw.c: Likewise.
1659         * config/frv/frvbegin.c: Likewise.
1660         * config/frv/frvend.c: Likewise.
1661         * config/frv/lib1funcs.asm: Likewise.
1662         * config/glibc-stdint.h: Likewise.
1663         * config/h8300/clzhi2.c: Likewise.
1664         * config/h8300/crti.asm: Likewise.
1665         * config/h8300/crtn.asm: Likewise.
1666         * config/h8300/ctzhi2.c: Likewise.
1667         * config/h8300/fixunssfsi.c: Likewise.
1668         * config/h8300/lib1funcs.asm: Likewise.
1669         * config/h8300/parityhi2.c: Likewise.
1670         * config/h8300/popcounthi2.c: Likewise.
1671         * config/i386/ammintrin.h: Likewise.
1672         * config/i386/att.h: Likewise.
1673         * config/i386/avxintrin.h: Likewise.
1674         * config/i386/biarch64.h: Likewise.
1675         * config/i386/bmmintrin.h: Likewise.
1676         * config/i386/cpuid.h: Likewise.
1677         * config/i386/cross-stdarg.h: Likewise.
1678         * config/i386/crtfastmath.c: Likewise.
1679         * config/i386/crtprec.c: Likewise.
1680         * config/i386/cygming-crtbegin.c: Likewise.
1681         * config/i386/cygming-crtend.c: Likewise.
1682         * config/i386/cygwin.asm: Likewise.
1683         * config/i386/emmintrin.h: Likewise.
1684         * config/i386/gmm_malloc.h: Likewise.
1685         * config/i386/gthr-win32.c: Likewise.
1686         * config/i386/i386.h: Likewise.
1687         * config/i386/immintrin.h: Likewise.
1688         * config/i386/linux-unwind.h: Likewise.
1689         * config/i386/linux64.h: Likewise.
1690         * config/i386/mm3dnow.h: Likewise.
1691         * config/i386/mmintrin-common.h: Likewise.
1692         * config/i386/mmintrin.h: Likewise.
1693         * config/i386/nmmintrin.h: Likewise.
1694         * config/i386/pmm_malloc.h: Likewise.
1695         * config/i386/pmmintrin.h: Likewise.
1696         * config/i386/smmintrin.h: Likewise.
1697         * config/i386/sol2-c1.asm: Likewise.
1698         * config/i386/sol2-ci.asm: Likewise.
1699         * config/i386/sol2-cn.asm: Likewise.
1700         * config/i386/sol2-gc1.asm: Likewise.
1701         * config/i386/tmmintrin.h: Likewise.
1702         * config/i386/unix.h: Likewise.
1703         * config/i386/w32-unwind.h: Likewise.
1704         * config/i386/wmmintrin.h: Likewise.
1705         * config/i386/x86-64.h: Likewise.
1706         * config/i386/x86intrin.h: Likewise.
1707         * config/i386/xmmintrin.h: Likewise.
1708         * config/ia64/crtbegin.asm: Likewise.
1709         * config/ia64/crtend.asm: Likewise.
1710         * config/ia64/crtfastmath.c: Likewise.
1711         * config/ia64/crti.asm: Likewise.
1712         * config/ia64/crtn.asm: Likewise.
1713         * config/ia64/fde-glibc.c: Likewise.
1714         * config/ia64/lib1funcs.asm: Likewise.
1715         * config/ia64/linux-unwind.h: Likewise.
1716         * config/ia64/quadlib.c: Likewise.
1717         * config/ia64/unwind-ia64.c: Likewise.
1718         * config/linux.h: Likewise.
1719         * config/m32c/m32c-lib1.S: Likewise.
1720         * config/m32c/m32c-lib2-trapv.c: Likewise.
1721         * config/m32c/m32c-lib2.c: Likewise.
1722         * config/m32r/initfini.c: Likewise.
1723         * config/m68hc11/larith.asm: Likewise.
1724         * config/m68hc11/m68hc11-crt0.S: Likewise.
1725         * config/m68k/cf.md: Likewise.
1726         * config/m68k/crti.s: Likewise.
1727         * config/m68k/crtn.s: Likewise.
1728         * config/m68k/lb1sf68.asm: Likewise.
1729         * config/m68k/linux-unwind.h: Likewise.
1730         * config/mcore/crti.asm: Likewise.
1731         * config/mcore/crtn.asm: Likewise.
1732         * config/mcore/lib1.asm: Likewise.
1733         * config/mips/linux-unwind.h: Likewise.
1734         * config/mips/loongson.h: Likewise.
1735         * config/mips/mips16.S: Likewise.
1736         * config/mmix/crti.asm: Likewise.
1737         * config/mmix/crtn.asm: Likewise.
1738         * config/pa/fptr.c: Likewise.
1739         * config/pa/hpux-unwind.h: Likewise.
1740         * config/pa/lib2funcs.asm: Likewise.
1741         * config/pa/linux-atomic.c: Likewise.
1742         * config/pa/linux-unwind.h: Likewise.
1743         * config/pa/milli64.S: Likewise.
1744         * config/pa/quadlib.c: Likewise.
1745         * config/pa/stublib.c: Likewise.
1746         * config/picochip/libgccExtras/adddi3.asm: Likewise.
1747         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
1748         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
1749         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
1750         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
1751         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
1752         * config/picochip/libgccExtras/divmod15.asm: Likewise.
1753         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
1754         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
1755         * config/picochip/libgccExtras/longjmp.asm: Likewise.
1756         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
1757         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
1758         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
1759         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
1760         * config/picochip/libgccExtras/setjmp.asm: Likewise.
1761         * config/picochip/libgccExtras/subdi3.asm: Likewise.
1762         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
1763         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
1764         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
1765         * config/rs6000/750cl.h: Likewise.
1766         * config/rs6000/altivec.h: Likewise.
1767         * config/rs6000/biarch64.h: Likewise.
1768         * config/rs6000/crtresfpr.asm: Likewise.
1769         * config/rs6000/crtresgpr.asm: Likewise.
1770         * config/rs6000/crtresxfpr.asm: Likewise.
1771         * config/rs6000/crtresxgpr.asm: Likewise.
1772         * config/rs6000/crtsavfpr.asm: Likewise.
1773         * config/rs6000/crtsavgpr.asm: Likewise.
1774         * config/rs6000/darwin-asm.h: Likewise.
1775         * config/rs6000/darwin-fallback.c: Likewise.
1776         * config/rs6000/darwin-fpsave.asm: Likewise.
1777         * config/rs6000/darwin-ldouble.c: Likewise.
1778         * config/rs6000/darwin-tramp.asm: Likewise.
1779         * config/rs6000/darwin-unwind.h: Likewise.
1780         * config/rs6000/darwin-vecsave.asm: Likewise.
1781         * config/rs6000/darwin-world.asm: Likewise.
1782         * config/rs6000/e500crtres32gpr.asm: Likewise.
1783         * config/rs6000/e500crtres64gpr.asm: Likewise.
1784         * config/rs6000/e500crtres64gprctr.asm: Likewise.
1785         * config/rs6000/e500crtrest32gpr.asm: Likewise.
1786         * config/rs6000/e500crtrest64gpr.asm: Likewise.
1787         * config/rs6000/e500crtresx32gpr.asm: Likewise.
1788         * config/rs6000/e500crtresx64gpr.asm: Likewise.
1789         * config/rs6000/e500crtsav32gpr.asm: Likewise.
1790         * config/rs6000/e500crtsav64gpr.asm: Likewise.
1791         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
1792         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
1793         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
1794         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
1795         * config/rs6000/eabi-ci.asm: Likewise.
1796         * config/rs6000/eabi-cn.asm: Likewise.
1797         * config/rs6000/eabi.asm: Likewise.
1798         * config/rs6000/linux-unwind.h: Likewise.
1799         * config/rs6000/linux64.h: Likewise.
1800         * config/rs6000/paired.h: Likewise.
1801         * config/rs6000/paired.md: Likewise.
1802         * config/rs6000/ppc64-fp.c: Likewise.
1803         * config/rs6000/ppu_intrinsics.h: Likewise.
1804         * config/rs6000/rs6000.h: Likewise.
1805         * config/rs6000/si2vmx.h: Likewise.
1806         * config/rs6000/sol-ci.asm: Likewise.
1807         * config/rs6000/sol-cn.asm: Likewise.
1808         * config/rs6000/spe.h: Likewise.
1809         * config/rs6000/spu2vmx.h: Likewise.
1810         * config/rs6000/sysv4.h: Likewise.
1811         * config/rs6000/tramp.asm: Likewise.
1812         * config/rs6000/vec_types.h: Likewise.
1813         * config/s390/linux-unwind.h: Likewise.
1814         * config/s390/tpf-unwind.h: Likewise.
1815         * config/score/crti.asm: Likewise.
1816         * config/score/crtn.asm: Likewise.
1817         * config/sh/crt1.asm: Likewise.
1818         * config/sh/crti.asm: Likewise.
1819         * config/sh/crtn.asm: Likewise.
1820         * config/sh/divtab-sh4-300.c: Likewise.
1821         * config/sh/divtab-sh4.c: Likewise.
1822         * config/sh/divtab.c: Likewise.
1823         * config/sh/lib1funcs-4-300.asm: Likewise.
1824         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
1825         * config/sh/lib1funcs.asm: Likewise.
1826         * config/sh/lib1funcs.h: Likewise.
1827         * config/sh/linux-atomic.asm: Likewise.
1828         * config/sh/linux-unwind.h: Likewise.
1829         * config/sh/shmedia.h: Likewise.
1830         * config/sh/sshmedia.h: Likewise.
1831         * config/sh/ushmedia.h: Likewise.
1832         * config/sparc/crtfastmath.c: Likewise.
1833         * config/sparc/linux-unwind.h: Likewise.
1834         * config/sparc/sol2-c1.asm: Likewise.
1835         * config/sparc/sol2-ci.asm: Likewise.
1836         * config/sparc/sol2-cn.asm: Likewise.
1837         * config/spu/divmodti4.c: Likewise.
1838         * config/spu/divv2df3.c: Likewise.
1839         * config/spu/float_disf.c: Likewise.
1840         * config/spu/float_unsdidf.c: Likewise.
1841         * config/spu/float_unsdisf.c: Likewise.
1842         * config/spu/float_unssidf.c: Likewise.
1843         * config/spu/mfc_multi_tag_release.c: Likewise.
1844         * config/spu/mfc_multi_tag_reserve.c: Likewise.
1845         * config/spu/mfc_tag_release.c: Likewise.
1846         * config/spu/mfc_tag_reserve.c: Likewise.
1847         * config/spu/mfc_tag_table.c: Likewise.
1848         * config/spu/multi3.c: Likewise.
1849         * config/spu/spu_internals.h: Likewise.
1850         * config/spu/spu_intrinsics.h: Likewise.
1851         * config/spu/spu_mfcio.h: Likewise.
1852         * config/spu/vec_types.h: Likewise.
1853         * config/spu/vmx2spu.h: Likewise.
1854         * config/stormy16/stormy16-lib2.c: Likewise.
1855         * config/svr4.h: Likewise.
1856         * config/sync.c: Likewise.
1857         * config/v850/lib1funcs.asm: Likewise.
1858         * config/vxlib-tls.c: Likewise.
1859         * config/vxlib.c: Likewise.
1860         * config/vxworks-dummy.h: Likewise.
1861         * config/xtensa/crti.asm: Likewise.
1862         * config/xtensa/crtn.asm: Likewise.
1863         * config/xtensa/ieee754-df.S: Likewise.
1864         * config/xtensa/ieee754-sf.S: Likewise.
1865         * config/xtensa/lib1funcs.asm: Likewise.
1866         * config/xtensa/lib2funcs.S: Likewise.
1867         * config/xtensa/linux-unwind.h: Likewise.
1868         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
1869         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
1870         * coretypes.h: Likewise.
1871         * crtstuff.c: Likewise.
1872         * defaults.h: Likewise.
1873         * dwarf2.h: Likewise.
1874         * emutls.c: Likewise.
1875         * gbl-ctors.h: Likewise.
1876         * gcov-io.h: Likewise.
1877         * ginclude/float.h: Likewise.
1878         * ginclude/iso646.h: Likewise.
1879         * ginclude/stdarg.h: Likewise.
1880         * ginclude/stdbool.h: Likewise.
1881         * ginclude/stddef.h: Likewise.
1882         * ginclude/stdfix.h: Likewise.
1883         * ginclude/stdint-gcc.h: Likewise.
1884         * ginclude/tgmath.h: Likewise.
1885         * gthr-aix.h: Likewise.
1886         * gthr-dce.h: Likewise.
1887         * gthr-gnat.c: Likewise.
1888         * gthr-gnat.h: Likewise.
1889         * gthr-lynx.h: Likewise.
1890         * gthr-mipssde.h: Likewise.
1891         * gthr-nks.h: Likewise.
1892         * gthr-posix.c: Likewise.
1893         * gthr-posix.h: Likewise.
1894         * gthr-posix95.h: Likewise.
1895         * gthr-rtems.h: Likewise.
1896         * gthr-single.h: Likewise.
1897         * gthr-solaris.h: Likewise.
1898         * gthr-tpf.h: Likewise.
1899         * gthr-vxworks.h: Likewise.
1900         * gthr-win32.h: Likewise.
1901         * gthr.h: Likewise.
1902         * libgcc2.c: Likewise.
1903         * libgcc2.h: Likewise.
1904         * libgcov.c: Likewise.
1905         * tsystem.h: Likewise.
1906         * typeclass.h: Likewise.
1907         * unwind-c.c: Likewise.
1908         * unwind-compat.h: Likewise.
1909         * unwind-dw2-fde-compat.c: Likewise.
1910         * unwind-dw2-fde-darwin.c: Likewise.
1911         * unwind-dw2-fde-glibc.c: Likewise.
1912         * unwind-dw2-fde.c: Likewise.
1913         * unwind-dw2-fde.h: Likewise.
1914         * unwind-dw2.c: Likewise.
1915         * unwind-dw2.h: Likewise.
1916         * unwind-generic.h: Likewise.
1917         * unwind-pe.h: Likewise.
1918         * unwind-sjlj.c: Likewise.
1919         * unwind.inc: Likewise.
1920         * config/arm/neon-gen.ml: Change generated copyright header to
1921         refer to version 3 of the GNU General Public License with
1922         version 3.1 of the GCC Runtime Library Exception and to point
1923         readers at the COPYING3 and COPYING3.RUNTIME files and the
1924         FSF's license web page.
1925         * config/arm/arm_neon.h: Regenerate.
1926
1927 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
1928
1929         * config/cris/cris.md: Change copyright header to refer to version
1930         3 of the GNU General Public License.
1931         * doc/install.texi2html: Change copyright header to refer to version
1932         3 of the GNU General Public License and to point readers at the
1933         COPYING3 file and the FSF's license web page.
1934         * config/vax/linux.h: Likewise.
1935
1936 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
1937
1938         * config/i386/i386.md (cmpcc): New.
1939         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
1940         (sync_compare_and_swap_cc*): Delete.
1941
1942         * config/s390/s390.c (s390_compare_emitted): Remove.
1943         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
1944         s390_compare_emitted used to be handled.  Assert that modes match.
1945         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
1946         refer to sync_compare_and_swap_ccsi.
1947         * config/s390/s390.h (s390_compare_emitted): Remove.
1948         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
1949         instead of s390_compare_emitted.
1950         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
1951         instead of s390_compare_emitted.
1952         * config/s390/s390.md (cmpcc): New.
1953         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
1954         CC_REGNUM, do not pretend it's set.
1955         (sync_compare_and_swap_cc*): Delete.
1956         * config/s390/predicates.md (cc_reg_operand): New.
1957
1958         * expr.c (sync_compare_and_swap_cc): Delete.
1959         * optabs.h (sync_compare_and_swap_cc): Delete.
1960         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
1961         is being used with can_compare_p.
1962         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
1963         (find_cc_set): New.
1964         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
1965         look for a MODE_CC set instead.  Use emit_store_flag.
1966         (expand_compare_and_swap_loop): Likewise, with some additional
1967         complication to avoid a force_reg when useless.  Use
1968         emit_cmp_and_jump_insns.
1969         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
1970         * doc/md.texi (sync_compare_and_swap_cc): Merge with
1971         sync_compare_and_swap documentation.
1972
1973 2009-04-09  Jan Hubicka  <jh@suse.cz>
1974
1975         * except.c (find_prev_try): Break out from ....
1976         (duplicate_eh_regions): ... here; properly update prev_try pointers
1977         when duplication part of tree.
1978         (dump_eh_tree): Improve dumping.
1979         (verify_eh_region): New.
1980         (verify_eh_tree): Use it.
1981
1982 2009-04-06  Richard Guenther  <rguenther@suse.de>
1983
1984         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
1985         &ARRAY addresses by adjusting their types and prepending
1986         a conversion.
1987         * tree-cfg.c (verify_gimple_assign_single): Verify that
1988         addresses are correct.
1989
1990 2009-04-09  Richard Guenther  <rguenther@suse.de>
1991
1992         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
1993         indices into an array reference if possible.
1994         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1995         Fold POINTER_PLUS_EXPR statements with invariant address.
1996
1997 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
1998
1999         PR target/39634
2000         * config.gcc (powerpc64-*-linux*): Always build biarch.
2001
2002 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
2003
2004         PR c/39613
2005         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
2006         it and pedwarn if this results in an INTEGER_CST.
2007
2008 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2009
2010         * doc/install.texi: Update minimum GMP version.  Remove obsolete
2011         text in MPFR section.
2012
2013 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
2014
2015         * dwarf2out.c (class_scope_p): New static inline.
2016         (class_or_namespace_scope_p): Use it.
2017         (gen_variable_die): Use DW_TAG_member tag for static data member
2018         declarations instead of DW_TAG_variable.
2019
2020         PR middle-end/39573
2021         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
2022         variables.
2023
2024 2009-04-08  Richard Guenther  <rguenther@suse.de>
2025
2026         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
2027         valueize random data.
2028
2029 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
2030
2031         * config.gcc (aix tm_file):  Add aix-stdint.h.
2032         (aix tm clause use_gcc_stdint):  Set to wrap.
2033         * config/rs6000/aix-stdint.h:  New file.
2034
2035 2009-04-08  Richard Guenther  <rguenther@suse.de>
2036
2037         PR middle-end/36291
2038         * tree-dfa.c (add_referenced_var): Do not recurse into
2039         global initializers.
2040         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
2041         exposed variables.
2042         (fold_const_aggregate_ref): Likewise.
2043
2044 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
2045
2046         * recog.c (ordered_comparison_operator): New.
2047         * gensupport.c (std_preds): Add it.
2048         * doc/md.texi (Machine-Independent Predicates): Document it.
2049
2050 2009-04-08  Jan Hubicka  <jh@suse.cz>
2051
2052         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
2053         * function.h (rtl_eh): Remove exception_handler_label_map.
2054         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
2055         remove_exception_handler_label, for_each_eh_label_1): Remove.
2056         (rtl_remove_unreachable_regions): Remove.
2057         (convert_from_eh_region_ranges): Do not remove unreachable regions.
2058         (find_exception_handler_labels): Don't build the hashtable.
2059         (maybe_remove_eh_handler): Remove.
2060         (for_each_eh_label): Rewrite to walk the tree.
2061         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
2062         * except.h (maybe_remove_eh_handler): Remove.
2063         * passes.c (init_optimization_passes): Schedule second EH cleanup
2064         before out-of-ssa.
2065         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
2066         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
2067
2068 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
2069
2070         * genoutput.c (validate_optab_operands): New.
2071         (gen_insn, gen_expand): Call it.
2072
2073         * genflags.c (gen_insn): Detect misused iterators.
2074         (main): Pass line_no to gen_insn, exit with status 1 on error.
2075
2076         * genextract.c (line_no): Make global.
2077         (VEC_safe_set_locstr): Change assertion to error message.
2078         (main): Exit with status 1 on error.
2079
2080 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
2081
2082         PR c/39614
2083         PR c/39673
2084         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
2085         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
2086         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
2087         * c-convert.c (convert): Do not call fold on results of conversion
2088         functions when the result is a C_MAYBE_CONST_EXPR.
2089         * c-parser.c (c_parser_postfix_expression): Do not fold condition
2090         of __builtin_choose_expr.
2091         * c-typeck.c (remove_c_maybe_const_expr): New.
2092         (build_unary_op, build_conditional_expr, build_compound_expr,
2093         build_binary_op, c_objc_common_truthvalue_conversion): Call
2094         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
2095         integer operands.
2096
2097 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
2098
2099         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
2100         CODE to produce a new one. Add a prototype to use fold_convert_const
2101
2102 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
2103
2104         PR bootstrap/39660
2105         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
2106         mix declarations and code.
2107
2108 2009-04-08  Ben Elliston  <bje@au.ibm.com>
2109
2110         * gcc.c: Replace `CC' with `GCC' throughout.
2111
2112 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
2113
2114         * doc/invoke.texi: Document Atom support.
2115
2116 2009-04-07  Jason Merrill  <jason@redhat.com>
2117
2118         PR c++/25185
2119         * c-common.h, c-common.c: Add flag_pretty_templates.
2120         * c-opts.c (c_common_handle_option): Set it.
2121         * c.opt: Add -fno-pretty-templates.
2122         * doc/invoke.texi (C++ Dialect Options): Likewise.
2123
2124 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
2125
2126         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
2127         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
2128         (ia64_expand_builtin): Likewise.
2129
2130 2009-04-07  Martin Jambor  <mjambor@suse.cz>
2131
2132         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
2133         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
2134         ADDR_EXPRS are include too.
2135
2136 2009-04-07  Richard Guenther  <rguenther@suse.de>
2137
2138         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
2139         decls are only used if passes as parameters or if they are
2140         local statics and the call is not to a builtin.
2141         (call_may_clobber_ref_p_1): Likewise.
2142
2143 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2144
2145         * expr.c (do_store_flag): Remove last argument.  Simplify code
2146         to avoid duplication of tests already done by can_compare_p.
2147         (expand_expr_real_1): Adjust caller.
2148
2149 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2150
2151         * optabs.c (can_compare_p): Test the predicate of a
2152         cbranch and cstore pattern.
2153
2154 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2155
2156         * expr.c (convert_move): Use emit_store_flag instead of
2157         "emulating" it.
2158
2159 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2160
2161         * config/i386/i386.c (ix86_compare_emitted): Remove.
2162         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
2163         ix86_compare_op0 like ix86_compare_emitted used to be handled.
2164         * config/i386/i386.h (ix86_compare_emitted): Remove.
2165         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
2166         instead of ix86_compare_emitted.
2167         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
2168
2169 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
2170
2171         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
2172         Add t-sysroot-suffix to tmake_file.
2173         * config/print-sysroot-suffix.sh: New file.
2174         * config/t-sysroot-suffix: New file.
2175
2176 2009-04-07  Ben Elliston  <bje@au.ibm.com>
2177
2178         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
2179         as the latter produces a warning when the target does not support
2180         infinity.
2181
2182 2009-04-07  Ben Elliston  <bje@au.ibm.com>
2183
2184         * dfp.c: Replace type punning assignments with memcpy throughout.
2185         * Makefile.in (dfp.o-warn): Remove.
2186
2187 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
2188
2189         PR target/39634
2190         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
2191         Include soft-fp/t-softfp after rs6000/t-linux64.
2192
2193 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
2194
2195         * stor-layout.c (set_sizetype): Use the full precision of their
2196         machine mode for bitsize types.
2197
2198 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
2199
2200         * config/i386/i386.md: Revert 2 accidental checkins.
2201
2202 2009-04-06  Joey Ye  <joey.ye@intel.com>
2203             Xuepeng Guo <xuepeng.guo@intel.com>
2204             H.J. Lu  <hongjiu.lu@intel.com>
2205
2206         Atom pipeline model, tuning and insn selection.
2207         * config.gcc (atom): Add atom config options and target.
2208
2209         * config/i386/atom.md: New.
2210
2211         * config/i386/i386.c (atom_cost): New cost.
2212         (m_ATOM): New macro flag.
2213         (initial_ix86_tune_features): Set m_ATOM.
2214         (x86_accumulate_outgoing_args): Likewise.
2215         (x86_arch_always_fancy_math_387): Likewise.
2216         (processor_target): Add Atom cost.
2217         (cpu_names): Add Atom cpu name.
2218         (override_options): Set Atom ISA.
2219         (ix86_issue_rate): New case PROCESSOR_ATOM.
2220         (ix86_adjust_cost): Likewise.
2221
2222         * config/i386/i386.h (TARGET_ATOM): New target macro.
2223         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
2224         (TARGET_OPT_AGU): New target option.
2225         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
2226         (processor_type): Add PROCESSOR_ATOM.
2227
2228         * config/i386/i386.md (cpu): Add new value "atom".
2229         (use_carry, movu): New attr.
2230         (atom.md): Include atom.md.
2231         (adddi3_carry_rex64): Set attr "use_carry".
2232         (addqi3_carry): Likewise.
2233         (addhi3_carry): Likewise.
2234         (addsi3_carry): Likewise.
2235         (*addsi3_carry_zext): Likewise.
2236         (subdi3_carry_rex64): Likewise.
2237         (subqi3_carry): Likewise.
2238         (subhi3_carry): Likewise.
2239         (subsi3_carry): Likewise.
2240         (x86_movdicc_0_m1_rex64): Likewise.
2241         (*x86_movdicc_0_m1_se): Likewise.
2242         (x86_movsicc_0_m1): Likewise.
2243         (*x86_movsicc_0_m1_se): Likewise.
2244         (*adddi_1_rex64): Emit add insn as much as possible.
2245         (*addsi_1): Likewise.
2246         (return_internal): Set atom_unit.
2247         (return_internal_long): Likewise.
2248         (return_pop_internal): Likewise.
2249         (*rcpsf2_sse): Set atom_sse_attr attr.
2250         (*qrt<mode>2_sse): Likewise.
2251         (*prefetch_sse): Likewise.
2252
2253         * config/i386/i386-c.c (ix86_target_macros_internal): New case
2254         PROCESSOR_ATOM.
2255         (ix86_target_macros_internal): Likewise.
2256
2257         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
2258         (*prefetch_sse_rex): Likewise.
2259         (sse_rcpv4sf2): Likewise.
2260         (sse_vmrcpv4sf2): Likewise.
2261         (sse_sqrtv4sf2): Likewise.
2262         (<sse>_vmsqrt<mode>2): Likewise.
2263         (sse_ldmxcsr): Likewise.
2264         (sse_stmxcsr): Likewise.
2265         (*sse_sfence): Likewise.
2266         (sse2_clflush): Likewise.
2267         (*sse2_mfence): Likewise.
2268         (*sse2_lfence): Likewise.
2269         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
2270         (<sse>_movup<ssemodesuffixf2c>): Likewise.
2271         (avx_movdqu<avxmodesuffix>): Likewise.
2272         (avx_lddqu<avxmodesuffix>): Likewise.
2273         (sse2_movntv2di): Change attr "type" to "ssemov".
2274         (sse2_movntsi): Likewise.
2275         (rsqrtv8sf2): Change attr "type" to "sseadd".
2276         (sse3_addsubv2df3): Set attr "atom_unit".
2277         (sse3_h<plusminus_insn>v4sf3): Likewise.
2278         (*sse2_pmaddwd): Likewise.
2279         (*vec_extractv2di_1_rex64): Likewise.
2280         (*vec_extractv2di_1_avx): Likewise.
2281         (sse2_psadbw): Likewise.
2282         (ssse3_phaddwv8hi3): Likewise.
2283         (ssse3_phaddwv4hi3): Likewise.
2284         (ssse3_phadddv4si3): Likewise.
2285         (ssse3_phadddv2si3): Likewise.
2286         (ssse3_phaddswv8hi3): Likewise.
2287         (ssse3_phaddswv4hi3): Likewise.
2288         (ssse3_phsubwv8hi3): Likewise.
2289         (ssse3_phsubwv4hi3): Likewise.
2290         (ssse3_phsubdv4si3): Likewise.
2291         (ssse3_phsubdv2si3): Likewise.
2292         (ssse3_phsubswv8hi3): Likewise.
2293         (ssse3_phsubswv4hi3): Likewise.
2294         (ssse3_pmaddubsw128): Likewise.
2295         (sse3_pmaddubsw: Likewise.
2296         (ssse3_palignrti): Likewise.
2297         (ssse3_palignrdi): Likewise.
2298
2299 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
2300
2301         * doc/install.texi (Specific): Fix two cross-references to MinGW.
2302
2303 2009-04-06  Richard Guenther  <rguenther@suse.de>
2304
2305         PR tree-optimization/28868
2306         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
2307         of which PHI results we inserted.
2308         (insert_into_preds_of_block): Record inserted PHIs.
2309         (eliminate): Eliminate redundant PHI nodes.
2310         (init_pre): Init inserted_phi_names.
2311
2312 2009-04-06  Richard Guenther  <rguenther@suse.de>
2313
2314         PR tree-optimization/39643
2315         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
2316         IMAGPART_EXPRs of complex constants.
2317         (execute_fold_all_builtins): If we folded a call queue
2318         TODO_update_address_taken.
2319
2320 2009-04-06  Jan Hubicka  <jh@suse.cz>
2321
2322         PR middle-end/39659
2323         * except.c (remove_unreachable_regions): Propagate may_contain_throw
2324         flag.
2325
2326 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
2327
2328         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
2329         delay slot.
2330         (ic_invalidate_array): Likewise.
2331
2332 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
2333
2334         * calls.c (emit_library_call_value_1): Fix a problem with parameter
2335         alignment for library calls.
2336
2337 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
2338
2339         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
2340         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
2341         * config/i386/mingw-stdint.h:  New file.
2342
2343 2009-04-05  Richard Guenther  <rguenther@suse.de>
2344
2345         PR tree-optimization/39648
2346         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
2347         our &A vs. &A[0] IL deficiencies.
2348
2349 2009-04-04  Jan Hubicka  <jh@suse.cz>
2350
2351         * except.c (sjlj_find_directly_reachable_regions): Be ready for
2352         removed toplevel regions.
2353         (sjlj_mark_call_sites): Likewise.
2354
2355 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
2356
2357         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
2358         (cygwin tm clause use_gcc_stdint):  Set to wrap.
2359         * config/i386/cygwin-stdint.h:  New file.
2360
2361 2009-04-04  Richard Guenther  <rguenther@suse.de>
2362
2363         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
2364         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
2365         single-argument PHIs if we are in loop-closed SSA form.
2366         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
2367         for the pre-condition.
2368         (slpeel_tree_peel_loop_to_edge): Likewise.
2369         (vect_build_loop_niters): Take an optional sequence to append stmts.
2370         (vect_generate_tmps_on_preheader): Likewise.
2371         (vect_do_peeling_for_loop_bound): Take extra guards for the
2372         pre-condition.
2373         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
2374         the cost model check.
2375         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
2376         guards if we are going to peel.  Do not apply versioning in that case.
2377         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
2378         (vect_do_peeling_for_loop_bound): Likewise.
2379         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
2380         loop bound only record extra pre-conditions, do not apply loop
2381         versioning.
2382
2383 2009-04-04  Richard Guenther  <rguenther@suse.de>
2384
2385         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
2386         renaming code.
2387
2388 2009-04-04  Jan Hubicka  <jh@suse.cz>
2389
2390         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
2391         last_basic_block for size of bb->index indexed array.
2392         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
2393         compute_out, link_btr_uses, build_btr_def_use_webs,
2394         build_btr_def_use_webs, migrate_btr_defs): Likewise.
2395
2396 2009-04-04  Jan Hubicka  <jh@suse.cz>
2397
2398         * except.c (remove_eh_handler_and_replace): Break out from ...
2399         (remove_eh_handler): ... here.
2400         (bring_to_root): New function.
2401         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
2402         handled ones, bring others to root of tree.
2403
2404 2009-04-04  Jan Hubicka  <jh@suse.cz>
2405
2406         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
2407         (all_phis_safe_to_merge): New function.
2408         (update_info): New structure.
2409         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
2410         (cleanup_empty_eh): Update SSA if possible.
2411
2412 2009-04-04  Richard Guenther  <rguenther@suse.de>
2413
2414         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
2415         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
2416         (append_vuse): Likewise.
2417
2418 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
2419
2420         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
2421         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
2422         instead of REG_UNSAVED for DW_CFA_undefined.
2423         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
2424         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
2425         outermost frame.
2426
2427 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
2428
2429         PR target/39501
2430         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
2431         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
2432         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
2433
2434 2009-04-04  Richard Guenther  <rguenther@suse.de>
2435
2436         PR tree-optimization/8781
2437         PR tree-optimization/37892
2438         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
2439         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
2440         (valueize_refs): Call it for *& valueizations.
2441         (shared_reference_ops_from_ref): Rename to ...
2442         (valueize_shared_reference_ops_from_ref): ... this and valueize.
2443         (shared_reference_ops_from_call): Rename to ...
2444         (valueize_shared_reference_ops_from_call): ... this and valueize.
2445         (vn_reference_lookup): Update.
2446         (visit_reference_op_call): Likewise.
2447         * tree-ssa-pre.c (phi_translate_1): Fold *&.
2448         (eliminate): Value-replace the call address in call statements.
2449
2450 2009-04-04  Richard Guenther  <rguenther@suse.de>
2451
2452         PR tree-optimization/39636
2453         * tree-ssa-forwprop.c
2454         (forward_propagate_addr_into_variable_array_index): Check for
2455         GIMPLE_ASSIGN before accessing the rhs code.
2456
2457 2009-04-03  Jason Merrill  <jason@redhat.com>
2458
2459         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
2460
2461 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
2462
2463         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
2464         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
2465         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
2466         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
2467         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
2468         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
2469         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
2470         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
2471         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
2472         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
2473         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
2474         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
2475         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
2476         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
2477         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
2478         Use fr_reg_or_fp01_operand instead of fr_register_operand
2479
2480         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
2481         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
2482         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
2483
2484 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
2485
2486         PR rtl-optimization/39607
2487         PR rtl-optimization/39631
2488
2489         Revert:
2490
2491         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2492         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
2493         instead of DF_LR_OUT.
2494         * ira-lives.c (process_bb_node_lives): Ditto.
2495         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
2496         instead of DF_LR_{OUT,IN}.
2497         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
2498         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
2499
2500 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
2501
2502         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
2503         (execute_lower_omp): Always run but take the short way out if -fopenmp
2504         is not given.
2505         (gate_lower_omp): Remove, forcing the pass manager to always run the
2506         pass and always set PROP_gimple_lomp.
2507         (pass_lower_omp): Remove gate function.
2508         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
2509         PROP_trees.  Instead, require it.
2510         * ipa-cp.c (pass_ipa_cp): Likewise.
2511         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
2512         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
2513         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
2514         and PROP_gimple_leh.
2515
2516 2009-04-03  Richard Guenther  <rguenther@suse.de>
2517
2518         PR middle-end/13146
2519         PR tree-optimization/23940
2520         PR tree-optimization/33237
2521         PR middle-end/33974
2522         PR middle-end/34093
2523         PR tree-optimization/36201
2524         PR tree-optimization/36230
2525         PR tree-optimization/38049
2526         PR tree-optimization/38207
2527         PR tree-optimization/38230
2528         PR tree-optimization/38301
2529         PR tree-optimization/38585
2530         PR middle-end/38895
2531         PR tree-optimization/38985
2532         PR tree-optimization/39299
2533         * tree-ssa-structalias.h: Remove.
2534         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
2535         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
2536         (struct vuse_element_d): Remove.
2537         (struct vuse_vec_d): Likewise.
2538         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
2539         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
2540         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
2541         VUSE_ELEMENT_VAR): Likewise.
2542         (struct voptype_d): Likewise.
2543         (NUM_VOP_FREE_BUCKETS): Likewise.
2544         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
2545         (struct stmt_operands_d): Remove.
2546         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
2547         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
2548         VDEF_NUM, VDEF_VECT): Likewise.
2549         (copy_virtual_operands): Remove.
2550         (operand_build_cmp): Likewise.
2551         (create_ssa_artificial_load_stmt): Likewise.
2552         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
2553         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
2554         vuse_index and mayuse_index members.  Pack and move done and iter_type
2555         members to the front.
2556         (SSA_OP_VMAYUSE): Remove.
2557         (SSA_OP_VIRTUAL_USES): Adjust.
2558         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
2559         (unlink_stmt_vdef): Declare.
2560         (add_to_addressable_set): Remove.
2561         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
2562         (vrp_visit_stmt): Likewise.
2563         * doc/tree-ssa.texi (Alias analysis): Update.
2564         * doc/invoke.texi (max-aliased-vops): Remove docs.
2565         (avg-aliased-vops): Likewise.
2566         * tree-into-ssa.c (syms_to_rename): Remove.
2567         (need_to_update_vops_p): Likewise.
2568         (need_to_initialize_update_ssa_p): Rename to ...
2569         (update_ssa_initialized_fn): ... this.  Track function we are
2570         initialized for.
2571         (symbol_marked_for_renaming): Simplify.
2572         (add_new_name_mapping): Do not set need_to_update_vops_p.
2573         (dump_currdefs): Use SYMS_TO_RENAME.
2574         (rewrite_update_stmt): Always walk all uses/defs.
2575         (dump_update_ssa): Adjust.
2576         (init_update_ssa): Take function argument.  Track what we are
2577         initialized for.
2578         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
2579         (create_new_def_for): Initialize for cfun, assert we are initialized
2580         for cfun.
2581         (mark_sym_for_renaming): Simplify.
2582         (mark_set_for_renaming): Do not initialize update-ssa.
2583         (need_ssa_update_p): Simplify.  Take function argument.
2584         (name_mappings_registered_p): Assert we ask for the correct function.
2585         (name_registered_for_update_p): Likewise.
2586         (ssa_names_to_replace): Likewise.
2587         (release_ssa_name_after_update_ssa): Likewise.
2588         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
2589         (dump_decl_set): Do not print a newline.
2590         (debug_decl_set): Do it here.
2591         (dump_update_ssa): And here.
2592         * tree-ssa-loop-im.c (move_computations): Adjust.
2593         (movement_possibility): Likewise.
2594         (determine_max_movement): Likewise.
2595         (gather_mem_refs_stmt): Likewise.
2596         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
2597         or NAME_MEMORY_TAG.
2598         * tree-complex.c (update_all_vops): Remove.
2599         (expand_complex_move): Adjust.
2600         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
2601         Simplify test for memory referencing statement.  Exclude
2602         non-invariant ADDR_EXPRs.
2603         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
2604         * tree-loop-distribution.c (generate_memset_zero): Adjust.
2605         (rdg_flag_uses): Likewise.
2606         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
2607         related code.
2608         (tree_optimize_tail_calls_1): Also split the
2609         edge from the entry block if we have degenerate PHI nodes in
2610         the first basic block.
2611         * tree.c (init_ttree): Remove memory-tag related code.
2612         (tree_code_size): Likewise.
2613         (tree_node_structure): Likewise.
2614         (build7_stat): Re-write to be build6_stat.
2615         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
2616         (SSA_VAR_P): Adjust.
2617         (struct tree_memory_tag): Remove.
2618         (struct tree_memory_partition_tag): Likewise.
2619         (union tree_node): Adjust.
2620         (build7): Re-write to be build6.
2621         * tree-pass.h (pass_reset_cc_flags): Remove.
2622         (TODO_update_address_taken): New flag.
2623         (pass_simple_dse): Remove.
2624         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
2625         * params.h (MAX_ALIASED_VOPS): Remove.
2626         (AVG_ALIASED_VOPS): Likewise.
2627         * omp-low.c (expand_omp_taskreg): Update SSA form.
2628         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
2629         aliases the lhs in a copy stmt.
2630         * tree-ssa-dse.c (struct address_walk_data): Remove.
2631         (memory_ssa_name_same): Likewise.
2632         (memory_address_same): Likewise.
2633         (get_kill_of_stmt_lhs): Likewise.
2634         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
2635         unused stores.  Look through PHI nodes into post-dominated regions.
2636         (dse_optimize_stmt): Simplify.  Properly remove stores.
2637         (tree_ssa_dse): Compute dominators.
2638         (execute_simple_dse): Remove.
2639         (pass_simple_dse): Likewise.
2640         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
2641         gimple_loaded_syms and gimple_stored_syms computation.
2642         * toplev.c (dump_memory_report): Dump alias and pta stats.
2643         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
2644         (vn_reference_eq): Likewise.
2645         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
2646         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
2647         valueize_vuses): Remove.
2648         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
2649         (get_def_ref_stmt_vuse): ... this.
2650         (vn_reference_lookup_2): New function.
2651         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
2652         walking equivalent vuses.  Simplify.
2653         (vn_reference_lookup): Likewise.
2654         (vn_reference_insert): Likewise.
2655         (vn_reference_insert_pieces): Likewise.
2656         (visit_reference_op_call): Simplify.
2657         (visit_reference_op_load): Likewise.
2658         (visit_reference_op_store): Likewise.
2659         (init_scc_vn): Remove shared_lookup_vuses initialization.
2660         (free_scc_vn): Remove shared_lookup_vuses freeing.
2661         (sort_vuses, sort_vuses_heap): Remove.
2662         (get_ref_from_reference_ops): Export.
2663         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
2664         vector with single vuse pointer.
2665         (vn_reference_lookup_pieces, vn_reference_lookup,
2666         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
2667         (shared_vuses_from_stmt): Remove.
2668         (get_ref_from_reference_ops): Declare.
2669         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
2670         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
2671         memory-tag related code.
2672         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
2673         (likely_value): Add comment, skip static-chain of call statements.
2674         (surely_varying_stmt_p): Adjust.
2675         (gimplify_and_update_call_from_tree): Likewise.
2676         (execute_fold_all_builtins): Do not rebuild alias info.
2677         (gimplify_and_update_call_from_tree): Properly update VOPs.
2678         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
2679         (copy_ref_info): Remove memory-tag related code.
2680         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
2681         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
2682         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
2683         computation.
2684         * tree-ssa-dom.c (gimple_p): Remove typedef.
2685         (eliminate_redundant_computations): Adjust.
2686         (record_equivalences_from_stmt): Likewise.
2687         (avail_expr_hash): Likewise.
2688         (avail_expr_eq): Likewise.
2689         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
2690         (stmt_makes_single_load): Likewise.
2691         (stmt_makes_single_store): Likewise.
2692         * tree-ssa-alias.c: Rewrite completely.
2693         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
2694         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
2695         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
2696         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
2697         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
2698         Remove public functions.
2699         (pass_reset_cc_flags): Remove.
2700         (pass_build_alias): Move ...
2701         * tree-ssa-structalias.c (pass_build_alias): ... here.
2702         * tree-ssa-alias.c (may_be_aliased): Move ...
2703         * tree-flow-inline.h (may_be_aliased): ... here.
2704         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
2705         count_uses_and_derefs): Move ...
2706         * gimple.c: ... here.
2707         * gimple.h (count_uses_and_derefs): Declare.
2708         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
2709         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
2710         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
2711         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
2712         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
2713         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
2714         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
2715         New functions.
2716         * tree-dfa.c (refs_may_alias_p): Move ...
2717         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
2718         * tree-ssa-alias.h: New file.
2719         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
2720         (statement_sink_location): Likewise.
2721         * opts.c (decode_options): Do not adjust max-aliased-vops or
2722         avg-aliased-vops values.
2723         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
2724         (TV_CALL_CLOBBER): Likewise.
2725         (TV_FLOW_SENSITIVE): Likewise.
2726         (TV_FLOW_INSENSITIVE): Likewise.
2727         (TV_MEMORY_PARTITIONING): Likewise.
2728         (TV_ALIAS_STMT_WALK): New timevar.
2729         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
2730         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
2731         (get_address_description): Remove memory-tag related code.
2732         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
2733         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
2734         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
2735         and immediate uses in statements.  Document.
2736         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
2737         (dump_symbols): Remove.
2738         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
2739         * alias.c (get_deref_alias_set): New function split out from ...
2740         (get_alias_set): ... here.
2741         * alias.h (get_deref_alias_set): Declare.
2742         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
2743         type parameter.  Remove restrict pointer handling.  Create a
2744         ref-all pointer in case type-based alias sets do not conflict.
2745         (vect_analyze_data_refs): Remove SMT related code.
2746         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
2747         (vectorizable_load): Likewise.
2748         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
2749         (DR_SYMBOL_TAG, DR_VOPS): Remove.
2750         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
2751         Ignore vops and SMTs.
2752         (dr_analyze_alias): Likewise..
2753         (free_data_ref): Likewise.
2754         (create_data_ref): Likewise.
2755         (analyze_all_data_dependences): Likewise.
2756         (get_references_in_stmt): Adjust.
2757         * tree-flow-inline.h (gimple_aliases_computed_p,
2758         gimple_addressable_vars, gimple_call_clobbered_vars,
2759         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
2760         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
2761         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
2762         gimple_mem_ref_stats): Remove.
2763         (gimple_vop): New function.
2764         (op_iter_next_use): Remove vuses and mayuses cases.
2765         (op_iter_next_def): Remove vdefs case.
2766         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
2767         (clear_and_done_ssa_iter): Do not set removed fields.
2768         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
2769         Assert we are not iterating over vuses or vdefs if not also
2770         iterating over uses or defs.
2771         (op_iter_init_use): Likewise.
2772         (op_iter_init_def): Likewise.
2773         (op_iter_next_vdef): Remove.
2774         (op_iter_next_mustdef): Likewise.
2775         (op_iter_init_vdef): Likewise.
2776         (compare_ssa_operands_equal): Likewise.
2777         (link_use_stmts_after): Handle vuse operand.
2778         (is_call_used): Use is_call_clobbered.
2779         (is_call_clobbered): Global variables are always call clobbered,
2780         query the call-clobbers bitmap.
2781         (mark_call_clobbered): Ignore global variables.
2782         (clear_call_clobbered): Likewise.
2783         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
2784         virtual operands sanity check.
2785         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
2786         Remove.
2787         (TARGET_MEM_REF): Remove TMR_TAG operand.
2788         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
2789         Remove call-clobber related code.
2790         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
2791         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
2792         partitions or escape reason.
2793         (get_single_def_stmt, get_single_def_stmt_from_phi,
2794         get_single_def_stmt_with_phi): Remove.
2795         (dump_referenced_vars): Tidy.
2796         (get_ref_base_and_extent): Allow bare decls.
2797         (collect_dfa_stats): Adjust.
2798         * graphite.c (rename_variables_in_stmt): Adjust.
2799         (graphite_copy_stmts_from_block): Likewise.
2800         (translate_clast): Likewise.
2801         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
2802         (EXPR_DIES): New.
2803         (translate_vuse_through_block): Use the oracle.
2804         (phi_translate_1): Adjust.
2805         (value_dies_in_block_x): Use the oracle.  Cache the outcome
2806         in EXPR_DIES.
2807         (valid_in_sets): Check if the VUSE for
2808         a REFERENCE is available.
2809         (eliminate): Do not remove stmts during elimination,
2810         instead queue and remove them afterwards.
2811         (do_pre): Do not rebuild alias info.
2812         (pass_pre): Run TODO_rebuild_alias before PRE.
2813         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
2814         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
2815         (mark_all_v_defs_stmt): Remove.
2816         (mark_all_v_defs_seq): Adjust.
2817         (sra_replace): Likewise.
2818         (scalarize_use): Likewise.
2819         (scalarize_copy): Likewise.
2820         (scalarize_init): Likewise.
2821         (scalarize_ldst): Likewise.
2822         (todoflags): Remove.
2823         (tree_sra): Do not rebuild alias info.
2824         (tree_sra_early): Adjust.
2825         (pass_sra): Run TODO_update_address_taken before SRA.
2826         * tree-predcom.c (set_alias_info): Remove.
2827         (prepare_initializers_chain): Do not call it.
2828         (mark_virtual_ops_for_renaming): Adjust.
2829         (mark_virtual_ops_for_renaming_list): Remove.
2830         (initialize_root_vars): Adjust.
2831         (initialize_root_vars_lm): Likewise.
2832         (prepare_initializers_chain): Likewise.
2833         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
2834         (may_propagate_copy_into_stmt): Likewise.
2835         (merge_alias_info): Do nothing for now.
2836         (propagate_tree_value_into_stmt): Adjust.
2837         (stmt_may_generate_copy): Likewise.
2838         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
2839         not mark symbols for renaming.
2840         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
2841         with the same statement, make sure to update the new pointed-to one.
2842         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
2843         call statements, do not mark symbols for renaming.
2844         (mark_operand_necessary): Dump something.
2845         (ref_may_be_aliased): New function.
2846         (mark_aliased_reaching_defs_necessary_1): New helper function.
2847         (mark_aliased_reaching_defs_necessary): Likewise.
2848         (mark_all_reaching_defs_necessary_1): Likewise.
2849         (mark_all_reaching_defs_necessary): Likewise.
2850         (propagate_necessity): Do not process virtual PHIs.  For
2851         non-aliased loads mark all reaching definitions as necessary.
2852         For aliased loads and stores mark the immediate dominating
2853         aliased clobbers as necessary.
2854         (visited): New global static.
2855         (perform_tree_ssa_dce): Free visited bitmap after propagating
2856         necessity.
2857         (remove_dead_phis): Perform simple dead virtual PHI removal.
2858         (remove_dead_stmt): Properly unlink virtual operands when
2859         removing stores.
2860         (eliminate_unnecessary_stmts): Schedule PHI removal after
2861         stmt removal.
2862         * tree-ssa-ter.c (is_replaceable_p): Adjust.
2863         (process_replaceable): Likewise.
2864         (find_replaceable_in_bb): Likewise.
2865         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
2866         based on the single gimple vop.
2867         (verify_flow_insensitive_alias_info): Remove.
2868         (verify_flow_sensitive_alias_info): Likewise.
2869         (verify_call_clobbering): Likewise.
2870         (verify_memory_partitions): Likewise.
2871         (verify_alias_info): Likewise.
2872         (verify_ssa): Adjust..
2873         (execute_update_addresses_taken): Export.  Update SSA
2874         manually.  Optimize only when optimizing.  Use a local bitmap.
2875         (pass_update_address_taken): Remove TODO_update_ssa, add
2876         TODO_dump_func.
2877         (pass_update_address_taken): Just use TODO_update_address_taken.
2878         (init_tree_ssa): Do not initialize addressable_vars.
2879         (verify_ssa): Verify new VUSE / VDEF properties.
2880         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
2881         Do not call verify_alias_info.
2882         (delete_tree_ssa): Clear the VUSE, VDEF operands.
2883         Do not free the loaded and stored syms bitmaps.  Reset the escaped
2884         and callused solutions.  Do not free addressable_vars.
2885         Remove memory-tag related code.
2886         (warn_uninitialized_var): Aliases are always available.
2887         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
2888         * lambda-code.c (can_put_in_inner_loop): Adjust.
2889         (can_put_after_inner_loop): Likewise.
2890         (perfect_nestify): Likewise.
2891         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
2892         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
2893         (vectorizable_conversion): Do not mark symbols for renaming.
2894         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
2895         (expand_call_inline): Unlink the calls virtual operands before
2896         replacing it.
2897         (tree_function_versioning): Do not call update_ssa if we are not
2898         updating clones.  Simplify.
2899         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
2900         (propagate_with_phi): Likewise..
2901         * tree-outof-ssa.c (create_temp): Remove memory tag and call
2902         clobber code.  Assert we are not aliased or global.
2903         * tree-flow.h: Include tree-ssa-alias.h
2904         (enum escape_type): Remove.
2905         (struct mem_sym_stats_d): Likewise.
2906         (struct mem_ref_stats_d): Likewise.
2907         (struct gimple_df): Add vop member.  Remove global_var,
2908         call_clobbered_vars, call_used_vars, addressable_vars,
2909         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
2910         escaped and callused members.
2911         (struct ptr_info_def): Remove all members, add points-to solution
2912         member pt.
2913         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
2914         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
2915         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
2916         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
2917         (tree-ssa-alias.o): Likewise.
2918         (toplev.o): Add tree-ssa-alias.h
2919         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
2920         * gimple.c (gimple_set_bb): Fix off-by-one error.
2921         (is_gimple_reg): Do not handle memory tags.
2922         (gimple_copy): Also copy virtual operands.
2923         Delay updating the statement.  Do not reset loaded and stored syms.
2924         (gimple_set_stored_syms): Remove.
2925         (gimple_set_loaded_syms): Likewise.
2926         (gimple_call_copy_skip_args): Copy the virtual operands
2927         and mark the new statement modified.
2928         * tree-ssa-structalias.c (may_alias_p): Remove.
2929         (set_uids_in_ptset): Take the alias set to prune with as
2930         parameter.  Fold in the alias test of may_alias_p.
2931         (compute_points_to_sets): Compute whether a ptr is dereferenced
2932         in a local sbitmap.
2933         (process_constraint): Deal with &ANYTHING on the lhs, reject all
2934         other ADDRESSOF constraints on the lhs.
2935         (get_constraint_for_component_ref): Assert that we don't get
2936         ADDRESSOF constraints from the base of the reference.
2937         Properly generate UNKNOWN_OFFSET for DEREF if needed.
2938         (struct variable_info): Remove collapsed_to member.
2939         (get_varinfo_fc): Remove.
2940         (new_var_info): Do not set collapsed_to.
2941         (dump_constraint): Do not follow cycles.
2942         (dump_constraint_graph): Likewise.
2943         (build_pred_graph): Likewise.
2944         (build_succ_graph): Likewise.
2945         (rewrite_constraints): Likewise.
2946         (do_simple_structure_copy): Remove.
2947         (do_rhs_deref_structure_copy): Remove.
2948         (do_lhs_deref_structure_copy): Remove.
2949         (collapse_rest_of_var): Remove.
2950         (do_structure_copy): Re-implement.
2951         (pta_stats): New global variable.
2952         (dump_pta_stats): New function.
2953         (struct constraint_expr): Make offset signed.
2954         (UNKNOWN_OFFSET): Define special value.
2955         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
2956         (solution_set_expand): New helper function split out from ...
2957         (do_sd_constraint): ... here.
2958         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
2959         (do_ds_constraint): Likewise.
2960         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
2961         and CALLUSED = *CALLUSED.
2962         (set_union_with_increment): Make inc argument signed.
2963         (type_safe): Remove.
2964         (get_constraint_for_ptr_offset): Handle unknown and negative
2965         constant offsets.
2966         (first_vi_for_offset): Handle offsets before start.  Bail
2967         out early for offsets beyond the variable extent.
2968         (first_or_preceding_vi_for_offset): New function.
2969         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
2970         Together with ESCAPED = *ESCAPED this properly computes reachability.
2971         (find_what_var_points_to): New function.
2972         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
2973         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
2974         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
2975         pt_solutions_intersect): New functions.
2976         (compute_call_used_vars): Remove.
2977         (compute_may_aliases): New main entry into PTA computation.
2978         * gimple.h (gimple_p): New typedef.
2979         (struct gimple_statement_base): Remove references_memory_p.
2980         (struct gimple_statement_with_memory_ops_base): Remove
2981         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
2982         members.
2983         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
2984         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
2985         gimple_set_references_memory): Remove.
2986         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
2987         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
2988         New functions.
2989         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
2990         (verify_expr): Allow RESULT_DECL.
2991         (gimple_duplicate_bb): Do not copy virtual operands.
2992         (gimple_duplicate_sese_region): Adjust.
2993         (gimple_duplicate_sese_tail): Likewise.
2994         (mark_virtual_ops_in_region): Remove.
2995         (move_sese_region_to_fn): Do not call it.
2996         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
2997         and pass_simple_dse.
2998         (execute_function_todo): Handle TODO_update_address_taken,
2999         call execute_update_addresses_taken for TODO_rebuild_alias.
3000         (execute_todo): Adjust.
3001         (execute_one_pass): Init dump files early.
3002         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
3003         call-clobbered.
3004         (create_general_new_stmt): Clear vops.
3005         * tree-ssa-reassoc.c (get_rank): Adjust.
3006         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
3007         symbols for renaming.
3008         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
3009         (PARAM_AVG_ALIASED_VOPS): Likewise.
3010         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
3011         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
3012         * tree-ssa-operands.c: Simplify for new virtual operand representation.
3013         (operand_build_cmp, copy_virtual_operands,
3014         create_ssa_artificial_load_stmt, add_to_addressable_set,
3015         gimple_add_to_addresses_taken): Remove public functions.
3016         (unlink_stmt_vdef): New function.
3017
3018 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
3019
3020         * config.gcc (powerpc-*-linux*): Merge variants.
3021
3022 2009-04-02  Chao-ying Fu  <fu@mips.com>
3023             James Grosbach <james.grosbach@microchip.com>
3024
3025         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
3026         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
3027         cop0_sp_offset.
3028         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
3029         keep_interrupts_masked_p, use_debug_exception_return_p.
3030         (mips_attribute_table): Add interrupt, use_shadow_register_set,
3031         keep_interrupts_masked, use_debug_exception_return.
3032         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
3033         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
3034         New functions.
3035         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
3036         (mips_print_operand): Process COP0 registers to print $0 .. $31
3037         correctly for GAS to process.
3038         (mips_interrupt_extra_call_saved_reg_p): New function.
3039         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
3040         extra registers.
3041         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
3042         (mips_compute_frame_info): Add supports for interrupt context that
3043         includes doubleword accumulators and COP0 registers.
3044         (mips_for_each_saved_acc): New function.
3045         (mips_for_each_saved_gpr_and_fpr): Change the function name from
3046         mips_for_each_saved_reg.
3047         (mips_save_reg): Save accumulators.
3048         (mips_kernel_reg_p): A new for_each_rtx callback.
3049         (mips_expand_prologue): Support interrupt handlers.
3050         (mips_restore_reg): Restore accumulators.
3051         (mips_expand_epilogue): Support interrupt handlers.
3052         (mips_can_use_return_insn): Return false for interrupt handlers.
3053         (mips_epilogue_uses): New function.
3054         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
3055         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
3056         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
3057         cop0_move): New instructions.
3058         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
3059         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
3060         defines.
3061         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
3062         New defines.
3063         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
3064         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
3065         interrupt handlers, we use K0 as the temporary register.
3066         (EPILOGUE_USES): Change to a function call.
3067         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
3068         handlers, we use K0 as the temporary register.
3069
3070         * doc/extend.texi (Function Attributes): Document interrupt,
3071         use_shadow_register_set, keep_interrupts_masked,
3072         use_debug_exception_return for MIPS attributes.
3073
3074 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
3075
3076         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
3077         Remove a number of t-files from tmake_file.
3078         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
3079         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
3080         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
3081         target_prototype, not TARGET_PROTOTYPE.
3082         (LINK_OS_GNU_SPEC): Define.
3083         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
3084         and darwin-ldoubdle.c.
3085
3086 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3087
3088         PR driver/39293
3089         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
3090         (cpp_options): Ditto.
3091         (default_compilers): Ditto.
3092         (display_help): Ditto.
3093         (process_command): Ditto.
3094         (do_spec_1): Ditto.
3095         (set_input): Use lbasename instead of duplicate code.
3096         (save_temps_prefix): New static for -save-temps=obj.
3097         (save_temps_length): Ditto.
3098
3099         * doc/invoke.texi (-save-temps=obj): Document new variant to
3100         -save-temps switch.
3101
3102 2009-04-02  Jeff Law  <law@redhat.com>
3103
3104         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
3105         variable.
3106
3107 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3108
3109         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
3110         * configure: Regenerated.
3111
3112 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
3113
3114         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
3115         share the argument list.
3116
3117 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
3118
3119         Merge
3120
3121         2009-02-12  Diego Novillo  <dnovillo@google.com>
3122
3123         * varpool.c (debug_varpool): New.
3124         * cgraph.h (debug_varpool): Declare.
3125
3126 2009-04-02  Jan Hubicka  <jh@suse.cz>
3127
3128         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
3129         pass.
3130
3131 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3132
3133         * config/i386/i386.c (ix86_abi): Move initialization to ...
3134         (override_options): Here.
3135
3136 2009-04-02  Christian Bruel  <christian.bruel@st.com>
3137
3138         * config/sh/sh.c (sh_dwarf_register_span): New function.
3139         (TARGET_DWARF_REGISTER_SPAN): Define.
3140         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
3141
3142 2009-04-02  Ira Rosen  <irar@il.ibm.com>
3143
3144         PR tree-optimization/39595
3145         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
3146         interleaved loads group is not  greater than the SLP group size.
3147
3148 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
3149
3150         * builtins.c (is_builtin_name): New.
3151         (called_as_built_in): Use is_builtin_name.
3152         * tree.h (is_builtin_name): New.
3153         * varasm.c (incorporeal_function_p): Use is_builtin_name
3154
3155 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
3156
3157         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
3158
3159 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
3160
3161         PR c++/26693
3162         * c-decl.c (clone_underlying_type): Move this ...
3163         * c-common.c (set_underlying_type): ... here.
3164         Also, make sure the function properly sets TYPE_STUB_DECL() on
3165         the newly created typedef variant type.
3166         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
3167         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
3168         points.
3169
3170 2009-04-02  Richard Guenther  <rguenther@suse.de>
3171
3172         PR tree-optimization/37221
3173         * tree-flow.h (degenerate_phi_result): Declare.
3174         * tree-ssa-dom.c (degenerate_phi_result): Export.
3175         * tree-scalar-evolution.c (analyze_initial_condition): If
3176         the initial condition is defined by a degenerate PHI node
3177         use the degenerate value.
3178
3179 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
3180
3181         PR rtl-optimization/39588
3182         * combine.c (merge_outer_ops): Do not set the constant when this
3183         is not necessary.
3184         (simplify_shift_const_1): Do not modify it either in this case.
3185
3186 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
3187
3188         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
3189         tuning is deprecated if -mtune value is set to an Itanium1 variant.
3190
3191 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
3192
3193         PR c/29027
3194         * c-lex.c (interpret_float): Default (no suffix) is double.
3195
3196 2009-04-1  Xinliang David Li  <davidxl@google.com>
3197
3198         * config/i386/i386.c (legitimate_constant_p): Recognize
3199         all one vector constant.
3200
3201 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3202
3203         * gcc/config/vax/vax.c: Add #includes to silence warnings.
3204         Change #include order to silence two warnings.
3205
3206 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3207
3208         * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
3209         (ASM_SPEC): Pass -k to the assembler for PIC code.
3210
3211 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3212
3213         * gcc/config.gcc: Add vax-*-linux* to the switch.
3214         * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
3215         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
3216
3217 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3218
3219         * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
3220         Use predicate macros instead of GET_CODE() == foo.
3221         * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
3222         ashlsi3, rotrsi3, <unnamed>): Likewise.
3223
3224 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3225
3226         * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
3227         jbbccihi, jbbccisi): Remova trailing whitespace.
3228         * gcc/config/vax/constraints.md: Likewise.
3229         * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3230         * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
3231         * gcc/config/vax/predicates.md: Likewise.
3232         * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
3233         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
3234         * gcc/config/vax/vax.h: Likewise.
3235         * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
3236
3237 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3238
3239         * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
3240         (indirectable_address_p, adjacent_operands_p): Add spaces around
3241         braces.
3242         * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
3243
3244 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3245
3246         * gcc/config/vax/vax.c (legitimate_constant_address_p,
3247         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
3248         index_term_p, reg_plus_index_p, legitimate_address_p,
3249         vax_mode_dependent_address_p): Update comments to match functions
3250         modified by the recent int->bool conversion.
3251
3252 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3253
3254         * gcc/config/vax/builtins.md: Update copyright message.
3255         * gcc/config/vax/constraints.md: Likewise.
3256         * gcc/config/vax/netbsd-elf.h: Likewise.
3257         * gcc/config/vax/predicates.md: Likewise.
3258         * gcc/config/vax/vax-protos.h: Likewise.
3259         * gcc/config/vax/vax.c: Likewise.
3260         * gcc/config/vax/vax.h: Likewise.
3261         * gcc/config/vax/vax.md: Likewise.
3262         * gcc/config/vax/vax.opt: Likewise.
3263
3264 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3265
3266         * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
3267         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
3268         * gcc/config/vax/constraints.md (B, R): Likewise.
3269         * gcc/config/vax/predicates.md (external_memory_operand,
3270         nonimmediate_addsub_di_operand): Likewise.
3271         * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
3272         * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
3273         untyped_call): Likewise.
3274
3275 2009-04-01  Matt Thomas <matt@3am-software.com>
3276
3277         * config/vax/predicates.md: New file.
3278         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
3279         external_const_operand, nonsymbolic_operand, external_memory_operand,
3280         indirect_memory_operand, indexed_memory_operand,
3281         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
3282         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
3283         predicate.
3284         * config/vax/constraints.md: New file.
3285         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
3286         New constraint.
3287         * config/vax/builtins.md: New file.
3288         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
3289         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
3290         jbbccisi): Define.
3291         * config/vax/vax.opt (mqmath): Add option.
3292         * config/vax/vax.md (isfx): Extend with DI.
3293         (VAXintQH, VAXintQHSD): Define.
3294         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
3295         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
3296         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
3297         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
3298         (movdi): Update constraints and use vax_output_int_move().
3299         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
3300         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
3301         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
3302         nonlocal_goto): New.
3303         (mov<mode>): Extend accepted operand types.
3304         (subdi3_old): Rename from subdi3, change update constraints and use
3305         a new implementation.
3306         * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
3307         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
3308         MOVE_RATIO, CLEAR_RATIO): Define.
3309         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
3310         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
3311         (PRINT_OPERAND): Redefine using a function instead of inlined code.
3312         * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
3313         (split_quadword_operands): Make static and really allow variable
3314         splitting.
3315         (print_operand_address): Update for PIC generation.
3316         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
3317         indexable_address_p, fixup_mathdi_operand,
3318         vax_expand_addsub_di_operands, adjacent_operands_p): New.
3319         (vax_float_literal, legitimate_constant_p,
3320         indirectable_constant_address_p, index_term_p,
3321         reg_plus_index_p): Return bool instead of int.
3322         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
3323         where needed.
3324         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
3325         generation.
3326         (vax_output_conditional_branch): Indent.
3327         (legitimate_constant_address_p, indirectable_constant_address_p,
3328         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
3329         vax_mode_dependent_address_p): Return bool instead of int, update for
3330         PIC generation.
3331         * config/vax/vax-protos.h (legitimate_constant_address_p,
3332         legitimate_constant_p, legitimate_address_p,
3333         vax_mode_dependent_address_p): Change declaration to bool.
3334         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
3335         vax_expand_addsub_di_operands, vax_output_int_subtract,
3336         vax_output_movmemsi): Declare.
3337         (split_quadword_operands, vax_float_literal): Delete declaration.
3338         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
3339         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
3340         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
3341         ASM_OUTPUT_DWARF_PCREL): Define.
3342         (ASM_SPEC): Change definition to allow PIC generation.
3343
3344 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
3345
3346         * doc/sourcebuild.texi: Update front-end requirements.
3347
3348 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
3349
3350         PR target/39226
3351         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
3352         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
3353         (booldi3_internal3): Use boolean_or_operator instead of
3354         boolean_operator.
3355
3356 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
3357
3358         PR c/39605
3359         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
3360         declarator whose size is not an integer constant expression but
3361         folds to an integer constant, then treat it as a constant
3362         subsequently.
3363
3364 2009-04-01  Richard Guenther  <rguenther@suse.de>
3365
3366         * fold-const.c (fold_plusminus_mult_expr): Do not fold
3367         i * 4 + 2 to (i * 2 + 1) * 2.
3368
3369 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
3370
3371         PR c/37772
3372         * c-parser.c (c_parser_asm_statement): Skip until close paren and
3373         return if c_parser_asm_string_literal returned NULL.
3374
3375 2009-04-01  Nick Clifton  <nickc@redhat.com>
3376
3377         *&n