OSDN Git Service

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