OSDN Git Service

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