OSDN Git Service

2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2
3         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
4         ssemodesuffixf2c with avxmodesuffixf2c.
5
6 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
7
8         PR c/40032
9         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed
10         field.
11
12 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
13
14         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
15         (struct tree_base): Adjust spacing for 8 bit boundaries.
16         (struct tree_decl_common): Add decl_by_reference_flag bit.
17         (DECL_BY_REFERENCE): Adjust.
18         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
19         print DECL_BY_REFERENCE bit.
20         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
21         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
22         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
23         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
24         unconditionally.
25
26         PR middle-end/39666
27         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
28         range of the type, but default label is missing, add it with one
29         of the existing labels instead of adding a new label for it.
30
31 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
32
33         * dwarf.h: Remove.
34
35 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
36
37         * Makefile.in (enable_plugin, plugin_includedir): New.
38         (install): Depend on install-plugin.
39         (PLUGIN_HEADERS): New.
40         (install-plugin): New.
41         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
42
43 2009-05-05  Richard Guenther  <rguenther@suse.de>
44
45         PR tree-optimization/40022
46         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
47         the only vuse.
48         (phivn_valid_p): Fix tuplification error, simplify.
49         (phiprop_insert_phi): Add dumps.
50         (propagate_with_phi): Simplify.
51
52 2009-05-05  Richard Guenther  <rguenther@suse.de>
53
54         PR middle-end/40023
55         * builtins.c (gimplify_va_arg_expr): Properly build the
56         address.
57
58 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
59
60         * tree.h (strip_float_extensions): Remove duplicate declaration.
61         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
62         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
63         block_ultimate_origin): Rearrange the declarations line to match the
64         comment that indicates the .c file which the functions are defined.
65         (dwarf2out_*, set_decl_rtl): Add comment.
66         (get_base_address): Adjust comment.
67         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
68         declarations line and add comment.
69         (is_builtin_name): Add blank after function name, for clarity.
70
71 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
72
73         * attribs.c (decl_attributes): Use %qE for identifiers in
74         diagnostics.
75         * cgraphunit.c (verify_cgraph_node): Translate function names to
76         locale character set in diagnostics.
77         * coverage.c (get_coverage_counts): Use %qE for identifiers in
78         diagnostics.
79         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
80         Document that functions are named in UTF-8.
81         * expr.c (expand_expr_real_1): Translate function names to locale
82         character set in diagnostics.
83         * gimplify.c (omp_notice_variable, omp_is_private,
84         gimplify_scan_omp_clauses): Use %qE for identifiers in
85         diagnostics.
86         * langhooks.c (lhd_print_error_function): Translate function names
87         to locale character set.
88         * langhooks.h (decl_printable_name): Document that return value is
89         in internal character set.
90         * stmt.c: Include pretty-print.h
91         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
92         diagnostics.
93         (resolve_operand_name_1): Translate named operand name to locale
94         character set.
95         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
96         diagnostics.
97         * toplev.c (announce_function): Translate function names to locale
98         character set.
99         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
100         (default_tree_printer): Use pp_identifier or translate identifiers
101         to locale character set.  Mark "<anonymous>" for translation.
102         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
103         for identifiers in diagnostics.
104         * tree.c (handle_dll_attribute): Use %qE for identifiers in
105         diagnostics.
106         * varasm.c (output_constructor): Use %qE for identifiers in
107         diagnostics.
108
109 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
110
111         * configure.ac: use ` ` instead of $()
112         * configure: Regenerate.
113
114 2009-05-05  Ben Elliston  <bje@au.ibm.com>
115
116         * config/pa/linux-atomic.c: Eliminate conditional include of
117         errno.h on non-LP64 systems to simplify build requirements.
118
119 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
120
121         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
122         diagnostics.
123         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
124         and pass value to identifier_to_locale.
125         (warn_variable_length_array): Make name a tree.
126         (grokdeclarator): Separate diagnostic texts for named and unnamed
127         declarators.  Use %qE for named declarators.
128         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
129         diagnostics.
130         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
131         identifiers in diagnostics.
132         * c-typeck.c (push_member_name, start_init): Pass identifiers to
133         identifier_to_locale.  Mark "anonymous" strings for translation.
134
135 2009-05-04  Michael Eager <eager@eagercon.com>
136
137         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
138         address for DImode/DFmode only if double-precision FP regs.
139
140 2009-05-04  Michael Eager <eager@eagercon.com>
141
142         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
143         TARGET_SINGLE_FLOAT check.
144
145 2009-05-04  Michael Eager <eager@eagercon.com>
146
147         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
148
149 2009-05-04  Michael Eager <eager@eagercon.com>
150
151         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
152         * config/rs6000/t-xilinx: New
153
154 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
155
156         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
157         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
158         * gcc/explow.c (memory_address): Use target hook.
159         * gcc/targhooks.c (default_legitimize_address): New.
160         * gcc/targhooks.h (default_legitimize_address): New.
161         * gcc/target.h (legitimize_address): New.
162         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
163         (TARGET_INITIALIZER): Include it.
164         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
165
166         * config/bfin/bfin-protos.h (legitimize_address): Remove.
167         * config/bfin/bfin.c (legitimize_address): Remove.
168         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
169         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address): Remove.
170         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
171         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
172
173         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
174         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
175         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
176         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
177         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
178         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
179         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
180         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
181         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
182         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
183         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
184         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
185         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
186         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
187         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
188         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
189         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
190         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
191         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
192         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
193         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
194         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
195         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
196
197         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
198         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
199         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
200         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
201         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
202         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
203         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
204         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
205         (thumb_legitimize_address): Delete.
206         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
207         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
208         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
209         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
210         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
211         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address): Delete.
212         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address): Delete.
213
214         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
215         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
216         * config/m32r/m32r.c (m32r_legitimize_address): New.
217         * config/m68k/m68k.c (m68k_legitimize_address): New.
218         * config/score/score.c (score_legitimize_address): Standardize.
219         * config/score/score3.c (score3_legitimize_address): Standardize.
220         * config/score/score3.h (score3_legitimize_address): Adjust.
221         * config/score/score7.c (score7_legitimize_address): Standardize.
222         * config/score/score7.h (score7_legitimize_address): Adjust.
223         * config/sh/sh.c (sh_legitimize_address): New.
224         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
225
226         * gcc/config/s390/s390.c (legitimize_address): Rename to...
227         (s390_legitimize_address): ... this.
228         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
229         (sparc_legitimize_address): ... this.
230         * gcc/config/i386/i386.c (legitimize_address): Rename to...
231         (ix86_legitimize_address): ... this.
232         * gcc/config/avr/avr.c (legitimize_address): Rename to...
233         (avr_legitimize_address): ... this.
234         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
235         (mn10300_legitimize_address): ... this.
236         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
237         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
238         (alpha_expand_mov): Adjust call.
239
240         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
241         * config/spu/spu.c (spu_legitimize_address): Likewise.
242         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
243         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
244
245 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
246
247         * intl.c (locale_encoding, locale_utf8): New.
248         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
249         * intl.h (locale_encoding, locale_utf8): Declare.
250         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
251         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
252         New.
253         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
254         argument.
255         (pp_tree_identifier): Define to call pp_base_tree_identifier.
256         (pp_base_tree_identifier): Declare as function.
257         (identifier_to_locale): Declare.
258         * Makefile.in (pretty-print.o): Update dependencies.
259         * varasm.c (finish_aliases_1): Use %qE for identifiers in
260         diagnostics.
261
262 2009-05-04  Richard Guenther  <rguenther@suse.de>
263
264         PR middle-end/40015
265         * builtins.c (fold_builtin_memory_op): Do not decay to element
266         type if the size matches the whole array.
267
268 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
269
270         * expmed.c (synth_mult): When trying out a shift, pass the result
271         of a signed shift.
272
273 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
274
275         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
276         (shiftsub1_cost): New.
277         (init_expmed): Compute shiftsub1_cost.
278         (synth_mult): Optimize multiplications by constants of the form
279         -(2^^m-1) for some constant positive integer m.
280
281 2009-05-03  Richard Guenther  <rguenther@suse.de>
282
283         PR c/39983
284         * c-typeck.c (array_to_pointer_conversion): Do not built
285         ADDR_EXPRs of arrays of pointer-to-element type.
286         * c-gimplify.c (c_gimplify_expr): Revert change fixing
287         up wrong ADDR_EXPRs after-the-fact.
288         * c-common.c (strict_aliasing_warning): Strip pointer
289         conversions for obtaining the original type.
290         * builtins.c (fold_builtin_memset): Handle array types.
291         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
292         and array types
293
294 2009-05-03  Richard Guenther  <rguenther@suse.de>
295
296         PR middle-end/23329
297         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
298         Do not lose casts from array types with unknown extent to array
299         types with known extent.
300         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
301         alias set compatibility.
302
303 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
304
305         * flags.h (extra_warnings): Delete.
306         * toplev.c (process_options): Handle Wuninitialized here.
307         * opts.c (extra_warnings): Delete.
308         (set_Wextra): Delete.
309         (common_handle_option): -Wextra can be handled automatically.
310         * c-opts.c (c_common_handle_option): Delete obsolete code.
311         (c_common_post_options): Simplify comment.
312         * common.opt (W): Add Var.
313         (Wextra): Add Var.
314         (Wuninitialized): Initialize to -1.
315
316 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
317             Richard Guenther  <rguenther@suse.de>
318
319         * expr.c (get_def_for_expr): New function.
320         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
321         SSA rather than trees.
322         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
323         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
324         
325 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
326
327         * c-common.c (reswords): Add _Imaginary.
328         * c-common.c (enum rid): Add RID_IMAGINARY.
329
330 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
331
332         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
333         Patch by Richard Guenther.
334
335 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
336
337         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
338         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
339         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
340         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
341         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
342         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
343         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
344         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
345         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
346         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
347         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
348         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
349         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
350         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
351         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
352         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
353         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
354         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
355
356 2009-05-02  Richard Guenther  <rguenther@suse.de>
357
358         PR tree-optimization/39940
359         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
360         doing so.
361
362 2009-05-02  Richard Guenther  <rguenther@suse.de>
363
364         PR middle-end/40001
365         * tree-ssa.c (execute_update_addresses_taken): Properly check
366         if we can mark a variable DECL_GIMPLE_REG_P.
367         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
368         back to the end of the function.
369         (is_gimple_reg_type): Remove complex type special casing.
370         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
371         if not optimizing.
372
373 2009-05-02  Ben Elliston  <bje@au.ibm.com>
374
375         * doc/collect2.texi (Collect2): Document search path behaviour
376         when configured with --with-ld.
377
378 2009-05-02  Jan Hubicka  <jh@suse.cz>
379
380         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
381         parameter; update callers.
382         (coalesce_cost_edge): EH edges are costier because they needs splitting
383         even if not critical and even more costier when there are multiple
384         EH predecestors.
385
386 2009-05-02  Jan Hubicka  <jh@suse.cz>
387
388         * except.c (remove_eh_handler_and_replace): Handle updating after
389         removing TRY blocks.
390
391 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
392
393         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
394
395 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
396
397         * varasm.c: Do not include c-pragma.h.
398         * attribs.c: Do not incude c-common.h.
399
400 2009-05-01  Michael Matz  <matz@suse.de>
401
402         * calls.c (initialize_argument_information): Handle SSA names like
403         decls with a non MEM_P DECL_RTL.
404
405 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
406
407         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
408         * ipa-utils.c: Likewise.
409         * ipa-type-escape.c: Likewise.
410         * cgraphunit.c Do not include c-common.h.
411         * ipa-pure-const.c: Likewise.
412         * tree-if-conv.c: Likewise.
413         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
414         * ipa-struct-reorg.c: Likewise.
415         * tree-nomudflap.c: Likewise.
416         * tree-ssa-structalias.c: Likewise.
417
418 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
419
420         * store-motion.c: Many cleanups to make this pass a first-class
421         citizen instead of an appendix to gcse load motion.  Add TODO list
422         to make this pass faster/cleaner/better.
423
424         (struct ls_expr): Post gcse.c-split cleanups.
425         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
426         "stores" field to "avail_stores".
427         (pre_ldst_mems): Rename to store_motion_mems.
428         (pre_ldst_table): Rename to store_motion_mems_table.
429         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
430         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
431         (ldst_entry): Rename to st_expr_entry, update users.
432         (free_ldst_entry): Rename to free_st_expr_entry, update users.
433         (free_ldst_mems): Rename to free_store_motion_mems, update users.
434         (enumerate_ldsts): Rename to enumerate_store_motion_mems, update caller.
435         (first_ls_expr): Rename to first_st_expr, update users.
436         (next_ls_expr): Rename to next_st_expr, update users.
437         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
438         fields properly for store motion instead of names inherited from load
439         motion in gcse.c.
440         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
441         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
442         are done with it.
443
444         (ae_kill): Rename to st_kill, update users.
445         (ae_gen): Rename to st_avloc, update users.
446         (transp): Rename to st_transp, update users.
447         (pre_insert_map): Rename to st_insert_map, update users.
448         (pre_delete_map): Rename to st_delete_map, update users.
449         (insert_store, build_store_vectors, free_store_memory,
450         one_store_motion_pass): Update for abovementioned changes.
451
452         (gcse_subst_count, gcse_create_count): Remove.
453         (one_store_motion_pass): New statistics counters "n_stores_deleted"
454         and "n_stores_created", local variables.
455
456         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
457         use for_each_rtx.
458
459         (regvec, compute_store_table_current_insn): Remove.
460         (reg_set_info, reg_clear_last_set): Remove.
461         (compute_store_table): Use DF caches instead of local dataflow
462         solvers.
463
464 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
465
466         * c-objc-common.c (c_tree_printer): Print identifiers with
467         pp_identifier, not pp_string.  Mark "({anonymous})" for
468         translation.
469         * c-pretty-print.c (pp_c_ws_string): New.
470         (pp_c_cv_qualifier, pp_c_type_specifier,
471         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
472         pp_c_storage_class_specifier, pp_c_function_specifier,
473         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
474         pp_c_primary_expression, pp_c_postfix_expression,
475         pp_c_unary_expression, pp_c_shift_expression,
476         pp_c_relational_expression, pp_c_equality_expression,
477         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
478         use pp_string and pp_c_ws_string in place of pp_identifier and
479         pp_c_identifier for non-identifiers.  Mark English strings for
480         translation.
481         * c-pretty-print.h (pp_c_ws_string): Declare.
482
483 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
484             Roland McGrath <roland@redhat.com>
485
486         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id
487         support.
488         (ENABLE_LD_BUILDID): New configuration option.
489         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
490         (LINK_BUILDID_SPEC): New macro.
491         (init_spec): If defined, prepend it between LINK_EH_SPEC and
492         link_spec.
493         * doc/install.texi: Document --enable-linker-build-id option.
494         * configure: Rebuild.
495         * config.in: Rebuild.
496
497 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
498
499         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
500         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
501         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
502         MIPS_GP_SAVE_AREA_SIZE.
503         * config/mips/mips.c (struct mips_frame_info): Update comment
504         before arg_pointer_offset and hard_frame_pointer_offset.
505         (mips_compute_frame_info): Update diagram before function: to
506         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
507         indicate the position of frame_pointer_rtx with -fstack-protector and
508         to show args_size.  Don't allocate cprestore area for leaf functions
509         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
510         cprestore_size.
511         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
512
513 2009-04-30  Michael Matz  <matz@suse.de>
514
515         PR tree-optimization/39955
516         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
517
518 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
519
520         * ira.c (setup_cover_and_important_classes):  Use safe macro
521         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
522         directly.
523         * genpreds.c (write_tm_preds_h):  Output suitable definition of
524         REG_CLASS_FOR_CONSTRAINT.
525
526 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
527
528         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
529         instead of an int.
530         * bitmap.c (bitmap_descriptor): Likewise.
531         * ggc-common.c (loc_descriptor): Likewise.
532         * varray.c (varray_descriptor): Likewise.
533         * vec.c (vec_descriptor): Likewise.
534
535 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
536
537         * Makefile.in (dce.o): Add $(EXCEPT_H).
538         * dce.c: Include except.h and delete redundant vector definitions.
539         (deletable_insn_p): Return false for non-call insns that can throw
540         if DF is running.
541
542 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
543
544         * gcse.c (ae_gen): Remove.
545         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
546         and make non-static function to make it available in store-motion.c.
547         Update call sites with search-and-replace.
548         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
549         extract_mentioned_regs, extract_mentioned_regs_helper,
550         find_moveable_store, compute_store_table, load_kills_store, find_loads,
551         store_killed_in_insn, store_killed_after, store_killed_before,
552         build_store_vectors, insert_insn_start_basic_block, insert-store,
553         remove_reachable_equiv_notes, replace_store_insn, delete_store,
554         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
555         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
556         * store-motion.c: ...new file.  Also copy data structures from gcse.c
557         and clean up to remove parts not used by store motion.
558         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
559         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
560
561 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
562
563         PR target/38571
564         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
565         when optimizing for size.
566
567 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
568
569         * gcse.c (gcse_constant_p): Fix typo in last change.
570
571 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
572
573         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
574
575 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
576
577         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
578
579 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
580
581         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
582         CONST_HIGH_PART result.
583
584 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
585
586         * config/avr/avr.c (initial_elimination_offset): Rename to
587         avr_initial_elimination_offset.
588         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
589         change return type to bool.
590         (avr_can_eliminate): New function.
591         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
592         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
593         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
594         * config/avr/avr-protos.h (initial_elimination_offset) : Rename to
595         avr_initial_elimination_offset.
596         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
597         (avr_initial_elimination_offset): Define.
598
599 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
600             Steven Bosscher  <steven@gcc.gnu.org>
601
602         PR rtl-optimization/39938
603         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
604         * cfgrtl.c: Include insn-attr.h.
605         (rest_of_pass_free_cfg): New function.
606         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
607         * resource.c (init_resource_info): Remove call to df_analyze.
608
609 2009-04-29  Richard Guenther  <rguenther@suse.de>
610
611         PR target/39943
612         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
613         allow conversion to signed integers.
614
615 2009-04-29  Richard Guenther  <rguenther@suse.de>
616
617         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
618         shifts of floating point vectors if the shift amount is
619         a constant multiple of the element size.
620
621 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
622             Michael Matz  <matz@suse.de>
623
624         PR middle-end/39927
625         PR bootstrap/39929
626         * tree-outof-ssa.c (emit_partition_copy): New function.
627         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
628         insert_part_to_rtx_on_edge): Perform the partition base var
629         copy using emit_partition_copy.
630         (insert_value_copy_on_edge): Convert constants to the right mode.
631         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
632         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
633
634 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
635
636         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
637         scan backwards to try to find a constant to initialize it.
638
639         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
640         insn before the loop_end instruction, don't look past labels.
641
642 2009-04-29  Richard Guenther  <rguenther@suse.de>
643
644         PR middle-end/39937
645         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
646         loose type conversions.
647         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
648         stmts only if there are no uses of its definition.
649
650 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
651
652         * config/bfin/bfin.h (splitting_loops): Declare.
653         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
654         Reorder bit definitions to be ascending.
655         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
656         * config/bfin/bfin.c (splitting_loops): New variable.
657         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
658         (struct loop_info): Remove members INIT and LOOP_INIT.
659         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
660         the LSETUP sequence.  Allow LC to be loaded from any register, but also
661         add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
662         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
663         set to 1.
664         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
665         of reload_completed.
666         From Jie Zhang:
667         * config/bfin/bfin.md (movsi_insn): Refine constraints.
668
669 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
670
671         * Makefile.in (PLUGIN_VERSION_H): New.
672         (OBJS-common): Remove plugin-version.o.
673         (plugin.o): Depend on (PLUGIN_VERSION_H).
674         (plugin-version.o): Remove.
675         * configure: Regenerate
676         * configure.ac: Create plugin-version.h.
677         * gcc-plugin.h (plugin_gcc_version): Remove.
678         (plugin_default_version_check): Change signature.
679         * plugin-version.c: Remove.
680         * plugin.c: Include plugin-version.h.
681         (str_plugin_gcc_version_name): Remove.
682         (try_init_one_plugin): Pass gcc version to plugin_init.
683         (plugin_default_version_check): Both gcc and plugin versions are now
684         arguments.
685
686 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
687         
688         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
689         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
690         Remove special case testing for last insn of inner loops. Don't fail if
691         the loop ends with a jump, emit an extra nop instead.
692
693         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
694         DREGS rather than comparing directly.  Remove code that tries to
695         account for latencies.
696
697 2009-04-29  Richard Guenther  <rguenther@suse.de>
698
699         PR tree-optimization/39941
700         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
701         eliminating an indirect call.
702
703 2009-04-29  Richard Guenther  <rguenther@suse.de>
704
705         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
706         parameter.  Allow invariants as base if !require_lvalue.
707         (verify_gimple_assign_single): Adjust.
708
709 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
710
711         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
712         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
713         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3, ssubhi3,
714         ssaddhi3_parts and sssubhi3_parts.
715         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
716         a VEC_SELECT.
717         * config/bfin/bfin.c (bfin_expand_builtin, case BFIN_BUILTIN_CPLX_SQU):
718         Adjust accordingly.
719
720 2009-04-28  Richard Guenther  <rguenther@suse.de>
721
722         * tree-vect-loop.c (get_initial_def_for_induction): Use
723         correct types for pointer increment.
724
725 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
726
727         * toplev.c (print_version): Update GMP version string calculation.
728
729 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
730
731         PR rtl-optimization/39938
732         * resource.c (init_resource_info): Add call to df_analyze.
733
734 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
735
736         * config/alpha/alpha.md (usegp): Cast the result of
737         alpha_find_lo_sum_using_gp to enum attr_usegp.
738         * config/alpha/alpha.c (override_options): Remove end-of-structure
739         marker element from cpu_table.  Use array size of cpu_table to handle
740         -mcpu and -mtune options.
741         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
742
743 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
744
745         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
746         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
747         tune_32 and tune_64.
748         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
749         support on PowerPC.
750         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
751         * config/rs6000/option-defaults.h: ... here.  New file.
752         (OPT_64, OPT_32): Define.
753         (MASK_64BIT): Define to 0 if not already defined.
754         (OPT_ARCH64, OPT_ARCH32): Define.
755         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
756         and tune_64.
757
758 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
759
760         * config/arm/arm.c (arm_override_options): Emit error on using
761         fpa with AAPCS.
762
763 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
764
765         PR rtl-optimization/39914
766         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
767         registers for allocnos created from user-defined variables only
768         when not optimizing.
769
770 2009-04-28  Richard Guenther  <rguenther@suse.de>
771
772         PR middle-end/39937
773         * fold-const.c (fold_binary): Use distribute_real_division only
774         on float types.
775
776 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
777
778         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
779         add hpux-stdint.h to tm_file.
780         (hppa[12]*-*-hpux11*): Ditto.
781         (ia64*-*-hpux*): Ditto.
782         * config/hpux-stdint.h: New.
783         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
784         __STDC_EXT__ for all compiles.
785         * config/pa/pa-hpux.h: Ditto.
786         * config/pa/pa-hpux10.h: Ditto.
787         * config/pa/pa-hpux11.h: Ditto.
788
789 2009-04-28  Catherine Moore  <clm@codesourcery.com>
790
791         * debug.h (set_name): Add comment.
792
793 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
794
795         PR target/39929
796         * config/darwin.c (machopic_gen_offset): Check
797         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
798         * config/arm/arm.c (require_pic_register): Likewise.
799
800 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
801
802         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
803         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
804         m32c_promote_prototypes): Delete.
805
806 2009-04-28  Michael Matz  <matz@suse.de>
807
808         PR middle-end/39922
809         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
810         constants.
811
812 2009-04-28  Richard Guenther  <rguenther@suse.de>
813
814         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
815
816 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
817
818         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
819         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
820         * config/arm/arm-tune.md: Regenerate.
821
822 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
823
824         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
825         block if there are complex incoming edges.
826         (sel_merge_blocks): Remove useless assert.
827         (sel_redirect_edge_and_branch): Check that edge was redirected.
828         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
829         (sel_find_rgns): Delete declaration.
830         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
831         the region when it is not a preheader.
832
833 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
834
835         PR c/39323
836         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
837
838 2009-04-28  Richard Guenther  <rguenther@suse.de>
839
840         * tree.h (SSA_NAME_VALUE): Remove.
841         (struct tree_ssa_name): Remove value_handle member.
842         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
843         array for jump threading.
844         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
845         SSA_NAME_VALUEs.
846         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
847         * tree-flow.h (threadedge_initialize_values): Declare.
848         (threadedge_finalize_values): Likewise.
849         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
850         (SSA_NAME_VALUE): Define.
851         (threadedge_initialize_values): New function.
852         (threadedge_finalize_values): Likewise.
853         * tree-ssa-dom.c (ssa_name_values): New global variable.
854         (SSA_NAME_VALUE): Define.
855         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
856
857 2009-04-28  Ira Rosen  <irar@il.ibm.com>
858
859         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
860         Use REPORT_VECTORIZED_LOCATIONS instead 
861         REPORT_VECTORIZED_LOOPS.
862         * tree-vectorizer.c (vect_verbosity_level): Make static.
863         (vect_loop_location): Rename to vect_location.
864         (vect_set_verbosity_level): Update comment.
865         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
866         and vect_location.
867         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
868         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
869         instead REPORT_UNVECTORIZED_LOOPS.
870         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def and
871         vect_loop_def to vect_external_def and vect_internal_def.
872         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
873         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
874         REPORT_UNVECTORIZED_LOCATIONS.
875         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
876         and vect_used_in_loop and to vect_unused_in_scope and 
877         vect_used_in_scope.
878         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
879         (vect_verbosity_level): Remove declaration.
880         (vect_analyze_operations): Likewise.
881         (vect_analyze_stmt): Declare.
882         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
883         REPORT_UNVECTORIZED_LOCATIONS.
884         (vect_get_loop_niters): Fix indentation.
885         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
886         (vect_analyze_loop_operations): New function.
887         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
888         vect_analyze_operations.
889         (vect_is_simple_reduction): Use new names.
890         (vectorizable_live_operation, vect_transform_loop): Likewise.
891         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value to
892         specify whether the data references can be a part of interleaving chain.
893         (vect_analyze_data_ref_dependence): Use new names.
894         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
895         (vect_create_addr_base_for_vector_ref): Remove redundant code.
896         * tree-vect-patterns.c (widened_name_p): Use new names.
897         (vect_recog_dot_prod_pattern): Likewise.
898         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
899         (process_use, vect_mark_stmts_to_be_vectorized, 
900         vect_model_simple_cost, vect_model_store_cost,
901         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
902         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
903         vectorizable_operation, vectorizable_type_demotion,
904         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
905         vectorizable_condition): Likewise.
906         (vect_analyze_operations): Split into vect_analyze_loop_operations
907         and ...
908         (vect_analyze_stmt): ... new function.
909         (new_stmt_vec_info): Use new names.
910         (vect_is_simple_use): Use new names and fix comment.
911         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
912         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
913
914 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
915
916         PR target/39911
917         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
918         and integer modes for x87 operands.  Do not ICE for unsupported size,
919         generate error instead.  Generate error for unsupported operand types.
920         ['z']: Do not handle HImode memory operands specially.  Warning
921         for floating-point operands.  Fallthru to 'Z' for unsupported operand
922         types.  Do not ICE for unsupported size, generate error instead.
923         (output_387_binary_op): Use %Z to output operands.
924         (output_fp_compare): Ditto.
925         (output_387_reg_move): Ditto.
926
927 2009-04-28  Ben Elliston  <bje@au.ibm.com>
928
929         PR c++/35652
930         Revert:
931
932         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
933
934         * builtins.c (c_strlen): Do not warn here.
935         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
936         * c-common.c (pointer_int_sum): Take an explicit location.
937         Warn about offsets out of bounds.
938         * c-common.h (pointer_int_sum): Adjust declaration.
939
940 2009-04-27  Ian Lance Taylor  <iant@google.com>
941
942         * collect2.c (is_ctor_dtor): Change type of ret field in struct
943         names to symkind.
944         * dce.c (run_fast_df_dce): Change type of old_flags to int.
945         * df-core.c (df_set_flags): Change return type to int.  Change
946         type of old_flags to int.
947         (df_clear_flags): Likewise.
948         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
949         (df_get_conditional_uses): Likewise.
950         * df.h (df_set_flags, df_clear_flags): Update declarations.
951         * dwarf2out.c (struct indirect_string_node): Change type of form
952         field to enum dwarf_form.
953         (AT_string_form): Change return type to enum dwarf_form.
954         * fixed-value.c (fixed_compare): Add cast to enum type.
955         * fwprop.c (update_df): Change 0 to VOIDmode.
956         * gensupport.c: Change 0 to UNKNOWN.
957         * gimple.h (gimple_cond_code): Add cast to enum type.
958         * haifa-sched.c (reemit_notes): Add cast to enum type.
959         * hooks.c (hook_int_void_no_regs): Remove function.
960         * hooks.h (hook_int_void_no_regs): Remove declaration.
961         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
962         * predict.c (combine_predictions_for_insn): Add casts to enum type.
963         * real.c (real_arithmetic): Add cast to enum type.
964         (real_compare): Likewise.
965         * target.h (struct gcc_target): Change return type of
966         branch_target_register_class to enum reg_class.
967         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
968         default_branch_target_register_class.
969         * targhooks.c (default_branch_target_register_class): New function.
970         * targhooks.h (default_branch_target_register_class): Declare.
971         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
972         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
973         cast to int.
974         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
975         ERROR_MARK.
976         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
977         vect_uninitialized_def.  Change 0 to ERROR_MARK.
978         * tree-vect-stmts.c (supportable_widening_operation): Don't
979         initialize icode1 and icode2.
980         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
981         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
982         and to STD_C89.
983         (cmn_err_flag_specs): Change 0 to STD_C89.
984         (cmn_err_char_table): Likewise.
985         * config/arm/arm.c (get_arm_condition_code): Change type of code
986         to enum arm_cond_code.
987         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
988         (IWMMXT_BUILTIN2): Likewise.
989         (neon_builtin_type_bits): Don't define typedef.
990         (neon_builtin_datum): Change type of bits field to int.
991         (arm_expand_neon_args): Add cast to enum type.
992         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
993         TLS_MODEL_NONE.
994         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
995         casts to enum type.
996         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
997         MIPS_FP_COND_f.
998         * config/mips/mips.md (jal_macro): Return enum constant.
999         (single_insn): Likewise.
1000         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
1001         CODE_FOR_nothing.
1002         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1003         casts to enum type.
1004         * config/s390/s390.c (s390_tune_flags): Change type to int.
1005         (s390_arch_flags): Likewise.
1006         (s390_handle_arch_option): Change flags field of struct pta to int.
1007         * config/s390/s390.h (s390_tune_flags): Update declaration.
1008         (s390_arch_flags): Likewise.
1009         * config/sh/sh.c (prepare_move_operands): Compare
1010         tls_symbolic_operand result with enum constant.
1011         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
1012         (sh_expand_prologue): Add cast to enum type.
1013         (sh_expand_epilogue): Likewise.
1014         (tls_symbolic_operand): Change return type to enum tls_model.
1015         (fpscr_set_from_mem): Add cast to enum type.
1016         (legitimize_pic_address): Compare tls_symbolic_operand result with
1017         enum constant.
1018         (sh_target_reg_class): Change return type to enum reg_class.
1019         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
1020         PROCESSOR_xxx.
1021         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
1022         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
1023         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
1024         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
1025         (delayed_branch, tls_call_delay): Likewise.
1026         (eligible_for_sibcall_delay): Likewise.
1027         (eligible_for_return_delay): Likewise. 
1028         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
1029         (spu_expand_builtin_1): Likewise.
1030
1031         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
1032         for all types of conversions.
1033         (output_init_element): Issue -Wc++-compat warning if needed when
1034         initializing a bitfield with enum type.
1035         * c-parser.c (c_parser_expression): Set original_type to
1036         original_type of right hand operand of comman operator.
1037
1038 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1039
1040         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
1041         grammar nits.
1042         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
1043         * doc/cpp.texi (Standard Predefined Macros)
1044         (Implementation-defined behavior): Likewise.
1045         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
1046         * doc/gimple.texi (GIMPLE Exception Handling)
1047         (@code{GIMPLE_ASSIGN}): Likewise.
1048         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
1049         * doc/invoke.texi (Warning Options, Optimize Options)
1050         (AVR Options, Darwin Options): Likewise.
1051         (Optimize Options): Reformulate -fwhole-program description.
1052         * doc/loop.texi (Lambda): Likewise.
1053         * doc/md.texi (Output Template, Define Constraints)
1054         (Standard Names, Insn Splitting): Likewise.
1055         * doc/options.texi (Option properties): Likewise.
1056         * doc/passes.texi (Tree-SSA passes): Likewise.
1057         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
1058         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
1059         (File Names and DBX): Likewise.
1060         * doc/trouble.texi (Incompatibilities): Likewise.
1061
1062 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1063
1064         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
1065         instruction is correct.
1066
1067 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1068
1069         Allow non-constant arguments to conversion intrinsics.
1070         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
1071         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
1072         * spu.c (print_operand): Handle 'v' and 'w'.
1073         (exp2_immediate_p, spu_gen_exp2): Define.
1074         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
1075         spu_convtf_1): Update parameter descriptions.
1076         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
1077         * constraints.md ('v', 'w'): New.
1078         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
1079         Remove.
1080         (i2f, I2F): New define_mode_attr.
1081         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
1082         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
1083         fixuns_truncv4sfv4si2):  Update to use mode attribute.
1084         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
1085         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
1086         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
1087         patterns for combine.
1088
1089 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
1090
1091         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
1092         (cprop, hoist, pre, store_motion): New debug counters.
1093         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
1094         is not an RTL pass anymore.
1095         (pass_profiling): Remove extern decl for pass removed in 2005.
1096         (pass_gcse, pass_jump_bypass): Remove.
1097         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
1098         to 0 for clean state.
1099         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
1100         * cse.c (gate_handle_cse_after_global_opts,
1101         rest_of_handle_cse_after_global_opts): New functions.
1102         (pass_cse_after_global_opts): New pass, does local CSE.
1103         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
1104         (TV_CPROP): New timevar.
1105         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
1106         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
1107         (gcse_main, recompute_all_luids): Remove.
1108         (compute_hash_table_work): Call max_reg_num instead of reading
1109         max_gcse_regno.
1110         (cprop_jump): Don't set run_jump_opt_after_gcse.
1111         (constprop_register): Always allow to alter jumps.
1112         (cprop_insn): Likewise.
1113         (do_local_cprop): Likewise.
1114         (local_cprop_pass): Likewise.  Return non-zero if something changed.
1115         (cprop): Remove function, fold interesting bits into one_cprop_pass.
1116         (find_implicit_sets): Add note about missed optimization opportunity.
1117         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
1118         pass_rtl_cprop execute function.
1119         Don't bother tracking the pass number, each pass gets its own dumpfile
1120         now anyway.
1121         Always allow to alter jumpsand bypass jumps.
1122         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
1123         will just find no suitable set.
1124         (pre_edge_insert): Fix dumping, this function is for PRE only.
1125         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
1126         pass_rtl_pre execute function.
1127         (hoist_code): Return non-zero if something changed.  Keep track of
1128         substitutions and insertions for statistics gathering similar to PRE.
1129         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
1130         called from the pass_rtl_hoist execute function.  Show pass statistics.
1131         (compute_store_table): Use max_reg_num directly instead of using the
1132         formerly global max_gcse_regno.
1133         (build_store_vectors): Likewise.
1134         (replace_store_insn): Fix dumping.
1135         (store_motion): Rename to ...
1136         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
1137         pass, called from the pass_rtl_store_motion execute function.  Keep
1138         track of substitutions and insertions for statistics gathering similar
1139         to PRE.
1140         (bypass_jumps): Remove, fold interesting bits into ...
1141         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
1142         from the pass_rtl_cprop execute function.
1143         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
1144         pass_jump_bypass): Remove.
1145         (gate_handle_gcse, rest_of_handle_gcse): Remove.
1146         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
1147         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
1148         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
1149         (gate_rtl_store_motion, execute_rtl_store_motion,
1150         pass_rtl_store_motion): New.
1151         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
1152         make it clear that -fcse-skip-blocks is a no-op for backward compat.
1153         * passes.c (init_optimization_passes): Remove pass_gcse and
1154         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
1155         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
1156         instead of pass_jump_bypass.
1157
1158 2009-04-27  Richard Guenther  <rguenther@suse.de>
1159
1160         PR middle-end/39928
1161         * gimplify.c (gimplify_expr): If we are required to create
1162         a temporary make sure it ends up as register.
1163
1164 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
1165
1166         PR target/39903
1167         * config/i386/i386.c (construct_container): Don't call
1168         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
1169         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
1170
1171 2009-04-27  Michael Matz  <matz@suse.de>
1172
1173         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
1174         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
1175         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
1176         (dump_replaceable_exprs): Take a bitmap.
1177         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
1178         array.
1179         (expand_gimple_basic_block): Likewise.
1180         * tree-ssa-ter.c (struct temp_expr_table_d): Make
1181         replaceable_expressions member a bitmap.
1182         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
1183         (mark_replaceable): Likewise.
1184         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
1185         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
1186
1187 2009-04-27  Richard Guenther  <rguenther@suse.de>
1188
1189         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
1190         (verify_stmts): Dispatch to gimple/type verification code.
1191         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
1192         issue with call argument types.
1193
1194 2009-04-27  Michael Matz  <matz@suse.de>
1195
1196         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
1197         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
1198         to above.
1199
1200 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
1201             Eric Botcazou  <ebotcazou@adacore.com>
1202
1203         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
1204         a label's basic block.
1205         (mark_target_live_regs): Tidy and rework obsolete comments.
1206         Change back DF problem to LIVE.  If a label starts a basic block,
1207         assume that all registers that used to be live then still are.
1208         (init_resource_info): If a label starts a basic block, set its
1209         BLOCK_FOR_INSN accordingly.
1210         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
1211
1212 2009-04-27  Richard Guenther  <rguenther@suse.de>
1213
1214         * tree-flow-inline.h (function_ann): Remove.
1215         (get_function_ann): Likewise.
1216         * tree-dfa.c (create_function_ann): Remove.
1217         * tree-flow.h (struct static_var_ann_d): Remove.
1218         (struct function_ann_d): Likewise.
1219         (union tree_ann_d): Remove fdecl member.
1220         (function_ann_t): Remove.
1221         (function_ann, get_function_ann, create_function_ann): Remove
1222         declarations.
1223
1224 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
1225
1226         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
1227
1228 2009-04-27  Jan Hubicka  <jh@suse.cz>
1229
1230         * ipa-pure-const.c (struct funct_state_d): New fields
1231         state_previously_known, looping_previously_known; remove
1232         state_set_in_source.
1233         (analyze_function): Use new fields.
1234         (propagate): Avoid assumption that state_set_in_source imply
1235         nonlooping.
1236
1237         * tree-ssa-loop-niter.c (finite_loop_p): New function.
1238         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
1239         * cfgloop.h (finite_loop_p): Declare.
1240
1241 2009-04-26  Michael Matz  <matz@suse.de>
1242
1243         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
1244
1245 2009-04-26  Michael Matz  <matz@suse.de>
1246
1247         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
1248         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
1249         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
1250         pass_mark_used_blocks): Remove.
1251         * tree-optimize.c (pass_free_datastructures,
1252         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
1253         * passes.c (init_optimization_passes): Don't call
1254         pass_mark_used_blocks, remove dead code.
1255
1256 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
1257
1258         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
1259         * tree-ssa-live.h (register_ssa_partition): Likewise.
1260
1261 2009-04-26  Michael Matz  <matz@suse.de>
1262
1263         Expand from SSA.
1264         * builtins.c (fold_builtin_next_arg): Handle SSA names.
1265         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
1266         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
1267         SSA names. 
1268         (compare_pairs): Swap cost comparison.
1269         (coalesce_ssa_name): Don't use change_partition_var.
1270         * tree-nrv.c (struct nrv_data): Add modified member.
1271         (finalize_nrv_r): Set it.
1272         (tree_nrv): Use it to update statements.
1273         (pass_nrv): Require PROP_ssa.
1274         * tree-mudflap.c (mf_decl_cache_locals,
1275         mf_build_check_statement_for): Use make_rename_temp.
1276         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
1277         * alias.c (find_base_decl): Handle SSA names.
1278         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
1279         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
1280         * rtl.h (set_reg_attrs_for_parm): Declare.
1281         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
1282         to "optimized", remove unused locals at finish.
1283         (execute_free_datastructures): Make global, call
1284         delete_tree_cfg_annotations.
1285         (execute_free_cfg_annotations): Don't call
1286         delete_tree_cfg_annotations.
1287
1288         * ssaexpand.h: New file.
1289         * expr.c (toplevel): Include ssaexpand.h.
1290         (expand_assignment): Handle SSA names the same as register variables.
1291         (expand_expr_real_1): Expand SSA names.
1292         * cfgexpand.c (toplevel): Include ssaexpand.h.
1293         (SA): New global variable.
1294         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
1295         (SSAVAR): New macro.
1296         (set_rtl): New helper function.
1297         (add_stack_var): Deal with SSA names, use set_rtl.
1298         (expand_one_stack_var_at): Likewise.
1299         (expand_one_stack_var): Deal with SSA names.
1300         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
1301         before unique numbers.
1302         (expand_stack_vars): Use set_rtl.
1303         (expand_one_var): Accept SSA names, add asserts for them, feed them
1304         to above subroutines.
1305         (expand_used_vars): Expand all partitions (without default defs),
1306         then only the local decls (ignoring those expanded already).
1307         (expand_gimple_cond): Remove edges when jumpif() expands an
1308         unconditional jump.
1309         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
1310         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
1311         SSA name.
1312         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
1313         members of SA; deal with PARM_DECL partitions here; expand
1314         all PHI nodes, free tree datastructures and SA.  Commit instructions
1315         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
1316         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
1317         info and statements at start, collect garbage at finish.
1318         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
1319         (VAR_ANN_PARTITION) Remove.
1320         (change_partition_var): Don't declare.
1321         (partition_to_var): Always return SSA names.
1322         (var_to_partition): Only accept SSA names.
1323         (register_ssa_partition): Only check argument.
1324         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
1325         member.
1326         (delete_var_map): Don't free it.
1327         (var_union): Only accept SSA names, simplify.
1328         (partition_view_init): Mark only useful SSA names as used.
1329         (partition_view_fini): Only deal with SSA names.
1330         (change_partition_var): Remove.
1331         (dump_var_map): Use ssa_name instead of partition_to_var member.
1332         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
1333         basic blocks.
1334         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
1335         (struct _elim_graph): New member const_dests; nodes member vector of
1336         ints.
1337         (set_location_for_edge): New static helper.
1338         (create_temp): Remove.
1339         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
1340         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
1341         (new_elim_graph): Allocate const_dests member.
1342         (clean_elim_graph): Truncate const_dests member.
1343         (delete_elim_graph): Free const_dests member.
1344         (elim_graph_size): Adapt to new type of nodes member.
1345         (elim_graph_add_node): Likewise.
1346         (eliminate_name): Likewise.
1347         (eliminate_build): Don't take basic block argument, deal only with
1348         partition numbers, not variables.
1349         (get_temp_reg): New static helper.
1350         (elim_create): Use it, deal with RTL temporaries instead of trees.
1351         (eliminate_phi): Adjust all calls to new signature.
1352         (assign_vars, replace_use_variable, replace_def_variable): Remove.
1353         (rewrite_trees): Only do checking.
1354         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
1355         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
1356         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
1357         contains_tree_r, MAX_STMTS_IN_LATCH,
1358         process_single_block_loop_latch, analyze_edges_for_bb,
1359         perform_edge_inserts): Remove.
1360         (expand_phi_nodes): New global function.
1361         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
1362         functions, initialize new parameter, remember partitions having a
1363         default def.
1364         (finish_out_of_ssa): New global function.
1365         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
1366         don't reset in_ssa_p here, don't disable TER when mudflap.
1367         (pass_del_ssa): Remove.
1368         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
1369         partition members.
1370         (execute_free_datastructures): Declare.
1371         * Makefile.in (SSAEXPAND_H): New variable.
1372         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
1373         * basic-block.h (commit_one_edge_insertion): Declare.
1374         * passes.c (init_optimization_passes): Move pass_nrv and
1375         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
1376         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
1377         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
1378         (redirect_branch_edge): Deal with super block when expanding, split
1379         out jump patching itself into ...
1380         (patch_jump_insn): ... here, new static helper.
1381
1382 2009-04-26  Michael Matz  <matz@suse.de>
1383
1384         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
1385         beyond num_ssa_names.
1386         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
1387         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
1388
1389 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1390
1391         PR inline-asm/39543
1392         * fwprop.c (forward_propagate_asm): New function.
1393         (forward_propagate_and_simplify): Propagate also into __asm, if it
1394         doesn't increase the number of referenced registers.
1395
1396         PR c/39889
1397         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
1398
1399 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1400
1401         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
1402         note_nonlocal_vla_type for nonlocal VLAs.
1403         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
1404         contains_remapped_vars, remap_vla_decls): New functions.
1405         (convert_nonlocal_reference_stmt): If not optimizing, call
1406         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
1407         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
1408         if it wasn't found in var_map.
1409         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
1410         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
1411         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
1412         declare_vars.
1413         * gimplify.c (nonlocal_vlas): New variable.
1414         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
1415         referenced VLAs.
1416         (gimplify_body): Create and destroy nonlocal_vlas.
1417
1418         * dwarf2out.c (loc_descr_plus_const): New function.
1419         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
1420         mem_loc_descriptor, loc_descriptor_from_tree_1,
1421         descr_info_loc, gen_variable_die): Use it.
1422
1423         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
1424         !TREE_STATIC VAR_DECLs.
1425         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
1426         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
1427         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
1428         DECL_BY_REFERENCE is valid.
1429         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
1430         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
1431         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
1432         Copy DECL_BY_REFERENCE.
1433         (struct nesting_copy_body_data): New type.
1434         (nesting_copy_decl): New function.
1435         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
1436         if they have variable length.
1437
1438 2009-04-26  Michael Matz  <matz@suse.de>
1439
1440         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
1441         mark new temporaries for renaming.
1442
1443 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
1444
1445         PR c/39581
1446         * c-decl.c (global_bindings_p): Return negative value.
1447         (c_variable_size): New.  Based on variable_size from
1448         stor-layout.c.
1449         (grokdeclarator): Call c_variable_size not variable_size.
1450
1451 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
1452
1453         * config/i386/i386.c (print_operand) ['z']: Fix typo.
1454
1455 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
1456
1457         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
1458         Redefine it to just use mingw/include.
1459         (ASM_SPEC): Rules for -m32 and -m64.
1460         (LINK_SPEC): Use Likewise.
1461         (SPEC_32): New define.
1462         (SPEC_64): Likewise.
1463         (SUB_LINK_SPEC): Likewise.
1464         (MULTILIB_DEFAULTS): New define.
1465         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
1466         Add multilib options.
1467         (MULTILIB_DIRNAMES): Likewise.
1468         (MULTILIB_OSDIRNAMES): Likewise.
1469         (LIBGCC): Likewise.
1470         (INSTALL_LIBGCC): Likewise.
1471
1472 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
1473
1474         PR c/39556
1475         * c-tree.h (enum c_inline_static_type): New.
1476         (record_inline_static): Declare.
1477         * c-decl.c (struct c_inline_static, c_inline_statics,
1478         record_inline_static, check_inline_statics): New.
1479         (pop_file_scope): Call check_inline_statics.
1480         (start_decl): Call record_inline_static instead of pedwarning
1481         directly for static in inline function.
1482         * c-typeck.c (build_external_ref): Call record_inline_static
1483         instead of pedwarning directly for static referenced in inline
1484         function.
1485
1486 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
1487
1488         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
1489         not new but only being rescanned.
1490         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
1491         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
1492         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
1493         record_set_info, compute_set, grealloc): Remove.
1494         (recompute_all_luids): New function.
1495         (gcse_main): Don't compute sets, and don't do related memory
1496         allocations/free-ing.  If something changed before the end of the
1497         pass, update LUIDs using recompute_all_luids.
1498         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
1499         (free_gcse_mem): Don't free it either.
1500         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
1501         Use the df insn LUIDs.
1502         (load_killed_in_block): Likewise.
1503         (compute_hash_table_work): Don't compute reg_set_in_block.
1504         (compute_transp): Use DF_REG_DEF_CHAINs.
1505         (local_cprop_pass): Don't use compute_sets and related functions.
1506         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
1507         Use get_max_uid() instead of max_cuid.
1508         (insert_insn_end_basic_block, pre_insert_copy_insn,
1509         update_ld_motion_stores): Don't try to
1510         keep reg_set tables up to date.
1511         (pre_insert_copies): Use df insn LUIDs.
1512         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
1513         (reg_set_info): Don't use extra bitmap argument.
1514         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
1515         information to compute regs_set_in_block.
1516         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
1517         (bypass_jumps): Don't use compute_sets and friends.
1518
1519 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1520
1521         PR testsuite/39710
1522         * opts.c (undocumented_msg): Do not leave blank even with
1523         ENABLE_CHECKING.
1524
1525 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1526
1527         * c-decl.c (build_enumerator): Allow values folding to integer
1528         constants but not integer constant expressions with a pedwarn if
1529         pedantic.
1530
1531 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1532
1533         PR c/39582
1534         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
1535         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
1536         type is an integer constant.
1537
1538 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
1539
1540         PR target/39897
1541         * config/i386/i386.c (print_operand) ['z']: Revert handling of
1542         HImode operands.
1543
1544 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1545
1546         PR c/39564
1547         * c-decl.c (grokdeclarator): Diagnose declarations of functions
1548         with variably modified return type and no storage class
1549         specifiers, except for the case of nested functions.  Distinguish
1550         extern declarations of functions with variably modified return
1551         types from those of objects with variably modified types.
1552
1553 2009-04-25  Jan Hubicka  <jh@suse.cz>
1554
1555         * tree.c (list_equal_p): New function.
1556         * tree.h (list_equal_p): Declare.
1557         * coretypes.h (edge_def, edge, const_edge, basic_block_def
1558         basic_block_def, basic_block, const_basic_block): New.
1559         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
1560         (redirect_eh_edge): New function.
1561         (make_eh_edge_update_phi): EH edges are not abnormal.
1562         * except.c: Include tree-flow.h.
1563         (list_match): New function.
1564         (eh_region_replaceable_by_p): New function.
1565         (replace_region): New function.
1566         (hash_type_list): New function.
1567         (hash_eh_region): New function.
1568         (eh_regions_equal_p): New function.
1569         (merge_peers): New function.
1570         (remove_unreachable_regions): Verify EH tree when checking;
1571         merge peers.
1572         (copy_eh_region_1): New function.
1573         (copy_eh_region): New function.
1574         (push_reachable_handler): New function.
1575         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
1576         regions without label but with live RESX.
1577         * except.h (redirect_eh_edge_to_label): New.
1578         * tree-flow.h (redirect_eh_edge): New.
1579         * coretypes.h (edge_def, edge, const_edge, basic_block_def
1580         basic_block_def, basic_block, const_basic_block): Remove.
1581         * Makefile.in (except.o): Add dependency on tree-flow.h
1582         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
1583         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
1584         Remove.
1585
1586 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
1587
1588         PR bootstrap/39645
1589         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
1590         on the destination of memcpy.
1591
1592 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
1593
1594         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
1595         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
1596         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
1597
1598 2009-04-25  Jan Hubicka  <jh@suse.cz>
1599
1600         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
1601         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
1602         to be reached by different label than left.
1603         (update_eh_edges): Update comment; remove edge_to_remove if possible
1604         and return true if suceeded.
1605         (cleanup_empty_eh): Accept sharing map; handle shared regions.
1606         (cleanup_eh): Compute sharing map.
1607         * except.c (remove_eh_handler_and_replace): Add argument if we should
1608         update regions.
1609         (remove_unreachable_regions): Update for label sharing.
1610         (label_to_region_map): Likewise.
1611         (get_next_region_sharing_label): New function.
1612         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
1613         prev_try pointers.
1614         (remove_eh_handler): Update.
1615         (remove_eh_region_and_replace_by_outer_of): New function.
1616         * except.h (struct eh_region): Add next_region_sharing_label.
1617         (remove_eh_region_and_replace_by_outer_of,
1618         get_next_region_sharing_label): Declare.
1619         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
1620
1621 2009-04-25  Jan Hubicka  <jh@suse.cz>
1622
1623         * tree-cfg.c (split_critical_edges): Split also edges where we can't
1624         insert code even if they are not critical.
1625
1626 2009-04-25  Jan Hubicka  <jh@suse.cz>
1627
1628         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1629         (gimple_can_remove_branch_p): EH edges won't remove branch by
1630         redirection.
1631         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
1632         updating of non-abnormal EH edges.
1633         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1634         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
1635         (split_critical_edges): Split also edges where emitting code on them
1636         will lead to splitting later.
1637
1638 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
1639             H.J. Lu  <hongjiu.lu@intel.com>
1640
1641         PR target/39590
1642         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
1643         the configured assembler supports fildq and fistpq mnemonics.
1644         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
1645         * configure: Regenerated.
1646         * config.in: Ditto.
1647
1648         * config/i386/i386.c (print_operand): Handle 'Z'.
1649         ['z']: Remove handling of special fild/fist suffixes.
1650         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
1651         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
1652         suffix of fild insn.
1653         (*floatsi<mode>2_vector_mixed): Ditto.
1654         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
1655         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
1656         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
1657         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
1658         * config/i386/gas.h (GAS_MNEMONICS): Remove.
1659
1660 2009-04-25  Ben Elliston  <bje@au.ibm.com>
1661  
1662         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
1663         the source of a set operation.
1664
1665 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
1666
1667         * target.h (struct gcc_target): Add case_values_threshold field.
1668         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
1669         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
1670         * targhooks.c (default_case_values_threshold): New function.
1671         * targhooks.h (default_case_values_threshold): Declare function.
1672         * stmt.c (expand_case): Use case_values_threshold target hook.
1673         * expr.h (case_values_threshold): Remove declartation.
1674         * expr.c (case_values_threshold): Remove function.
1675         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
1676
1677         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
1678         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1679         (avr_case_values_threshold): Declare as static.
1680         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
1681
1682         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
1683         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1684         (mn10300_case_values_threshold): New function.
1685
1686 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1687
1688         * ira.c (setup_cover_and_important_classes): Add enum cast.
1689
1690 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
1691
1692         * genpreds.c (write_enum_constraint_num): Output definition of
1693         CONSTRAINT_NUM_DEFINED_P macro.
1694         * ira.c (setup_cover_and_important_classes): Use
1695         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
1696         
1697 2009-04-24  DJ Delorie  <dj@redhat.com>
1698
1699         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
1700         __SH2A_SINGLE_ONLY__ also.
1701
1702 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
1703
1704         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
1705         (movdf_internal): Ditto.
1706         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
1707         SFmode and DFmode constants.
1708         (ia64_print_operand): Add 'G' format for printing
1709         floating point constants.
1710
1711 2009-04-24  Richard Guenther  <rguenther@suse.de>
1712
1713         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
1714         from unsigned additions.
1715
1716 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
1717
1718         * c-typeck.c (set_init_index): Allow array designators that are
1719         not integer constant expressions with a pedwarn if pedantic.
1720
1721 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1722
1723         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
1724         zero if no overlap in nonzero bits between the operands.
1725
1726 2009-04-24  Ian Lance Taylor  <iant@google.com>
1727
1728         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
1729         (record_dead_and_set_regs): Likewise.
1730         * df.h (struct df_mw_hardreg): Change flags field to int.
1731         (struct df_base_ref): Likewise.
1732         (struct df): Change changeable_flags field to int.
1733         * df-scan.c (df_defs_record): Change clobber_flags to int.
1734         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
1735         constants rather than #define macros.
1736         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
1737         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
1738         (enum dwarf_calling_convention): Likewise.
1739         (enum dwarf_line_number_x_ops): Likewise.
1740         (enum dwarf_call_frame_info): Likewise.
1741         (enum dwarf_source_language): Likewise.
1742         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
1743         (add_calling_convention_attribute): Likewise.
1744         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
1745         (combine_comparisons): Change compcode to int.  Add cast to enum type.
1746         * genrecog.c (maybe_both_true_2): Change c to int.
1747         (write_switch): Likewise.  Add cast to enum type.
1748         * gimplify.c (gimplify_omp_for): Handle return values from
1749         gimplify_expr using MIN rather than bitwise or.
1750         (gimplify_expr): Add cast to enum type.
1751         * ipa-prop.c (update_jump_functions_after_inlining): Change
1752         IPA_BOTTOM to IPA_JF_UNKNOWN.
1753         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
1754         Add casts to enum type.
1755         (setup_cover_and_important_classes): Change cl to int.  Add casts
1756         to enum type.
1757         (setup_class_translate): Change cl and mode to int.
1758         (ira_init_once): Change mode to int.
1759         (free_register_move_costs): Likewise.
1760         (setup_prohibited_mode_move_regs): Add casts to enum type.
1761         * langhooks.c (add_builtin_function_common): Rework assertion that
1762         value fits bitfield.
1763         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
1764         * omega.c (omega_do_elimination): Avoid math on enum types.
1765         * optabs.c (expand_vec_shift_expr): Remove casts to int.
1766         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
1767         int local to handle integral_argment value.
1768         * regmove.c (try_auto_increment): Change PUT_MODE to
1769         PUT_REG_NOTE_KIND.
1770         * reload.c (push_secondary_reload): Add casts to enum type.
1771         (secondary_reload_class, find_valid_class): Likewise.
1772         * reload1.c (emit_input_reload_insns): Likewise.
1773         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
1774         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
1775         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
1776         constant.
1777         * tree.c (build_common_builtin_nodes): Add casts to enum type.
1778         * tree-complex.c (complex_lattice_t): Typedef to int rather than
1779         enum type.
1780         (expand_complex_libcall): Add casts to enum type.
1781         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
1782         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
1783         with ERROR_MARK, not NUM_TREE_CODES.
1784         (vect_create_epilog_for_reduction): Likewise.
1785         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
1786         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
1787         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
1788         enum machine_mode.
1789         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
1790         vect_unused_in_loop.  Change 0 to loop_vect.
1791         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
1792         * var-tracking.c (get_init_value): Change return type to enum
1793         var_init_status.
1794         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
1795         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
1796         arm_fp_model.
1797         (arm_override_options): Add casts to enum type.
1798         (arm_emit_tls_decoration): Likewise.
1799         * config/i386/i386.c (ix86_function_specific_restore): Add casts
1800         to enum type.
1801         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
1802         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
1803         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
1804         enum type.
1805         * config/s390/s390.c (code_for_builtin_64): Change to array of
1806         enum insn_code.
1807         (code_for_builtin_31): Likewise.
1808         (s390_expand_builtin): Change code_for_builtin to enum insn_code
1809         const *.
1810         * config/sparc/sparc.c (sparc_override_options): Change value
1811         field in struct code_model to enum cmodel.  In initializer change
1812         0 to NULL and add cast to enum type.
1813
1814         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
1815         Change all callers.  Issue a -Wc++-compat warning using
1816         lhs_origtype if necessary.
1817         (convert_for_assignment): Issue -Wc++-compat warnings about
1818         invalid conversions to enum type on assignment.
1819         * c-common.h (build_modify_expr): Update declaration.
1820
1821 2009-04-24  Nick Clifton  <nickc@redhat.com>
1822
1823         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
1824         (function_arg_advance): Likewise.
1825         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
1826         5th alternative.
1827
1828 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1829
1830         * config/s390/constraints.md ('I', 'J'): Fix condition.
1831
1832 2009-04-24  Diego Novillo  <dnovillo@google.com>
1833
1834         * gengtype-parse.c (parse_error): Add newline after message.
1835
1836 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1837
1838         * config/i386/sse.md (avxmodesuffixs): Removed.
1839         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
1840         (*avx_pinsr<ssevecsize>): This.
1841
1842 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1843
1844         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
1845         follow chains of regs with a single definition, and allow expressions
1846         that are function_invariant_p.
1847         (simple_rhs_p): Allow expressions that are function_invariant_p.
1848
1849 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
1850
1851         PR middle-end/39867
1852         * fold-const.c (fold_cond_expr_with_comparison): When folding
1853         > and >= to MAX, make sure the MAX uses the same type as the
1854         comparison's operands.
1855
1856 2009-04-24  Nick Clifton  <nickc@redhat.com>
1857
1858         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
1859         addressing for DImode accesses.
1860         (frv_print_operand_address): Handle PLUS case.
1861         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
1862
1863 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
1864
1865         PR rtl-optimization/39794
1866         * alias.c (canon_true_dependence): Add x_addr argument.
1867         * rtl.h (canon_true_dependence): Adjust prototype.
1868         * cse.c (check_dependence): Adjust canon_true_dependence callers.
1869         * cselib.c (cselib_invalidate_mem): Likewise.
1870         * gcse.c (compute_transp): Likewise.
1871         * dse.c (scan_reads_nospill): Likewise.
1872         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
1873         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
1874         canon_base_addr of the group, plus optional offset.
1875         (struct group_info): Rename canon_base_mem to
1876         canon_base_addr.
1877         (get_group_info): Set canon_base_addr to canon_rtx of base, not
1878         canon_rtx of base_mem.
1879
1880 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
1881
1882         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
1883         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
1884
1885 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1886
1887         * config/spu/spu-builtins.h: Delete file.
1888
1889         * config/spu/spu.h (enum spu_builtin_type): Move here from
1890         spu-builtins.h.
1891         (struct spu_builtin_description): Likewise.  Add GTY marker.
1892         Do not use enum spu_function_code or enum insn_code.
1893         (spu_builtins): Add extern declaration.
1894
1895         * config/spu/spu.c: Do not include "spu-builtins.h".
1896         (enum spu_function_code, enum spu_builtin_type_index,
1897         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
1898         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
1899         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
1900         unsigned_V2DI_type_node): Move here from spu-builtins.h.
1901         (spu_builtin_types): Make static.  Add GTY marker.
1902         (spu_builtins): Add extern declaration with GTY marker.
1903         Include "gt-spu.h".
1904
1905         * config/spu/spu-c.c: Do not include "spu-builtins.h".
1906         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
1907         Check programmatically whether all parameters are scalar.
1908
1909         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
1910
1911 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1912
1913         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
1914         assignment from the constructor either if the target is volatile.
1915
1916 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
1917
1918         * config/arm/arm.md (insv): Do not share operands[0].
1919
1920 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
1921
1922         * config/vxlib-tls.c (active_tls_threads): Delete.
1923         (delete_hook_installed): New.
1924         (tls_delete_hook): Don't delete the delete hook.
1925         (tls_destructor): Delete it here.
1926         (__gthread_set_specific): Adjust installing the delete hook.
1927         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
1928         __gthread_leave_tsd_dtor_context.
1929
1930 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
1931
1932         * c-format.c (gcc_tdiag_char_table): Add support for %E.
1933
1934 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
1935
1936         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
1937         enum type.
1938         (alpha_rtx_costs): Ditto.
1939         (emit_unlikely_jump): Use add_reg_note.
1940         (emit_frame_store_1): Ditto.
1941         (alpha_expand_prologue): Ditto.
1942         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
1943         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
1944
1945 2009-04-23  Nick Clifton  <nickc@redhat.com>
1946
1947         * config/v850/v850.md (epilogue): Remove suppressed code.
1948         (return): Rename to return_simple and remove test of frame size.
1949         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
1950         to gen_return_simple.
1951
1952 2009-04-22  Jing Yu  <jingyu@google.com>
1953
1954         PR testsuite/39781
1955         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
1956
1957 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1958
1959         PR C/31499
1960         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
1961         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
1962         value is a VECTOR_CST, the element type is the element type of the
1963         vector.
1964
1965 2009-04-22  DJ Delorie  <dj@redhat.com>
1966
1967         * config/m32c/m32c.h: Update GTY annotations to new syntax.
1968
1969 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
1970
1971         * alias.c (find_base_term): Move around LO_SUM case, so that
1972         CONST falls through into PLUS/MINUS handling.
1973
1974         PR c/39855
1975         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
1976         into 0, use omit_one_operand.
1977
1978 2009-04-23  Ben Elliston  <bje@au.ibm.com>
1979
1980         * config/rs6000/linux-unwind.h (get_regs): Remove type
1981         puns. Change the type of `pc' to an array of unsigned ints and
1982         update all users.  Constify frame24.
1983
1984 2009-04-22  DJ Delorie  <dj@redhat.com>
1985
1986         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
1987         declarations before code.
1988         (current_function_special_page_vector): Likewise.
1989         (m32c_expand_insv): Silence a warning.
1990
1991 2009-04-21  Taras Glek  <tglek@mozilla.com>
1992
1993         * alias.c: Update GTY annotations to new syntax.
1994         * basic-block.h: Likewise.
1995         * bitmap.h: Likewise.
1996         * c-common.h: Likewise.
1997         * c-decl.c: Likewise.
1998         * c-parser.c: Likewise.
1999         * c-pragma.c: Likewise.
2000         * c-tree.h: Likewise.
2001         * cfgloop.h: Likewise.
2002         * cgraph.h: Likewise.
2003         * config/alpha/alpha.c: Likewise.
2004         * config/arm/arm.h: Likewise.
2005         * config/avr/avr.h: Likewise.
2006         * config/bfin/bfin.c: Likewise.
2007         * config/cris/cris.c: Likewise.
2008         * config/darwin.c: Likewise.
2009         * config/frv/frv.c: Likewise.
2010         * config/i386/i386.c: Likewise.
2011         * config/i386/i386.h: Likewise.
2012         * config/i386/winnt.c: Likewise.
2013         * config/ia64/ia64.h: Likewise.
2014         * config/iq2000/iq2000.c: Likewise.
2015         * config/mips/mips.c: Likewise.
2016         * config/mmix/mmix.h: Likewise.
2017         * config/pa/pa.c: Likewise.
2018         * config/pa/pa.h: Likewise.
2019         * config/rs6000/rs6000.c: Likewise.
2020         * config/s390/s390.c: Likewise.
2021         * config/sparc/sparc.c: Likewise.
2022         * config/xtensa/xtensa.c: Likewise.
2023         * cselib.h: Likewise.
2024         * dbxout.c: Likewise.
2025         * dwarf2out.c: Likewise.
2026         * except.c: Likewise.
2027         * except.h: Likewise.
2028         * fixed-value.h: Likewise.
2029         * function.c: Likewise.
2030         * function.h: Likewise.
2031         * gimple.h: Likewise.
2032         * integrate.c: Likewise.
2033         * optabs.c: Likewise.
2034         * output.h: Likewise.
2035         * real.h: Likewise.
2036         * rtl.h: Likewise.
2037         * stringpool.c: Likewise.
2038         * tree-data-ref.c: Likewise.
2039         * tree-flow.h: Likewise.
2040         * tree-scalar-evolution.c: Likewise.
2041         * tree-ssa-address.c: Likewise.
2042         * tree-ssa-alias.h: Likewise.
2043         * tree-ssa-operands.h: Likewise.
2044         * tree.c: Likewise.
2045         * tree.h: Likewise.
2046         * varasm.c: Likewise.
2047         * varray.h: Likewise.
2048         * vec.h: Likewise.
2049         * coretypes.h: Do not define GTY macro if it is already defined.
2050         * doc/gty.texi: Update GTY documentation to new syntax.
2051         * gengtype-lex.l: Enforce attribute-like syntax for GTY
2052         annotations on structs.
2053         * gengtype-parse.c: Likewise.
2054
2055 2009-04-22  Mark Heffernan  <meheff@google.com>
2056
2057         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
2058
2059 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
2060
2061         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
2062         where appropriate.
2063
2064 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
2065
2066         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
2067         the same as a PLUS without a shift.  Increase the cost of a
2068         CONST_INT in MULT.
2069
2070 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2071
2072         * Makefile.in: Update dependencies.
2073         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
2074         * errors.h: Remove bogus comment about compatibility.
2075         (warning): Update declaration.
2076         * genautomata.c: Update all calls to warning.
2077         * gimple.c: Do not include errors.h. Include toplev.h.
2078         * tree-ssa-structalias.c: Do not include errors.h.
2079         * omega.c: Likewise.
2080         * tree-ssa-reassoc.c: Likewise.
2081         * config/spu/spu-c.c: Likewise.
2082         * config/spu/t-spu-elf: Update dependencies.
2083
2084 2009-04-22  Richard Guenther  <rguenther@suse.de>
2085
2086         PR tree-optimization/39824
2087         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
2088         make sure the types are compatible.
2089
2090 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2091
2092         PR c++/14875
2093         * c-common.c (c_parse_error): Take a token_flags parameter.
2094         Use token_type for the token type instead.
2095         Pass token_flags to cpp_type2name.
2096         * c-common.h (c_parse_error): Update declaration.
2097         * c-parser.c (c_parser_error): Pass 0 as token flags.
2098
2099 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
2100
2101         PR rtl-optimization/39580
2102         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
2103         
2104 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2105
2106         * function.c (expand_function_end): Do not emit a jump to the "naked"
2107         return label for fall-through returns.
2108         * except.c (sjlj_emit_function_exit): Always place the call to the
2109         unregister function at the location installed by expand_function_end.
2110
2111 2009-04-22  Richard Guenther  <rguenther@suse.de>
2112
2113         PR tree-optimization/39845
2114         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
2115         (gen_inbound_check): Likewise.
2116
2117 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2118
2119         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
2120         padding for PPC.
2121         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
2122         * config/vxlib.c (__gthread_once): Add race guard for PPC.
2123
2124 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2125
2126         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
2127         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
2128         shift counts to avoid out-of-bounds array accesses.
2129
2130 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2131
2132         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
2133         (Pmode): Move above.
2134
2135 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
2136
2137         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
2138         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
2139         GET_CODE macro.  Use IN_RANGE macro where appropriate.
2140         * config/alpha/alpha.h: Ditto.
2141         * config/alpha/alpha.md: Ditto.
2142         * config/alpha/constraints.md: Ditto.
2143         * config/alpha/predicates.md: Ditto.
2144         
2145 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2146
2147         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
2148         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2149         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2150         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2151         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2152         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2153         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2154         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2155         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2156         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2157         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2158         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2159         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2160         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2161         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2162         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2163         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2164         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2165         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2166         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2167         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2168         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2169         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2170         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2171         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2172         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2173         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2174
2175 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2176
2177         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
2178         references from comments.
2179         * cfgbuild.c: (count_basic_blocks): Delete.
2180         (find_basic_blocks_1): Delete.
2181         (find_basic_blocks): Delete.
2182         * except.c (finish_eh_generation): Make static.  Move comment from
2183         except.h here.  Remove find_basic_blocks references from comments.
2184         * except.h (finish_eh_generation): Delete.
2185         * basic-block.h (find_basic_blocks): Delete.
2186         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
2187
2188 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2189
2190         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
2191         (sdbout_parms):  Likewise.
2192
2193 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
2194
2195         * config/sh/sh.c (prepare_cbranch_operands): Use
2196         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
2197         (expand_cbranchdi4): Likewise.
2198         (from_compare): Add cast to enum type.
2199         (expand_cbranchsi4): Use add_reg_note.
2200         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
2201         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
2202         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
2203         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2204         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
2205         instead of CODE_FOR_nothing.
2206         (cbranchdi4): Likewise.  Fix the order of arguments for
2207         gen_rtx_fmt_ee.
2208         (push_fpscr): Use add_reg_note.
2209         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
2210         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
2211         
2212 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
2213
2214         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
2215         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2216         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2217         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
2218         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
2219         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
2220         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
2221         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
2222         config/alpha/x-vms, config/arc/t-arc,
2223         config/arm/README-interworking, config/arm/arm-c.c,
2224         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
2225         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
2226         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
2227         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
2228         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
2229         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
2230         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
2231         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
2232         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
2233         config/cris/t-elfmulti, config/crx/t-crx,
2234         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
2235         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
2236         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
2237         config/h8300/t-h8300, config/i386/athlon.md,
2238         config/i386/darwin-libgcc.10.4.ver,
2239         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
2240         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
2241         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
2242         config/i386/t-linux64, config/i386/t-nwld,
2243         config/i386/t-rtems-i386, config/i386/t-sol2-10,
2244         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
2245         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
2246         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
2247         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
2248         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
2249         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
2250         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
2251         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
2252         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
2253         config/m68k/t-uclinux, config/mcore/t-mcore,
2254         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
2255         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
2256         config/mips/crtn.asm, config/mips/irix-crti.asm,
2257         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
2258         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
2259         config/mips/mips-fixed.md, config/mips/sb1.md,
2260         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
2261         config/mips/t-iris6, config/mips/t-isa3264,
2262         config/mips/t-libgcc-mips16, config/mips/t-linux64,
2263         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
2264         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
2265         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
2266         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
2267         config/mn10300/t-linux, config/mn10300/t-mn10300,
2268         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
2269         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
2270         config/picochip/libgccExtras/clzsi2.asm,
2271         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
2272         config/rs6000/darwin-libgcc.10.4.ver,
2273         config/rs6000/darwin-libgcc.10.5.ver,
2274         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
2275         config/rs6000/t-aix43, config/rs6000/t-aix52,
2276         config/rs6000/t-darwin, config/rs6000/t-fprules,
2277         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
2278         config/rs6000/t-lynx, config/rs6000/t-netbsd,
2279         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
2280         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
2281         config/rs6000/t-rtems, config/rs6000/t-spe,
2282         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
2283         config/score/t-score-elf, config/sh/divcost-analysis,
2284         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
2285         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
2286         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
2287         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
2288         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
2289         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
2290         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
2291         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
2292         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
2293         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
2294         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
2295         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
2296         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
2297         limitx.h, version.c, xcoff.h: Add copyright and license notices.
2298         * config/h8300/genmova.sh: Include copyright and license notices
2299         in generated output.
2300         * config/h8300/mova.md: Regenerate.
2301         * doc/install.texi2html: Include word "Copyright" in copyright
2302         notice and use name "Free Software Foundation, Inc.".
2303         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2304         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2305         ChangeLog-2007, ChangeLog-2008: Correct dates.
2306
2307 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
2308
2309         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
2310         NE_EXPR operations as well.
2311         * c-parser.c (c_parser_condition): Do not set location information on
2312         the condition.
2313         (c_parser_conditional_expression): Likewise.
2314         (c_parser_binary_expression): Set location information on operators.
2315         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
2316         TRUTH_NOT_EXPR has been folded.
2317         * fold-const.c (fold_truth_not_expr): Copy location information from
2318         the incoming expression to the outgoing one.
2319         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
2320         recursive calls on the LHS of the operator but pass that of the
2321         operator to recursive calls on the RHS of the operator.  Set it
2322         on the COND_EXPR.
2323         (shortcut_cond_expr): Set the locus of the operator on the second
2324         COND_EXPR and that of the expression on the first in degenerate cases.
2325         Pass the locus of the expression to calls to shortcut_cond_r.
2326         Set the locus of the 'then' block on the associated jump, if any.
2327         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
2328         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
2329         expression to call to gimplify_boolean_expr.
2330
2331 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
2332
2333         * config.gcc: Add additional configuration for
2334         i686-w64-mingw* and x86_64-w64-mingw* triplet.
2335         * config/i386/mingw-w64.h: New mingw-w64 specific header.
2336         (CPP_SPEC): Redefine for allowing -municode option.
2337         (STARTFILE_SPEC): Likewise.
2338         * config/i386/t-mingw-w64: New.
2339         * config/i386/mingw-w64.opt: New.
2340         (municode): Add new target option.
2341         * doc/invoke.texi (municode): Add documentation for new option.
2342
2343 2009-04-21  Ian Lance Taylor  <iant@google.com>
2344
2345         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2346         Correct test for number of arguments.
2347         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
2348
2349 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
2350
2351         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
2352         argument of emit_library_call.
2353
2354 2009-04-21  Richard Guenther  <rguenther@suse.de>
2355
2356         PR middle-end/39829
2357         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
2358         inside VIEW_CONVERT_EXPRs.
2359
2360 2009-04-21  Martin Jambor  <mjambor@suse.cz>
2361
2362         * tree-switch-conversion.c (build_constructors): Split a long line.
2363         (constructor_contains_same_values_p): New function.
2364         (build_one_array): Create assigns of constants if possible, do not
2365         call mark_sym_for_renaming, call update_stmt.
2366         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
2367         make_rename_temp.  Do not call mark_symbols_for_renaming, call
2368         update_stmt.
2369         (gen_def_assigns): Do not call mark_symbols_for_renaming or
2370         find_new_referenced_vars, call update_stmt.
2371         (gen_inbound_check): Use create_tmp_var and create ssa names manually
2372         instead of calling make_rename_temp.  Do not call
2373         find_new_referenced_vars or mark_symbols_for_renaming, call
2374         update_stmt.
2375
2376 2009-04-21  Richard Guenther  <rguenther@suse.de>
2377
2378         PR tree-optimization/39827
2379         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2380         (tree_ssa_phiprop): Pass the correct array size.
2381
2382 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
2383
2384         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
2385
2386 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2387
2388         PR 16202
2389         * c-typeck.c (lvalue_p): Move declaration ...
2390         * c-common.h (lvalue_p): ... to here.
2391         * c-common.c (candidate_equal_p): New.
2392         (add_tlist): Use it.
2393         (merge_tlist): Use it.
2394         (warn_for_collisions_1): Likewise.
2395         (warning_candidate_p): Accept more candidates.
2396         (verify_tree): A warning candidate can be an expression. Use
2397         candidate_equal_p.
2398
2399 2009-04-21  Ben Elliston  <bje@au.ibm.com>
2400
2401         PR target/5267
2402         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
2403         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
2404         options.  Remove -mcall-solaris documentation.
2405
2406 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2407
2408         PR c++/13358
2409         * doc/invoke.texi (-Wlong-long): Update description.
2410         * c-lex (interpret_integer): Only warn if there was no previous
2411         overflow and -Wlong-long is enabled.
2412         * c-decl.c (declspecs_add_type): Drop redundant flags.
2413         * c.opt (Wlong-long): Init to -1.
2414         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
2415         and front-end warn_long_long. Wlong-long only depends on other
2416         flags if it is uninitialized.
2417         * c-parser.c (disable_extension_diagnostics): warn_long_long is
2418         the same for CPP and FE.
2419         (restore_extension_diagnostics): Likewise.
2420
2421 2009-04-20  Ian Lance Taylor  <iant@google.com>
2422
2423         Fix enum conversions which are invalid in C++:
2424         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
2425         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
2426         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
2427         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
2428         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
2429         (dbxout_parms): Likewise.
2430         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
2431         (df_clear_flags): Likewise.
2432         * df-problems.c (df_rd_bb_local_compute_process_def): Change
2433         top_flag parameter to int.
2434         (df_chain_create_bb_process_use): Likewise.
2435         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
2436         Remove cast.
2437         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
2438         (df_ref_create_structure, df_def_record_1): Likewise.
2439         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
2440         (df_notes_rescan): Change 0 to VOIDmode in function call.
2441         (df_get_call_refs, df_insn_refs_collect): Likewise.
2442         (df_bb_regs_collect): Likewise.
2443         (df_entry_block_defs_collect): Likewise.
2444         (df_exit_block_uses_collect): Likewise.
2445         * df.h: Update declarations.
2446         * double-int.c (double_int_divmod): Add cast to enum type.
2447         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
2448         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
2449         (based_loc_descr): Likewise.
2450         (loc_descriptor_from_tree_1): Change first_op and second_op to
2451         enum dwarf_location_atom.  Add cast to enum type.
2452         * expmed.c (init_expmed): Change 0 to SET in function call.
2453         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
2454         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
2455         (do_store_flag): Likewise.
2456         * fixed-value.h (struct fixed_value): Change mode to enum
2457         machine_mode.
2458         * function.c (assign_parms): Change 0 to VOIDmode in function call.
2459         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
2460         function call.
2461         (insert_insn_decl, insert_decl, insert_state): Likewise.
2462         (automata_list_finish): Likewise.
2463         * genrecog.c (process_define_predicate): Add cast to enum type.
2464         * gensupport.c (init_predicate_table): Add cast to enum type.
2465         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
2466         function call.
2467         (gimple_build_call_1, gimple_build_label): Likewise.
2468         (gimple_build_goto, gimple_build_asm_1): Likewise.
2469         (gimple_build_switch_1, gimple_build_cdt): Likewise.
2470         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
2471         (enum fallback): Rename from enum fallback_t.
2472         (fallback_t): Typedef as int.
2473         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
2474         GSI_SAME_STMT in function call.
2475         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
2476         enum type.
2477         (setup_reg_class_relations): Likewise.
2478         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
2479         (setup_prohibited_class_mode_regs): Add cast to enum type.
2480         (setup_prohibited_mode_move_regs): Likewise.
2481         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
2482         (record_address_regs): Change i to enum reg_class.
2483         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
2484         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
2485         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
2486         (GET_MODE_2XWIDER_MODE): Likewise.
2487         (GET_CLASS_NARROWEST_MODE): Likewise.
2488         * omp-low.c (expand_omp_for): Add cast to enum type.
2489         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
2490         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
2491         * postreload.c (reload_cse_simplify_operands): Change rclass local
2492         to enum reg_class.
2493         * predict.c (combine_predictions_for_insn): Change best_predictor
2494         and predictor to enum br_predictor.
2495         (combine_predictions_for_bb): Likewise.
2496         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
2497         use SET_PREDICT_EXPR_OUTCOME.
2498         * real.c (real_arithmetic): Change icode to code in function call.
2499         * reginfo.c (init_move_cost): Add casts to enum type.
2500         (init_reg_sets_1, init_fake_stack_mems): Likewise.
2501         * regmove.c (regclass_compatible_p): Change class0 and class1 to
2502         enum reg_class.
2503         * reload.c (find_valid_class): Add casts to enum type.
2504         (push_reload): Change 0 to NO_REGS in function call.
2505         (find_reloads): Change this_alternative to array of enum
2506         reg_class.  Remove some now-unnecessary casts.
2507         (make_memloc): Change 0 to VOIDmode in function call.
2508         * reload1.c (reload): Change 0 to VOIDmode in function call.
2509         (eliminate_regs_1, elimination_effects): Likewise.
2510         (eliminate_regs_in_insn): Likewise.
2511         (emit_input_reload_insns): Add cast to enum type.
2512         (delete_output_reload): Change 0 to VOIDmode in function call.
2513         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
2514         to enum type in function call.
2515         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
2516         (SET_PREDICT_EXPR_OUTCOME): Define.
2517         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
2518         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
2519         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
2520         (dump_function): Likewise.
2521         * tree-dump.h: Update declarations.
2522         * tree-pass.h: Update declarations.
2523         * varasm.c (assemble_integer): Change mclass to enum mode_class.
2524         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
2525         enum type.
2526         (arm_rtx_costs_1): Correct parenthesization.
2527         (arm_rtx_costs): Add casts to enum type.
2528         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
2529         (vfp_emit_fstmd): Use add_rg_note.
2530         (emit_multi_reg_push, emit_sfm): Likewise.
2531         (thumb_set_frame_pointer): Likewise.
2532         (arm_expand_prologue): Likewise.
2533         (arm_regno_class): Change return type to enum reg_class.
2534         (thumb1_expand_prologue): Use add_reg_note.
2535         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
2536         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
2537         in function call.
2538         * config/arm/gentune.sh: Add cast to enum type.
2539         * config/arm/arm-tune.md: Rebuild.
2540         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
2541         (ix86_split_fp_branch, predict_jump): Likewise.
2542         (ix86_expand_multi_arg_builtin): Change sub_code from enum
2543         insn_code to enum rtx_code.
2544         (ix86_builtin_vectorized_function): Add cast to enum type.
2545         * config/i386/i386.md (truncdfsf2): Change slot to enum
2546         ix86_stack_slot.
2547         (truncxf<mode>2, isinf<mode>2): Likewise.
2548         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
2549         enum type.
2550         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
2551         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
2552         (insert_bundle_state): Change 1 to INSERT in function call.
2553         (ia64_add_bundle_selector_before): Likewise.
2554         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
2555         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
2556         (restore_stack_nonlocal): Likewise.
2557         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
2558         function call.
2559         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
2560         function call.
2561         (mips_rtx_costs): Likewise.
2562         (mips_override_options): Add casts to enum type.
2563         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
2564         in function call.
2565         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
2566         (store_reg, set_reg_plus_d): Likewise.
2567         (hppa_expand_prologue, hppa_profile_hook): Likewise.
2568         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
2569         cast to enum type.
2570         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
2571         function call.
2572         (emit_unlikely_jump): Use add_reg_note.
2573         (rs6000_emit_allocate_stack): Likewise.
2574         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
2575         (output_toc): Change 1 to INSERT in function call.
2576         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
2577         (rs6000_initialize_trampoline): Likewise.
2578         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
2579         function call.
2580         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
2581         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
2582         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
2583         (save_gprs): Use add_reg_note.
2584         (s390_emit_prologue): Likewise.
2585         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2586         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
2587         (sparc_fold_builtin): Add cast to enum type.
2588         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
2589         enum insn_code.
2590         (spu_expand_prologue): Use add_reg_note.
2591         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
2592
2593 2009-04-20  Ian Lance Taylor  <iant@google.com>
2594
2595         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
2596         (c_parser_postfix_expression_after_primary): Get VEC for list of
2597         arguments.  Get original types of arguments.  Call
2598         build_function_call_vec.
2599         (cached_expr_list_1, cached_expr_list_2): New static variables.
2600         (c_parser_expr_list): Change return type to VEC *.  Add
2601         p_orig_types parameter.  Change all callers.
2602         (c_parser_release_expr): New static function.
2603         (c_parser_vec_to_tree_list): New static function.
2604         * c-typeck.c (build_function_call): Rewrite to build a VEC and
2605         call build_function_call_vec.
2606         (build_function_call_vec): New function, based on old
2607         build_function_call.
2608         (convert_arguments): Remove nargs and argarray parameters.  Change
2609         values to a VEC.  Add origtypes parameter.
2610         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
2611         (convert_for_assignment): Add origtype parameter.  Change all
2612         callers.  If warn_cxx_compat, check for conversion to an enum
2613         type when calling a function.
2614         (store_init_value): Add origtype parameter.  Change all callers.
2615         (digest_init): Likewise.
2616         (struct init_node): Add origtype field.
2617         (add_pending_init): Add origtype parameter.  Change all callers.
2618         (output_init_element): Likewise.
2619         (output_pending_init_elements): Pass origtype from init_node to
2620         output_init_element.
2621         (process_init_element): Pass origtype from c_expr to
2622         output_init_element.
2623         (c_finish_return): Add origtype parameter.  Change all callers.
2624         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
2625         caller.
2626         (sync_resolve_params): Likewise.
2627         (sync_resolve_return): Change params to first_param.  Change caller.
2628         (resolve_overloaded_builtins): Change params to VEC *.  Change
2629         callers.  Save first parameter around call to build_function_call_vec.
2630         * c-decl.c (finish_decl): Add origtype parameter.  Change all
2631         callers.  Call build_function_call_vec rather than
2632         build_function_call for cleanup.
2633         * c-tree.h: Update declarations.
2634         * c-common.h: Update declarations.
2635         * stub-objc.c (objc_rewrite_function_call): Change parameter from
2636         params to first_param.
2637         * target.h (struct gcc_target): Change resolve_overloaded_builtin
2638         params parameter from tree to void *.
2639         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2640         Change arglist parameter to have type void *, and to be a pointer
2641         to a VEC.
2642         * config/rs6000/rs6000-protos.h
2643         (altivec_resolve_overloaded_builtin): Update declaration.
2644         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
2645         fnargs parameter to have type void *, and to be a pointer to a
2646         VEC.  Call build_function_call_vec instead of
2647         build_function_call.
2648         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
2649
2650 2009-04-20  Joey Ye  <joey.ye@intel.com>
2651             Xuepeng Guo  <xuepeng.guo@intel.com>
2652             H.J. Lu  <hongjiu.lu@intel.com>
2653
2654         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
2655
2656         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
2657         (IX86_LEA_PRIORITY): Likewise.
2658         (distance_non_agu_define): New function.
2659         (distance_agu_use): Likewise.
2660         (ix86_lea_for_add_ok): Likewise.
2661         (ix86_dep_by_shift_count): Likewise.
2662
2663         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
2664         should split for LEA.
2665
2666         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
2667         function.
2668         (ix86_dep_by_shift_count): Likewise.
2669
2670 2009-04-20  Richard Guenther  <rguenther@suse.de>
2671
2672         * expr.c (handled_component_p): Move ...
2673         * tree.h (handled_component_p): ... here.
2674         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
2675         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
2676         and REALPART_EXPR to be in one group.
2677
2678 2009-04-20  Richard Guenther  <rguenther@suse.de>
2679
2680         * basic-block.h (get_all_dominated_blocks): Declare.
2681         * dominance.c (get_all_dominated_blocks): New function.
2682         * tree-cfg.c (get_all_dominated_blocks): Remove.
2683         (remove_edge_and_dominated_blocks): Adjust.
2684         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
2685         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
2686         instead of recursing.
2687
2688 2009-04-20  Doug Kwan  <dougkwan@google.com>
2689
2690         * cgraph.h (cgraph_node_ptr): New type for vector functions.
2691         (struct cgraph_node_set_def): New type.
2692         (cgraph_node_set) New type. Also declare vector functions.
2693         (struct cgraph_node_set_element_def): New type.
2694         (cgraph_node_set_element): Ditto.
2695         (cgraph_node_set_iterator): New iterator type.
2696         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
2697         cgraph_node_set_remove, dump_cgraph_node_set,
2698         debug_cgraph_node_set): New prototypes.
2699         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
2700         cgraph_node_set_size): New inlines.
2701         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
2702         including cgraph.h.
2703         (struct ipa_opt_pass): Add struct cgraph_node_set_def
2704         argument to function 'write_summary'.
2705         * ipa.c: Include ggc.h.
2706         (hash_cgraph_node_set_element,
2707         eq_cgraph_node_set_element, cgraph_node_set_new,
2708         cgraph_node_set_add, cgraph_node_set_remove,
2709         cgraph_node_set_find, dump_cgraph_node_set,
2710         debug_cgraph_node_set): New functions.
2711         * Makefile.in (ipa.o): Add dependency on GGC_H.
2712
2713 2009-04-20  Ira Rosen  <irar@il.ibm.com>
2714
2715         PR tree-optimization/39675
2716         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
2717         check of the return code of vect_schedule_slp. Check that
2718         stmt_vec_info still exists for the statement, before checking its
2719         vectorization type.
2720
2721 2009-04-20  Michael Matz  <matz@suse.de>
2722
2723         * Makefile.in (generated_files): Take out $(simple_generated_c).
2724
2725 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
2726
2727         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
2728         (UINTPTR_TYPE):  Likewise.
2729
2730 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
2731
2732         PR c/37481
2733         * c-typeck.c (digest_init): Check for initializing an array with a
2734         string literal.
2735
2736 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
2737
2738         PR c/19771
2739         * c-semantics.c (pop_stmt_list): Propagate
2740         STATEMENT_LIST_HAS_LABEL to parent statement list.
2741
2742 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
2743
2744         * config/mips/mips.h (mips_tune_attr): New macro.
2745         * config/mips/mips.md (cpu): Use it.
2746
2747 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
2748
2749         PR c/38243
2750         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
2751         declaring a tag.
2752
2753 2009-04-19  Diego Novillo  <dnovillo@google.com>
2754
2755         * toplev.c (compile_file): Move call to coverage_finish ...
2756         * cgraphunit.c (ipa_passes): ... here.
2757         Call cgraph_process_new_functions.
2758         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
2759         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
2760
2761 2009-04-19  Jan Hubicka  <jh@suse.cz>
2762
2763         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
2764         cfun.
2765         (dump_cgraph_node): Dump can throw external flag.
2766         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
2767
2768 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2769
2770         PR c/32061
2771         PR c++/36954
2772         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
2773         * common.opt (Wlogical-op): Move from here...
2774         * c.opt (Wlogical-op): ... to here.
2775         * c-typeck.c (parser_build_binary_op): Update call to
2776         warn_logical_operator.
2777         * c-opts.c (c_common_post_options): Enable warn_logical_op with
2778         extra_warnings.
2779         * c-common.c (warn_logical_op): Update.
2780         * c-common.h (warn_logical_op): Update declaration.
2781
2782 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
2783
2784         * tree.c (protected_set_expr_location): Fix formatting.
2785
2786 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
2787
2788         PR c/27676
2789         * c-typeck.c (readonly_warning): new.
2790         (build_unary_op, build_modify_expr): Use readonly_warning for
2791         storing into something readonly but not const-qualified.
2792
2793 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
2794
2795         PR c/22367
2796         * c-typeck.c (build_unary_op): Check for taking address of
2797         expression of type void.
2798
2799 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
2800
2801         PR c/35210
2802         * c-typeck.c (build_function_call): Check for calling a function
2803         with qualified void return types.  Call require_complete_type when
2804         generating a trap.
2805
2806 2009-04-18  Jan Hubicka  <jh@suse.cz>
2807
2808         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
2809         Set nothrow flag.
2810         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
2811         can_throw_external flag.
2812         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
2813         * ipa-pure-const.c (ignore_edge): New function.
2814         (propagate): Compute order for NOTHROW computation; set NOTHROWs
2815         only over can_throw_external edges.
2816         (local_pure_const): Add nothrow flag.
2817         * ipa-utils.c (searchc): Add ignore_edge callback.
2818         (ipa_utils_reduced_inorder): Add ignore_edge callback.
2819         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
2820         (set_nothrow_function_flags): Update cgraph.
2821         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
2822
2823 2009-04-18  Richard Guenther  <rguenther@suse.de>
2824
2825         PR middle-end/39804
2826         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
2827         (fold_stmt): ... this and ...
2828         (fold_stmt_inplace): ... this.
2829         (fold_stmt_1): Fold references in calls and asms.
2830         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
2831
2832 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2833
2834         * tree-vrp.c (ssa_name_nonzero_p): Remove.
2835         * tree.h: Remove the prototype for ssa_name_nonzero_p.
2836
2837 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2838
2839         * tree.c (function_args_count): Remove.
2840         * tree.h: Remove the prototype for function_args_count.
2841
2842 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2843
2844         * tree-iterator.c (expr_only): Remove.
2845         * tree.h: Remove the prototype for expr_only.
2846
2847 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2848
2849         * reginfo.c (cannot_change_mode_set_regs): Remove.
2850         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
2851
2852 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
2853
2854         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
2855         whether operands 0 and 1 overlaps.
2856
2857 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2858
2859         PR middle-end/36902
2860         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
2861         pointer. Use warning_at instead of warning.
2862         (search_for_addr_array): Likewise.
2863         (check_array_bounds): Likewise.
2864         (check_all_array_refs): Check that the incoming edge is not in the
2865         list of edges to be removed.
2866         (check_all_array_refs): Avoid the temporal pointer.
2867         (vrp_visit_cond_stmt): Fix typo.
2868         (simplify_switch_using_ranges): Handle the case where the switch
2869         index is an integer constant.
2870
2871 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
2872
2873         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
2874
2875 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2876
2877         * doc/extend.texi, doc/invoke.texi: Fix typos.
2878
2879 2009-04-17  Cary Coutant  <ccoutant@google.com>
2880
2881         * tree-flow-inline.h (get_lineno): Fix inverted test.
2882
2883 2009-04-17  Diego Novillo  <dnovillo@google.com>
2884
2885         * tree-ssa-pre.c (create_expression_by_pieces): Remove
2886         assertion for AVAIL_OUT.
2887
2888 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
2889
2890         PR target/38627
2891         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
2892         * config/sh/linux-atomic.asm: Likewise.
2893
2894 2009-04-17  Diego Novillo  <dnovillo@google.com>
2895
2896         * except.c (debug_eh_tree): New.
2897         (struct eh_region, struct eh_status): Move ...
2898         * except.h: ... here.
2899         (add_type_for_runtime): Declare extern.
2900         (lookup_type_for_runtime): Likewise.
2901         (debug_eh_tree): Declare.
2902         * Makefile.in (GTFILES): List except.h before except.c
2903
2904 2009-04-17  Diego Novillo  <dnovillo@google.com>
2905
2906         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
2907         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2908         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
2909         (find_vars_r): ... here.
2910         * tree-flow.h (find_referenced_vars_in): Declare.
2911         * tree-ssa-pre.c (create_expression_by_pieces): Assert
2912         that AVAIL_OUT exists for BLOCK.
2913         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
2914         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
2915         (tree-parloops.o): Likewise.
2916
2917 2009-04-17  Simon Baldwin  <simonb@google.com>
2918
2919         * toplev.c (default_tree_printer): Add handling for %E format.
2920
2921 2009-04-17  Diego Novillo  <dnovillo@google.com>
2922
2923         * tree-pretty-print.c (dump_generic_node): Add break after
2924         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
2925         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
2926         FUNCTION_TYPE together.  Call print_struct_decl when printing
2927         structures and TDF_SLIM is not given.
2928         (print_struct_decl): Fix logic for detecting recursion.
2929
2930 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
2931
2932         PR 31567
2933         * gcc.c (create_at_file): New.
2934         (compile_input_file_p): New.
2935         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
2936         * main.c (main): Update call to toplev_main.
2937         * toplev.c (toplev_main): Change signature. Call expandargv.
2938         * toplev.h (toplev_main): Change signature.
2939
2940 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
2941
2942         * dwarf2out.c (field_byte_offset): Use the type size as the field size
2943         if the latter is not constant.
2944
2945 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
2946
2947         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
2948
2949 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
2950
2951         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
2952         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
2953
2954 2009-04-17  Richard Guenther  <rguenther@suse.de>
2955
2956         * tree-ssa-structalias.c (get_constraint_for_component_ref):
2957         Handle component references view-converting an invariant address.
2958
2959 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
2960
2961         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
2962         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
2963         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
2964         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
2965         Use @deftypevr rather than @deftypevar.
2966
2967 2009-04-17  Richard Guenther  <rguenther@suse.de>
2968
2969         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
2970         (get_prop_source_stmt): Likewise.
2971         (can_propagate_from): Likewise.
2972
2973 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
2974
2975         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
2976         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
2977         (--with-multilib-list): Add default value.
2978         * configure: Regenerate.
2979         * Makefile.in (TM_ENDIAN_CONFIG): Define.
2980         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
2981         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
2982         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
2983         Don't add default cpu to multilib list unnecessarily, but do enable
2984         the relevant compiler option..
2985         Add support for --with-multilib-list=<blank> and
2986         --with-multilib-list=!<somelib> to supress unwanted multilibs.
2987         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
2988         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
2989         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
2990         TM_MULTILIB_CONFIG.
2991         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
2992         (MULTILIB_OSDIRNAMES): New variable.
2993         * config/sh/t-1e: Delete file.
2994         * config/sh/t-mlib-sh1: Delete file.
2995         * config/sh/t-mlib-sh2: Delete file.
2996         * config/sh/t-mlib-sh2a: Delete file.
2997         * config/sh/t-mlib-sh2a-nofpu: Delete file.
2998         * config/sh/t-mlib-sh2a-single: Delete file.
2999         * config/sh/t-mlib-sh2a-single-only: Delete file.
3000         * config/sh/t-mlib-sh2e: Delete file.
3001         * config/sh/t-mlib-sh3e: Delete file.
3002         * config/sh/t-mlib-sh4: Delete file.
3003         * config/sh/t-mlib-sh4-nofpu: Delete file.
3004         * config/sh/t-mlib-sh4-single: Delete file.
3005         * config/sh/t-mlib-sh4-single-only: Delete file.
3006         * config/sh/t-mlib-sh4a: Delete file.
3007         * config/sh/t-mlib-sh4a-nofpu: Delete file.
3008         * config/sh/t-mlib-sh4a-single: Delete file.
3009         * config/sh/t-mlib-sh4a-single-only: Delete file.
3010         * config/sh/t-mlib-sh4al: Delete file.
3011         * config/sh/t-mlib-sh5-32media: Delete file.
3012         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
3013         * config/sh/t-mlib-sh5-64media: Delete file.
3014         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
3015         * config/sh/t-mlib-sh5-compact: Delete file.
3016         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
3017         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
3018         * doc/install.texi (Options specification): Add
3019         --with-multilib-list and --with-endian.
3020
3021 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
3022
3023         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
3024         REVISION_c.
3025         (OBJS-common): Add plugin-version.o.
3026         (plugin-version.o): New.
3027         * gcc-plugin.h (plugin_gcc_version): New.
3028         (plugin_default_version_check): New.
3029         (plugin_init_func, plugin_init): Add version argument.
3030         * plugin-version.c: New.
3031         * plugin.c (str_plugin_gcc_version_name): New.
3032         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
3033         pass it to the init function.
3034         (plugin_default_version_check): New.
3035
3036 2009-04-17  Richard Guenther  <rguenther@suse.de>
3037
3038         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
3039         for decl-vs-decl disambiguation.
3040
3041 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
3042
3043         * config/s390/s390.h (s390_tune_attr): New macro definition.
3044         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
3045
3046 2009-04-17  Richard Guenther  <rguenther@suse.de>
3047
3048         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
3049         (fold_stmt_r): Likewise.
3050         (maybe_fold_reference): New function.
3051         (fold_gimple_assign): Handle cases fold_stmt_r did.
3052         (fold_stmt): Do not use fold_stmt_r.
3053         (fold_stmt_inplace): Likewise.
3054
3055 2009-04-17  Richard Guenther  <rguenther@suse.de>
3056
3057         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
3058         (record_equivalences_from_stmt): Remove useless checks and
3059         simplifications.
3060         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
3061         the type is already suitable.
3062
3063 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
3064
3065         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
3066
3067 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
3068
3069         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
3070         (CMPtype): Define as __gcc_CMPtype.
3071
3072 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
3073
3074         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
3075         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
3076
3077 2009-04-17  Richard Guenther  <rguenther@suse.de>
3078
3079         PR tree-optimization/39746
3080         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
3081         special-casing for builtins and static variable use/def.
3082         (call_may_clobber_ref_p_1): Likewise.
3083
3084 2009-04-16  Ian Lance Taylor  <iant@google.com>
3085
3086         * df.h: Include "timevar.h".
3087         (struct df_problem): Change tv_id field to timevar_id_t.
3088         * tree-pass.h: Include "timevar.h".
3089         (struct opt_pass): Change tv_id field to timevar_id_t.
3090         * timevar.h (timevar_id_t): Define TV_NONE.
3091         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
3092         TV_NONE rather than tv_id != 0.
3093         (execute_one_pass): Likewise.
3094         * Makefile.in (DF_H): Add $(TIMEVAR_H).
3095         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
3096         dependencies to $(TREE_PASS_H).
3097         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
3098         to TV_NONE.
3099         (pass_branch_target_load_optimize2): Likewise.
3100         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
3101         (pass_outof_cfg_layout_mode): Likewise.
3102         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
3103         (pass_rebuild_cgraph_edges): Likewise.
3104         (pass_remove_cgraph_callee_edges): Likewise.
3105         * df-core.c (pass_df_initialize_opt): Likewise.
3106         (pass_df_initialize_no_opt): Likewise.
3107         (pass_df_finish): Likewise.
3108         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
3109         * except.c (pass_set_nothrow_function_flags): Likewise.
3110         (pass_convert_to_eh_region_ranges): Likewise.
3111         * final.c (pass_compute_alignments): Likewise.
3112         * function.c (pass_instantiate_virtual_regs): Likewise.
3113         (pass_init_function): Likewise.
3114         (pass_leaf_regs): Likewise.
3115         (pass_match_asm_constraints): Likewise.
3116         * gimple-low.c (pass_lower_cf): Likewise.
3117         (pass_mark_used_blocks): Likewise.
3118         * init-regs.c (pass_initialize_regs): Likewise.
3119         * integrate.c (pass_initial_value_sets): Likewise.
3120         * ira.c (pass_ira): Likewise.
3121         * jump.c (pass_cleanup_barriers): Likewise.
3122         * omp-low.c (pass_expand_omp): Likewise.
3123         (pass_lower_omp): Likewise.
3124         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
3125         * recog.c (pass_split_all_insns): Likewise.
3126         (pass_split_after_reload): Likewise.
3127         (pass_split_before_regstack): Likewise.
3128         (pass_split_before_sched2): Likewise.
3129         (pass_split_for_shorten_branches): Likewise.
3130         * reginfo.c (pass_reginfo_init): Likewise.
3131         (pass_subregs_of_mode_init): Likewise.
3132         (pass_subregs_of_mode_finish): Likewise.
3133         * passes.c (pass_postreload): Likewise.
3134         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
3135         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
3136         (pass_warn_function_return): Likewise.
3137         (pass_warn_function_noreturn): Likewise.
3138         * tree-complex.c (pass_lower_complex): Likewise.
3139         (pass_lower_complex_O0): Likewise.
3140         * tree-if-conv.c (pass_if_conversion): Likewise.
3141         * tree-into-ssa.c (pass_build_ssa): Likewise.
3142         * tree-mudflap.c (pass_mudflap_1): Likewise.
3143         (pass_mudflap_2): Likewise.
3144         * tree-nomudflap.c (pass_mudflap_1): Likewise.
3145         (pass_mudflap_2): Likewise.
3146         * tree-nrv.c (pass_return_slot): Likewise.
3147         * tree-object-size.c (pass_object_sizes): Likewise.
3148         * tree-optimize.c (pass_all_optimizations): Likewise.
3149         (pass_early_local_passes): Likewise.
3150         (pass_all_early_optimizations): Likewise.
3151         (pass_cleanup_cfg): Likewise.
3152         (pass_cleanup_cfg_post_optimizing): Likewise.
3153         (pass_free_datastructures): Likewise.
3154         (pass_free_cfg_annotations): Likewise.
3155         (pass_fixup_cfg): Likewise.
3156         (pass_init_datastructures): Likewise.
3157         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
3158         (pass_late_warn_uninitialized): Likewise.
3159         (pass_update_address_taken): Likewise.
3160         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
3161         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
3162         (pass_cse_sincos): Likewise.
3163         (pass_convert_to_rsqrt): Likewise.
3164         * tree-ssa-structalias.c (pass_build_alias): Likewise.
3165         * tree-stdarg.c (pass_stdarg): Likewise.
3166         * tree-tailcall.c (pass_tail_recursion): Likewise.
3167         (pass_tail_calls): Likewise.
3168         * tree-vect-generic.c (pass_lower_vector): Likewise.
3169         (pass_lower_vector_ssa): Likewise.
3170         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
3171
3172 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
3173
3174         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
3175         XLR entry.
3176         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
3177         Handle -march=xlr.
3178         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
3179         logical and signext.
3180
3181 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
3182
3183         PR target/39767
3184         * config/sh/predicates.md (arith_operand): Check if the operand
3185         of TRUNCATE is a REG.
3186
3187 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3188
3189         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
3190         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
3191
3192 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3193
3194         * tree-iterator.c (tsi_split_statement_list_after,
3195         tsi_split_statement_list_before): Remove.
3196         * tree-iterator.h: Remove the prototypes for
3197         tsi_split_statement_list_after and tsi_split_statement_list_before.
3198
3199 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3200
3201         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
3202         * tree-ssa-propagate.h: Remove the prototype for
3203         stmt_makes_single_load.
3204
3205 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3206
3207         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
3208         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
3209
3210 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3211
3212         * tree-iterator.c (EXPR_LAST_BODY): Remove.
3213
3214 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3215
3216         * except.c (eh_region_outer_p): Remove.
3217         * except.h: Remove the prototype for eh_region_outer_p.
3218
3219 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3220
3221         * function.c (current_function_assembler_name): Remove.
3222         * function.h: Remove the prototype for
3223         current_function_assembler_name.
3224
3225 2009-04-16  Ian Lance Taylor  <iant@google.com>
3226
3227         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
3228         (add_reg_note): Call alloc_reg_note.
3229         * rtl.h (alloc_reg_note): Declare.
3230         * combine.c (try_combine): Use alloc_reg_note.
3231         (recog_for_combine, move_deaths): Likewise.
3232         (distribute_notes): Use alloc_reg_note and add_reg_note.
3233         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
3234         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
3235         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
3236
3237 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
3238
3239         PR rtl-optimization/39762
3240         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
3241         ira_may_move_out_cost): Add comments about way of their usage.
3242         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
3243
3244         * ira-conflicts.c (process_regs_for_copy): Use function
3245         ira_get_register_move_cost instead of global
3246         ira_register_move_cost.
3247
3248         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
3249         color_pass, move_spill_restore, update_curr_costs): Ditto.
3250
3251         * ira-lives.c (process_single_reg_class_operands): Ditto.
3252
3253         * ira-emit.c (emit_move_list): Ditto.
3254
3255         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
3256         (record_reg_classes): Ditto.  Use functions
3257         ira_get_register_move_cost and ira_get_may_move_cost instead of
3258         global vars ira_register_move_cost, ira_may_move_out_cost and
3259         ira_may_move_in_cost.
3260         (record_address_regs): Don't call ira_init_register_move_cost.
3261         Use function ira_get_may_move_cost instead of global
3262         ira_may_move_in_cost.
3263         (process_bb_node_for_hard_reg_moves): Use function
3264         ira_get_register_move_cost instead of global ira_register_move_cost.
3265         (ira_costs): Don't call ira_init_register_move_cost.
3266
3267 2009-04-16  Richard Guenther  <rguenther@suse.de>
3268
3269         * tree-cfg.c (verify_gimple_assign_binary):
3270         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
3271         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
3272         (create_general_new_stmt): Note that this function is broken.
3273
3274 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3275
3276         * common.opt (fhelp): Add Var(help_flag).
3277         * gcc-plugin.h (plugin_info): Add help.
3278         * plugin.c (plugin_name_args): Add help.
3279         (register_plugin_info): Set plugin->help.
3280         (print_help_one_plugin): New.
3281         (print_plugins_help): New.
3282         * plugin.h (print_plugins_help): New.
3283         * toplev.c (toplev_main): Call print_plugins_help if needed.
3284
3285 2009-04-16  Richard Guenther  <rguenther@suse.de>
3286
3287         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
3288         (gimple_ior_addresses_taken_1): New function.
3289         (gimple_ior_addresses_taken): Likewise.
3290         * gimple.h (struct gimple_statement_with_ops_base): Remove
3291         addresses_taken member.
3292         (gimple_ior_addresses_taken): Declare.
3293         (gimple_addresses_taken, gimple_addresses_taken_ptr,
3294         gimple_set_addresses_taken): Remove.
3295         * ipa-reference.c (mark_address): New function.
3296         (scan_stmt_for_static_refs): Use it for marking addresses taken.
3297         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
3298         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
3299         (gimple_add_to_addresses_taken): Remove.
3300         (get_tmr_operands): Call mark_address_taken.
3301         (get_asm_expr_operands): Likewise.
3302         (get_expr_operands): Likewise.
3303         (build_ssa_operands): Do not clear the addresses_taken bitmap.
3304         (free_stmt_operands): Do not free it.
3305         * tree-ssa.c (delete_tree_ssa): Likewise.
3306         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
3307
3308 2009-04-16  Richard Guenther  <rguenther@suse.de>
3309
3310         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
3311         (walk_stmt_load_store_ops): Likewise.
3312         * gimple.c (get_base_loadstore): New function.
3313         (walk_stmt_load_store_addr_ops): Likewise.
3314         (walk_stmt_load_store_ops): Likewise.
3315         * ipa-pure-const.c (check_op): Simplify.
3316         (check_load, check_store): New functions.
3317         (check_stmt): Use walk_stmt_load_store_ops.
3318         * ipa-reference.c (mark_load): Adjust signature.
3319         (mark_store): Likewise.
3320         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
3321
3322 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3323
3324         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
3325         (plugin_info): New.
3326         * opts.c (common_handle_option): Don't call print_version.
3327         * plugin.c (plugin_name_args): Add version.
3328         (register_plugin_info): New.
3329         (register_callback): Handle PLUGIN_INFO.
3330         (try_init_one_plugin): New.
3331         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
3332         if failed to init.
3333         (finalize_one_plugin): New.
3334         (finalize_plugins): New.
3335         (print_one_plugin): New.
3336         (print_plugins_versions): New.
3337         * plugin.h (print_plugins_versions): New.
3338         (finalize_plugins): New.
3339         * toplev.c (compile_file): Don't call initialize_plugins.
3340         (print_version): Call print_plugins_versions.
3341         (toplev_main): Call initialize_plugins. Print version if needed.
3342         Call finalize_plugins.
3343
3344 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3345
3346         * common.opt (fversion): New.
3347         * gcc.c (print_version): New.
3348         (process_command): Don't print the version. Just set print_version.
3349         (main): Print version. Call subprocesses if print_version and
3350         verbose_flag are set.
3351         * opts.c (common_handle_option): Handle OPT_fversion.
3352
3353 2009-04-16  Richard Guenther  <rguenther@suse.de>
3354             Ira Rosen  <irar@il.ibm.com>
3355
3356         PR tree-optimization/39698
3357         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
3358       &nb