OSDN Git Service

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