OSDN Git Service

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